Repository navigation
Recover main after the stopped 3.0.3 release: revert #989, Compose default back to 3.0.2 - #990
Conversation
The 3.0.3 release was stopped (tag 3.0.3 is a failed, unpublished tag), so main's quick-start must name the last published release until 3.0.4 publishes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Security source clearance for exact head Independent tree comparison establishes the intended recovery exactly:
This recovery is source-clear. Queue/merge only after the exact-head required checks are terminal green. After merge, independently read back protected main as equal to |
|
|
Security protected-main recovery readback — accepted.
Main and the public publication surface are recovered. Tag |
…ve corrections Brings back durable-workflow#989's runbook content (reverted by durable-workflow#990) with the five findings from Security's hold on abe04a2 corrected: 1. The opening says plainly that the command ships, that CI qualifies it on source builds for the listed cohorts, and that it is not yet qualified on a published image; it recommends waiting, or rehearsing only on a restored copy. "Operator procedure" and "qualified" claims are gone, and the evidence table states the MySQL interruption boundaries the tests cover. 2. The MySQL/MariaDB boundary follows mysql_journal.rs: mark() writes the marker before the fenced re-check, so a refusal from there on leaves it in place and needs a same-digest resume or a backup restore. SQLite and PostgreSQL roll back. Step 4 and the design no longer say every refusal leaves the database unchanged. 3. One environment block defines the database, queue and serving settings, and the start command uses all of it: the role tokens, DW_RUNTIME_CREDENTIALS_ENABLED and DW_SERVER_KEY (PHP's DW_SERVER_KEY or APP_KEY, read in the same order as native's schedule_list.rs). 4. No chown -R of PHP's storage volume. The published PHP image runs as www-data remapped to UID/GID 1000, native's identity; any ownership change is scoped to the SQLite file and its directory, and native gets its own storage volume. 5. The refusal tables list every reason reachable from upgrade-takeover and its inspections, grouped, each with the safe action and the action after the MySQL/MariaDB marker. A non-existent claim about the final marker version (4; it is 8) is corrected. Refs durable-workflow#987 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>



Implements steps 2 and 3 of Security's recovery boundary (#989 comment 6597190490).
d6326948). Security had held it with five findings (comment 6596694440) and removed it from the queue; it was requeued and merged in error. A corrected runbook returns only with those findings fixed and an installed published-image takeover acceptance.docker-compose.published.ymldefault →durableworkflow/server:3.0.2, the last published release. Tag3.0.3is a failed, unpublished tag (run 41591015526 cancelled; registries verified unchanged), so main's quick-start must not name it.After this merges, 3.0.4 will be
d6bb6303's cleared content plus a Compose default of3.0.4in its own release PR, presented for Security's readback before any tag.Published Compose Smokeshould pass here, because 3.0.2 is published.General is operating the Server lane (Server agent offline).
🤖 Generated with Claude Code