Skip to content

feat: preserve opaque symlinks in cache payloads - #73

Merged
MarcoPorcellato merged 25 commits into
mainfrom
docs/cache-payload-symlink-design
Aug 29, 2026
Merged

feat: preserve opaque symlinks in cache payloads#73
MarcoPorcellato merged 25 commits into
mainfrom
docs/cache-payload-symlink-design

Conversation

@MarcoPorcellato

@MarcoPorcellato MarcoPorcellato commented Aug 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • Preserve ordinary Unix symbolic links as opaque payload leaves during bounded cache inventory, clone fallback, reuse, promotion, and cleanup.
  • Keep the control plane link-free and permit payload mode only below exact validated cache-key data roots.
  • Serialize inventory through an existing non-writing entry lock and strengthen staging ownership, recovery, failure injection, and operation-level tests.
  • Document the trust boundary, platform evidence, testing contract, ADR, approved design, implementation plan, and changelog entry.

Trust claim checklist

  • Public claims in this pull request do not imply:
    • native execution where only contract-level qualification is available,
    • signed identity or full execution attestation when only A0 evidence is present,
    • zero-cost operation or equivalent absolute cost reductions.
  • I described any source, runtime, workflow, permission, secret, policy, schema, or dependency impact below.
  • Roadmap text is presented as planned work, not as implemented or qualified behavior.

Impact and rollback

  • Runtime or trust-boundary impact: validated Unix payload descendants may be opaque links; control-plane and payload-root links still fail closed. Inventory acquires the existing entry lock without changing its bytes or metadata. The documented residual risk remains limited to a non-cooperative local actor that bypasses the advisory lock.
  • Dependency or supply-chain impact: none; Cargo.toml, Cargo.lock, schemas, and public API remain unchanged.
  • Data, secret, permission, or network impact: no new receipt fields, secrets, permissions, network calls, or public evidence fields.
  • Rollback path: revert this pull request. No migration or schema rollback is required.

Evidence checklist

  • I listed the exact focused checks run for this diff.
  • I ran cargo fmt --all -- --check because Rust files changed.
  • I ran the relevant contract tests and recorded intentionally not-run gates.
  • git diff --check origin/main..HEAD passes.
  • User-visible changes update CHANGELOG.md.
  • New or changed links point to existing authoritative targets.

Validation notes

Exact qualified candidate: 72c496082b5851e529acddc972a61951b9098cbf on Darwin arm64 through the pinned Docker-compatible runtime.

  • CCP generation: 3
  • Configuration digest: sha256:bc348df299ee58ecc8f7cfc7f2dc743b5c03f1a90f7e5dbff45754017955e901
  • Receipt SHA-256: 20533d762d13ba3777a2004f2600ba63c61925df0cc044a954d6c161829b34c2
  • Receipt ID: sha256:c0d616bf4b22192181a1f9a33bf98bc91a5b611e2a9033c07e138c4e1d58956a
  • Source snapshot manifest: sha256:bb2014bc3b521a7a04c5f5598930e13305d5694939a7e3a23af58e44ea45ebcf across 213 tracked entries
  • format: PASS
  • test --locked --all-targets --all-features: PASS
  • clippy --locked --all-targets --all-features -- -D warnings: PASS
  • doc --locked --no-deps: PASS
  • Release metadata check: PASS
  • Exact-commit receipt integrity and trusted-plan policy verification: PASS
  • Evidence branch: ccp-evidence/72c496082b5851e529acddc972a61951b9098cbf

This qualification proves the exact source, reviewed plan, pinned runtime, required checks, and receipt integrity. It does not claim Windows-native execution, GitHub-hosted project execution, cryptographic producer identity, candidate installation, or stable-producer replacement.

@MarcoPorcellato
MarcoPorcellato merged commit f2a9ddd into main Aug 29, 2026
2 checks passed
@MarcoPorcellato
MarcoPorcellato deleted the docs/cache-payload-symlink-design branch August 29, 2026 23:00
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