NS10 slice: Prove LSP-assisted coding workflows in terminal E2E #75
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 proving that LSP-like assistance workflows (hover, signature help, parameter navigation, go-to/jump, diagnostics, formatting/code actions) remain reachable, viewport-safe, and useful during coding.
AUTHORITY: Parent #65 (NS10), PRODUCT.md mobile-first terminal editor boundary, REQUIREMENTS.md testing/input/ui/session rows, KEYMAP.md language/navigation/help workflow grammar, existing LSP/language-provider slices (#42, #50, #51, #52, #54), and the user request to extend NS10 to prove LSP working.
AGENT AUTHORITY:
PARENT: #65 via parent checklist membership plus this explicit parent reference.
SCOPE: terminal E2E fixtures/scenarios, existing language-provider/test-fixture seams, hover/signature/diagnostic/code-action panels, and viewport/color artifacts needed to prove them. Prefer deterministic in-process fixtures over launching a real external LSP server.
BOUNDARIES: Do not add a runtime plugin system, package manager, hidden LSP installer, external language server dependency, or fake UI text that is not connected to the existing provider path. Do not broaden into all LSP features; pick representative coding-critical flows with deterministic proof.
ACCEPTANCE:
REGRESSION CLASS: LSP/help workflows silently becoming unreachable, too wide for iPhone-sized terminals, losing focus, not mutating the buffer, or requiring desktop-only keys.
EVIDENCE ARTIFACTS: terminal screenshots/SVG, semantic transcript, visible-control transcript, saved buffer receipt, keystroke TSV/manifest rows.
REQUIREMENT IMPACT: protects existing REQUIREMENTS.md testing/input/ui/session authority and prior language-provider issue contracts; update requirements only if new LSP E2E obligations are made durable.
VERIFICATION:
zig build terminal-e2e;zig build test;zig build; redgate lint/health if requirements/docs change.BLOCKERS: keystroke-budget slice for budget-gated input-cost assertions; otherwise none if existing provider fixtures are sufficient.
SLICE_CONTRACT:
objective: Prove deterministic LSP-like coding assistance workflows in browser-terminal E2E.
authority: #65, PRODUCT.md, REQUIREMENTS.md testing/input/ui/session rows, KEYMAP.md, existing language-provider slices.
acceptance: hover/signature viewport proof + navigation proof + code-action/format mutation proof + artifacts and keystroke receipt.
verification: zig build terminal-e2e; zig build test; zig build; redgate as needed.
non_goals: no external LSP server/installers/plugins, no broad all-feature matrix, no fake unconnected UI.
blockers: keystroke-budget mechanism for budget assertions.
Progress committed in
38c487f(Add LSP-assisted terminal E2E coverage).What is now covered in browser-terminal E2E:
--e2e-prelude-file, harness-only) seeds hover, signature, diagnostics, and format fixtures before raw-mode input.lsp-assisted-codingdrives real terminal keys through reachable KEYMAP actions:Space l hhover,Space l ssignature, diagnostics panel + diagnostic jump, andSpace l fprovider format.ZLS), and format status (format:zls:applied).key_events=17,max_key_events=17,key_budget=pass.Verification:
zig build terminal-e2e✅zig build test✅zig build✅zig build v1-smoke✅redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md✅Evidence from latest run:
.zig-cache/terminal-e2e/lsp-assisted-coding/visible-controls.normalized.txtincludes[zls] add(lhs, rhs), signature active parameter text,diag:fresh:zls,format:zls:applied, and visibleZLSbuffer mutation..zig-cache/terminal-e2e/lsp-assisted-coding/manifest.tsvrecords the 17-key budget pass..zig-cache/terminal-e2e/lsp-assisted-coding/keystrokes.tsvlists the raw workflow input.Not closing #75 yet: the issue acceptance also asks for a saved-content receipt after provider format/code-action mutation. Current E2E proves visible mutation and status but exits with discard because save/dirty handling after language-format still needs a bounded follow-up fix.
Completed in
a96b9e8(Save LSP format E2E mutation).What changed since the previous progress receipt:
lsp-assisted-codingnow usesSpace w+Space qinstead of discard quit and asserts final saved contentZLS.Full #75 coverage now in terminal E2E:
key_events=19,max_key_events=19).expect_saved=ZLS).Verification:
zig build terminal-e2e✅zig build test✅zig build✅zig build v1-smoke✅redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md✅Evidence from latest run:
.zig-cache/terminal-e2e/lsp-assisted-coding/manifest.tsv:key_events=19,max_key_events=19,key_budget=pass, saved hash forZLS..zig-cache/terminal-e2e/lsp-assisted-coding/visible-controls.normalized.txt: hover/signature text,diag:fresh:zls, visibleZLS,format:zls:applied, andsaved..zig-cache/terminal-e2e/lsp-assisted-coding/keystrokes.tsv: raw workflow steps and bytes.