Skip to content

periskopio: Dioxus desktop feature-parity port — phase 3.5 keystone #690

Description

@forkwright

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 (kanon projects/harmonia/ROADMAP.md:39).

Context

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    architectureSystem design and structural decisionsenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions