Skip to content

feat: agent-memory v0.1.0 — cross-session memory for coding agents - #1

Merged
haoranc merged 1 commit into
mainfrom
release/v0.1.0
Sep 7, 2026
Merged

feat: agent-memory v0.1.0 — cross-session memory for coding agents#1
haoranc merged 1 commit into
mainfrom
release/v0.1.0

Conversation

@spbkgw-beep

Copy link
Copy Markdown
Contributor

First release of agent-memory-cli — cross-session memory for coding agents, as plain files in git, with no server and no runtime dependencies.

What lands

The agent-memory command, operating a two-tier memory home:

init, org init scaffold the home from bundled templates, bind a repository
setup claude|codex install the runtime's session-start hook and memory workflow file
startup print the session-start read manifest — files and readability, never content
capture, recall record a decision; replay the manifest's files within a character budget
debrief write publish a session record, atomically, never replacing one
archive, restore move supplementary memory files without following a symlink
status, doctor where the home resolved, whether layout and sync are sound
enable/clone/pull/push/disable operate the home as its own git repository

Git sync is optional and sits behind an explicit publication allowlist: a memory commit carries only the paths the allowlist selects, and a never-synced name such as keys/ is refused at any depth.

The release workflow

.github/workflows/release.yml — a v* tag runs make preflight, checks the tag against the packaged version, and publishes to PyPI with build attestations from the pypi environment.

Action Tag Pinned SHA
actions/checkout v7.0.1 3d3c42e5aac5ba805825da76410c181273ba90b1
actions/setup-python v7.0.0 5fda3b95a4ea91299a34e894583c3862153e4b97
actions/upload-artifact v6.0.0 b7c566a772e6b6bfb58ed0dc250532a479d7789f
actions/download-artifact v7.0.0 37930b1c2abaa49bbe596cd826c3c89aef350131
pypa/gh-action-pypi-publish v1.14.2 dc37677b2e1c63e2034f94d8a5b11f265b73ba33

All five pinned to full commit SHAs, each verified against the GitHub API. id-token: write is scoped to the publish job alone; the build job and the workflow default are contents: read.

The version assert reads the distribution name — importlib.metadata.version("agent-memory-cli") — not the console script. The two differ, and asserting on the command would raise PackageNotFoundError.

Verified

Run from this tree, not from where it was authored:

  • make preflight — ruff clean, 654 passed / 46 skipped, both artifacts built, twine check PASSED on each
  • Built as agent_memory_cli-0.1.0.tar.gz and -0.1.0-py3-none-any.whl; wheel and sdist carry an identical set of 8 template resources
  • All 12 in-repo documentation links resolve, 0 broken; the screenshot referenced by the README is present

Also in this diff

LICENSE had the unedited Apache template line Copyright [yyyy] [name of copyright owner]; it now names the year and holder. That is the only change to a file that already existed here besides the README.

After this merges

Tag v0.1.0 on main at the merge commit to fire the release workflow, and approve the pypi environment if it gates the publish job. The Trusted Publisher is bound to this repository, workflow release.yml, environment pypi.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GeBdcy43H9CZkcjk4Jvt8n

First release of the agent-memory-cli distribution, which installs the
agent-memory command. Python 3.10+, no runtime dependencies.

Creates and operates a two-tier memory home. `init` and `org init` scaffold it
from bundled templates and bind a repository; `setup claude|codex` installs a
coding agent's session-start hook and memory workflow file; `startup` prints
the session-start read manifest; `capture` and `recall` carry decisions across
sessions; `debrief write` publishes session records; `archive` and `restore`
move supplementary files; `status` and `doctor` report where the home resolved
and whether its layout and sync are sound. Optional git sync operates the home
as its own repository behind an explicit publication allowlist that refuses
never-synced names at any depth.

Adds the tag-triggered release workflow: a `v*` tag runs preflight, checks the
tag against the packaged distribution version, and publishes to PyPI with
build attestations from the `pypi` environment. Every action is pinned to a
full commit SHA.

Fills in the Apache copyright line, which was still the unedited template
placeholder.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GeBdcy43H9CZkcjk4Jvt8n
@haoranc
haoranc merged commit 30aff71 into main Sep 7, 2026
4 checks passed
@haoranc
haoranc deleted the release/v0.1.0 branch September 7, 2026 04:55
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.

2 participants