Skip to content

Review ledger ​

One row per finding that changed a merge decision. Keep resolved rows; do not delete the history. The reviewer adds a row when a finding blocks, and the author adds the resolution and target when it is fixed or deferred.

Status values: open, fixed, deferred, rejected.

2026-11-06, state-machine and proof batch ​

AreaFindingStatusResolution or target
SemanticIn-place index.json write can truncate the last complete indexfixed#227 writes through .tmp, keeps .bak, and serves the backup on read
SemanticCross-window lease is in-memory; separate windows are not coveredfixed#237 adds a vault-scoped IndexedDB lease; a store failure fails closed
SemanticClosing the view orphans a running indexfixed#232 disposes the controller in ChatView.onClose
CompactionManual /compact audit start can land in a new session during a swapdeferredUnowned follow-up
Compaction/compact instructions are ignored when it joins an auto runfixed#230 returns busy instead of joining with different instructions
CompactionRecovery loads outside the swap queuedeferredUnowned follow-up
ApprovalA deny reason equal to STOPPED_APPROVAL_REASON triggers the stop pathfixed#235 uses an explicit stopped flag
ApprovalstopRequested and the approval request are not tied to a turn or session tokendeferredUnowned follow-up
PluginsConcurrent install sweeps are not single-flightfixed#232 shares one in-flight reload
PluginsA sweep and an install can race on the same stage or backupfixed#236 serializes both with one maintenance lock
TestsTwo-tab Stop aborting only the active tab has no e2efixed#239 adds a two-tab Stop e2e
SessionA failed resource reload invalidated the token while the old session stayed livefixed#229 commits the token change only after the reload
MCPA plugin clone's refreshed tokens and challenge never reached mcpStatefixed#231 writes the clone back before save
MCPA moved mcp.json URL replayed tokens and a challenge minted for the old hostfixed#231 clears them in resolveMcpServers and reconcile
MCPA "Test connection" challenge was lost for plugin serversfixed#231 syncs the changed server before save
TestsApproval e2e could leave .agentic-chat-approval open and cascade ten click failuresfixed#224 dismisses it in afterEach; beforeEach asserts closed
Releasesemantic-release could not push its version bump to protected mainfixedRuleset plus repo-scoped deploy key; #223 wires the workflow
Feature mapUnit-only tests were marked coveredfixed#221 requires e2e, probe, or replay proof
Feature map18 source refs pointed at blank lines; command anchors were wrongfixed#221 fixes the refs and adds the checker
WitnessLoader, timeout, skip, and no-count reds could pass as witnessesfixed#220 requires a failed-test count and rejects loader output
MCP OAuthA rejected refresh flight was reusedfixed#222 adds a retry witness
Agent turnUser Stop did not prove a queued follow-up was clearedfixed#222 adds the witness
Session swapDuplicate-load test asserted the wrong counterfixed#222 asserts one load

How to add a row ​

  1. Copy the reviewer's finding, not the fix.
  2. Name the user-visible or data-loss impact.
  3. Use the PR that fixed it, or the structural PR that will.
  4. If rejected, say why in one sentence.

Released under the MIT License.