Skip to content

Persistent artifacts: FileArtifactStore, artifact_list, tool-aware saves - #53

Merged
ayman3000 merged 1 commit into
mainfrom
feat/persistent-artifacts
Aug 24, 2026
Merged

Persistent artifacts: FileArtifactStore, artifact_list, tool-aware saves#53
ayman3000 merged 1 commit into
mainfrom
feat/persistent-artifacts

Conversation

@ayman3000

Copy link
Copy Markdown
Owner

SAK half of the persistent-artifacts spec (Naseem repo: docs/superpowers/specs/2026-08-24-persistent-artifacts-design.md):

  • FileArtifactStore (new): two-tier — memory tier keeps everything for the running session; disk tier persists the persistFilter(toolName)-approved subset (content-first, sidecar-last atomic writes; corrupt entries self-heal; oldest-first eviction over maxBytes, default 25 MB).
  • ArtifactStore.save now requires toolName: (protocol requirement for dynamic dispatch — a protocol-extension default was being selected over the actor's implementation, silently dropping the name; legacy 3-arg is the extension convenience). Only in-repo conformers existed.
  • artifact_list (new tool): newest-first summaries (id, tool, description, age, size) across both tiers; auto-registers via ContextManager.artifactTools when the store conforms to ListableArtifactStore.

Tests: 5 new (restart round-trip, filter, eviction, both-tier listing, ContextManager toolName pass-through); full suite 267/267.

🤖 Generated with Claude Code

Two-tier store: memory keeps everything for the session (unchanged
behavior); a disk tier under a caller-chosen directory persists the subset
approved by persistFilter(toolName) with an oldest-first byte budget, so
tool history survives restarts — retrieved strictly on demand.

ArtifactStore.save now requires the tool-aware signature (legacy 3-arg
lives in a protocol extension forwarding dynamically); ContextManager
passes the producing tool's name. artifact_list (new) enumerates both
tiers for discovery and auto-registers when the store is listable.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ayman3000
ayman3000 merged commit 1fe7c85 into main Aug 24, 2026
@ayman3000
ayman3000 deleted the feat/persistent-artifacts branch August 24, 2026 09:27
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