Workspace Dashboard — wednesday.sabin.uk

Ce este

Cockpit-ul vizual al Wednesday. O aplicație web — fork Nevermore-owned din outsourc-e/hermes-workspace (MIT, v2.3.0) — care rulează local pe Mac la _infra/workspace/, serve pe Tailscale http://100.72.93.65:3000, public la https://wednesday.sabin.uk prin tunel Cloudflare cu Access gate (email PIN, allowlist [email protected] + [email protected]).

Diferența față de Telegram/IRC/WhatsApp: dashboard-ul nu e canal conversațional principal — e suprafață de observabilitate + control. Vezi starea vault-ului, dispatchezi workers, citești dashboard-urile, deschizi note din _wiki/. Are și chat (același Hermes gateway în spate), dar nu folosesc dashboard-ul ca să vorbesc cu Wednesday — folosesc ca să văd ce face Wednesday.

Layer-ul de gaming/social/trading din upstream (HermesWorld, Agora, VT Capital) e complet șters și interzis să revină. Doar Nevermore.

Cum vorbesc cu Wednesday prin asta

Două căi de acces:

  1. Tailscale interior: browser pe orice device în Tailnet → http://100.72.93.65:3000. Mac, Android (PWA), laptop secundar. Password-gated (HERMES_PASSWORD din .credentials/nevermore_workspace.env).
  2. Public via Cloudflare: https://wednesday.sabin.uk → Cloudflare Access intercept → email one-time PIN → in (sesiune persistentă pe device). Tunel wednesday-workspace rulează ca launchd uk.sabin.wednesday.cloudflared pe Mac, origin http://100.72.93.65:3000.

Ce găsesc înăuntru:

  • Nevermore Cockpit (/nevermore, primul item în nav) — 5 panouri vault-real:
    • Boot Gates — starea ultimei boot self-check (vault audit, agentic OS scorecard, daemon health, active lessons, skill surface)
    • Dashboards — markdown rendering live din _raw/dashboards/
    • Runtime Stateruntime_state.json parsat (phase, last meaningful session, pending)
    • Active Lessons — toate lessons cu severitate
    • Fleet — launchd jobs activi (cine rulează, cine a căzut)
  • Knowledge Browser_wiki/ cu cross-links + Cmd+K global search (sursa “Vault” wired via wednesday-search.py)
  • Memory Browser — Honcho memory + auto-memory ~/.claude/.../memory/
  • Swarm / Conductor — 6 grok-4.3 workers persistenți (swarm1/2/4/5/6/7) în tmux. Dispatch manual default (safety rail).
  • Chat — același Hermes gateway, surface web

Ce model AI răspunde de fapt

Pentru chat-ul din dashboard: Grok 4.3 via Hermes — același endpoint ca Telegram/IRC.

Pentru swarm workers: Grok 4.3 (grok-4.3) per worker, REPL clasic hermes chat în tmux, NU --tui (TUI absent din hermes-agent 0.14.0). Workers au write-scope sandbox confined la _infra/workspace/ per safety-rail.

Cockpit-ul în sine nu cheamă LLM — citește fișiere și afișează. Read-only, fail-soft.

Exemple practice

Verificare matinală — un singur loc:

Deschid wednesday.sabin.uk → /nevermore
Văd dintr-o privire:
  - Boot Gates: 5/5 clean ✓
  - Active Lessons: 18 (3 high-severity, cel mai nou: lesson-22)
  - Fleet: 14/14 launchd jobs up
  - Daemon Health: 0 silent past 48h ✓
Decid: nu mai trebuie să rulez session-close gate manual.

Dispatch swarm pentru muncă batch:

/swarm → vad cei 6 workers idle
Selectez swarm2, swarm4, swarm5 → dispatch task batch:
  "Citește _wiki/concepts/*.md și raportează note cu link-uri rupte"
Mode = manual (safety rail) → trebuie să greenlight-ez pornirea
Click "Run" → tmux sessions încep, output streamează live în UI

Citesc o lecție de pe canapea:

Cmd+K → tastez "session-close drift"
Sursa "Vault" returnează lesson-04 + protocolul session-close
Click → markdown render integral, fără să deschid Obsidian

Limite + gotchas

  • Build trap: pnpm 11 ERR_PNPM_IGNORED_BUILDS strică pnpm build/start/exec. Build cu ./node_modules/.bin/vite build direct, run cu node server-entry.js. Launchd wrapper-ul _infra/scripts/nevermore-workspace-run.sh face deja asta.
  • Vite chunks orphan: dacă nu rm -rf dist înainte de vite build, server.js poate referenția un chunk șters → 500 ERR_MODULE_NOT_FOUND. Mereu wipe dist înainte.
  • Tailscale-only pe LAN: dashboard-ul NU e expus pe LAN brut. 100.72.93.65 e Tailscale IP. Din afara Tailnet → Cloudflare Access (PIN email).
  • Mac-asleep = down. Workspace + Hermes gateway sunt pe Mac. Mac doarme → 502 Bad Gateway prin Cloudflare. Tailscale-direct la fel — niciun device.
  • Redesign în paralel: weds.sabin.uk (port 3001, _infra/workspace-md3/) este forkul Material 3 Expressive — UI nou, aceeași funcționalitate. Live wednesday.sabin.uk nu se atinge până când MD3 e ratificat. NU edita _infra/workspace/ când lucrezi la redesign.
  • Swarm cost: workers consumă quota Grok continuu cât rulează. Dispatch manual e safety rail intenționat.

Verificare rapidă

# Workspace rulează?
launchctl list | grep nevermore-workspace
# → uk.sabin.wednesday.nevermore-workspace cu PID
 
# Cloudflared tunel?
launchctl list | grep cloudflared
 
# Răspunde local?
curl -sI http://100.72.93.65:3000 | head -1
# → HTTP/1.1 200 (sau 401 dacă password-gate)
 
# Răspunde public?
curl -sI https://wednesday.sabin.uk | head -1
# → 302 redirect către CF Access login
 
# Hermes gateway pentru chat?
curl -s http://127.0.0.1:8642/health

Dacă pică: tail -f _infra/temp/nevermore-workspace.{log,err} pentru workspace, tail -f _infra/temp/cloudflared-wednesday.log pentru tunel.