Skip to content

Configure opt-in scheduled sinks and drain owned receiver workers - #30

Closed
scbrown wants to merge 1 commit into
harding/6vf-fixed-executorfrom
harding/6vf-scheduled-factory
Closed

scbrown wants to merge 1 commit into
harding/6vf-fixed-executorfrom
harding/6vf-scheduled-factory

Conversation

@scbrown

@scbrown scbrown commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator

Chaski can now construct the scheduled receiver from an exclusive opt-in scheduled sink mapping. The ordinary consumer owns the resulting workers: it drains every constructed sink before closing its database and releasing its lease, including partial startup failures.

The factory validates fixed execution policy, binds the literal versioned recipe to the signed scope manifest digest, checks pinned Shuttle configuration and ledger custody before opening state, then builds the bounded async receiver and fixed subprocess executor. Publication retries use the retained result and do not execute the child twice. Conflicting emitter protocols and changed recipes refuse before execution. Recipe hashing does not prove executable artifact bytes; approved immutable artifact custody, exact declaration/profile/query, catalogue transport and runtime activation remain separate gates.

This draft is stacked on #29 at f4a755d, with #28/#26 retained as ancestors. No parent source/review is duplicated. Parent landing, retargeting/current CI, risk classification and one independent post-green review remain required. No deployment, production configuration, key creation, graph/profile load or cron change is included.

Validation: full 407 tests plus 25 subtests pass; watched HOME/resources unchanged, without a general hermeticity claim. Real temporary subprocess/outbox tests cover delayed acknowledgement, publication-only retry, copied command policy, changed recipe/config refusal, malformed policy, startup cleanup and lease ownership during drain. Ruff, isolated wheel import, committed HEAD/source/wheel bytes and recording replay pass. Initial fixture failures (invalid duration; runner-class patch before subclass import) were corrected and retained in the work-item evidence.

Demo: base f4a755d has no configured factory, while its existing sink constructor remains a positive control. Head 305c541 routes one actual temporary child through an outbox and four phase receipts: submit acknowledges zero, terminal publication acknowledges one, and the explicit hold remains distinct. Run python scripts/demo-scheduled-sink-factory.py with development dependencies. Recording, timing, contract. Download the small sanitized artifacts for scriptreplay; playback verified. Signing/admission are explicit process fixtures, not live crypto or runtime acceptance. Artifacts retained in established docs/demos directory.

Tracks aegis-6vf.

Bead: aegis-6vf

Overlap preflight: 563c0749f3d3f65bbe53560df690fe7bb5c6876d103e95f628c888e9fb1f52c5

@scbrown

scbrown commented Oct 15, 2026

Copy link
Copy Markdown
Collaborator Author

Folded into #31 (aegis-6vf, operator ruling: no stacked drafts). #31's head bfd3d44 contains this branch's commits plus main; review and merge happen there.

@scbrown scbrown closed this Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant