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
+122
View File
@@ -0,0 +1,122 @@
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum SurfaceKind {
Terminal,
Markdown,
Browser,
Review,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct PaneFixture {
pub title: &'static str,
pub badge: &'static str,
pub target: &'static str,
pub kind: SurfaceKind,
pub lines: [&'static str; 4],
}
pub const PANES: [PaneFixture; 6] = [
PaneFixture {
title: "Codex · runtime",
badge: "WORKING",
target: "metal · Tailscale SSH",
kind: SurfaceKind::Terminal,
lines: [
"$ cargo nextest run -p lumbridge-runtime",
"PASS remote::reconnect_replays_output",
"PASS pty::resize_preserves_cursor",
"agent is editing 3 files…",
],
},
PaneFixture {
title: "Claude Code · UI",
badge: "NEEDS INPUT",
target: "MacBook Air · local",
kind: SurfaceKind::Terminal,
lines: [
"$ bacon clippy",
"finished in 0.42s",
"Which split should receive focus?",
"[Approve] [Steer] [Cancel]",
],
},
PaneFixture {
title: "Pi · docs",
badge: "STREAMING",
target: "amd-server · OpenSSH",
kind: SurfaceKind::Terminal,
lines: [
"$ cargo watch --why",
"ACP session resumed at event 1842",
"writing remote-session.md",
"",
],
},
PaneFixture {
title: "Architecture.md",
badge: "MARKDOWN",
target: "lumbridge-code · worktree",
kind: SurfaceKind::Markdown,
lines: [
"## Remote session path",
"The destination runtime owns the PTY.",
"The laptop may disconnect and reattach.",
"SQLite remains local to each machine.",
],
},
PaneFixture {
title: "Preview · ACP docs",
badge: "BROWSER",
target: "isolated system web engine",
kind: SurfaceKind::Browser,
lines: [
"https://agentclientprotocol.com",
"Content process: sandboxed",
"Runtime bridge: no privileged access",
"Open in external browser ↗",
],
},
PaneFixture {
title: "Changes · lumbridge-runtime",
badge: "REVIEW",
target: "metal · worktree remote-runtime",
kind: SurfaceKind::Review,
lines: [
"+ 184 remote transport",
"+ 96 SQLite migrations",
" 12 obsolete scaffold",
"6 files · tests passing",
],
},
];
pub const WORKSPACES: [&str; 5] = [
"Lumbridge Code",
"Runtime / metal",
"UI spikes",
"ACP adapters",
"Usage telemetry",
];
pub const FOOTER_LEFT: &str = "6 panes · 3 remote · 1 needs input";
pub const FOOTER_CENTER: &str = "Codex · ChatGPT subscription · 62% window remaining";
pub const FOOTER_RIGHT: &str = "burn 8.4%/hr · resets in 2h 14m";
#[cfg(test)]
mod tests {
use super::{PANES, SurfaceKind};
#[test]
fn comparison_fixture_has_six_mixed_surfaces() {
assert_eq!(PANES.len(), 6);
assert!(PANES.iter().any(|pane| pane.kind == SurfaceKind::Markdown));
assert!(PANES.iter().any(|pane| pane.kind == SurfaceKind::Browser));
assert_eq!(
PANES
.iter()
.filter(|pane| pane.kind == SurfaceKind::Terminal)
.count(),
3
);
}
}