Repository navigation
v2.23.4
What's new
Bug Fixes
The release-notes-narrative automation chain gains its fourth consecutive hotfix, this time replacing the log-scanning strategy for identifying dispatched Fro Bot runs with a timestamp-based approach.
v2.23.3 (#433) had resolved the HTTP 422 input-validation problem and Fro Bot's dispatch was actually firing. But the polling loop in dispatch-release-notes.sh timed out after 90 seconds trying to match the dispatched run by scanning its early log lines for the correlation token. The token never appeared within that window because the Fro Bot OpenCode agent has a substantial bootstrap sequence — runner spin-up, full checkout, bun install, model/auth setup, and MCP server startup all happen before any prompt-derived content reaches the run's logs.
The fix captures a DISPATCH_EPOCH timestamp immediately before gh workflow run, then polls gh run list --event=workflow_dispatch for the newest run whose createdAt is strictly greater than that epoch. Because gh run list reflects run-creation time rather than first-log time, the dispatched run is visible to the API as soon as it's registered — long before the agent boots — so identification is reliable regardless of how long startup takes.
The correlation-id field is preserved as a secondary audit anchor. It's still passed to gh workflow run and still declared in fro-bot.yaml, so it appears in the run's inputs metadata for any future debugging session, but it is no longer the primary identification mechanism.
Test coverage was updated alongside the fix: makeRunListJson now accepts an optional createdAt argument and defaults to a far-future ISO timestamp so the default run is always selected by the timestamp filter; the scenario for correlation-via-log-scan was replaced with a "no run created after dispatch epoch" scenario (exit 1); and a new scenario was added for the newest-wins case when two runs have different future createdAt values. The suite grew from 19 to 20 passing tests.
A follow-up commit refreshed the block comment in dispatch-release-notes.sh (which still described the old log-scan strategy), updated the prompt body to drop the now-obsolete instruction to echo the correlation token, and renamed a stale test fixture suffix (scenario-18) to a scenario-agnostic name.