Skip to content

fix(pm): stop H5 title-login extraction at the login token - #9929

Merged
os-warren merged 1 commit into
mainfrom
claude/issue-9926-h5-title-extraction
Aug 19, 2026
Merged

fix(pm): stop H5 title-login extraction at the login token#9929
os-warren merged 1 commit into
mainfrom
claude/issue-9926-h5-title-extraction

Conversation

@os-warren

Copy link
Copy Markdown
Collaborator

Fixes#9926

h5SeatStickerDesync took the WHOLE remainder of the status string after the
🟢 emoji as the seat holder. Every active seat title carries a trailing
(session_...) parenthetical by protocol, so a perfectly consistent seat
post like 🟢 os-warren (session_...) with assignee os-warren never
matched the extracted "holder" string and got flagged on every sweep.

Fix

Extraction now stops at the first whitespace-delimited token after the
emoji (scripts/pm/check-half-states.mjs:350-361 in the new diff). The
(session_...) parenthetical and any middot (·)-separated title suffix
(in-flight counts, queue depth, a body-edit timestamp) are display, not
identity, and are no longer compared against the assignee list. The
🟢 Routine exemption is untouched. No other predicate, and neither
renderer (plain / markdown), was touched.

Self-test (new cases)

  • Both shapes named in the card: 🟢 os-x (session_...) matching assignee
    os-x -> clean; same shape with no assignee -> finding.
  • Reverse verification against the exact six titles pinned by the anchor
    sweep ([Half-state patrol] check-half-states live sweep — generated view (please pin) #9857, run 32229942288), predicted direction first:
    • #7623 (os-warren, consistent) -> clean
    • #6017 (os-elon, consistent) -> clean
    • #6026 (os-zhuang, consistent) -> clean
    • #9831 (os-warren, consistent) -> clean
    • #6367 (no assignee, ·-suffixed title) -> finding (unchanged)
    • #6024 (no assignee, bare session_... with no login before it) ->
      finding (unchanged)

All six land in the predicted direction — the four measured false
positives clear, the two true positives still fire.

Gates run (head 46d0b95ee)

node scripts/pm/dispatch-gates.mjs (no paths, real diff) named:

  • pnpm check:pm-half-states -> check-half-states self-test: 202 cases pass.
  • pnpm check:partof-closing-keyword -> check-partof-closing-keyword self-test: 28 cases pass.
  • pnpm check:cross-package-test-inputs -> All 33 self-test cases passed. /
    OK: 12 package(s) read outside themselves, all declared, and turbo.json hashes every declared glob.

Also run given the diff touches scripts/**: pnpm check:nul-bytes ->
check-nul-bytes: OK (scanned 6305 text file(s) ... no raw ASCII control bytes).

Not a governed path — draft opened for PM review; PM flips it to ready.

No changeset: scripts/pm/** is internal PM tooling, not a published
package (consistent with every prior PR touching this file, none of which
added one).

Generated by Claude Code


Generated by Claude Code

h5SeatStickerDesync took the WHOLE remainder after the emoji as the
seat holder, so a consistent seat post like `🟢 os-warren
(session_…)` mismatched its own assignee `[os-warren]` on every
sweep — the `(session_…)` parenthetical and any `·`-separated title
suffix are display, not identity. Extraction now stops at the first
whitespace-delimited token.
Self-test: both named shapes (parenthetical-with-matching-assignee
clean, parenthetical-with-no-assignee finding) plus reverse
verification against the six titles pinned by the anchor sweep
(#9857, run 32229942288) — #7623/#6017/#6026/#9831 now clean,
#6367/#6024 still flag.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/sskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants

@os-warren@claude