NS1 slice: Add deterministic record/replay for protocol and input events #11
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: Record state-changing commands/input events and replay them against a headless session with useful divergence output.
AUTHORITY: Parent #1
NS1: Minimal protocol-first mim-min editor; PRODUCT.md; REQUIREMENTS.md (PRODUCT.md; req: session/001-004; req: coding/001; req: governance/001; req: governance/003).AGENT AUTHORITY:
PARENT: #1 via explicit issue link and parent checklist.
SCOPE: The smallest source/docs/tests needed to make this behavior real and verified.
BOUNDARIES: No broad fixture framework beyond what this slice needs.
ACCEPTANCE: A golden open/move/edit/save recording replays deterministically and names the first divergent step on failure.
VERIFICATION: Run the cheapest command that proves acceptance. Include regular tests for the intended payoff and adversarial tests for realistic failure, boundary, or regression cases. If no implementation test command exists yet, create/record the canonical command in AGENTS.md as part of the slice.
BLOCKERS: none
GOAL: Implement this vertical slice to the ACCEPTANCE above, keep the repo clean, cite relevant
req:anchors in code/tests where applicable, and close only after verification passes.Implemented in commit
86bac27a8a(Add deterministic protocol replay harness).Verification:
Regular tests: a golden open/move/edit/save checkpoint recording replays deterministically; the same recording can be replayed twice with identical
okresult.Adversarial tests: replay reports the first divergent response step, reports the first divergent save checkpoint step, rejects unknown replay events, and validates UTF-8 for input insert payloads.
Boundary: this is a headless protocol/input replay harness with save checkpoints only; no TUI behavior, daemon product, or broad fixture framework was added.