You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Port periskopio (crates/theatron/desktop) to full feature parity as the Dioxus desktop surface for Harmonia, closing the last unchecked Phase 3.5 criterion (kanon projects/harmonia/ROADMAP.md:39).
Context
Phase 3.5 plan W4 defines ten sub-waves hm-400..409: six feature areas (library browse, playback, DSP controls, management, queue/downloads, settings) plus MPRIS, tray, notifications, window state, file associations, autostart — then a Nix derivation and gated desktop CI (projects/kanon/projects/harmonia/phases/03.5-canonical-storage-and-desktop/PLAN.md).
Current state: pre-alpha stub views; the skene client (crates/theatron/core) is not yet wired to any view.
Locked decisions (operator, 2026-08-11)
Blitz-native from day one: consume theatron's mekhane (windowing, tray, menus); no wry/webkit2gtk surface, per theatron's locked no-browser-surface doctrine. kanon's chalkeion is the existing mekhane consumer to study.
Adopt the theatron substrate in order: themelion (theme — replaces the hand-rolled provider in src/theme.rs) → keryx (rebase skene's HTTP/SSE client) → bathron (window state, notifications, atomic config writes) → skeue/gramma (components as views grow) → dokimasia (design-token lint in CI).
Mirror aletheia/proskenion's proven pattern: standalone excluded workspace with its own lockfile, exact dioxus patch pin (=0.7.9), three-scoped Signal<T> state, dual-SSE client architecture, contract test with an explicit endpoint inventory plus an xvfb smoke test, path-filtered desktop.yml.
Semantic CSS over design tokens; no vestigial Tailwind config (proskenion's is unused — do not copy it).
The themelion→aggelmata rename (D-062) lands before theatron adoption to remove the crate-name collision.
Harmonia stays independently buildable: theatron is consumed by pinned git tag from the public repo; no runtime coupling to other fleet services.
Done-when
The ROADMAP criterion is checkable: library, playback, DSP, management, and platform integration all live in periskopio on the theatron substrate.
Contract test and headless smoke test green in a path-filtered desktop CI job.
docs/desktop/architecture.md describes what IS, with no stub overclaim.
Goal
Port periskopio (
crates/theatron/desktop) to full feature parity as the Dioxus desktop surface for Harmonia, closing the last unchecked Phase 3.5 criterion (kanonprojects/harmonia/ROADMAP.md:39).Context
projects/kanon/projects/harmonia/phases/03.5-canonical-storage-and-desktop/PLAN.md).crates/theatron/core) is not yet wired to any view.Locked decisions (operator, 2026-08-11)
mekhane(windowing, tray, menus); no wry/webkit2gtk surface, per theatron's locked no-browser-surface doctrine. kanon's chalkeion is the existing mekhane consumer to study.themelion(theme — replaces the hand-rolled provider insrc/theme.rs) →keryx(rebase skene's HTTP/SSE client) →bathron(window state, notifications, atomic config writes) →skeue/gramma(components as views grow) →dokimasia(design-token lint in CI).=0.7.9), three-scopedSignal<T>state, dual-SSE client architecture, contract test with an explicit endpoint inventory plus an xvfb smoke test, path-filtereddesktop.yml.Done-when
docs/desktop/architecture.mddescribes what IS, with no stub overclaim.