Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
3ff9e94
Spec: Fastly chunked-config GC to reclaim orphaned chunk entries on r…
aram356 Jul 8, 2026
77d65bd
Spec review v2: fix file map (cli.rs, not the unmerged split), valida…
aram356 Jul 8, 2026
533c644
Spec review v3: thread logical roots (--key is free-form, infix infer…
aram356 Jul 8, 2026
d484fa5
Add Fastly chunk-GC implementation plan, reconciled with spec v3
aram356 Jul 8, 2026
93a5886
Self-review fixes (spec+plan): expand new_keys in local dry-run so id…
aram356 Jul 8, 2026
1089b5b
Review v4 (spec+plan): close cloud GC concurrency hole via post-commi…
aram356 Jul 8, 2026
98bc468
Review v5 (spec+plan): document cloud GC as single-writer/best-effort…
aram356 Jul 8, 2026
b8eb07b
Reframe cloud concurrency as last-writer-wins (per decision)
aram356 Jul 8, 2026
3cc25af
Plan/spec tighten-ups (non-blocking): non-vacuous local suspicious-po…
aram356 Jul 8, 2026
67ac0dd
feat(fastly): add prior_chunk_keys for chunk GC (Value-first, v1-vali…
aram356 Jul 8, 2026
653b220
feat(fastly): add chunk-GC planning helpers (expand_root, orphan_chun…
aram356 Jul 8, 2026
e8853b9
feat(fastly): prune prior config chunks on local re-push
aram356 Jul 8, 2026
77a30ec
feat(fastly): reclaim prior config chunks after cloud re-push (last-w…
aram356 Jul 8, 2026
2c36b5d
chore(fastly): satisfy strict clippy for chunk-GC code; render fake f…
aram356 Jul 8, 2026
0f516dd
chore(fastly): hoist fake-fastly TEMPLATE const above statements (ite…
aram356 Jul 8, 2026
205048d
test(fastly): close self-review coverage gaps
aram356 Jul 8, 2026
891ecc6
fix(fastly): dry-run classifies malformed local state as unknown; tes…
aram356 Jul 9, 2026
6f65e51
fix(fastly): redact describe payloads from diagnostics (P1); reject d…
aram356 Jul 12, 2026
33932de
fix(fastly)!: defer cloud chunk reclamation (eager delete is unsafe u…
aram356 Jul 13, 2026
2047095
docs: spec the deferred cloud reclamation design + payload-redaction …
aram356 Jul 13, 2026
5454402
fix(fastly): complete the payload-redaction invariant — redact stderr…
aram356 Jul 13, 2026
abda226
refactor(fastly)!: derive cloud reclamation from the store, deleting …
aram356 Jul 13, 2026
481f590
docs: reconcile spec to the shipped store-derived design; mark the pl…
aram356 Jul 13, 2026
e5ac9d0
fix(fastly)!: remove automatic cloud chunk deletion; add operator-inv…
aram356 Jul 14, 2026
6e909bd
docs: spec `config gc`; record why automatic cloud reclamation is imp…
aram356 Jul 14, 2026
5793bc1
Merge remote-tracking branch 'origin/main' into spec/fastly-chunk-gc
aram356 Jul 14, 2026
9a40098
feat(cli): wire `config gc` into the bundled + app-demo CLIs
aram356 Jul 15, 2026
60a0a22
fix(fastly): harden config gc against the merge-blocking review findings
aram356 Jul 16, 2026
d74406c
docs: rewrite the implementation plan to the shipped config gc design
aram356 Jul 16, 2026
4ff45ec
PR #314 v5 review: fail-closed GC classifier, both-age rule, honest c…
aram356 Jul 16, 2026
5e7f377
PR #314 v6 review: never delete roots, validate pointers, fix WASM cl…
aram356 Jul 16, 2026
c8ff0c1
PR #314 v7 review: prove chunks by content, not metadata
aram356 Jul 17, 2026
4aae23c
PR #314 v8 review: round-trip against the writer; stop claiming proof
aram356 Jul 17, 2026
0126e1c
PR #314 v9 review: classify roots by value, redact runtime paths, hon…
aram356 Jul 17, 2026
b288ee9
Verify inner envelope on read, protect envelope-valued roots, key-lim…
aram356 Jul 18, 2026
0bde0e9
Redact typed-deserialize errors, degrade local reads, validate pointe…
aram356 Jul 18, 2026
37cadc5
Redact stored values across all read/error paths; protect local prune…
aram356 Jul 18, 2026
98e05fa
Redact writer/response/Debug leaks, restore field-path contract, fix …
aram356 Jul 19, 2026
f9709f2
Redact remaining parse leaks, redact field-path, char-limit, body-awa…
aram356 Jul 19, 2026
74fa24e
Reject Unicode char/byte pointer mismatch; fix redaction docs/tests; …
aram356 Jul 19, 2026
e42e9f2
Restore v1 byte threshold on read, pin exact split boundaries
aram356 Jul 20, 2026
31008ad
Compile the fastly+cli wasm32-wasip1 combination cleanly
aram356 Jul 21, 2026
b54e710
Restore raw ConfigStore contract; atomic local rewrite; align GC with…
aram356 Jul 23, 2026
c5689c0
Serialise local pushes with a lock; refine GC foreign-value handling
aram356 Jul 26, 2026
a17d159
Fix GC unknown-kind data loss, widen manifest lock, harden staging
aram356 Jul 27, 2026
210416b
Make corrupt generations repairable; symmetric unknown-kind protection
aram356 Jul 28, 2026
a2c2eac
Refine read taxonomy: repairable corruption vs infra/unknown; local s…
aram356 Jul 29, 2026
2518670
Fail closed on future formats, ambiguous chunk not-found; generic repair
aram356 Jul 30, 2026
c2b8585
Type future-format through resolution; fail closed on ambiguous root/…
aram356 Aug 1, 2026
477429c
Schema-agnostic future detection; confirmed-absence reads; store retu…
aram356 Aug 2, 2026
bb82733
Authoritative absence listing; GC future guard; locked TOCTOU recheck
aram356 Aug 3, 2026
db44807
Fail closed on non-integer versions, inner-future downgrades, non-inl…
aram356 Aug 4, 2026
c40bf7a
Drop unused cloud-push GC bookkeeping
aram356 Aug 6, 2026
c8effe8
Merge branch 'main' into spec/fastly-chunk-gc
aram356 Aug 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 21 additions & 2 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,16 @@ jobs:
- name: Run cargo clippy
run: cargo clippy --workspace --all-targets --all-features -- -D warnings

# The all-features build unifies the fastly adapter's `cli` and `fastly`
# features, which can MASK a dead-code or cfg mistake that only surfaces in
# one supported mode. Gate the two the matrix above does not: `cli` alone
# (native CLI host code) and no features at all (the declared default).
- name: Run cargo clippy (fastly adapter, cli feature only)
run: cargo clippy -p edgezero-adapter-fastly --features cli --all-targets -- -D warnings

- name: Run cargo clippy (fastly adapter, no default features)
run: cargo clippy -p edgezero-adapter-fastly --no-default-features --lib -- -D warnings

# Plan task 8.3 corollary: `examples/app-demo` is excluded
# from the root workspace, so the fmt/clippy steps above
# don't cover it. Run the same gates against it explicitly
Expand All @@ -74,10 +84,19 @@ jobs:
include:
- adapter: cloudflare
target: wasm32-unknown-unknown
features: cloudflare
- adapter: fastly
target: wasm32-wasip1
features: fastly
# The `cli` feature is a valid wasip1 build combination (the CLI host
# code compiled for the guest target); gate it so a dead-code or
# portability regression there is caught, not only in the fastly-only build.
- adapter: fastly
target: wasm32-wasip1
features: fastly cli
- adapter: spin
target: wasm32-wasip2
features: spin
steps:
- uses: actions/checkout@v6

Expand Down Expand Up @@ -110,8 +129,8 @@ jobs:
- name: Fetch dependencies (locked)
run: cargo fetch --locked

- name: Clippy ${{ matrix.adapter }} on ${{ matrix.target }}
run: cargo clippy -p edgezero-adapter-${{ matrix.adapter }} --features ${{ matrix.adapter }} --target ${{ matrix.target }} --all-targets -- -D warnings
- name: Clippy ${{ matrix.adapter }} (${{ matrix.features }}) on ${{ matrix.target }}
run: cargo clippy -p edgezero-adapter-${{ matrix.adapter }} --features "${{ matrix.features }}" --target ${{ matrix.target }} --all-targets -- -D warnings

format-docs:
runs-on: ubuntu-latest
Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -224,5 +224,15 @@ jobs:
${{ matrix.runner_env }}: ${{ matrix.runner_value }}
run: cargo test -p edgezero-adapter-${{ matrix.adapter }} --features ${{ matrix.adapter }} --target ${{ matrix.target }} --test contract

# The colocated runtime unit tests (config-store resolver, chunk
# remediation) need the `fastly` feature and only RUN under Viceroy — the
# `--test contract` line above never exercises them. Run the lib target so
# the runtime fail-closed/remediation behaviour is actually verified in CI.
- name: Run fastly wasm runtime unit tests
if: matrix.adapter == 'fastly'
env:
${{ matrix.runner_env }}: ${{ matrix.runner_value }}
run: cargo test -p edgezero-adapter-fastly --features fastly --target wasm32-wasip1 --lib

- name: Check ${{ matrix.adapter }} wasm target
run: cargo check -p edgezero-adapter-${{ matrix.adapter }} --features ${{ matrix.adapter }} --target ${{ matrix.target }}
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions crates/edgezero-adapter-fastly/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,5 @@ walkdir = { workspace = true, optional = true }

[dev-dependencies]
edgezero-core = { path = "../edgezero-core", features = ["test-utils"] }
handlebars = { workspace = true }
tempfile = { workspace = true }
Loading