Found while working #9875 (Engine release due: 3.17.1) and #9937 (ui-kit 1.3.1). Both issues say a release is due; release-please has created no Release PR, and its own run reports success. Three distinct problems, from run 30574451652.
1. Commits with two trailing issue refs fail conventional-commit parsing
❯ commit could not be parsed: 8b446978 fix(miner): discover --dry-run must not create/migrate/prune the event ledger (#9679) (#9905)
❯ error message: Error: unexpected token '(' at 12:37, valid tokens [)]
❯ commit could not be parsed: 133ff833 fix(miner): give `queue dashboard` the same store-failure handling as its siblings (#9690) (#9901)
❯ error message: Error: unexpected token '(' at 13:48, valid tokens [)]
The (#issue) (#pr) double-suffix — which this repo produces routinely when a PR title already carries the issue number and the merge appends the PR number — is not parseable as a conventional-commit header. Those commits are dropped entirely: they contribute nothing to the version bump and appear in no changelog.
Two shipped fix(miner): commits are currently invisible to the release for this reason. This is silent: the run still reports success.
2. pullRequestTitlePattern miss the part of '${scope}'
⚠ pullRequestTitlePattern miss the part of '${scope}'
❯ pull request title pattern: chore(release): cut${component} v${version}
❯ componentNoSpace: undefined
Emitted on every component, every run. componentNoSpace: undefined suggests the pattern and the component naming are not lining up as intended.
3. The release-due watcher and release-please disagree
scripts/check-package-release-due.ts reports 3 unreleased engine commits and proposes 3.17.1, and files #9875 saying so. release-please, over the same range, concludes:
⚠ Setting version for packages/loopover-engine from release-as configuration
✔ No user facing commits found since 0fa52ed838abd8c6694b87b5b92bf79120a581d7 - skipping
Confirmed locally that 3 commits touch packages/loopover-engine/ since engine-v3.17.0, one of them a fix::
b21216b1e chore(engine): one maintainer-association predicate…
31b29da78 fix(gate): never close a PR for visual evidence…
2dbb800ea metrics(ledger): re-evaluation counts and per-author-class review-parity rollups…
So the two mechanisms apply different rules and reach opposite conclusions. Whichever is right, a "release due" issue that no automation will ever act on is a standing false alarm — and if release-please is wrong, releases are silently not happening.
Also visible on the same run:
⚠ Missing 2 paths: packages/loopover-mcp,packages/loopover-miner
::warning::Skipping mcp/miner reconciliation -- publish-engine.yml and/or publish-contract.yml did not succeed, and they depend on both.
Acceptance
- A commit titled
type(scope): subject (#A) (#B) either parses, or the run fails loudly rather than dropping it.
- The release-due watcher and release-please agree on whether a release is due, or the watcher explains the difference in the issue it files.
- The
pullRequestTitlePattern and missing-paths warnings are resolved or explained.
Note
I deliberately did not hand-cut the engine or ui-kit release. Publishing to npm is irreversible and outward-facing, the pipeline is the intended mechanism, and cutting by hand would paper over whichever of the two mechanisms above is actually wrong.
Found while working #9875 (Engine release due: 3.17.1) and #9937 (ui-kit 1.3.1). Both issues say a release is due; release-please has created no Release PR, and its own run reports success. Three distinct problems, from run 30574451652.
1. Commits with two trailing issue refs fail conventional-commit parsing
The
(#issue) (#pr)double-suffix — which this repo produces routinely when a PR title already carries the issue number and the merge appends the PR number — is not parseable as a conventional-commit header. Those commits are dropped entirely: they contribute nothing to the version bump and appear in no changelog.Two shipped
fix(miner):commits are currently invisible to the release for this reason. This is silent: the run still reports success.2.
pullRequestTitlePattern miss the part of '${scope}'Emitted on every component, every run.
componentNoSpace: undefinedsuggests the pattern and the component naming are not lining up as intended.3. The release-due watcher and release-please disagree
scripts/check-package-release-due.tsreports 3 unreleased engine commits and proposes3.17.1, and files #9875 saying so. release-please, over the same range, concludes:Confirmed locally that 3 commits touch
packages/loopover-engine/sinceengine-v3.17.0, one of them afix::So the two mechanisms apply different rules and reach opposite conclusions. Whichever is right, a "release due" issue that no automation will ever act on is a standing false alarm — and if release-please is wrong, releases are silently not happening.
Also visible on the same run:
Acceptance
type(scope): subject (#A) (#B)either parses, or the run fails loudly rather than dropping it.pullRequestTitlePatternand missing-paths warnings are resolved or explained.Note
I deliberately did not hand-cut the engine or ui-kit release. Publishing to npm is irreversible and outward-facing, the pipeline is the intended mechanism, and cutting by hand would paper over whichever of the two mechanisms above is actually wrong.