Repository navigation
Conversation
…, never the shop's by fallback (#735)
An atomic insert-if-absent on the port: DBAL (primary key arbiter), Illuminate (insertOrIgnore), in-memory and the projecting decorator, with two conformance cases.
…sent (#946) A pass that read the next run as missing no longer resets it with save() when another pass wrote it and the run completed in between. The three insert-only dispatchers use the same atomic call instead of get() then save().
…ble:setup (#746) Declares the six Durable tables (events, heads, metadata, parent links, runs, queue) with Ddl\Table on the resource/durable connection. durable:setup creates a missing table, adds a missing column, and refuses to run inside a transaction. A store that finds a table missing throws naming the table and durable:setup. No locks table: #732 is measuring the resume lock.
…sume-lock tests (#732)
…he journal's own database (#747)
…ease longer than the claim TTL (#731)
…on a real MySQL (#731)
…or the run projection (#733)
…pter (#733) Red until MagentoWorkflowRunProjection exists.
…g_on cleared when a run ends (#733)
…into feat/magento-metadata-store
…, 600 s and 300 s by default (#731)
…te the redelivered copy (#731)
Ddl\Table has no precision for DATETIME, so setup() widens each time column with MODIFY COLUMN when information_schema reports less than 3. The widening keeps the rows and also upgrades a journal created at whole seconds. A lease of a few seconds needs the milliseconds.
…ento-run-projection
… the queue worker (#731)
… columns keep them (#733)
…o feat/magento-run-projection
…journal database is not believed stale (#747)
The conformance subclass expects fenced passes, and a test races two processes claiming one execution: only the newest claim may append.
claimPass() upserts the execution's heads row in one transaction; appendFenced() reads the epoch under LOCK IN SHARE MODE and inserts in the same transaction, throwing SupersededPassException once a newer claim exists. Same single-transaction rule as append().
This was referenced Oct 7, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Throwaway integration base for #754. Do not merge into main: every change in it is already in one of the PRs below, and the merge commits only combine them.
Refs #740, #754.
What it contains
Plain merge commits, in dependency order, of the heads of the open draft PRs at the time of the merge:
Conflicts
Only
phpstan.neonandpsalm.xml, from #964 and #966: each PR adds its own fixture directory to theexcludePaths/ignoreFileslist on the same line. Resolved by keeping both lines. No other file conflicted; theFixture/bootstrap.phpfiles of #960, #964 and #966 live in three different directories and do not collide.State of the gates on this head
composer cs:check: 0 of 1039 files to fix.composer test: OK, 3516 tests, 189 skipped (no Temporal server, no MySQL DSN for the root suites).composer phpstan,composer psalm,composer phpstan-magento: pass.php ../vendor/bin/phpunit -c phpunit.xml.dist, MySQL 8.0): OK, 75 tests, 432 assertions.composer psalm-magento: 1 error, in feat(magento): a table queue on the adapter, lease, available_at, SKIP LOCKED (#731) #966 alone:TableQueue.php:64,InvalidOperandon$delaySeconds * 1_000_000(int times float under strict operands). Not caused by the combination.