Skip to content

AgentCache 0.3.0

Choose a tag to compare

@cdibona cdibona released this 26 Jun 21:16
· 28 commits to main since this release

Features

Cache Resilience: Graceful Taint Detection + Fallback

  • Serve-time version/schema re-check: When a cached manifest's generator_version or symbols schema is stale, the service force-regenerates before serving.
  • Targeted on-miss taint probe: When a path requested in /resolve is missing from the manifest, the service checks whether it actually exists in the commit's real git tree. If so, the manifest is stale—the service rebuilds the cache once and re-resolves, returning rebuilt:true. This is free in steady state (only fires on a real miss, never a per-request full tree walk).
  • Agent fallback: If the agentcache manifest yields zero source files, the agent now downgrades to the blobless git ls-tree path instead of halting.
  • Resilient to out-of-band commits made without the post-receive hook / GitHub Action firing, and to generator-version bumps.

Experimental Harness: Warm-Method Comparison

  • warm_method configuration ("hook" | "action" | "both"):
    • "hook": Warm cache in-process (server post-receive equivalent, current behavior)
    • "action": Warm via GitHub-Action subprocess (scripts/generate_agentcache.py including blobless bundle)
    • "both": Build each from a cold cache for the same commit, record side-by-side comparison
  • Measurements: hook_wall_s vs action_wall_s, ratio, winner
  • Live results: action is 2.4–4.5× slower than in-process hook (subprocess overhead + bundle build)
  • Human timeline now carries warm_method + per-mechanism load + comparison block

Other Notes

  • The submodule/gitlink "subtree" limitation is unrelated to git worktrees. Worktrees share the object DB + refs and are fully supported (cache is OID-keyed and working-tree-free).
  • 59 tests pass (49 prior + 6 taint + 4 warm-method).

Commit SHAs

  • f665c71: feat: graceful cache-taint detection with blobless fallback and rebuild
  • 25896c1: feat(harness): compare server-hook vs github-action cache warming
  • cec2886: chore: bump package version to 0.3.0