NS11 slice: Add Normal-mode dot repeat #78

Closed
opened 2026-06-21 18:43:59 +00:00 by tmk241 · 1 comment
Owner

OBJECTIVE: Make . repeat the last repeatable Normal-mode edit so common coding edits can be replayed from iPhone SSH and attached keyboards without rebuilding the command manually.

AUTHORITY: Parent #76 NS11; KEYMAP.md Normal-mode grammar; user request that dot-repeat is accessible and valuable on iOS keyboards.

AGENT AUTHORITY:

  • Delivery authority: local-commit
  • Tracker authority: this issue may be commented and closed when acceptance passes
  • Handoff state: committed clean, tracker commented/closed

PARENT: #76 by parent checklist fallback plus explicit parent reference in this body.

SCOPE: capture and replay a small repeatable edit command model for current mutating Normal-mode operations; docs; tests/E2E.

BOUNDARIES: Do not promise full Vim repeat compatibility in this slice. Do not record searches, panel operations, hidden side effects, or unsafe external commands as repeatable edits. Keep repeat state local and deterministic.

ACCEPTANCE: . repeats at least the last simple insert/change/delete/put operation that mim supports as a local edit; repeat failure is explicit when no repeatable edit exists; undo history remains coherent; counts either work deliberately or are rejected/documented instead of silently corrupting state.

REGRESSION CLASS: repeated coding edits require excessive keys; dot replays the wrong command or repeats a non-editing side effect; undo stack is corrupted by repeat.

EVIDENCE ARTIFACTS: terminal E2E transcript or headless TUI test showing a repeated edit and undo-safe buffer result.

REQUIREMENT IMPACT: likely protects/updates input and editing requirements.

VERIFICATION: zig build test; zig build terminal-e2e; redgate lint/health if requirements change.

BLOCKERS: none.

OBJECTIVE: Make `.` repeat the last repeatable Normal-mode edit so common coding edits can be replayed from iPhone SSH and attached keyboards without rebuilding the command manually. AUTHORITY: Parent #76 NS11; KEYMAP.md Normal-mode grammar; user request that dot-repeat is accessible and valuable on iOS keyboards. AGENT AUTHORITY: - Delivery authority: local-commit - Tracker authority: this issue may be commented and closed when acceptance passes - Handoff state: committed clean, tracker commented/closed PARENT: #76 by parent checklist fallback plus explicit parent reference in this body. SCOPE: capture and replay a small repeatable edit command model for current mutating Normal-mode operations; docs; tests/E2E. BOUNDARIES: Do not promise full Vim repeat compatibility in this slice. Do not record searches, panel operations, hidden side effects, or unsafe external commands as repeatable edits. Keep repeat state local and deterministic. ACCEPTANCE: `.` repeats at least the last simple insert/change/delete/put operation that `mim` supports as a local edit; repeat failure is explicit when no repeatable edit exists; undo history remains coherent; counts either work deliberately or are rejected/documented instead of silently corrupting state. REGRESSION CLASS: repeated coding edits require excessive keys; dot replays the wrong command or repeats a non-editing side effect; undo stack is corrupted by repeat. EVIDENCE ARTIFACTS: terminal E2E transcript or headless TUI test showing a repeated edit and undo-safe buffer result. REQUIREMENT IMPACT: likely protects/updates input and editing requirements. VERIFICATION: `zig build test`; `zig build terminal-e2e`; redgate lint/health if requirements change. BLOCKERS: none.
tmk241 added the sliceready-for-agent labels 2026-06-21 18:43:59 +00:00
Author
Owner

Closing receipt for #78.

Implemented in local commit 27c4269 (Add normal dot repeat):

  • Normal-mode . repeats the last deterministic local edit for the supported subset.
  • Supported repeat paths now include insert sessions, simple change/delete protocol edits, put/paste, and open-line+typed-text style edits.
  • Search/panel/external side effects are not recorded as repeatable edits.
  • Repeat remains undoable through the existing undo stack.
  • KEYMAP.md and REQUIREMENTS.md updated.

Verification:

  • zig build
  • zig build test (unit coverage for insert repeat, delete repeat, change repeat, and put repeat with undo)
  • zig build terminal-e2e (new dot-repeat-local-edit browser-terminal scenario)
  • zig build run -- --help
  • zig build --prefix /tmp/mim-install verify-install-code
  • redgate list /opt/repositories/mim/REQUIREMENTS.md && redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md
Closing receipt for #78. Implemented in local commit `27c4269` (`Add normal dot repeat`): - Normal-mode `.` repeats the last deterministic local edit for the supported subset. - Supported repeat paths now include insert sessions, simple change/delete protocol edits, put/paste, and open-line+typed-text style edits. - Search/panel/external side effects are not recorded as repeatable edits. - Repeat remains undoable through the existing undo stack. - KEYMAP.md and REQUIREMENTS.md updated. Verification: - `zig build` ✅ - `zig build test` ✅ (unit coverage for insert repeat, delete repeat, change repeat, and put repeat with undo) - `zig build terminal-e2e` ✅ (new `dot-repeat-local-edit` browser-terminal scenario) - `zig build run -- --help` ✅ - `zig build --prefix /tmp/mim-install verify-install-code` ✅ - `redgate list /opt/repositories/mim/REQUIREMENTS.md && redgate lint /opt/repositories/mim/REQUIREMENTS.md && redgate health /opt/repositories/mim/REQUIREMENTS.md` ✅
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tmk241/mim#78