Repository navigation
Preserve cold marker replay and activity deadline authority - #435
Conversation
|
The separate corrected-marker draft now implements normal installed actors and A fresh recording compiled from that clean pushed tree passes five cases on the The new machine-owned tuple Two earlier genuine-case originals remain unqualified: the first reader failed Server's intentional release path-repository Composer reference is retained Embedded producers/readers, activity and selected-timer repair, differing-policy |
|
The separate embedded recipe now has an actual SQLite prototype result. A The original and replacement roles have separate normal Composer locks. Their This is an uncommitted actor prototype, separate from the clean |
|
The clean pushed Independent package/raw-record audit and 110 actual-record mutation controls All six existing |
|
The agreed explicit authored-policy contract now has a separate source correction in durable-workflow/workflow#776, head Normal PR qualification 38403840028 and full candidate 38403830269 are still running. The latter's corpus, quality, MariaDB and all five Laravel/PHP source upgrade profiles pass; MySQL/PostgreSQL/coverage remain pending. Additive canonical refusal-schema support is delivered separately in durable-workflow/.github#184. This is source progress, not a published correction or shared/native adoption. The failed |
|
The coordinated embedded replay source correction is merged and fresh-main qualified in #776. Exact source: Explicit per-call policy mismatch now blocks embedded execution, query replay and PHP fiber replay before consuming an old result or committing new commands. The complete retry list remains part of identity, including unused final entries. Execution and repair retain the original snapshot and deadline; class-derived budgets and missing legacy fields are not rebuilt. Direct/all/selection runtime checks and six separate PHP process reads preserve the original history and canonical IDs, and exact restoration plus selected-run repair completes the original task at attempt two / repair one. General owns the subsequent stable integration/publication and PHP/Python SDK follow-through, separately from #772's reserved 2.5.15 correction. This delivery is source qualification. No new published retry-policy correction, shared/native tuple adoption or completed #325 goal is claimed. The published |
|
The first new Rust range recording at 4b870c0 is runner-blocked, not product-qualified. Original run The separate dfc1995 revision preserves that genuine absence with an unconfigured Rust ActivityOptions policy. Present snapshots still use the full explicit known fields and list. It also checks the actual two-event StartAccepted/WorkflowStarted prefix of neighboring admissions. No frozen definition, stored history, old snapshot or scenario budget changes. Actual fresh runtime qualification remains pending. |
|
The additional published Rust range directions now pass against the actual pinned PHP Server 2.6.2 reference at 4e68ffd. Normal PHP 2.2.7 authors the unchanged original recipes; PHP 2.3.9 performs the explicit repair; independent normal Rust 3.5.4 processes execute the activity, incompatible range and restored successor. Each case keeps the original 35-second total budget.
Both retain exact int64/null/Unicode values, marker bounds/microclocks, original run/execution deadlines, whole cold public deliveries and surviving neighboring histories/tasks. The genuine old producer omits its retry snapshot; event absence and read-only stored null remain exact, with no current class defaults invented. The already separate full eight-entry policy reader/refusal case remains strict and unchanged. Independent read-only SQL and package/wire checks pass. 56 actual-record mutation controls (25 completed, 31 pending) reject missing cold deliveries, false completion, rounded values, changed bounds/clocks/deadlines, wrong original repair/task/lease relationships, altered neighbors and pending/timer identity violations. Earlier 4b missing-policy, dfc neighbor age-diagnostic and 321 pending original-worker-ID reader failures remain failed originals; later reads do not relabel them. All local runtime/compiler/cache/dependency/image/network/state resources are retired. Embedded/current-clock/native integration, the corrected cohort's six-database qualification, promotion and fresh main remain pending. The previous 87b baseline matrix passed but does not exercise these new cases. This is no Rust release, cutover or complete #325 claim. |
|
The two range families also pass through actual cold embedded execution at Original Independent SQLite readback and 44 embedded actual-record negative controls pass. Alongside the earlier separate PHP-reference directions, this gives 100 negative reader controls; it is not a matched native/database cohort. The initial independent read attempt against a read-only WAL database directory failed to create SQLite sidecar state; a disposable file copy with query_only enabled succeeded without altering retained bytes. No database/service defect is inferred. All owned installs, runtimes, state, dependencies, image and scratch are retired before the resource boundary. Current clean pushed head |
|
The combined candidate is pushed at Actual published Server2.6.2 SQLite control at Both completed artifact inspections and the fresh local control are cleaned: no retained ZIPs, full recordings, DB dumps, SDK graph, application, task container/network or newly pulled image remains. Only concise GitHub outcomes and existing code/fixtures remain. No expanded all-six/promotion/main/release claim yet. Next: inspect this exact combined matrix, fix any actual disagreement and qualify the final tree before promotion. |
|
The reusable activity-expiry adapter at local commit HTTP uses installed SDK worker-protocol calls; embedded authors through a real Local head Completed local raw records, DBs, installed applications/SDKs, transport ZIPs, task containers/network and the newly pulled image are deleted after the audit. The former private prototype is removed now that its reusable adapter is in code. No native runtime bytes, default dependency, frozen tuple or scenario/resource limit changed. Further reader review at |
|
The original The corrections are pushed at
Fresh normally installed PHP SQLite passes eight portable cases, two clock cases and four expiry families. Revised readers pass 279 actual-record corruption controls. Independent query-only SQL confirms four unchanged idle neighbors, 19 expiry events and zero parent repairs, with unchanged database bytes. Core reader tests pass 206 cases; syntax and Docker isolation checks pass. All local test resources and downloaded archives are deleted. Fresh exact-head shared qualification and PHP checks are running; both boundary checks pass. The new source also wires the already locally qualified embedded activity-expiry adapter into the three-runtime matrix. Native bytes and frozen cohorts are unchanged from |
|
Source Run 38469976743 at The other originals remain failed:
The recorder now serializes one case at a time, avoiding another complete copy of the whole wire recording. New checks preserve 32 MiB of body bytes, int64/null/Unicode and explicit failed/empty dispositions with a 48 MiB child heap. All 1,622 local reader/runner controls, shell syntax and Docker isolation policy pass. New HTTP recorder exit/OOM state is captured before always-run cleanup. These are runner corrections, not PHP/native product fixes or rebudgeted originals. The separate active-parent retry/terminal-response control passes under the settled receipt boundary. It is not added to #435 or the default corpus. All inspected local ZIPs/extracted records and that reference runtime/dependencies/database/image are removed after immediate audit. Promotion, all-six final-head and fresh-main acceptance remain pending. |
|
New source The previous The earlier Independent retry/terminal-response PHP/embedded follow-through now passes two matched cases, 86 corruption checks and stopped read-only deadline verification. That branch remains outside #435/default corpus and still needs native/global-timeout/renewal/matrix qualification. Its runtime, dependency trees, DBs, image and raw scratch are removed. No release, takeover, performance or historical-cause claim. |
|
Original 871eec1 / run38477701278 is terminal: SQLite, PostgreSQL16/17, MariaDB10.11 and MySQL8.4 pass. MySQL8.0 fails in native pressure after its corrected portable/clock/expiry comparisons pass. Original artifact11857877879 matches GitHub digest7b6f380a. Its retained MySQL8.0.46 database state proves exit137/OOMKilled=true at23:14:18.806680 UTC under the declared1GiB cap. Native storage refusal and loss of the database alias follow. TLS remains unexecuted. This is the failed fixture allocation, not evidence establishing a native runtime defect or historical503 cause. The prospective MySQL8.0 DB allocation is now2GiB, matching expanded MySQL8.4. Native treef8ca2ece, all actor/native CPU and memory limits, original scenario deadlines and75-minute whole-job ceiling remain unchanged. A new revision/qualification is required. No same-SHA retry or relabeling of this failed original. Independent SQLite artifact11858815390 readback matches digestabbeb877. Its recorded CI merge623d900a has the exact candidate871 treea58061e1. All2415 ZIP members pass CRC, three corrected comparisons pass, and31 recorded observations match current source fixture hashes, selected package manifest and canonical typed inputs. All six retained HTTP recorder states are exit0/noOOM. Native35 library/85 execution tests pass, with18 explicitly ignored library cases; comparator1617/1617 passes. Local combined checks at the prior checkpoint included1622. The numeric JSON fixture-input copies are rounded by JavaScript. Their raw equality is not claimed; exact source hashes and canonical typed int64 values remain intact and are the qualified logical-value evidence. Recorder diagnostic precision needs separate follow-through. Both ZIP downloads, readback scratch and temporary artifact access files are being removed after this immediate inspection. No bulk retention. Expanded final-head/promotion/fresh-main, performance, migration, release and full#325 remain pending. #438's separate activity profile stays stacked and source/matrix-pending. |
|
Final head Review confirms authored timeout snapshots, inclusive outcome/progress fences, original global deadline across retries, bounded heartbeat renewal, strict full retry lists and explicit original-task replay repair. The normal runner executes the existing frozen corpus plus the separate three-runtime marker/range/expiry profile and service clock cases. Completed jobs also pass their applicable process-loss, pressure and TLS controls. This does not claim the additional #438 live retry/duplicate/renewal matrix, which remains in progress. The completed SQLite job log independently names CI merge The original The qualified head is ready for main integration. Fresh-main acceptance remains required after merge. Full #325, migration, performance, native publication and cutover remain open. Completed local bulk and runtimes are deleted; this review did not download another archive. |
|
#435 is merged at The exact final-head six-database run and all applicable normal checks pass, as recorded in the candidate review. Fresh-main qualification is starting and remains required before declaring this slice delivered. #438 retains its separate final-head retry/duplicate/live-renewal qualification and is being retargeted to main without editing its source or frozen actors. Earlier failures and the prospective resource changes retain their original dispositions. PHP remains the default published image. No Rust release, same-database takeover, performance result, cutover or full #325 completion is claimed. |
|
#435 is delivered at 7b53fc2, complete tree b9f7e9bd652586e23a4e80aa58433c79c1e51ea6 identical to final candidate 5a9ab7d and reviewed CI merge d56b975. Native subtree f8ca2ece remains exact. Fresh main 38489133816 passes all six original database jobs without reruns: SQLite, PostgreSQL 16/17, MariaDB 10.11 and MySQL 8.0/8.4. The last original finished 01:04:54 UTC October 14. Applicable main PHP/source/repository/action-policy/public-boundary checks pass. Conditional cancellation/prepared-local qualification is explicitly skipped. Independent completed SQLite job-log inspection confirms actual three-runtime corrected marker/policy/range cases, fixed Python clocks, all four expiry families and separate worker-fencing/database-pressure controls. Git confirms whole-tree identity. No local bulk copy was needed. This qualifies the selected corrected source cohort, original process recovery, declared pressure allocations and applicable TLS controls. Frozen published tuples and failed/cancelled records remain unchanged. The earlier MySQL8 OOM stays failed; this pass does not establish historical 503/namespace causes. Separate #438 retry/renewal/recorder follow-through is pending at c99b113. Full parity, CPU/deadline, performance, backup-first same-database takeover, major release and cutover remain open under #325. Completed #435 remote/local head/worktree removal remains verified. Immediate audit archives, transport collections and database copies are deleted under the operator's bulk-retention override. Code, fixtures and readable GitHub outcomes remain the durable result. No Rust publication or stronger capability claim. |
Cold successors must preserve recorded marker bounds, clocks and complete activity policies. Activity workers must lose completion, failure and heartbeat authority at the original authored deadline. This change corrects those native transitions and adds a separately pinned PHP/Rust/embedded cohort for marker replay, selected-original range repair and four wall-clock activity-expiry families. Python clock cases use the agreed fixed workflow-start anchor. Ordinary activity leases remain 300 seconds.
The expiry adapters retain the actual timeout parent delivery without authoring a workflow result. Readers preserve complete prefixes, microseconds, task/run relationships, original deadlines, full retry snapshots and typed int64/null/Unicode values. HTTP and embedded receipts retain their actual formats.
Validation: fresh independent PHP, embedded and native SQLite recordings pass the selected replay and elapsed-deadline cases. Native SQLite passes 85 execution and 35 unit cases with 18 database cases explicitly ignored locally; the focused authored-deadline cases also pass MySQL 8.4. Latest original expanded matrix passes SQLite, PostgreSQL 16/17, MariaDB 10.11 and MySQL 8.4. Its MySQL 8.0 database is OOM-killed during later native pressure under the declared 1 GiB allocation, after corrected portable, clock and expiry comparisons pass; TLS is unexecuted. Original disposition and artifact inspection remain unchanged.
The prospective MySQL 8.0 fixture allocation is 2 GiB, matching MySQL 8.4. Actor/native limits, scenario deadlines and the 75-minute whole-job ceiling remain unchanged. Fresh all-six qualification is running at
5a9ab7d36. Final-head and fresh-main acceptance are required before delivery. Earlier failed originals remain failed.Successful retries, terminal submission controls and live heartbeat renewal continue separately in #438. No published Rust, migration, performance or cutover qualification is claimed. Completed local archives and test resources are deleted.
Refs #325.