Context
Raised during code review on PR #185 (issue #167). No code path closes a ctx.contested entry once it's set. This was previously a design claim that got corrected during review to plainly document the gap instead:
contestedBlock comment (.claude/workflows/ticketmill.js:1892-1896)
docs/architecture/gate-hygiene.md:700-713
Both now state explicitly that nothing closes a contested entry, flagged as a known gap rather than claiming it's handled.
Ask
Decide whether a contested entry should ever be closed (and by what event — a subsequent clean pass? a settle? explicit override resolution?), then implement the closing transition, or explicitly document why leaving it open for the life of the issue is intentional and sufficient.
Related: ctx.contested is not part of the durable gate-state payload either (gate_budgets/settled only survive resume), so contested entries also don't survive a mid-issue resume — same as ctx.notes, pre-existing behavior, worth folding into the same investigation.
Ref: PR #185, issue #167.
Context
Raised during code review on PR #185 (issue #167). No code path closes a
ctx.contestedentry once it's set. This was previously a design claim that got corrected during review to plainly document the gap instead:contestedBlockcomment (.claude/workflows/ticketmill.js:1892-1896)docs/architecture/gate-hygiene.md:700-713Both now state explicitly that nothing closes a contested entry, flagged as a known gap rather than claiming it's handled.
Ask
Decide whether a contested entry should ever be closed (and by what event — a subsequent clean pass? a settle? explicit override resolution?), then implement the closing transition, or explicitly document why leaving it open for the life of the issue is intentional and sufficient.
Related:
ctx.contestedis not part of the durable gate-state payload either (gate_budgets/settledonly survive resume), so contested entries also don't survive a mid-issue resume — same asctx.notes, pre-existing behavior, worth folding into the same investigation.Ref: PR #185, issue #167.