agnostic-ai v0.84.0: share memory and handoffs across worktrees Agnostic-ai released v0.84.0, adding shared personal memory per repository and cross-worktree handoffs, with the `memory.personal: repo` setting now written by `agnostic-ai init --memory` for new Git projects. The release requires project installs to update `package.json`, the lockfile and `requires` together because Claude Code's new `SubagentStart` memory hook runs the project's own `node_modules/.bin/agnostic-ai` and fails when that binary does not match the pinned version. Codex users who enable `handoff-hook` must approve the changed hooks in `/hooks`, and `lint` adds LINT046 (duplicate top-level key), LINT044 (hidden characters in project memory) and LINT043 (facts in Claude Code's store missing from personal memory). Upgrading from v0.83.0 Stop any running agnostic-ai watch process before updating the installation or project config. Project installs must change the dependency and lockfile together. Claude Code's new SubagentStart memory hook runs the project's own node modules/.bin/agnostic-ai when one exists. The hook exists when you use the memory built-in and Claude Code loads personal memory itself. If that binary does not match the version pinned in package.json or requires , the hook fails and names both versions, until you reinstall. Update package.json , the lockfile and requires in one change, then install. agnostic-ai project --bootstrap reinstalls from the lockfile, so the lockfile must already hold v0.84.0. On Windows the hook needs sh on PATH, for example from Git Bash. See project version checks https://agnostic-ai.org/docs/cli-reference/maintain/ project and Claude Code's own memory https://agnostic-ai.org/docs/memory/ claude-code-s-own-memory . Install through your existing package manager. For a global npm installation: npm install -g agnostic-ai@0.84.0 For an exact project config pin, agnostic-ai upgrade --requires updates requires and the schema URL to the installed version, then syncs. It also replaces minimum or range requirements and local overrides. To keep a deliberate minimum or range, retain that value, update the schema URL to v0.84.0 , review agnostic-ai migrate --dry-run , and run agnostic-ai sync . See upgrade behavior https://agnostic-ai.org/docs/cli-reference/maintain/ upgrade . The handoff and memory built-ins changed text, so sync --check reports drift until you run agnostic-ai sync . Finish with agnostic-ai sync --check , then restart watch. Codex users who enable handoff-hook approve the changed hooks once. Codex marks a changed hook for review and skips it until you trust it Codex hooks https://learn.chatgpt.com/docs/hooks.md . After sync, open /hooks in Codex and approve the handoff hooks. agnostic-ai doctor -t codex fails while a handler is untrusted. lint has new findings. See lint codes https://agnostic-ai.org/docs/cli-reference/check/ lint . - LINT046 is a warning for a spec that writes one top-level key twice. import cursor in v0.83.0 could leave a repeated workspaces line in a skill. Remove the extra line from each affected spec. lint --strict fails until you do. - With the memory built-in, LINT044 is an error when project memory holds hidden characters such as zero-width or bidirectional controls. Run agnostic-ai memory lint and remove what it reports. - With the memory built-in, LINT043 is a warning when Claude Code's own store holds facts that personal memory lacks. Copy them with agnostic-ai memory import --from claude see below . What agnostic-ai changed Start one personal memory per repository, and keep what Claude Code saved memory.personal: repo already gives every worktree of a repository one personal memory. Without it, each checkout keeps its own, and deleting a worktree deletes what it learned. For a new Git project, agnostic-ai init --memory now turns on shared memory and writes that setting to a new agnostic-ai.local.yaml . For an existing project, add it yourself and run agnostic-ai sync : memory: personal: repo agnostic-ai memory path prints the shared folder under ~/.agnostic-ai/local/memory/ . After a mode switch, the first sync copies your facts when the new folder has none. Otherwise lint names the facts left behind, and agnostic-ai memory import --from checkout copies them --from repo when you switch back . A linked worktree follows the main checkout's setting. Some tools need the managed .gitignore block gitignore.enabled: true , which init sets to receive the folder path, and cloud agents never see personal memory. See one store per repository https://agnostic-ai.org/docs/memory/ one-store-per-repository . Claude Code now loads your personal list as its own memory, and a SubagentStart hook gives it to each subagent. The first sync copies facts Claude Code saved earlier when personal memory is empty. Otherwise copy them yourself, dry run first: agnostic-ai memory import --from claude --dry-run agnostic-ai memory import --from claude The dry run lists each fact with its description. --only