Skip to content

review_log.t27: tests pin str_starts_with as a prefix check (Closes #7396) - #7405

Merged
gHashTag merged 1 commit into
masterfrom
claude/review-log-prefix-test
Oct 7, 2026
Merged

gHashTag merged 1 commit into
masterfrom
claude/review-log-prefix-test

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Closes #7396

Why

#7359 (b3617f2) turned the local str_starts_with in specs/queen/review_log.t27 from a substring check into a real prefix check. That fix had nothing testing it: all 14 test blocks passed with either body, because every fixture line that hits a prefix rule starts with its needle.

What

Three new test blocks whose answer depends on prefix versus substring:

  • classify_listing_prefix_not_substring: x reviewer: gh pr list -R -> HTTP 504 ... and x reviewer: gh pr list -R -> 500 ... are OTHER; the same lines without the x prefix stay LISTING_ERROR_504 and LISTING_ERROR_OTHER.
  • classify_retry_prefix_not_substring: x gh pr list -R: transient failure ... is OTHER; the prefixed line stays RETRY.
  • str_starts_with_is_a_prefix_check: needle in the middle (false), at the start (true), longer than the haystack (false), empty needle (true).

The seal is re-saved and there is a NOW entry.

Evidence

  • t27c test-report --verbose specs/queen/review_log.t27: 17 tests, 17 pass, FAIL 0, 0 vacuous passes (the new blocks run 4, 2 and 4 runtime asserts).
  • Negative control: in a temp copy, str_starts_with's body was replaced with return str_contains(haystack, needle);. Result: 14 pass, FAIL 3. The three failures are exactly the new blocks, and the original 14 still pass, which is the gap review_log.t27: tests cannot tell str_starts_with from contains #7396 describes. The temp copy was deleted afterwards.
  • Compilers: tri and t27c were built from origin/master e54d02d.
  • Gates: .githooks/pre-commit (tri hooks pre-commit) PASSED; lefthook own-language passed on both pre-commit and pre-push; L1 commit-msg PASSED.

Census re-bless (not caused by this change)

The pre-commit gate refused the commit because the quiet census had moved since it was blessed at 31ad9df: "named a path but not quiet" went 167 -> 181, "a tracked path, present" went 10 -> 12, and "no path ANYWHERE in the step" went 9 -> 7. tri census explain traces all three to .github/workflows/auto-merge-ready-prs.yml, which is already on master. tools/census/quiet.txt is re-blessed in this PR (tri census pin --bless) and the commit message names the moved numbers.

🤖 Generated with Claude Code

…7396)

#7359 (b3617f2) turned the local str_starts_with from a substring check
into a real prefix check, but all 14 tests passed with either body: every
fixture line that hits a prefix rule starts with its needle.

Three new test blocks answer differently under the two bodies:
- a line carrying "reviewer: gh pr list" after offset 0 is OTHER, while the
  prefixed lines stay LISTING_ERROR_504 / LISTING_ERROR_OTHER;
- the same pair for "gh pr list -R: transient failure" (OTHER vs RETRY);
- direct str_starts_with asserts (needle mid-string, at start, longer than
  the haystack, empty needle).

t27c test-report: 17 tests, 17 pass, FAIL 0, 0 vacuous.
Negative control: str_starts_with body replaced by str_contains in a temp
copy -> 14 pass, FAIL 3 (exactly the three new blocks). Seal re-saved.

Census: tools/census/quiet.txt re-blessed. "named a path but not quiet"
moved 167 -> 181, "a tracked path, present" 10 -> 12, "no path ANYWHERE in
the step" 9 -> 7. `tri census explain` attributes all three to
.github/workflows/auto-merge-ready-prs.yml, already on master; this commit
does not move them, the pre-commit gate requires the re-bless to commit.

Closes #7396

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-07 09:46:08 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 41
PRs with All Checks Green 9
READY 1
FAILING 41
PENDING 0
NO CHECKS YET 0

These columns do not partition: 1 + 41 + 0 + 0 = 42, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=1aa228450491 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

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.

review_log.t27: tests cannot tell str_starts_with from contains

1 participant