54 lines
2.3 KiB
Markdown
54 lines
2.3 KiB
Markdown
---
|
|
name: lumbridge-development
|
|
description: Build, test, review, benchmark, or document Lumbridge, the native Rust local-first IDE, terminal multiplexer, and agent workspace.
|
|
---
|
|
|
|
# Lumbridge Development
|
|
|
|
Work from the Lumbridge repository root. Read `AGENTS.md`, then only the product
|
|
documents relevant to the task:
|
|
|
|
- architecture or persistence: `docs/ARCHITECTURE.md` and `docs/decisions/`;
|
|
- product behavior: `docs/PRODUCT_SPEC.md`;
|
|
- tests: `docs/TESTING.md`;
|
|
- native UI work: `docs/UI_OPTIONS.md` and `docs/UI_SPIKE_SCORECARD.md`;
|
|
- Buzz work: `docs/BUZZ_INTEGRATION.md`.
|
|
|
|
Preserve these product boundaries:
|
|
|
|
- The application shell, terminal, editor, runtime, and state model are native
|
|
Rust. Do not introduce Electron, React, TypeScript, or a webview shell.
|
|
- Data is local-first. SQLite contains metadata and history, never API keys,
|
|
subscription tokens, SSH private keys, Buzz private keys, or Tailscale keys.
|
|
- Remote PTYs live in a per-user runtime on the user's remote machine. OpenSSH
|
|
and Tailscale are transports over access the user already configured; do not
|
|
change tailnet ACLs, copy credentials, or open public listeners.
|
|
- macOS, Ubuntu, and Omarchy/Arch are release targets. A Linux-only success is
|
|
not cross-platform proof.
|
|
- Usage and quota values always retain provenance and uncertainty.
|
|
|
|
## Development loop
|
|
|
|
Before editing, inspect Git status and preserve unrelated work. Use:
|
|
|
|
```bash
|
|
bacon
|
|
cargo xtest
|
|
./scripts/ci.sh
|
|
```
|
|
|
|
Root CI must remain independent from experimental UI dependencies. GPUI and
|
|
Floem live in separate workspaces under `spikes/` and consume the same
|
|
`ui-shell-model` fixture. Record only observed results in the scorecard; do not
|
|
select a framework until both pass the hard gates.
|
|
|
|
For Buzz integration, use its Apache-2.0 Rust SDK and signed protocol semantics
|
|
rather than inventing a webhook dialect. Test against a local relay and fixture
|
|
identity. Pane screenshots or transcripts require a visible preview, redaction,
|
|
explicit destination, and user confirmation before upload.
|
|
|
|
Add tests at the lowest deterministic layer first, then platform or rendered
|
|
tests where behavior crosses a real boundary. Before handoff, run the relevant
|
|
spike build plus `./scripts/ci.sh`, `git diff --check`, and report anything not
|
|
validated on all target systems.
|