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
Cross-project TUI architecture decisions that affect the Nexus TUI (@nexus-ai-fs/tui). Canonical issue with full rationale: windoliver/koi#1484. This issue tracks Nexus-specific implementation.
Execution Order
10 issues in 5 waves. Each wave's items can run in parallel within the wave, but waves are sequential — later waves depend on earlier ones.
Per-screen wireframe documentation for all 10 panels
Wave 0 (panels must be reachable)
These are independent of each other — run all three in parallel. Theme tokens (1a) must land before the SolidJS migration so we migrate semantic tokens, not raw hex values. Wireframes (1c) document the current state before the architecture changes.
Nexus TUI has 10+ panels (files, versions, agents, access, payments, search, events, workflows, connectors, stack, API console) built on React + @opentui/react. SolidJS fine-grained reactivity improves responsiveness — especially for the file explorer, event stream, and API console where data updates frequently.
Nexus-specific notes:
Zustand stores used throughout — maps to SolidJS stores
Panel system architecture stays the same (tab bar + side nav + content)
testRender snapshot tests have identical API in both reconcilers
2. Worker thread isolation
Nexus TUI mixes rendering with API client calls, which can block on slow Nexus server responses. Target: rendering in main thread, API client + data fetching in worker.
Summary
Cross-project TUI architecture decisions that affect the Nexus TUI (
@nexus-ai-fs/tui). Canonical issue with full rationale: windoliver/koi#1484. This issue tracks Nexus-specific implementation.Execution Order
10 issues in 5 waves. Each wave's items can run in parallel within the wave, but waves are sequential — later waves depend on earlier ones.
Wave 0 — Prerequisites (fix what's broken)
Wave 0 unblocks everything. No point migrating to SolidJS or adding features on broken foundations.
Wave 1 — Foundation (theme + docs + guard)
These are independent of each other — run all three in parallel. Theme tokens (1a) must land before the SolidJS migration so we migrate semantic tokens, not raw hex values. Wireframes (1c) document the current state before the architecture changes.
Wave 2 — Architecture migration
@opentui/react→@opentui/solid)"latest")This is the biggest single change. Convert panel-by-panel:
theme.ts,side-nav.tsx,tab-bar.tsx,command-palettestub)@opentui/reactwhen all panels convertedWave 3 — Features enabled by new architecture
<code>,<diff>,<markdown>, plugin slots@opentui/solid):) for fuzzy navigation@koi/tui-baseThese are mostly independent of each other — run in parallel.
Wave 4 — Resilience and advanced
--versionflagWorker thread isolation (4b) is last because it's the most invasive change and benefits from all prior work being stable.
Visual dependency graph
Effort estimates
Total: ~16-25 days of focused work.
What changes for Nexus TUI
1. Migrate from
@opentui/reactto@opentui/solidNexus TUI has 10+ panels (files, versions, agents, access, payments, search, events, workflows, connectors, stack, API console) built on React +
@opentui/react. SolidJS fine-grained reactivity improves responsiveness — especially for the file explorer, event stream, and API console where data updates frequently.Nexus-specific notes:
testRendersnapshot tests have identical API in both reconcilers2. Worker thread isolation
Nexus TUI mixes rendering with API client calls, which can block on slow Nexus server responses. Target: rendering in main thread, API client + data fetching in worker.
Nexus-specific RPC:
connect(baseUrl, apiKey)— establish Nexus connectionsubscribe(panels)→ SSE stream of panel-relevant eventsrpc(method, params)— proxy JSON-RPC calls to Nexussearch(query)— proxy search API3. SSE event streaming
Nexus server already has event infrastructure (event streams with sequences, subscriptions, dead letters). Wire SSE from Nexus to TUI for:
TUI consumes via 16ms batched event handler.
4. Shared component library
Nexus TUI independently builds components that overlap with Koi and Grove:
5. Pin OpenTUI version
Currently
"latest"(unpinned). Pin to the same exact version as Koi and Grove. Unpinned"latest"risks breaking on any publish.Acceptance criteria
@opentui/solid+solid-jsadded, React removed, all panels converted"latest")