Destination
Ship path toward a releasable CLI mode (post-screenshots → 0.3.1+):
- Pretty
check — TTY default: source excerpts + caret annotations + light frame; plain gcc-style when piped / NO_COLOR / --format plain.
- Showcase fixture at
tests/fixtures/showcase-diags/ with a deliberate solid array of diagnostics (deps, inference, generics, etc.) for CI + screenshots.
- Watch TUI v1 —
openplanet-lsp check --watch: re-run diagnostics on file change (notify/inotify-class), pretty list, quit key. Not full IDE chrome in this map.
- Rust-only TUI crate in-repo (e.g.
crates/openplanet-lsp-tui) with mock TuiDataSource first, then wire a real backend via a run(...) API the main binary calls.
- Automated TUI snapshots / e2e as part of the crate quality bar.
Notes
- Repo:
clankercode/lsp-openplanet (Rust LSP). Skills: wayfinder, grilling, prototype, codebase-design, ultra-tui-iteration when implementing.
- Prefer deepening modules (pretty render seam separate from typecheck; TUI crate behind a clean data-source trait).
- LSP JSON-RPC stays unstyled / protocol-correct; pretty is CLI-only.
- Screenshot targets until showcase exists:
tm-buffer-time (~18 diags), tm-better-totd (~22), fixture tm-dashboard (~66). Avoid E++ (700+) for hero shots.
- Hold 0.3.1 until screenshots + this path are ready; crates.io Trusted Publishing already fixed on master (
crates-io-auth-action).
- ChatGPT caret mock is the visual north star for pretty check (not
boxes as the product).
Decisions so far
Not yet specified
- Exact caret excerpt algorithm (context lines, tab width, unicode columns, multi-span diags).
- Frame/border style tokens (unicode light box vs minimal rules vs no box).
- Mock
TuiDataSource trait surface (events, cancel, incremental vs full recheck).
- Snapshot harness choice for ratatui-class TUIs.
- Whether pretty renderer is shared 100% between one-shot check and watch TUI or thin adapters.
- CI matrix cost for showcase fixture + TUI snapshots.
- How
--watch chooses workspace root / plugins-dir / typedb (inherit all check flags?).
Out of scope
- Full multi-pane IDE TUI (file tree, hover preview, multi-tab) — tracked separately as future wayfinding, not this destination.
- Go throwaway TUI prototype (decided: Rust-only crate).
- Changing LSP protocol diagnostics payload for pretty (pretty is a CLI view over existing diagnostics).
- Publishing 0.3.1 before screenshots land.
Destination
Ship path toward a releasable CLI mode (post-screenshots → 0.3.1+):
check— TTY default: source excerpts + caret annotations + light frame; plain gcc-style when piped /NO_COLOR/--format plain.tests/fixtures/showcase-diags/with a deliberate solid array of diagnostics (deps, inference, generics, etc.) for CI + screenshots.openplanet-lsp check --watch: re-run diagnostics on file change (notify/inotify-class), pretty list, quit key. Not full IDE chrome in this map.crates/openplanet-lsp-tui) with mockTuiDataSourcefirst, then wire a real backend via arun(...)API the main binary calls.Notes
clankercode/lsp-openplanet(Rust LSP). Skills:wayfinder,grilling,prototype,codebase-design,ultra-tui-iterationwhen implementing.tm-buffer-time(~18 diags),tm-better-totd(~22), fixturetm-dashboard(~66). Avoid E++ (700+) for hero shots.crates-io-auth-action).boxesas the product).Decisions so far
Not yet specified
TuiDataSourcetrait surface (events, cancel, incremental vs full recheck).--watchchooses workspace root / plugins-dir / typedb (inherit allcheckflags?).Out of scope