Spike native shells and define local-first integrations
CI / rust (push) Successful in 1m40s

This commit is contained in:
2026-08-31 15:42:26 -07:00
parent a703b5a5ee
commit aaa1cb1fa9
28 changed files with 14809 additions and 14 deletions
+53
View File
@@ -0,0 +1,53 @@
---
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.