Commit Graph

5 Commits

Author SHA1 Message Date
root
8ed3c5deb4 feat(ui): Terminal tab — embedded blackflame ttyd to CT300 (claude in persistent tmux)
ttyd on CT300 (:7681, firewalled to Traefik) behind same-origin /terminal via
Traefik + CF Access; iframe view + nav entry.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 23:09:35 +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
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
6d42c7b440 feat(ui): jobs view stub + sidebar entry
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 03:32:16 +10:00
root
59ad86425d feat(ui): static shell + router + api wrapper
Three-column grid (sidebar / main / right rail) with Cradle aesthetic:
blackflame accent on Cinzel display headings + Cormorant Garamond body
in cards, system UI for chrome. Hash-based router covers all entity
routes plus search, inbox, sacred-valley. api.js stores OWNER_TOKEN in
localStorage and prompts via a modal on 401. dom.js provides safe el()
+ mount() builders so no component ever assigns innerHTML from API data
(the only exception is an explicit, scary-named html: opt-in for
sanitizer output, used later by the markdown editor).

state.js is a tiny event bus for shared chrome state (pending count).
Components and views are loaded as ES modules — sidebar / topbar /
rightrail + 9 view stubs that the later Phase E tasks fill in.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 02:12:18 +10:00