#48: pinning the baseline leaves the review panel fully un-annotated #52
Reference in New Issue
Block a user
Delete Branch "s48-pin-clean-panel"
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?
#48 (story, P2) — pinning the baseline should leave the review panel fully un-annotated.
A pinned baseline with no changes since should read as a clean starting point, but the F10 on-render still author-colored every block, painting the whole document green/blue right after a pin. Now, when the baseline reason is "pinned" and there are zero changes since (every
diffBlocksopunchanged), the on-render is fully clean — no change marks and no authorship coloring — while thedata-srcblock mapping (INV-36) and any pending proposals (review actions, not annotations) are kept.Scoped to the pin, not all zero-diff
Accepting a Claude edit also advances the baseline (F6 INV-18 → zero-diff), but that is a "machine-landing", not a pin — it keeps its authorship coloring so accepted Claude text stays blue (F10 INV-33). So the clean render is gated on
reason === "pinned", not any zero-diff. (The F10 authorship E2E caught this — it would have regressed under a pure zero-diff rule.)Changes
trackChangesModel.ts—renderReviewgains apinnedRenderOption; when pinned + zero-diff, blocks render plain (skipcolorByAuthor).trackChangesPreview.ts— pass{ pinned: baseline?.reason === "pinned" }fromrefresh+ therenderHtmlFortest seam.Tests
218 unit + 74/5 host E2E green. Unit: pinned+zero-diff → no
cw-by-*; still shows proposals; zero-diff WITHOUT pin (machine-landing) keeps coloring (INV-33); real change after pin re-colors.s48PinCleanhost E2E: type → colored; pin → clean; edit → annotations return.Spec
INV-33 clarification (zero-diff-after-pin clean edge) written for
specs/coauthoring-interactive-review.md— currently in the content-repo working tree (the content repo has pre-existing uncommitted drafts + is behind origin; flagged for the operator to push).Session 0046.
🤖 Generated with Claude Code
A pinned baseline with no changes since should read as a clean starting point, but the F10 on-render still author-colored every block (colorByAuthor), painting the whole document green/blue right after a pin. Now, when the baseline reason is "pinned" and there are zero changes since (every diffBlocks op unchanged), the on-render is fully clean — no change marks and no authorship coloring — while the data-src block mapping (INV-36) and any pending proposals (review actions, not annotations) are kept. Scoped to the PIN specifically, not all zero-diff: a baseline advanced by a machine-landing (accept) is also zero-diff but keeps its authorship coloring so accepted Claude text stays blue (F10 INV-33). renderReview takes a `pinned` option; the controller passes baseline.reason === "pinned" from both refresh and the renderHtmlFor test seam. - trackChangesModel.ts: renderReview gains the `pinned` RenderOption; when pinned + zero-diff, blocks render plain (no colorByAuthor). - trackChangesPreview.ts: pass { pinned } through refresh + renderHtmlFor. - unit: pinned+zero-diff → no cw-by-*; pinned+zero-diff still shows proposals; zero-diff WITHOUT pin (machine-landing) keeps coloring (INV-33); real changes after a pin re-color. - s48PinClean host E2E: type → colored; pin → clean; edit → annotations return. 218 unit + 74/5 host E2E green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>