root
1a10bfea0d
feat(migrate): ensureSpace helper
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 22:18:44 +10:00
root
681b091e4a
feat(migrate): migration_map idempotency ledger
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 22:18:05 +10:00
root
bbb90c12c6
docs: void-migrate implementation plan
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 22:17:32 +10:00
root
feb700e3f6
docs: void-migrate (Plan 8a) design spec
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 22:14:29 +10:00
root
cea2442c4f
fix(actions): ssh channel pins known_hosts beside key (no HOME dependency)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 22:00:52 +10:00
root
169e3b6d5c
feat(actions): configurable SSH user + insecure-TLS for PVE; real action whitelist + Z wrapper
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:56:33 +10:00
root
80ad482d82
chore: release 2.0.0-alpha.16 (Little Blue + action framework)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:48:15 +10:00
root
8dfb56d2ac
feat(ui): Little Blue view — caretaker chat + actions panel
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:44:35 +10:00
root
b064f7f1a9
feat(littleblue): agent seed + persona + chat route
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:43:34 +10:00
root
ff681847ed
feat(littleblue): blue tool registry (list/propose action via local API) + run_turn extraEnv
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:42:27 +10:00
root
3aa8dc578b
feat(actions): /api/actions routes (run/pending/approve/reject)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:41:29 +10:00
root
62113f37e6
feat(actions): tiered action service (safe-run / risky-queue / approve)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:40:50 +10:00
root
a186116c4d
feat(actions): SSH forced-command service-restart channel + host wrapper
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:40:20 +10:00
root
c9268f8792
feat(actions): scoped Proxmox power channel
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:40:20 +10:00
root
2c3d78c99b
feat(actions): config-driven action whitelist registry
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:40:20 +10:00
root
135244cb13
feat(actions): agent_actions table + repo
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:39:05 +10:00
root
d500b6fa00
docs: Little Blue implementation plan
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:38:28 +10:00
root
e58090e607
docs: Little Blue (Plan 7 brick 2) design spec
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:33:01 +10:00
root
6ceb27fa2f
chore: release 2.0.0-alpha.15 (Yerin online)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:14:38 +10:00
root
eb33bd8604
feat(ui): Sentinel view — Yerin global security chat
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:11:11 +10:00
root
423cbd342a
refactor(ui): Dross rail uses agent_chat
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:11:11 +10:00
root
1aebdfe317
feat(ui): extract reusable agent_chat panel
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:11:11 +10:00
root
79b8197c99
feat(yerin): global security chat endpoint /api/security/yerin
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:09:12 +10:00
root
d480d79843
refactor(companion): ride on shared runAgentTurn + personas
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:08:05 +10:00
root
01c6594bfb
feat(agents): shared runAgentTurn turn-runner
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:06:56 +10:00
root
1a28742536
feat(agents): personas module (Dross + Yerin), keyed by slug
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:06:56 +10:00
root
e8dfc8f392
feat(agents): conversations.findOrCreateGlobal for space-less agents
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:04:31 +10:00
root
92299548ee
docs: Yerin online implementation plan
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 21:03:57 +10:00
root
84bb2739e1
docs: Yerin online (Plan 7 brick 1) design spec
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 20:59:12 +10:00
root
6b26b79a84
chore: release 2.0.0-alpha.14 (MCP HTTP transport)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 20:13:20 +10:00
root
6041f845e9
feat(mcp): mount /mcp Streamable HTTP endpoint
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 20:09:30 +10:00
root
0b29b8c2f3
feat(mcp): mcpAuth middleware — agent bearer + space scope + rate limit
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 20:08:45 +10:00
root
185a4f3c96
feat(mcp): external registry + agent ctx + Streamable HTTP server
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 20:08:14 +10:00
root
c955f1eaaf
feat(mcp): space-scope the read tool for bound callers
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 20:07:22 +10:00
root
99b1fa445a
docs: MCP HTTP/SSE transport implementation plan
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 20:06:32 +10:00
root
858ef53eea
docs: MCP HTTP/SSE transport design spec
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 19:59:39 +10:00
root
f780043f2d
feat(ui): 2.0.0-alpha.13 — finer per-card width scaling (12-col grid + -/+ stepper)
...
clock/weather etc. default to 1/6 width; sizes store an integer span 1-12
(legacy s/m/l still accepted by /api/dashboard/layout).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 18:23:37 +10:00
root
ae3a45251d
feat(ui): 2.0.0-alpha.12 — editable Sacred Valley layout
...
Edit-layout mode: per-card resize (S/M/L), show/hide with a hidden-cards tray,
drag-to-reorder via a dedicated grip handle, and reset-to-default. Persists via
the existing /api/dashboard/layout (order/sizes/hidden) — no backend change.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 18:15:08 +10:00
root
ce26895d8e
feat: 2.0.0-alpha.11 — DB-backed service registry + LAN auto-discovery
...
- monitored_services table (mig 015) replaces config/services.json (now a boot seed)
- owner CRUD over /api/health/services; GET is DB-backed; cron+worker read the DB
- discover.lan worker: pure-Node TCP sweep + HTTP-title probe -> disabled 'discovered'
candidates (never clobbers curated entries); POST /api/health/discover + GET .../discovered
- dashboard: Scan button + Discovered(N) section with one-click promote
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 07:55:08 +10:00
root
b728696020
ops: harden push.sh — snapshot + migrate-in-deploy + /health gate + auto-rollback
...
Removes the rsync --delete / manual-migration / no-rollback footguns from the
deploy path. Validated: clean deploy passes the health gate; a forced health
failure correctly rolls back from the .prev snapshot and recovers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 07:33:32 +10:00
root
4e943ada12
feat(auth): 2.0.0-alpha.10 — Cloudflare Access SSO as owner auth
...
A cryptographically-verified CF Access JWT (signature vs team JWKS + audience +
email allow-list) now counts as the owner, so browser requests through the CF
tunnel don't need the owner token copied onto each device. Fails closed → owner
token remains the fallback (LAN-direct + dev/tests unaffected). Opt-in via
CF_ACCESS_TEAM_DOMAIN / CF_ACCESS_AUD / CF_ACCESS_OWNER_EMAILS.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 10:25:58 +10:00
root
925cb0d7d6
chore: 2.0.0-alpha.9 — security & correctness hardening (Void 3.0 quick wins)
...
- Q3: prod void DB role NOSUPERUSER (vector marked trusted; deploy/README documents it)
- Q4: buildChildEnv allow-list for the claude subprocess (no OWNER_TOKEN/DATABASE_URL/secrets leak)
- Q5: pending-change approve claims-before-applying + reopens on failure (no re-approvable dup)
- Q6: /capture/upload validates space_id (UUID+existence); pg pool statement_timeout 30s
- Q9: disabled failing syncoid-donatello timer on Z
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 07:54:57 +10:00
root
1e1d0c539d
feat(ui): add separate Network·Devices band (IoT/personal) below Little Blue
...
Read-only static band from public/devices.json (ARP scan), grouped Smart Home /
Entertainment / Personal / Network / Flagged. Kept distinct from Little Blue's
service health band. Live discovery deferred.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 00:10:54 +10:00
root
3fb5a60bf6
feat(health): add OpenClaw (agents, tcp/22) + OBD2 (infra, syncthing :8384); drop misleading Homarr icon on Homelable
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 00:09:00 +10:00
root
0026d2bc6e
feat(ui): collapsible sidebar + rail, off-canvas mobile drawers, responsive layout
...
- Left sidebar collapses (topbar menu button); rail collapses (topbar button + strip).
- <=860px / portrait: sidebar + rail become off-canvas drawers over main with a
scrim, closed by default; main goes full-width single-column.
- Smooth transitions; crossing the breakpoint resets to a sane default.
- New components/chrome.js owns toggle + drawer state.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 23:57:45 +10:00
root
c325e53de4
feat(health): add Jellyfin (via traefik host); keep sonarr/radarr/qbit visible as down
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 23:51:27 +10:00
root
118cea7b66
feat(health): wire up all discovered homelab services (LAN scan)
...
18 tiles across agents/infra/media/other: + Open WebUI, Gramps, Scanopy, Homelab
Home, Pterodactyl, Proxmox z/z3 (tcp check for self-signed TLS), Void 1.x, Farm
Timelapse, MagicMirror, Claude Usage. Skipped gateway/rogue/IoT noise.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 23:43:44 +10:00
root
56c3bf5f08
fix(health): correct service registry to live homelab (BookStack :6875, drop undeployed sonarr/radarr/qbittorrent, add tdarr)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 23:36:57 +10:00
root
1b5630ec73
docs(plan6): note deferred localStorage first-paint mirror as follow-up
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 23:23:33 +10:00
root
b82b90d2f5
fix(sacred-valley): review polish — render-gen guard, auth-boundary tests, PNG sig, dedup note
...
Addresses final-review findings: I1 render-generation guard prevents a double-mount
/timer leak on rapid re-navigation; I2 adds anonymous-rejection tests for the owner-only
POST /speedtest/run and /health/check; M1 CSS comment; M2 cron↔worker dedup note;
M4 full 8-byte PNG signature check; M5 card-contract unit test for all 7 cards.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 23:20:14 +10:00