Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
696 commits
Select commit Hold shift + click to select a range
8b460dd
feat: integrate native image optimizer single sends
aram356 Oct 24, 2026
1e3614d
fix: preserve transport-known empty Axum bodies
aram356 Oct 25, 2026
4ecbca4
fix: preserve absent Fastly SDK request bodies
aram356 Oct 25, 2026
40ad2dc
refactor: centralize outbound header policy
aram356 Oct 25, 2026
944fc30
docs: reconcile outbound delivery and acceptance tracking
aram356 Oct 25, 2026
ee71817
test: bind local Axum adoption acceptance cases
aram356 Oct 25, 2026
a0d3151
test: consolidate inventory-bound Axum suite execution
aram356 Oct 25, 2026
e1d4fe3
fix: preserve native Cloudflare request body absence
aram356 Oct 25, 2026
069bb35
refactor: centralize outbound dispatch mode validation
aram356 Oct 25, 2026
622f996
fix: reject expired outbound response handoffs
aram356 Oct 25, 2026
b33342d
fix: tolerate Spin connect timeout option refusals
aram356 Oct 25, 2026
0166998
docs: prepare Fastly backend policy review
aram356 Oct 25, 2026
c70e2b0
test: exercise proposed Fastly backend timer vectors
aram356 Oct 26, 2026
92daf00
feat: adopt stable Fastly B31 backend policy
aram356 Oct 26, 2026
f5d74b4
test: strengthen outbound mixed-phase progress coverage
aram356 Oct 26, 2026
1ed8229
Merge branch 'main' into feat/shared-request-timing
aram356 Oct 26, 2026
1bb75e8
feat: multiplex Fastly outbound receive progress
aram356 Oct 26, 2026
b7a288d
Merge main while preserving outbound HTTP contracts
aram356 Oct 26, 2026
ba486fc
Fix isolated Fastly lint and Cloudflare guest contracts
aram356 Oct 27, 2026
3607576
Scope Fastly batch drivers to callback and response lifetimes
aram356 Oct 27, 2026
14c8b73
Reuse dispatch-selected clients in Fastly lifecycle fixtures
aram356 Oct 27, 2026
d86d4c0
Pair outbound clocks with cancellable runtime timers
aram356 Oct 27, 2026
f4d660b
Order Cloudflare contract helpers for isolated feature builds
aram356 Oct 27, 2026
777e8ed
Merge branch 'main' into feat/shared-request-timing
aram356 Oct 27, 2026
d52b8c5
Merge branch 'main' into feat/shared-request-timing
aram356 Oct 27, 2026
2be1dd8
feat(outbound): unify prepared dispatch and structured ownership
aram356 Oct 27, 2026
75cc304
fix(spin): match helper gates to guest test features
aram356 Oct 27, 2026
3b436c7
Centralized timing release status in PR references, synchronized all …
ChristianPavilonis Oct 27, 2026
e02c236
feat(outbound): follow redirects through the shared pipeline
aram356 Oct 27, 2026
f57b813
fix(fastly): honor source wakeups before host waits
aram356 Oct 27, 2026
699cd49
test(outbound): verify provider redirect boundaries
aram356 Oct 27, 2026
361da4f
test(spin): move wire checks into Rust fixture harness
aram356 Oct 28, 2026
4e64db9
test(cloudflare): verify redirects through local workerd
aram356 Oct 28, 2026
b5f94c7
refactor(test): isolate the shared runtime harness
aram356 Oct 28, 2026
834a009
test(outbound): add bounded lifetime progress probes
aram356 Oct 28, 2026
7b68f73
fix(spin): pin SDK executor with eager spawn progress
aram356 Oct 28, 2026
66c73e9
Merge main into issue-398-docker-spec
ChristianPavilonis Oct 28, 2026
1f244a7
Implemented all 18 accepted plan items, including both routine cleanu…
ChristianPavilonis Oct 28, 2026
f822e40
Merge main into outbound HTTP implementation
aram356 Oct 28, 2026
73ed39b
test(outbound): verify pending cutoff return boundaries
aram356 Oct 28, 2026
26e9e6b
docs(outbound): correct lifetime probe case count
aram356 Oct 28, 2026
511ce06
Merge main into feat/shared-request-timing
ChristianPavilonis Oct 28, 2026
44baaf3
test(outbound): characterize CPU-stretched batch observation
aram356 Oct 28, 2026
0d09236
test(outbound): calibrate CPU timing through the existing client
aram356 Oct 28, 2026
d3f4856
test(outbound): replace fixture accept sleeps with readiness
aram356 Oct 28, 2026
11b8f2c
test: expose fixture version probe errors in CI
aram356 Oct 28, 2026
cd8e77e
test(outbound): cover per-call expiry during late collection
aram356 Oct 28, 2026
87b5e1c
Update reviewed Spin SDK and retain outbound task ownership
aram356 Oct 29, 2026
8c11307
test: verify buffered caps during outbound batch progress
aram356 Oct 29, 2026
279c5a9
test: bind core batch receipt acceptance
aram356 Oct 29, 2026
abbc2c1
test: prove response-owned outbound work after handoff
aram356 Oct 29, 2026
15615da
test: prove Fastly response cleanup preserves callback work
aram356 Oct 29, 2026
fbdc060
test: cover Fastly response cleanup failures
aram356 Oct 29, 2026
5271994
test: verify retained outbound lifecycle cleanup
aram356 Oct 29, 2026
350c4b0
test: bind core outbound policy acceptance
aram356 Oct 29, 2026
7e9619c
test: bind forwarding and shared-head acceptance
aram356 Oct 29, 2026
be99226
test: expand native outbound acceptance and tighten timing evidence
aram356 Oct 30, 2026
ede796e
fix(http): protect ingress hooks and harden runtime guards
aram356 Oct 30, 2026
4470e73
fix(ci): format isolated ingress fixture
aram356 Oct 30, 2026
a9051e8
test: bind Spin response caps and repair CI evidence
aram356 Oct 30, 2026
0a04ddb
test: consolidate runtime harness and CI execution
aram356 Oct 30, 2026
4ea53d6
Fix container smoke teardown and reuse daemon Buildx setup
ChristianPavilonis Oct 30, 2026
ce1257f
docs: record CI consolidation verification
aram356 Oct 30, 2026
3b4e1f8
docs: record green CI and cache retention gap
aram356 Oct 30, 2026
9126631
docs: record warm CI cache verification
aram356 Oct 30, 2026
862eef3
test: bind Axum forwarding mode acceptance
aram356 Oct 30, 2026
9eaef2e
test: consolidate integration ownership and runners
aram356 Oct 30, 2026
c0379ee
test: remove backtracking from CI argument checks
aram356 Oct 30, 2026
a0fd6f7
test: complete Spin response normalization acceptance
aram356 Oct 30, 2026
80f7375
test: bind mixed batch recovery across adapters
aram356 Oct 30, 2026
0b949f0
test: restore Cloudflare wire acceptance without inspector
aram356 Oct 31, 2026
52d89c1
test: bind outbound client precedence across adapters
aram356 Oct 31, 2026
d1175fb
test: bind policy precedence and native marker acceptance
aram356 Oct 31, 2026
00a9edb
feat: expose request-scoped Fastly registration observations
aram356 Oct 31, 2026
2cbbc54
feat: publish independent connect-timeout capabilities
aram356 Oct 31, 2026
9fe6c56
test: replace Ruby workflow parsing with Node
aram356 Oct 31, 2026
c0e8aeb
fix: preserve empty ingress and verify native forwarding
aram356 Oct 31, 2026
dcd5ffc
test: bind strict Axum ingress deadline acceptance
aram356 Oct 31, 2026
9aaf0f5
test: bind native encoding and relay acceptance
aram356 Oct 31, 2026
d5dd8f1
test: repair lifecycle scheduling and callback attestation
aram356 Oct 31, 2026
96fb203
test: separate source and guest lifecycle timing evidence
aram356 Oct 31, 2026
071bbd4
test: bind local request overflow acceptance
aram356 Oct 31, 2026
dffca16
test: bind reader and fallback acceptance
aram356 Oct 31, 2026
1ff9ff9
test: consolidate dependency and forwarding checks in Rust
aram356 Nov 1, 2026
45ac7ef
test: bind outbound setting acceptance across adapters
aram356 Nov 1, 2026
fc97371
test: verify outbound provider mapping boundaries
aram356 Nov 1, 2026
b522a8e
fix: align focus invariants and Fastly CLI fixture lint
aram356 Nov 1, 2026
fb41b85
docs: format outbound approval audit tables
aram356 Nov 1, 2026
78f7a1b
test: bind image optimizer numeric and compiler acceptance
aram356 Nov 1, 2026
6920def
test: bind Fastly post-preparation dispatch acceptance
aram356 Nov 2, 2026
3523e12
test(outbound): witness native pending body reads
aram356 Nov 2, 2026
c6f3aaf
test(axum): use canonical observation cutoff name
aram356 Nov 2, 2026
deb0084
test(cloudflare): load native module manifests
aram356 Nov 2, 2026
92e03fe
test(spin): witness native pending body reads
aram356 Nov 2, 2026
5950548
test(fastly): witness native body readiness waits
aram356 Nov 2, 2026
d7c4ee9
Implemented all eight accepted plan items: container validation fixes…
ChristianPavilonis Nov 2, 2026
eb8ac5d
test(fastly): cover arrivals during origin body reads
aram356 Nov 2, 2026
f0ce2b3
test(fastly): cover trickling slots and live-batch sends
aram356 Nov 2, 2026
91cb3e6
Date internal deployment designs and repair cross-links
ChristianPavilonis Nov 2, 2026
827317a
Harden Axum container inputs, provenance and validation
ChristianPavilonis Nov 2, 2026
775366f
test(fastly): prove batch execution after response handoff
aram356 Nov 2, 2026
f8f2dc5
test(outbound): complete local bindings and preserve qualification fa…
aram356 Nov 3, 2026
22c6386
fix(outbound): repair CI fixtures and pending-source observation
aram356 Nov 3, 2026
f036425
test(outbound): isolate cancellation and verify Linux connect
aram356 Nov 3, 2026
cd21436
test(outbound): isolate explicit reset cancellation control
aram356 Nov 3, 2026
8fbc4f8
test(spin): characterize response-result readiness before EOF
aram356 Nov 4, 2026
158b0c0
test(outbound): preserve absolute deferred batch dispatch timing
aram356 Nov 4, 2026
f82e402
fix(ci): recognize completed tests before host diagnostics
aram356 Nov 4, 2026
9f0a398
test(outbound): isolate cold entry timing before dispatch
aram356 Nov 4, 2026
55e07f6
test(outbound): isolate admission timing on original request clocks
aram356 Nov 4, 2026
3399588
fix(ci): recognize interrupted tests with diagnostic suffixes
aram356 Nov 4, 2026
562acc1
fix(cloudflare): retain absolute deadlines through timer setup
aram356 Nov 5, 2026
e38a295
Merge branch 'main' into feat/shared-request-timing
aram356 Nov 5, 2026
46019b2
docs: map outbound evidence to the reviewed revision
aram356 Nov 5, 2026
8f82547
fix(cloudflare): bound batch observation by its own cutoff
aram356 Nov 5, 2026
b56fccd
Merge latest main into outbound HTTP branch
aram356 Nov 6, 2026
6ef7f99
Fix Axum container portability and strict advisory checks
ChristianPavilonis Nov 6, 2026
6e5ce76
fix(cloudflare): retain absolute response-write deadlines
aram356 Nov 6, 2026
89d5096
Merge branch 'main' into issue-398-docker-spec
prk-Jr Nov 6, 2026
9b31a69
Replace Workers egress abort polling with owned events
aram356 Nov 6, 2026
31b66d4
Update timing hook guidance and relocate the CI docs guard
ChristianPavilonis Nov 6, 2026
3cc111c
Dispatch remaining Fastly slots after synchronous batch outcomes
aram356 Nov 6, 2026
daed2d0
Use one condition for unpromoted evidence deferrals
aram356 Nov 6, 2026
a95b7c8
Record Fastly arrivals during nonblocking observations
aram356 Nov 6, 2026
46dfa2d
Correct current lifecycle APIs and toolchain in changelog
aram356 Nov 6, 2026
16699f1
Keep Workers inbound reads on their absolute deadline
aram356 Nov 6, 2026
0e064bf
Observe parked Spin deadlines before ending batch collection
aram356 Nov 6, 2026
fbd3fb7
Record implemented Axum begun-request test coverage
aram356 Nov 6, 2026
8866a01
Preflight routed caller caps against the original body length
aram356 Nov 6, 2026
fb22efb
Align Axum guide with current toolchain and shared application lifetime
aram356 Nov 6, 2026
522537f
Describe complete Fastly backend identity and capacity risks
aram356 Nov 6, 2026
bdee04c
Correct Fastly guide entrypoint and response examples
aram356 Nov 6, 2026
edef031
Align capability guidance and guards with adapter-owned delivery
aram356 Nov 6, 2026
153874f
Document implemented GET and HEAD settlement across adapters
aram356 Nov 6, 2026
1afbf8c
Publish outbound behavior support without extra capability flags
aram356 Nov 6, 2026
6504037
Clarify native optimizer blocking and measurement boundaries
aram356 Nov 6, 2026
9f34724
Document Fastly deadline behavior and synchronous exceptions
aram356 Nov 6, 2026
a2c67a4
Preserve Cargo proxy launching in the Spin CI harness
aram356 Nov 6, 2026
179573a
Correct configuration reference and extraction wire terminology
aram356 Nov 6, 2026
42c9e8d
Clarify the repaired Viceroy baseline for bounded reads
aram356 Nov 6, 2026
6f15983
Describe elapsed time at recorded arrival rather than collection
aram356 Nov 6, 2026
7d959e3
Correct SDK feature and deploy-action pin migration guidance
aram356 Nov 6, 2026
4951310
Correct handler examples and bounded context API reference
aram356 Nov 6, 2026
cc20b94
Document outbound client selection precedence across adapters
aram356 Nov 6, 2026
1b99901
List only implemented options retained by followed requests
aram356 Nov 6, 2026
139a928
State per-target DNS and TLS connect-timeout coverage
aram356 Nov 6, 2026
6aa1dfd
Document the two deadlines of begun streamed responses
aram356 Nov 6, 2026
70b6ae9
Correct streaming ownership and decompression examples
aram356 Nov 6, 2026
a9becc6
Distinguish route-conflict timing across application entrypoints
aram356 Nov 6, 2026
12bedb3
Name batch collection results and bodiless forwarding semantics
aram356 Nov 6, 2026
0783467
Update architecture diagram to the admitted head-first lifecycle
aram356 Nov 6, 2026
7568083
Name both unsupported optimizer modes in the Fastly error
aram356 Nov 6, 2026
6004d8a
fix(fastly): preserve SDK cache selection for batch slots
aram356 Nov 6, 2026
c2656c9
fix(fastly): identify failures observed while waiting for headers
aram356 Nov 6, 2026
9849617
fix(fastly): log deterministic backend refusals safely
aram356 Nov 6, 2026
7dfaf49
test(framing): isolate known SDK deviations from regression failures
aram356 Nov 6, 2026
c41f5fd
style(docs): format reviewed API guides
aram356 Nov 6, 2026
aa0f9fd
fix(test-harness): preserve cancellation across child exit observation
aram356 Nov 6, 2026
c739091
test(adapters): cover refusal delivery and runtime failure diagnostics
aram356 Nov 6, 2026
4606c45
test(outbound): bind shipped follow-up acceptance proofs
aram356 Nov 6, 2026
9956829
test: consolidate outbound acceptance tooling in Rust
aram356 Nov 7, 2026
d675b4b
test: provide single-request Fastly qualification package
aram356 Nov 7, 2026
958e214
docs: reconcile adoption guides and qualification status
aram356 Nov 7, 2026
598f0a2
test: share Cloudflare release witness across test features
aram356 Nov 7, 2026
6f0cc74
fix: address reposted TS outbound review findings
aram356 Nov 7, 2026
e65394a
fix: address outbound review contracts and evidence validation
aram356 Nov 7, 2026
5ea8d93
test: isolate Fastly logger facade capture
aram356 Nov 7, 2026
dcbf622
test: align HTTP qualification with approved requirements
aram356 Nov 8, 2026
2661205
test(fastly): make callback ownership assertions deterministic
aram356 Nov 8, 2026
ebab57e
test: observe native reuse and retain shutdown evidence
aram356 Nov 8, 2026
25114e6
fix(axum): preserve absolute native timer targets
aram356 Nov 9, 2026
c8fd193
test: lock signed-origin image cache policies
aram356 Nov 9, 2026
1a6ae86
Fix Axum container input verification and diagnostics
ChristianPavilonis Nov 9, 2026
a7d7fd0
test: retain startup fixture listener ownership
aram356 Nov 10, 2026
29614a4
Merge remote-tracking branch 'origin/docs/outbound-http-spec' into rc…
ChristianPavilonis Nov 10, 2026
2510ecc
Merge Axum container packaging into the refreshed candidate
ChristianPavilonis Nov 10, 2026
546474e
feat(axum): add production startup and bounded shutdown
ChristianPavilonis Oct 6, 2026
798ef2b
ci: run ordinary checks on every pull request base
ChristianPavilonis Nov 10, 2026
49ba021
fix(axum): retain invalid native limits and platform key identity
ChristianPavilonis Nov 10, 2026
7c07b8e
Merge shared request timing onto current foundation
ChristianPavilonis Nov 10, 2026
e867c12
feat(axum): configure buffered JSON body limits
ChristianPavilonis Oct 6, 2026
0769cbf
feat(axum): add safe diagnostics and trusted proxy metadata
ChristianPavilonis Oct 7, 2026
251974d
feat(core): expose paired time and borrowed outbound readiness
ChristianPavilonis Nov 10, 2026
61fc149
fix(axum): keep diagnostics behind its native runtime feature
ChristianPavilonis Nov 10, 2026
4ea9946
feat(axum): prepare per-ID native AWS stores before serving
ChristianPavilonis Nov 10, 2026
afe9bd7
fix(ci): sync the hosting fixture validator dependency lock
ChristianPavilonis Nov 10, 2026
57374e4
feat(stores): add native celld config and KV providers
ChristianPavilonis Nov 10, 2026
3cb7f85
Merge verified lower-stack fixture lock
ChristianPavilonis Nov 10, 2026
cb617a3
Merge corrected lower-stack fixture lock
ChristianPavilonis Nov 10, 2026
9fa1666
fix(ci): align diagnostic fixture locks with required dependencies
ChristianPavilonis Nov 10, 2026
a9130af
Merge verified lower-stack CLI and fixture lock fixes
ChristianPavilonis Nov 10, 2026
dc29607
feat(outbound): preserve request-local surrogate cache keys
ChristianPavilonis Nov 10, 2026
63892b0
fix(ci): retain ordinary test coverage for stacked PR bases
ChristianPavilonis Nov 10, 2026
590dff9
feat(geo): resolve portable providers from checked native ingress
ChristianPavilonis Nov 10, 2026
1d8e42e
fix(ci): align test-only listener and stacked workflow contracts
ChristianPavilonis Nov 10, 2026
90b5e6a
Merge corrected lower-stack feature and CI contracts
ChristianPavilonis Nov 10, 2026
bee8dc0
Merge corrected lower-stack feature and CI contracts
ChristianPavilonis Nov 10, 2026
4856d95
fix(ci): sync buffered-body fixture MIME dependency locks
ChristianPavilonis Nov 10, 2026
93b4177
refactor(axum): name incoming trust module trusted_proxy
ChristianPavilonis Nov 10, 2026
5ab90e6
feat(celld): expose conditional and physical record operations
ChristianPavilonis Nov 10, 2026
3b52b80
fix(axum): separate trusted ingress from retired proxy transport
ChristianPavilonis Nov 10, 2026
89c279b
feat(core): finalize rendered admitted errors with owned geo outcome
ChristianPavilonis Nov 10, 2026
d475727
Merge verified lower-stack namespace and CI fixes
ChristianPavilonis Nov 10, 2026
48761e3
Merge verified lower-stack namespace and CI fixes
ChristianPavilonis Nov 10, 2026
c8ee48f
Merge verified lower-stack namespace and CI fixes
ChristianPavilonis Nov 10, 2026
683d558
ci: run ordinary checks on every pull request base
ChristianPavilonis Nov 10, 2026
cec1988
test(ci): require ordinary checks on stacked PR bases
ChristianPavilonis Nov 10, 2026
6a580d1
fix(axum): account for feature-disabled async preparation lints
ChristianPavilonis Nov 10, 2026
5ddc0d3
fix(adapters): shrink wasm dispatch futures and repair Spin Geo test
ChristianPavilonis Nov 10, 2026
4f45fe8
test(cli): retain logging proof at the managed startup boundary
ChristianPavilonis Nov 10, 2026
6778e01
Merge managed demo logging regression alignment
ChristianPavilonis Nov 10, 2026
6f3ebdb
Merge lower-stack demo and disabled-provider verification fixes
ChristianPavilonis Nov 10, 2026
5c13134
Merge managed demo logging regression alignment
ChristianPavilonis Nov 10, 2026
b0b4df7
Merge provider-disabled asynchronous lint contract repair
ChristianPavilonis Nov 10, 2026
8663acc
Merge target-matched buffered dispatch and Geo fixture repair
ChristianPavilonis Nov 10, 2026
b082ae6
Merge managed demo logging regression alignment
ChristianPavilonis Nov 10, 2026
ef42131
Merge managed demo logging regression alignment
ChristianPavilonis Nov 10, 2026
700f291
fix(test-admin): keep fixture failures out of public logs
ChristianPavilonis Nov 10, 2026
d08fc8f
Merge fixture failure redaction into celld provider stack
ChristianPavilonis Nov 10, 2026
1df9f7a
Merge fixture failure redaction into Geo provider stack
ChristianPavilonis Nov 10, 2026
9f090e5
fix(cli): generate image helpers only with Fastly example
ChristianPavilonis Nov 10, 2026
8a2a0b7
Merge native-only scaffold correction into body-limit stack
ChristianPavilonis Nov 10, 2026
5bbff2b
Merge native-only scaffold correction into diagnostics stack
ChristianPavilonis Nov 10, 2026
765d54d
Merge native-only scaffold correction into AWS provider stack
ChristianPavilonis Nov 10, 2026
0d17257
Merge native-only scaffold correction into celld provider stack
ChristianPavilonis Nov 10, 2026
22741b6
Merge native-only scaffold correction into Geo provider stack
ChristianPavilonis Nov 10, 2026
652e324
fix(aws): classify typed SDK connector timeouts as deadlines
ChristianPavilonis Nov 10, 2026
6e8bb0e
Prototype portable KV-backed Geo indexing and lookup
ChristianPavilonis Nov 5, 2026
c155e5d
fix(geo): refresh prototype lockfile for current core
ChristianPavilonis Nov 10, 2026
9eb941b
Assemble selected native and Geo review stack with KV prototype
ChristianPavilonis Nov 10, 2026
5bd6f9c
Include existing conditional celld records demo extraction
ChristianPavilonis Nov 10, 2026
883a62a
Include existing admitted-error response finalization extraction
ChristianPavilonis Nov 10, 2026
501a2dc
test(ci): validate both locked integration tooling parsers
ChristianPavilonis Nov 10, 2026
b18a44d
feat(celld): expose conditional and physical record operations
ChristianPavilonis Nov 10, 2026
96c21d7
feat(core): finalize rendered admitted errors with owned geo outcome
ChristianPavilonis Nov 10, 2026
8fd8642
Link extracted celld record review head without changing integration …
ChristianPavilonis Nov 10, 2026
bf8e769
Link extracted finalizer review head without changing integration con…
ChristianPavilonis Nov 10, 2026
a865fc5
Reuse completed minimum outbound compatibility required by TS callers
ChristianPavilonis Nov 10, 2026
7f9abac
docs(timing): use the retained pre-dispatch entry boundary
ChristianPavilonis Nov 10, 2026
746bfc9
fix(aws): constrain shared types to the pinned SDK cohort
ChristianPavilonis Nov 10, 2026
48c34ed
Merge native AWS readiness fixes into celld provider stack
ChristianPavilonis Nov 10, 2026
7045bcf
Merge provider readiness fixes into Geo review stack
ChristianPavilonis Nov 10, 2026
479d993
Merge inherited provider build fixes below KV Geo prototype
ChristianPavilonis Nov 10, 2026
9a985c9
test(axum): retain early rejection responses during full uploads
ChristianPavilonis Nov 10, 2026
a5ac63a
fix(aws): preserve the pinned SDK behavior-version cohort
ChristianPavilonis Nov 10, 2026
c66f93f
test(aws): keep polling until the fixture is HTTP-ready
ChristianPavilonis Nov 10, 2026
f9b0f20
Merge SDK cohort and inherited fixture readiness fixes
ChristianPavilonis Nov 10, 2026
414e52a
Carry final provider readiness fixes into Geo stack
ChristianPavilonis Nov 10, 2026
c52bdaf
Carry inherited readiness fixes below standalone KV Geo prototype
ChristianPavilonis Nov 10, 2026
4563136
Integrate final reviewed provider readiness fixes
ChristianPavilonis Nov 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .claude/agents/code-architect.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ architectural principles:

3. **Thin adapters**: each adapter translates platform types to/from core types.
Business logic never lives in adapters. The adapter file structure is:
`context.rs`, `request.rs`, `response.rs`, `proxy.rs`, `logger.rs`, `cli.rs`.
`context.rs`, `request.rs`, `response.rs`, `outbound.rs`, `logger.rs`, `cli.rs`.

4. **Contract testing**: every adapter has `tests/contract.rs` that validates
request/response mapping. New adapters must follow this pattern.
Expand Down
6 changes: 4 additions & 2 deletions .claude/commands/check-ci.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
Run the full CI gate checks locally before pushing. Run all four commands sequentially and report any failures:
Run the full CI gate checks locally before pushing. Run the commands below sequentially and report any failures:

1. `cargo fmt --all -- --check`
2. `cargo clippy --workspace --all-targets --all-features -- -D warnings`
3. `cargo test --workspace --all-targets`
4. `cargo check --workspace --all-targets --features "fastly cloudflare"`
4. `cargo test -p edgezero-core --doc`
5. `cargo check --workspace --all-targets --features "fastly cloudflare spin"`
6. `cargo check -p edgezero-adapter-spin --target wasm32-wasip2 --features spin`

If any step fails, show the errors and suggest fixes. Do not proceed to the next step until the current one passes.
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Unified patches contain single-space context lines; check whitespace in the applied source.
patches/viceroy/*.patch -whitespace
4 changes: 2 additions & 2 deletions .github/actions/deploy-core/tests/run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2795,8 +2795,8 @@ test_fastly_logical_link_documentation() {
grep -Fq -- '--service-id "$FASTLY_SERVICE_ID"' "$fastly_deployment"
assert_fails "Fastly managed deployment does not recommend direct provider deployment" \
grep -Fq 'fastly compute deploy' "$fastly_deployment"
assert_succeeds "bare Fastly deploy is explicitly store-free production compatibility" \
grep -Fq 'store-free production compatibility' "$fastly_deployment_flat"
assert_succeeds "bare Fastly deploy is explicitly limited to store-free production" \
grep -Fq 'supports store-free production deployments using a manifest command' "$fastly_deployment_flat"

# shellcheck disable=SC2016 # GitHub expression is the literal documentation contract.
assert_fails "lifecycle examples do not reference a cross-job archive path output" \
Expand Down
22 changes: 22 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,32 @@ updates:
interval: "weekly"
cooldown:
default-days: 7
groups:
audited-decoders:
patterns:
- "alloc-no-stdlib"
- "alloc-stdlib"
- "adler2"
- "async-compression"
- "brotli"
- "brotli-decompressor"
- "compression-codecs"
- "compression-core"
- "crc32fast"
- "flate2"
- "miniz_oxide"
- "simd-adler32"

- package-ecosystem: "npm" # See documentation for possible values
directory: "docs/" # Location of package manifests
schedule:
interval: "weekly"
cooldown:
default-days: 7

- package-ecosystem: "npm"
directory: "/scripts"
schedule:
interval: "weekly"
cooldown:
default-days: 7
244 changes: 244 additions & 0 deletions .github/workflows/axum-container.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,244 @@
name: Axum container preparation

on:
pull_request:
branches: [main]
paths:
- .github/actions/deploy-core/tests/check-action-pins.sh
- .github/zizmor.yml
- scripts/install-actionlint.sh
- scripts/install-yq.sh
- .github/workflows/axum-container.yml
- Cargo.toml
- Cargo.lock
- .tool-versions
- crates/**
- examples/app-demo/**
- examples/container-publishing/**
- examples/axum-deployment/**
- scripts/*axum_container*.sh
- scripts/axum_container*.mjs
- scripts/package*.json
- scripts/tests/*axum_container*.mjs
push:
branches: [main]
paths:
- .github/actions/deploy-core/tests/check-action-pins.sh
- .github/zizmor.yml
- scripts/install-actionlint.sh
- scripts/install-yq.sh
- .github/workflows/axum-container.yml
- Cargo.toml
- Cargo.lock
- .tool-versions
- crates/**
- examples/app-demo/**
- examples/container-publishing/**
- examples/axum-deployment/**
- scripts/*axum_container*.sh
- scripts/axum_container*.mjs
- scripts/package*.json
- scripts/tests/*axum_container*.mjs

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

env:
# Keep validator versions paired with .github/workflows/deploy-action.yml.
ACTIONLINT_VERSION: 1.7.7
ZIZMOR_VERSION: 1.16.3
YQ_VERSION: 4.53.3

jobs:
static-checks:
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Install pinned validation binaries
run: |
bin="$RUNNER_TEMP/tools/bin"
mkdir -p "$bin"
INSTALL_DIR="$bin" scripts/install-actionlint.sh "$ACTIONLINT_VERSION"
INSTALL_DIR="$bin" scripts/install-yq.sh "$YQ_VERSION"
cargo install zizmor --version "$ZIZMOR_VERSION" --locked --root "$RUNNER_TEMP/tools"
"$bin/actionlint" -version | grep -qF "$ACTIONLINT_VERSION"
"$bin/yq" --version | grep -qF "version v$YQ_VERSION"
"$bin/zizmor" --version | grep -qF "$ZIZMOR_VERSION"
printf '%s\n' "$bin" >>"$GITHUB_PATH"

- name: Install ShellCheck
run: |
sudo apt-get update
sudo apt-get install -y shellcheck

- name: Validate the inactive application release recipe
run: |
"$RUNNER_TEMP/tools/bin/actionlint" -shellcheck='shellcheck -S warning' examples/container-publishing/release.yml
.github/actions/deploy-core/tests/check-action-pins.sh examples/container-publishing/release.yml
"$RUNNER_TEMP/tools/bin/zizmor" --offline examples/container-publishing/release.yml

- name: ShellCheck Axum container scripts
run: shellcheck -e SC1091 scripts/*axum_container*.sh examples/container-publishing/publish.sh

prepare:
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version-file: .tool-versions
- name: Use the declared Rust toolchain
run: |
version=$(awk '$1 == "rust" { print $2 }' .tool-versions)
rustup toolchain install "$version" --profile minimal
echo "RUSTUP_TOOLCHAIN=$version" >> "$GITHUB_ENV"
- name: Install framework helper dependencies
run: npm ci --prefix scripts --ignore-scripts
- name: Prepare one application and lockfile
run: |
./scripts/prepare_generated_axum_container.sh "$RUNNER_TEMP/fixture"
AXUM_PREPARED_CONTEXT="$RUNNER_TEMP/fixture/container-probe" \
node --test scripts/tests/test_axum_container*.test.mjs
tar -C "$RUNNER_TEMP/fixture" -cf "$RUNNER_TEMP/context.tar" container-probe
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: axum-context-${{ github.run_id }}-${{ github.run_attempt }}
path: ${{ runner.temp }}/context.tar
if-no-files-found: error
retention-days: 7

native:
needs: prepare
timeout-minutes: 30
# Framework packaging evidence is not application release approval.
env:
SCAN_POLICY: report-only
strategy:
fail-fast: false
matrix:
include:
- arch: amd64
runner: ubuntu-24.04
- arch: arm64
runner: ubuntu-24.04-arm
runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version-file: .tool-versions
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: axum-context-${{ github.run_id }}-${{ github.run_attempt }}
path: ${{ runner.temp }}/context
digest-mismatch: error
- uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1
with:
version: v0.37.0
# Reuse the daemon; the handoff helper creates the pinned build instance.
driver: docker
use: false
- name: Install framework helper dependencies
run: npm ci --prefix scripts --ignore-scripts
- name: Native image, packaging, scan and OCI identity checks
env:
ARCH: ${{ matrix.arch }}
run: |
tar -C "$RUNNER_TEMP/context" -xf "$RUNNER_TEMP/context/context.tar" --no-same-owner
./scripts/test_axum_container_handoff.sh build \
"$RUNNER_TEMP/context/container-probe" "$RUNNER_TEMP/accepted" \
"linux/$ARCH" "$GITHUB_SHA" "$GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT"
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: accepted-${{ matrix.arch }}-${{ github.run_id }}-${{ github.run_attempt }}
path: |
${{ runner.temp }}/accepted/image.tar
${{ runner.temp }}/accepted/receipt.json
${{ runner.temp }}/accepted/inputs.json
${{ runner.temp }}/accepted/scan.json
${{ runner.temp }}/accepted/scanner.json
${{ runner.temp }}/accepted/sbom.json
${{ runner.temp }}/accepted/provenance.json
${{ runner.temp }}/accepted/rust-advisories.json
if-no-files-found: error
retention-days: 7
- name: Retain sanitized failure evidence separately
if: failure()
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: failed-${{ matrix.arch }}-${{ github.run_id }}-${{ github.run_attempt }}
path: |
${{ runner.temp }}/accepted/*.log
${{ runner.temp }}/accepted/scan.json
${{ runner.temp }}/accepted/scanner.json
${{ runner.temp }}/accepted/image.json
${{ runner.temp }}/accepted/inputs.json
${{ runner.temp }}/accepted/rust-advisories.json
${{ runner.temp }}/accepted/smoke
${{ runner.temp }}/accepted/compose
if-no-files-found: warn
retention-days: 7

handoff:
needs: [static-checks, native]
runs-on: ubuntu-24.04
timeout-minutes: 15
env:
SCAN_POLICY: report-only
permissions:
contents: read
actions: read
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version-file: .tool-versions
- name: Select exact immutable artifacts from this run and attempt
id: artifacts
env:
GH_TOKEN: ${{ github.token }}
run: |
gh api --paginate --slurp "repos/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID/artifacts?per_page=100" \
| jq '{artifacts: [.[].artifacts[]]}' > "$RUNNER_TEMP/artifacts.json"
ids=$(node examples/container-publishing/verify_artifacts.mjs artifact-ids \
"$RUNNER_TEMP/artifacts.json" --run-id "$GITHUB_RUN_ID" --attempt "$GITHUB_RUN_ATTEMPT")
echo "ids=$ids" >> "$GITHUB_OUTPUT"
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
artifact-ids: ${{ steps.artifacts.outputs.ids }}
path: ${{ runner.temp }}/bundles
digest-mismatch: error
- name: Import accepted variants in a separate job without rebuilding
run: |
for arch in amd64 arm64; do
./scripts/test_axum_container_handoff.sh import \
"$RUNNER_TEMP/bundles/accepted-$arch-$GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT" \
"$RUNNER_TEMP/import-$arch" "linux/$arch" "$GITHUB_SHA" "$GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT"
done
- name: Assemble and verify a localhost runtime index without external publication
run: |
source examples/container-publishing/tools.env
registry="axum-index-$GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT"
trap 'docker rm -f "$registry" >/dev/null 2>&1 || true' EXIT
docker run -d --name "$registry" -p 127.0.0.1::5000 "$REGISTRY_IMAGE"
port=$(docker port "$registry" 5000/tcp | awk -F: '{print $NF}')
for _ in $(seq 1 30); do curl --fail --silent "http://127.0.0.1:$port/v2/" && break; sleep 1; done
curl --fail --silent "http://127.0.0.1:$port/v2/" >/dev/null
./examples/container-publishing/publish.sh "127.0.0.1:$port/fixture" fixture \
"$RUNNER_TEMP/bundles/accepted-amd64-$GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT" \
"$RUNNER_TEMP/bundles/accepted-arm64-$GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT" \
"$RUNNER_TEMP/index" "$GITHUB_SHA" "$GITHUB_RUN_ID-$GITHUB_RUN_ATTEMPT"
1 change: 0 additions & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
schedule:
- cron: "40 17 * * 3"

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/deploy-action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ concurrency:
cancel-in-progress: true

env:
# Keep validator versions paired with .github/workflows/axum-container.yml.
ACTIONLINT_VERSION: 1.7.7
ZIZMOR_VERSION: 1.16.3
YQ_VERSION: 4.53.3
Expand Down
Loading
Loading