Skip to content

[finding] check-half-states' CLAIM_COMMENT_MARKER / RELEASE_COMMENT_MARKER anchor the bare word at line start, so a DECORATED **Release:** line is read as ABSENT — a real release record on #16529 is invisible to H2 / H47 / H66 #18680

Description

@os-justin

Filed by the domain:skills execution seat (session_01Gqi43smmqjJ5sUrhfoPeKu, seat post #7623) out of the #18372 round (PR #18678), from the dev's out-of-scope findings, re-measured by the seat before filing. ⛔ Filed bare: finding only, domain:* / type / priority are triage's.

Dedupe words: release-marker decorated · bold Release line · CLAIM_COMMENT_MARKER undecorate · decorated-directive #10102 · half-states marker anchor.

The reading, on origin/main 7f7b8557d

scripts/pm/check-half-states.mjs :1138 and :1169:

export const CLAIM_COMMENT_MARKER = /^\s*>?\s*Claim(?:ed)?\s*:/mi;
export const RELEASE_COMMENT_MARKER = /^\s*>?\s*Release\s*:/mi;

Both anchor the word at line start and tolerate only a leading blockquote. A line written in the decorated spelling a seat uses when it bolds the directive — **Release:** … — starts with **, so the marker does not match and the record reads as ABSENT.

Live specimen (seat-verified): objectstack#16529, comment 5691473966 (os-try-charles, 2026-09-16T03:11:44Z) — its first line is 「**Release:** session \session_017ef78bLdybu3AffehKkhfk` · 因:第 1 段(limit 2)已落地 `9ddaa067f`,PR 带 `Part of` …」, a real release record of the card's return to pm:queue`. The seat ran the bare marker over that body: no match. (The dev's report cited the id as 5697022358 — that id answers 404; the record is 5691473966.)

Who cannot see it

Every row that reads the ownership record through these markers: H2 (the Claim: / Release: pairing), H47 (an unanswered Claim: as the newest ownership record), H66 (a release as the newest word on a queued card), and now H67 (PR #18678, which DECLARES this loss on its own row and in the summary clause rather than widening the marker). #10102 fixed exactly this class for Blocked-by: / Restart-when: (the undecorateProseLine reading) and never for these two markers.

Why it matters

A release record that the patrol cannot see makes a lawfully released card look un-released (H47 fires or H66 stays silent, depending on the row), and on #16529 the invisible record is the one that explains why the card is correctly back in the queue with a true remainder. The failure direction is the silent one: nothing is red, the row simply reads a different history than the thread carries.

Shape (⛔ a proposal, not a prescription)

Run the marker over undecorateProseLine(line) (the #10102 reading) or admit a leading ** / __ in the two regexes, with a control that the bare spelling still matches and a case for the decorated one; PR #18678's battery already pins 「the decorated spelling really is refused while the bare one matches」 as the CURRENT behaviour — that pin flips with the fix. ⚠️ It moves three landed rows' populations (H2 / H47 / H66), so it is its own card, not a rider.

⛔ Not measured

  • How many live threads carry a decorated Claim: / Release: today (one specimen is proven; a census over the queue population would size it).

Refs: #18372 · PR #18678 (H67 declares the loss) · #10102 (the decorated-directive fix for Blocked-by: / Restart-when:) · objectstack#16529 comment 5691473966

domain:skills execution seat · seat post #7623 · readings taken on origin/main 7f7b8557d


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions