Macstudio1 Dashboard

repo: ~/Projects/macstudio1-dashboard · 15 commits · 0 in last 24h, 0 in last 7d ·

Search the build

15 commits indexed

  1. 5ba78ec 2026-05-18 fix: render footer link as real anchor + define missing CSS vars (--metal-glow, --ink-mute)
  2. 1f0cb86 2026-05-18 chore: complete .gitignore with tmp/.DS_Store/dist/build/.next
  3. b807de8 2026-05-13 snapshot: 2 file(s) changed, +1 new, ~1 modified
  4. cf7ec96 2026-05-08 fix: drop TS-style :any annotations from server.js (was crashing on parse)
  5. 6a9b5d8 2026-05-08 feat: TEST button on Mac1 dashboard — single-prompt latency check
  6. fda8505 2026-05-08 feat: BOOST button on Mac1 dashboard restarts ollama with NUM_PARALLEL=4 etc
  7. 19f97af 2026-05-08 feat: viewer counter on dashboard odometer — see if browser is actually polling
  8. 729b4e1 2026-05-08 feat: self-healing version check — dashboard auto-reloads on new build
  9. 29b1797 2026-05-07 chore: build version stamp + scroll hint at top of dashboard
  10. 92ad6cb 2026-05-07 feat: tach history strip — 60s CPU + RAM sparklines above the gauges
  11. 78fa648 2026-05-07 feat: ticker-tape Ollama HTTP log feed below the gauges
  12. 684c80b 2026-05-07 feat: rich LLM bay panel — per-model rows + ollama process stats + installed list
  13. 2afd088 2026-05-07 fix: no-store HTML so new sections appear on reload
  14. 3ef920f 2026-05-07 feat: engine bay live process table below gauges
  15. 574b249 2026-05-07 feat: macstudio1-dashboard v0.1 — 57 Bel Air aesthetic

Authors

Agents used

  • none detected

Skills used

  • /ollama4
  • /control3
  • /version2
  • /status2
  • /localhost2
  • /index1
  • /stderr1
  • /log1
  • /logs1
  • /server1
  • /tags1
  • /rss1
  • /etime1
  • /processes1
  • /memory1
  • /power1
  • /hyperdrive1
  • /max-ram1
  • /idle1

Creative ideas + design notes

Commits with substantial prose (≥120 chars) — the rationale behind each move.

729b4e1 · 2026-05-08 · feat: self-healing version check — dashboard auto-reloads on new build
Server hashes public/index.html on boot + on file change (fs.watch).
Front-end polls /api/version every 5s; when the hash changes from
its loaded version, shows a brass-colored "New build deployed —
reloading..." banner and force-reloads after 2s.

Removes the constant "browser cached the old page" friction. Now
when I deploy a feature, the dashboard self-refreshes within 5 seconds
and Steve sees the new sections immediately without manual reload.

API:
  GET /api/version    {version: <sha1[0:10]>, ts}

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
29b1797 · 2026-05-07 · chore: build version stamp + scroll hint at top of dashboard
Confirms which version Chrome is actually showing (v0.4 = tach strip
+ LLM rows + ollama log + proc table). The sub-line "scroll for engine
bay + ticker tape" tells the viewer those sections live below the fold
in a Chrome --app window.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
92ad6cb · 2026-05-07 · feat: tach history strip — 60s CPU + RAM sparklines above the gauges
Two slim SVG sparklines under a chrome-bezel "TACH" header, charting
the last 60 seconds of CPU% (red) and RAM% (turquoise). Filled
area + outline + dot at the leading edge, on a dot-grid graph-paper
background. Updates each gauge tick (~1.2s).

Pure client-side ring buffer (HIST_LEN=60), no API change, no
server load. Adds visual rhythm so editors can see throughput
patterns instead of just instantaneous needles.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
78fa648 · 2026-05-07 · feat: ticker-tape Ollama HTTP log feed below the gauges
Live tail of /tmp/ollama.log (where the running ollama process writes
its stdout/stderr per lsof). Parses GIN-format HTTP rows + structured
events into a ticker-tape feed:

  - HTTP rows: gold timestamp, color-coded status pill (green 2xx /
    amber 4xx / red 5xx), turquoise method, cream path, gold duration
  - Event rows: italic gray, with level prefix
  - Raw rows: dim fallback

Endpoint:
  GET /api/ollama/log?lines=N    parsed tail of /tmp/ollama.log,
                                 falls back to ~/.ollama/logs/server.log

Refreshes every 3s, scrolls newest-first, max-height 280px so it
fits the dash.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
684c80b · 2026-05-07 · feat: rich LLM bay panel — per-model rows + ollama process stats + installed list
Now-broadcasting panel expanded into a proper "LLM bay":
- Per-model rows showing name (gold) / param size / quantization /
  VRAM bytes / expires-in countdown (or "pinned" anchor symbol)
- Foot strip with ollama PID / OLLAMA CPU% / OLLAMA RAM MB / process
  uptime / installed model count + total disk
- Detects pinned models (Ollama uses year-2318 sentinel for
  keep_alive=-1) and shows them as "pinned" not a 3M-hour countdown

API additions:
- /api/status now includes ollama.installed[] from /api/tags merge
- ollama_procs[] from ps grep ollama with cpu/rss/etime

Currently shows: qwen3:14b 14.8B Q4_K_M 10.09 GB pinned
+ 6 installed models / 50.5 GB on disk
+ ollama PID, CPU%, RAM MB, uptime

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2afd088 · 2026-05-07 · fix: no-store HTML so new sections appear on reload
Browser was caching v0.1 HTML so the engine-bay processes table
didn't render after v0.2 deploy. Sets Cache-Control: no-store on
.html responses.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3ef920f · 2026-05-07 · feat: engine bay live process table below gauges
- /api/processes endpoint runs ps -Ao with explicit columns,
  parses to JSON {pid,user,cpu,mem,rss_mb,start,time,command}
- table rendered below odometer w/ chrome trim + leather backing
- sortable headers (click any col, second click reverses)
  default sort: CPU% desc; numeric cols default desc on first click
- hot rows (>=50% CPU or >=10% MEM) tinted red
- 2.5s poll cycle independent of gauge ticks
- Lobster Engine bay header in cream + gold counter

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
574b249 · 2026-05-07 · feat: macstudio1-dashboard v0.1 — 57 Bel Air aesthetic
Mac Studio 1 dashboard at http://100.94.103.98:9930 (or http://localhost:9930 on Mac1):

- Three round chrome gauges: CPU %, MEMORY %, VRAM GB, with red needles + chrome bezels
- Radio-panel Now Broadcasting: shows currently-loaded LLM (qwen3:14b right now), parameter size, VRAM bytes, expires-in countdown
- Three push-button hyperdrive controls (chrome cigarette-lighter style):
  HYPERDRIVE  high-power mode + pin all loaded models keep_alive=-1
  MAX RAM     load every installed model into memory and pin
  IDLE        unload all models + restore default power mode
- Odometer strip: uptime / power mode / call count
- 57 Bel Air color palette: turquoise, cream, chrome, red, leather brown, gold
- Fonts: Lobster (script wordmark), Bowlby One SC (chunky), Special Elite (era typewriter), Bungee Shade (1957 badge)

API endpoints:
  GET  /api/status               1.2s polled - cpu/memory/ollama/power
  POST /api/control/hyperdrive   sudo pmset powermode 2 + pin models
  POST /api/control/max-ram      load every installed model with keep_alive=-1
  POST /api/control/idle         pmset powermode 0 + unload models

launchd jobs registered on Mac1:
  com.steve.macstudio1-dashboard         server at boot
  com.steve.macstudio1-dashboard-chrome  open Chrome --app=http://localhost:9930 8s after login

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

File tree

7 files tracked. Click any to browse the source at HEAD.

Other build journals

← Macstudio Specs  ·  all 4 projects  ·  Macstudio2 Dashboard →

Export

commits.csv · feed.atom · project.json · commits.json

rendered in 0ms