feat(plugins): add durable scheduler outbox foundation#9139
Draft
JordanTheJet wants to merge 17 commits into
Draft
feat(plugins): add durable scheduler outbox foundation#9139JordanTheJet wants to merge 17 commits into
JordanTheJet wants to merge 17 commits into
Conversation
This was referenced Jul 18, 2026
JordanTheJet
force-pushed
the
feat/plugin-durable-outbox
branch
from
July 18, 2026 08:45
11ba8be to
fddfc63
Compare
Keep the canonical tool field keyed by the exported callable name while retaining package, capability, and binding identity on the host-issued scope. Also keep no-Wasmtime builds warning-free.
Document HTTP authority as the intersection of an admitted grant and a capability adapter with a tested host surface. Tool and channel opt in; memory remains HTTP-free.
JordanTheJet
force-pushed
the
feat/plugin-durable-outbox
branch
from
July 18, 2026 09:56
fddfc63 to
b35149d
Compare
Collaborator
Author
|
Restacked the durable outbox foundation onto final #9138. New head: |
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.
Summary
master(all contributions)scheduledanddelivery), typed completion outcomes, and one private persisted wire format. Provider action strings and arbitrary guest jobs are deliberately absent.PluginInstanceIdand caller key; reusing a key for different kind, payload, secret references, or due time fails closed instead of silently changing work.RetryAfter, permanent failure, retry exhaustion, envelope/idempotency limits, and database constraints for impossible lifecycle rows.SecretPropertyRefvalues. Plaintext resolved secrets have no constructor path into the durable envelope.plugin_outboxtable and index to the same<data_dir>/cron/jobs.dbopened by existing cron storage. No job is created or processed unless a later host caller uses the coordinator.enhancement,runtime,tests,risk:high,size:XLTesting (required)
How you can test (when useful)
How I tested
Security & Privacy Impact (required)
Yes, describe the risk and mitigation: The runtime may create a new table in its existing cron database. The durable envelope accepts a package-private public-data marker and validated unresolved secret references only; no resolved-secret type is accepted. Every row is structurally bound to exact package/capability/binding identity, size-bounded, and accessed through parameterized SQL, atomic transactions, and opaque lease tokens. Later workers must resolve secrets transiently through the scoped service at delivery time.Compatibility (required)
Noor either surface/floor question isYes: N/A. Schema creation is additive/idempotent, and no existing cron row or API is changed.Rollback (required for medium/high-risk PRs)
cron/jobs.db; leaving it preserves any queued data if a child PR is also rolled back and later restored.plugins-wasmfeature; no new runtime toggle or worker.plugin_outbox, rejected leases, invalid persisted envelopes, or a later worker receivingLeaseRejected/RetryExhausted.Supersede Attribution (required only when
Supersedes #is used)Not applicable.