• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / revdiff / 25012247360

27 Apr 2026 06:23PM UTC coverage: 89.602% (+0.05%) from 89.556%
25012247360

push

github

web-flow
feat(annotations): --annotations flag preloads annotations from FormatOutput markdown (#156)

* feat(annotation): parser for FormatOutput markdown round-trip

Add Parse for the markdown shape Store.FormatOutput emits so annotations
can be reconstructed from previously-saved review files. Make
escapeHeaderLines/parser body-line stripping symmetric on
"left-trimmed prefix is '## '", so pre-indented "## " lines round-trip
losslessly at any indent depth.

* feat(annotations): --annotations flag preloads annotations on startup

Add an opt-in --annotations=PATH flag (no-ini, per-invocation only) that
parses a markdown file in the same shape Store.FormatOutput emits and
preloads the annotation store before the TUI starts. Records whose
file/line are not present in the resolved diff are dropped with a
stderr warning. Untracked files surface in the UI via a separate
loadUntracked callback rather than ChangedFiles, so the preload folds
them in via untrackedFn and reads their line set from disk via
diff.ReadFileAsAdded — mirroring Model.resolveEmptyDiff so any file
written by -o (including untracked) round-trips back through
--annotations.

* docs(annotations): document --annotations flag and round-trip workflow

Add a Preloading Annotations section to README, site docs, and the
Claude/codex plugin usage references; note the bidirectional -o ⇄
--annotations workflow in CHANGELOG and the in-session review preload
path in plugin SKILL files.

* chore(plans): archive --annotations implementation plan

* feat(diff): export SanitizeCommitText for external callers

Public wrapper around sanitizeCommitText so callers outside the diff
package (e.g. preloaded annotation comments) can apply the same
ANSI / C1 / control-byte stripping before content reaches a terminal
renderer.

* refactor(annotation): parser type, Store.Load, tolerate unescaped ##

- Move parseHeader onto a parser struct so state (out/current/body/
  seenHeader) lives on the value rather than as closure-c... (continued)

224 of 245 new or added lines in 6 files covered. (91.43%)

56 existing lines in 5 files now uncovered.

8772 of 9790 relevant lines covered (89.6%)

535.32 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

67.69
/app/stdin.go


Build SHA Not Found

The commit SHA "6d4f16a13fc3c0151bcc269d55809da05718cfe4" was not found in your repository, so the file cannot be loaded. This may be because you posted from a local development environment, or your CI created an ephemeral commit.

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc