NS4 slice: Add read-only git status and diff panels #25
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: Use explicit local
gitcommands to show status, changed files, diffs, and hunks.AUTHORITY: Parent #4
NS4: Repository workbench; PRODUCT.md; REQUIREMENTS.md (PRODUCT.md; req: repo/001-002; req: ui/002).AGENT AUTHORITY:
PARENT: #4 via explicit issue link and parent checklist.
SCOPE: The smallest source/docs/tests needed to make this behavior real and verified.
BOUNDARIES: No commit/stage/reset/checkout operations.
ACCEPTANCE: Fixture repo tests show status/diff/hunks and navigate from changed file to buffer; git errors are visible.
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
871f3b4917(Add read-only git workbench panels).Verification:
Regular tests: real temporary git repos drive
git status --short,git diff --unified=0, file read/open for changed files, and TUI status/diff panels through the shared list-panel primitive. Rows are panel-safe tokens (modified:src/main.zig,hunk:...,add:...) and changed-file open loads the working-tree content into the editor.Adversarial tests: missing/non-repo paths produce visible
git_error:...rows, status rows are validated before path extraction, and unsafe paths such as../secretare rejected.Boundary: read-only git status/diff/navigation only. No staging, committing, checkout, reset, git mutation, background jobs, terminal shell, or external service added.