Files
DeepSeek-TUI/scripts/release
Hunter Bown 62b861e01a ci: unblock the queue — add the missing #5766 receipt, and stop repo-wide audits failing innocent PRs (#5786)
* docs(changelog): add the missing release-note receipt for #5766

`scripts/release/check-feature-release-notes.sh` requires every issue-linked
`feat:` commit in the release range to leave a durable changelog receipt.
79ed88f377 ("feat(config): bind catalog and route resolution (#5766)")
landed without one, so `scripts/release/check-versions.sh` now exits 1 on
plain main:

  $ git worktree add --detach wt origin/main   # 6ea10032f9
  $ ./scripts/release/check-versions.sh
  ::error::Feature commit 79ed88f377 references #5766, but no release-note
  receipt exists in CHANGELOG.md docs/CHANGELOG_ARCHIVE.md.
  exit=1

"Version drift" is a required status check, so this failed every pull request
opened or re-run against current main, not just the one that surfaced it.

The entry says plainly that #5766 is additive plumbing with no call-site or
user-visible change, rather than inventing a user-facing feature to satisfy
the gate. `crates/tui/CHANGELOG.md` is regenerated with
`./scripts/sync-changelog.sh` so the slice check passes too.

After this commit `./scripts/release/check-versions.sh` exits 0:
  Feature release-note receipts OK: 47 linked issue reference(s) checked.
  Version state OK: workspace=0.9.11, npm=0.9.11, npm-binary=0.9.11.

Signed-off-by: CodeWhale Bot <bot@codewhale.net>

* ci: stop repo-wide and history-wide audits from failing innocent PRs

A required per-PR check should assert a property of the change. Five of ours
assert a property of the whole repository or of already-merged history, so a
branch fails for debt it did not add and the fix is rebasing rather than
editing code. That is how the queue got stuck, and it trains people to read a
red check as noise.

Demoted to advisory on `pull_request` only, still blocking on pushes to main:

  - Check dead-code budget          (absolute #[allow(dead_code)] total)
  - Check runtime-contract budget
  - Check persistence-backlog budget
  - Check harvested contributor credit

check-versions.sh keeps every tree-state check blocking everywhere. Only its
two range audits -- check 12 (feature release-note receipts) and check 7
(contributor credit), both scanning previous-tag..HEAD -- become advisory, and
only for the per-PR CI job, via a new --range-audit-advisory flag. Every
release path still runs them blocking: release-candidate.yml, auto-tag.yml,
release.yml, and prepare-release.sh. Combining the new flag with
--require-dated-release is refused outright so publication can never skip them.

Measured on the merge of origin/main + pr/5740, a tree with the real missing
#5766 receipt:

  $ ./scripts/release/check-versions.sh                          # exit 1
  ::error::Feature commit 79ed88f377 references #5766, but no
  release-note receipt exists in CHANGELOG.md docs/CHANGELOG_ARCHIVE.md.

  $ ./scripts/release/check-versions.sh --range-audit-advisory   # exit 0
  ::warning::Missing feature release-note receipt(s) above. Advisory here
  because this audits already-merged commits in v0.9.10..HEAD, not this change.
  Version state OK: workspace=0.9.11, npm=0.9.11, npm-binary=0.9.11.

actionlint is clean on the edited workflow.

Signed-off-by: CodeWhale Bot <bot@codewhale.net>
Entire-Checkpoint: 01M1D74JXS2F91WDY9DSKQ787E

* fix(tui): silence clippy::explicit_counter_loop in the startup mark

rust 1.98's clippy added `explicit_counter_loop` coverage for this shape, and
CI's `dtolnay/rust-toolchain@master` picked it up. `Lint` is a required check,
so main is currently red on it and every pull request inherits the failure:

  error: the variable `x` is used as a loop counter
     --> crates/tui/src/tui/mark.rs:182:9
      |
  182 |         for glyph in line.chars() {
      |         help: consider using: `for (x, glyph) in (x0..).zip(line.chars())`
      = note: `-D clippy::explicit-counter-loop` implied by `-D warnings`
  error: could not compile `codewhale-tui` (lib) due to 1 previous error

Applied clippy's own suggestion. Behaviour is identical: `x` still starts at
`x0` and advances one cell per glyph, and the `x >= area.right()` break still
stops the row at the viewport edge -- `zip` only advances as far as
`line.chars()` yields, so the open-ended range cannot run away.

Signed-off-by: CodeWhale Bot <bot@codewhale.net>
Entire-Checkpoint: 01M1D7F82ZEN4JVYBN0W1YDPRX

---------

Signed-off-by: CodeWhale Bot <bot@codewhale.net>
Co-authored-by: CodeWhale Bot <bot@codewhale.net>
2026-08-31 19:29:15 -07:00
..