Repository navigation
Conversation
This was referenced Oct 15, 2026
Collaborator
Author
scbrown
added a commit
that referenced
this pull request
Oct 15, 2026
…nk factory, catalogue adapter (folds #28-#31) (#31) * feat(receiver): bridge signed phases through the fixed Shuttle CLI * feat(receiver): bound asynchronous signed delivery until receipt * feat(receiver): verify native scheduled emitter envelopes * feat(schedule): project pinned declarations into current UTC slots * Add bounded fixed-command outcome adapter for scheduled receiver * Wire opt-in scheduled sinks with pinned recipes and owned worker cleanup * Adapt pinned ST catalogues to incremental schedule deadlines
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.
A long scheduled execution blocks a synchronous receiver. Add a bounded asynchronous receiver plus a native emitter-envelope adapter. Delivery remains pending until the existing signed receiver has persisted and published the actual terminal outcome; duplicate in-flight delivery starts one execution.
The envelope adapter pins the emitter, routing recipient and receiver scope. It reads the UTC slot from the canonical reversible run identifier and verifies the exact re-encoded binding. Delivery timestamps and generation cannot select a different slot. Foreign scopes, commands in extra fields, malformed metadata, duplicate JSON keys, boolean timestamps and oversized/deeply nested bindings refuse before execution admission. Context variables cross the worker boundary.
This draft is stacked on the existing process-port branch from #26. Its proposal is only the two subsequent receiver commits; it does not request a second review of #26. Retarget to current main after the parent lands, then use complete fresh CI and the normal source review/admission path. No release or runtime activation.
Validation: full 277 tests plus 25 subtests passed; a final focused run passed all 32 envelope controls including the additional deeply nested input case. Both HOME guards reported 157 watched paths and five resources untouched. Ruff, offline wheel build, isolated wheel imports and terminal replay passed. The existing async receiver controls also cover publication retries and recreated receivers without repeating a claimed child.
Demo: native emitter recording, timing, and reproducer. Actual observe/outbox, worker thread and SQLite slot ledger; signing callbacks are fixtures. Before source1d929153 the envelope adapter is absent with the async receiver positive; candidate0b4a0eb5 emits one durable row, handles two attempts while the callback is blocked without a receipt, then publishes a held outcome before receipt. Source-level evidence, not installed or natural-run acceptance. Replay requires downloading the two terminal files and using scriptreplay; inline playback is not claimed.
Capacity includes completed work awaiting receipt. The owner drains workers outside the event loop; callbacks must enforce admitted runtime/output limits. Pending deliveries use the existing retry backoff and count as delivery failures in existing metrics. Threads remain in the service cgroup. A generic sink factory, validated catalogue projection, fixed-command executor and production configuration are still required. Existing claims and outboxes must survive rollback; UNKNOWN never authorizes child replay.
Bead: aegis-6vf
Overlap preflight: 61aa6522601fe9257b1b292a4192bdfde4b79277100848b7fd4613b9657f4ca6