NS10 slice: Prove a multi-file coding loop under keystroke budget #74
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
OBJECTIVE: Add browser-terminal E2E coverage for a realistic multi-file coding loop that opens/navigates across files, edits more than one file or file context, saves, and reports the keystrokes required.
AUTHORITY: Parent #65 (NS10), PRODUCT.md protocol-first mobile terminal editor boundary, REQUIREMENTS.md testing/001-004 and input/session rows, KEYMAP.md file/search/panel/edit workflow grammar, issue created to extend NS10 with multi-file coding efficiency proof.
AGENT AUTHORITY:
PARENT: #65 via parent checklist membership plus this explicit parent reference.
SCOPE: terminal E2E fixtures/scenarios, existing repo/file/search panels, existing save/edit behavior, and harness artifacts needed to prove multi-file work. Use existing project-search/file-picker seams where possible.
BOUNDARIES: Do not build a project model, file watcher, LSP server, native browser client, or new storage layer. Do not claim dogfood completion; fixture/browser-terminal evidence is NS10 proof only. Do not change keymap semantics unless the E2E exposes a direct bug needed for the scenario.
ACCEPTANCE:
REGRESSION CLASS: Multi-file coding workflows becoming impossible, too key-heavy, losing edits when switching context, or requiring hidden desktop-only actions before dogfood catches it.
EVIDENCE ARTIFACTS: terminal screenshots/SVG, semantic transcript, saved-content receipts for each file/context, keystroke TSV/manifest rows.
REQUIREMENT IMPACT: protects existing testing/input/session authority; may require requirement update if multi-file persistence becomes a durable v1 contract.
VERIFICATION:
zig build terminal-e2e;zig build test;zig build; redgate lint/health if requirements/docs change.BLOCKERS: depends on the keystroke-budget artifact slice if the budget mechanism is not already present.
SLICE_CONTRACT:
objective: Prove a realistic multi-file coding loop in browser-terminal E2E with saved-content and keystroke evidence.
authority: #65, PRODUCT.md, REQUIREMENTS.md testing/input/session rows, KEYMAP.md, user request to extend NS10.
acceptance: multi-file fixture workflow + final content receipts + screenshots/transcripts + keystroke budget.
verification: zig build terminal-e2e; zig build test; zig build; redgate as needed.
non_goals: no real LSP server, no native client, no dogfood claim, no broad file-storage redesign unless the scenario exposes a minimal blocker.
blockers: keystroke-budget mechanism if absent.
Implemented in
d6ebf1c(Prove multi-file terminal coding loop).What changed:
multi-file-coding-loopscenario with a fixture repo containingalpha.zigandbeta.zig.beta.zig, opensrepo/alpha.zigthrough the normal-mode open prompt, edits/saves it, and quits.saved-files.tsvreceipts for scenarios that assert files beyond the launched file.currentPathvalues, so opened repo files save to the intended file instead of the launch target/scratch path.Verification:
zig build terminal-e2e✅zig build test✅zig build✅zig build v1-smoke✅redgate list /opt/repositories/mim/REQUIREMENTS.md✅redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md✅Evidence from latest run:
.zig-cache/terminal-e2e/multi-file-coding-loop/manifest.tsv:key_events=29,max_key_events=30,key_budget=pass,saved_files=alpha.zig,beta.zig..zig-cache/terminal-e2e/multi-file-coding-loop/saved-files.tsv: records hashes/byte counts for both edited files..zig-cache/terminal-e2e/multi-file-coding-loop/keystrokes.tsv: lists the full user input sequence and raw bytes.Note: This proves fixture/browser-terminal multi-file coding efficiency before dogfood. It does not claim the unresolved mobile Insert→Normal decision from #71.