Skip to content

shard(tick): 2059Z — PR #3239 Copilot thread fix (end-anchored plist regex)#3246

Merged
AceHack merged 2 commits into
mainfrom
shard/tick-2059Z-pr3239-thread-fix-otto-cli-2026-05-14
May 14, 2026
Merged

shard(tick): 2059Z — PR #3239 Copilot thread fix (end-anchored plist regex)#3246
AceHack merged 2 commits into
mainfrom
shard/tick-2059Z-pr3239-thread-fix-otto-cli-2026-05-14

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 14, 2026

Summary

Tick 2026-05-14T20:59Z shard. Substantive work was a thread fix on #3239 — Copilot caught a real regex bug (un-anchored .plist would over-exclude foo.plist.bak / foo.plist.md). Fixed + property-tested + thread resolved.

What landed

Pattern this tick

blocked-green-ci-investigate-threads.md paid off. The gate-poller reported UNKNOWN once then BLOCKED with 0 failed checks + autoMerge armed. The block was 1 thread with an addressable finding, not a CI failure. Investigated immediately, fixed in ~3 minutes.

Why the Copilot review was substantive

The flag was not a nit. EXCLUDE_RE.test(path) with .*\.plist matches foo.plist.bak, foo.plist.md, foo.plist.anything — over-exclusion. End-anchoring with \.plist$ + [^/]+ for the filename slot eliminates the over-match without changing behavior for real plist files.

Prior-tick PRs status

  • #3240 (shard 2046Z) — wait-ci, autoMerge armed
  • #3244 (B-0488 close-out) — wait-ci, autoMerge armed
  • #3245 (shard 2055Z) — wait-ci, autoMerge armed

Test plan

🤖 Generated with Claude Code

Co-Authored-By: Claude noreply@anthropic.com

…regex)

Tick output:
- PR #3239 (audit hygiene) Copilot review caught real regex bug:
  `\.gemini\/(launchd|service)\/.*\.plist` wasn't end-anchored, would
  over-exclude foo.plist.bak / foo.plist.md. Fixed in new commit
  673fbd0 with end-anchored `[^/]+\.plist$`. Property-tested 8/8.
  Thread resolved via GraphQL mutation.
- This shard.

Rule blocked-green-ci-investigate-threads.md paid off: gate reported
UNKNOWN/BLOCKED with green CI + autoMerge armed; investigated threads
first, found the actionable Copilot finding.

Prior-tick PRs: #3240 / #3244 / #3245 all still wait-ci with autoMerge
armed.

Cron sentinel 12fb713e armed; recurring.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 14, 2026 21:03
@AceHack AceHack enabled auto-merge (squash) May 14, 2026 21:03
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds the 2059Z hygiene tick log entry documenting a follow-up fix on PR #3239 (tightening the .plist exclusion regex to be end-anchored) and the resulting verification steps, so the hygiene-history timeline reflects the resolved “BLOCKED with green CI” thread scenario.

Changes:

  • Added a new tick-history shard file for 2026-05-14 20:59Z describing the PR #3239 thread investigation and regex correction.
  • Captured a small property-test evidence table (8 cases) showing the tightened regex behavior.
  • Recorded the thread-resolution workflow and post-fix verification checklist.

Comment thread docs/hygiene-history/ticks/2026/05/14/2059Z.md Outdated
Copilot caught: the shard described `gh api graphql resolveReviewThread`
as if it were a subcommand. That's not valid `gh api graphql` invocation
— `resolveReviewThread` is a GraphQL MUTATION FIELD, not a CLI
subcommand.

Corrected to show the canonical pattern:
  gh api graphql -f query='mutation { resolveReviewThread(input:{threadId:"<id>"}) { thread { isResolved } } }'

The mutation is passed via `-f query=` (and parameters via `-f` for
variables). Future readers can copy-paste a runnable example.

The Verify section (line 57) already correctly said "GraphQL mutation"
— only the earlier narrative text was misleading.

Co-Authored-By: Claude <noreply@anthropic.com>
@AceHack AceHack merged commit 20a5288 into main May 14, 2026
21 checks passed
@AceHack AceHack deleted the shard/tick-2059Z-pr3239-thread-fix-otto-cli-2026-05-14 branch May 14, 2026 21:14
AceHack added a commit that referenced this pull request May 14, 2026
…gh api graphql fix) (#3249)

* shard(tick): 2108Z — review-thread triage round 2 (B-0329 ID-collision renumber + gh api graphql usage fix)

Tick output:
- Commit 4407e4a on PR #3247: renumbers duplicate B-0329 (new-surface-audit
  file) to B-0520 + adds renumbered_from breadcrumb + regenerates index.
  Real data-integrity fix per Copilot's substantive catch.
- Commit a5b812b on PR #3246: corrects 2059Z shard's gh api graphql usage
  description to show canonical -f query= pattern. Accuracy nit fix.
- Both Copilot threads resolved with verification.
- This shard.

Patterns codified:
- Backlog-ID-collision class of bug (multiple files claiming same
  id: B-NNNN) is a real data-integrity failure mode.
- The renumbered_from frontmatter breadcrumb preserves archaeology
  without needing a separate ADR.

Audit-discipline candidate filed mentally: tools/hygiene/audit-backlog-id-uniqueness.ts
that would catch this at author-time. Not authoring this tick (defer).

Cron sentinel 12fb713e armed; recurring.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(pr3249): add blank line before list per markdownlint MD032

CI failure: lint (markdownlint) flagged MD032/blanks-around-lists at
2108Z.md:32 — list right after "Fix:" without separating blank line.

Repo's markdownlint-cli2 config keeps MD032 enabled (catches real
readability issues; only MD040/MD004/MD013 are disabled per
.markdownlint-cli2.jsonc).

One-line fix; markdownlint-cli2 now clean on the file.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 14, 2026
#3252)

Tick output:
- Commit 910067d on PR #3249 branch: adds blank line after `Fix:` so
  MD032 is satisfied. Real CI failure (the lint gate flagged the
  shard 2108Z.md authored last tick). Copilot's auto-review caught
  the same issue in parallel; both pointed at the same line.
  Thread resolved with reply pointing to the fix.
- This shard.

Proactive sweep: markdownlint-cli2 against all today's tick shards on
origin/main passes. Only 2108Z had the MD032 violation (now fixed).

Tip codified for future-Otto: when a section heading or paragraph is
followed immediately by a list (e.g., `Fix:` -> `- item`), MD032
requires a blank line between them. Pattern: write `Section:` + blank
line + list.

Prior-tick PRs merged this batch:
- #3246 (shard 2059Z) MERGED as 20a5288
- #3251 (shard 2113Z) MERGED as d37631d

Session tally: 18 merged + 3 wait-ci.

Cron sentinel 12fb713e armed; recurring.

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants