From d278a47b326c778ee7a5426ba5cda6675c1c5cec Mon Sep 17 00:00:00 2001 From: Gitea Actions Date: Thu, 3 Sep 2026 23:52:10 +0000 Subject: [PATCH] chore(docs): regenerate manual, man page, and component registry --- docs/fish-config.1 | 251 ++++++++++++++++++++++++++++++++++++++++++-- docs/fish-config.md | 243 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 472 insertions(+), 22 deletions(-) diff --git a/docs/fish-config.1 b/docs/fish-config.1 index 4dc2b03..a4f09f1 100644 --- a/docs/fish-config.1 +++ b/docs/fish-config.1 @@ -2491,11 +2491,16 @@ field signals a structure change. With no flags, runs both --agents and --plugins setup; --agents re-runs only the AGENTS.md / symlink step and --plugins only the plans/specs/ -devlogs wiring step. Managed paths are added to .gitignore. The sub-repo -is pulled first when it has an upstream, and at the end of every -invocation any uncommitted changes inside it are auto-committed so -agent-made edits are captured automatically. Fully idempotent: a second -run produces no output and no new commits. +devlogs wiring step. Managed paths are added to .gitignore. At the end +of every invocation any uncommitted changes inside the sub-repo are +auto-committed so agent-made edits are captured automatically. Fully +idempotent: a second run produces no output and no new commits. + +The commit is local only. Nothing here fetches or pushes: the wrappers +call this synchronously before starting an agent, and a network round +trip there blocks the launch until an unreachable remote times out and +can prompt for credentials with nobody watching. A sub-repo that has an +upstream is pulled by hand, on the user\[aq]s own schedule. Called automatically by the claude and agy wrappers on every invocation. @@ -2509,7 +2514,8 @@ Arguments: Exit Status: 0 Setup completed successfully - 1 Fatal error (git init failed, move failed, etc.) + 1 Fatal error (git init failed, move failed, the AGENTS/ commit was + rejected, or an unresolved rebase blocked it) Example: agents-init @@ -2519,6 +2525,196 @@ agents-init --quiet \f[R] .fi .PP +\f[B]Dependencies:\f[R] \f[V]_agents_repo_install_tools\f[R], +\f[V]_agents_repo_sync\f[R], \f[V]_agents_init_ensure_gitignore\f[R] +.PP +\f[B]Used by:\f[R] \f[V]agy\f[R], \f[V]claude\f[R] +.SS agents-vault +.IP +.nf +\f[C] +Synopsis: agents-vault [--link] [--push] [--restore] [--status] + [--adopt=SLUG] [--remote=URL] + [-v | --verbose] [-q | --quiet] [-s | --silent] + [-h | --help] + +Tracks curated agent memory in a host-scoped git repository so it +survives losing a machine. Complements agents-init, which scaffolds the +per-project AGENTS/ repo: that holds the shareable agent specification, +while this holds the personal memory an agent accumulates. + +Memory does not live in any project tree. Claude keeps it under +\[ti]/.claude/projects//memory/ and agy keeps its knowledge +store under \[ti]/.gemini/antigravity-cli/, both outside every repository. + +Entries are keyed by normalized git remote URL rather than by path, so +the key survives a machine change or a directory rename. The live +memory directory becomes a symlink into the vault, which makes backup +and restore the same operation: on a new machine, clone the vault once +and the first agents-vault run in any project relinks its memory +automatically. No manifest and no batch restore step are involved. + +Only curated memory is tracked. Session transcripts are excluded (tens +of megabytes per project, growing per session). Paths are allowlisted, +never denylisted, so nothing new upstream adds can leak in. The +allowlist runs all the way down, not just at the top: inside agy\[aq]s +knowledge store only *.md and *.json files are copied, so a credential +file or a conversation database appearing there is left behind by the +same rule rather than by being known about in advance. Symlinks found +inside the store are neither followed nor copied, so the allowlist +bounds whose files it collects and not merely what kind. + +Global state that belongs to no project is tracked as well. Claude\[aq]s +global memory directory (\[ti]/.claude/memory) is symlinked into the vault +exactly like per-project memory, and is only linked when one side or +the other already holds something, since that path does not exist by +default. agy\[aq]s knowledge store and settings.json are copied rather +than symlinked: agy partitions by conversation UUID rather than by +workspace, so it has no per-project slice, and its store sits beside +SQLite databases whose WAL sidecars must never be live-tracked inside +a git worktree. A failed copy is reported but is not fatal, because an +incomplete backup still leaves the agent working. + +Because the slug is derived from the remote, gaining, losing, or +rewriting a project\[aq]s origin changes it. Each run detects this by +reading the previous slug straight off the live memory symlink\[aq]s +target (no guessing) and migrates that entry to the new slug before +relinking, so memory accumulated under the old key is never orphaned. +If both the old and new entries already hold content the migration is +ambiguous and is refused; resolve it with --adopt=SLUG. An entry that +is already at the new key but holds no memory -- the shape a fresh +clone always produces, since git cannot track an empty directory -- is +moved aside, not deleted, and its origin log is folded into the +migrated entry, so a clone\[aq]s provenance survives the rename. The +rename is atomic: a failure at any point leaves the vault exactly as +it was and reports it. + +Run with no flags, the command scaffolds the vault, syncs global state, +links the current project, and commits. The other modes are exclusive +and each returns as soon as it is done: + +--status is a report and mutates nothing at all. It is answered before +the vault is even scaffolded, so asking what the vault looks like never +creates it, never copies agy state into it, and never claims +\[ti]/.claude/memory. A missing vault is reported rather than built. + +--restore walks every vault entry and relinks the live memory directory +of each one whose recorded origin path still exists, naming the rest so +they can be rebound by hand. It is a convenience: the ordinary per- +project run restores a cloned vault\[aq]s memory on its own. + +--adopt=SLUG rebinds the current project\[aq]s entry to SLUG, which is how +a machine-specific local-* key or an ambiguous migration is resolved. +SLUG must match [a-z0-9._-]+ and be neither \[dq].\[dq] nor \[dq]..\[dq] -- the charset +the slug formula itself emits -- since it is interpolated into a vault +path and handed to git mv. The rename and the relink are atomic: if the +live memory directory cannot be repinned onto the new entry the rename +is rolled back, so an ordinary run still finds the original entry. + +--remote=URL points the vault at a remote; --push commits, pulls, and +then pushes there. The pull happens only on this path. Committing needs +no remote at all, and both wrappers run this command synchronously +before starting an agent, so a fetch on the ordinary run would block +every launch for as long as an unreachable remote takes to time out -- +and would take the local commit down with it, leaving an offline +machine with no backup at all. + +Arguments: + --link Scaffold the vault and link this project\[aq]s memory; skip + the final commit + --push Commit, pull, then push to the vault remote + --restore Walk the vault, relink what is possible, report the rest + --status Show entries, link health, remote state, and orphans + --adopt=SLUG Bind the current project to an existing vault entry + --remote=URL Set the vault remote + -v, --verbose Print all per-step output (default) + -q, --quiet Print one summary line only if changes were made + -s, --silent Suppress all output; errors only + -h, --help Show this help message and exit + +Exit Status: + 0 Completed successfully + 1 Fatal error (vault unavailable, git failure, ambiguous migration, + invalid --adopt slug, nothing committed, or a push that did not + reach the remote) + +Returns: + --status prints its report on stdout: the vault path, the remote and + how far ahead of it the vault is, a warning for an unresolved rebase, + then one line per entry reading \[dq]linked\[dq] or \[dq]orphan\[dq], the slug, and the + file count. Every other mode prints only verbosity-gated progress + lines, and nothing at all when there was nothing to do. + +Notes: + Set __fish_agent_vault_dir to relocate the vault. Set + __fish_agent_vault_autopush to 1 to also push on wrapper launch; it + defaults to off because that push is synchronous and so delays every + launch. With it on, the pull and the push are each capped at 20 + seconds, since git has no connect timeout of its own and an + unreachable remote otherwise blocks for minutes. An explicit --push + is left uncapped: it is watched, and it must report what a real + transfer really did. The cap is timeout(1); on a system that somehow + lacks it, autopush says so on stderr and does not push at all, since + an unbounded network call in front of a launch is the one outcome the + cap exists to prevent. --push still works there. + + Over ssh the cap is delivered by setting GIT_SSH_COMMAND, which would + silently outrank the user\[aq]s own configuration -- so it is not set at + all when GIT_SSH_COMMAND is already exported or git\[aq]s core.sshCommand + is configured. A vault remote reachable only through a particular + identity file or ssh wrapper therefore keeps it, uncapped, rather than + failing to authenticate for the sake of a timeout. + + --adopt rebinds an entry; it does not pin its name. The slug is + re-derived from the project on every run, so the next ordinary run + migrates the adopted entry straight back to the canonical key, carrying + the memory and the live link with it. That is the point rather than a + wart: adopting is how a mismatched or ambiguous binding is repaired, not + how an entry is given a permanent name of its own. + + An entry\[aq]s origin file records the project path once, when the entry is + created, and is never refreshed. A project that later moves on disk + therefore keeps a stale path there and --restore degrades to reporting + it as unplaceable rather than relinking the wrong directory. Rebind + such an entry from the project itself with --adopt=SLUG. + + The agy knowledge copy is merge-only. Files are copied into the vault + but are never removed from it, so a fact deleted upstream from agy\[aq]s + knowledge store persists in the vault indefinitely, and a restore or a + fresh clone brings it back. Prune such an entry from the vault by hand + if it must really be gone. + + Three further variables exist only so the test suite can run against + throwaway directories instead of the real home, and are not meant for + everyday use. __fish_agent_vault_claude_root overrides Claude\[aq]s + per-project directory (\[ti]/.claude/projects), which is where the + per-project memory directories live. __fish_agent_vault_claude_home + overrides Claude\[aq]s home directory (\[ti]/.claude), whose memory + subdirectory holds the global memory. Those two name different paths + and setting one has no effect on the other. + __fish_agent_vault_agy_root overrides agy\[aq]s state directory + (\[ti]/.gemini/antigravity-cli), which is only ever read from. + + The last two are not optional niceties. Without them, a test run on a + machine that has a real global memory directory would move it into a + throwaway directory and leave a dangling symlink behind, which is + strictly worse than having had no backup at all. + +Example: +agents-vault +agents-vault --status +agents-vault --remote=https://git.rootiest.dev/rootiest/agent-vault.git +agents-vault --push +agents-vault --adopt=git.rootiest.dev-rootiest-fish-config +agents-vault --restore +\f[R] +.fi +.PP +\f[B]Dependencies:\f[R] \f[V]_agents_vault_dir\f[R], +\f[V]_agents_repo_slug\f[R], \f[V]_agents_repo_local_slug\f[R], +\f[V]_agents_repo_ensure_symlink\f[R], \f[V]_agents_repo_sync\f[R], +\f[V]_agents_repo_install_tools\f[R], \f[V]git\f[R], \f[V]hostname\f[R] +.PP \f[B]Used by:\f[R] \f[V]agy\f[R], \f[V]claude\f[R] .SS agy .IP @@ -2530,9 +2726,14 @@ Wrapper for the agy Antigravity AI CLI that ensures the AGENTS/ sub-repository is initialized and any agent-made changes are committed before launch. Delegates all scaffold and commit logic to agents-init --quiet (full setup), which ensures AGENTS/ is scaffolded and CLAUDE.md -is symlinked to AGENTS/AGENTS.md in the current project. Arguments are -forwarded verbatim to the real agy binary, except for -r/--resume which -are translated to -c/--continue. +is symlinked to AGENTS/AGENTS.md in the current project. + +Also syncs the host-scoped agent memory vault (agents-vault). agy has +no session-end hook, so its memory is captured on the next launch +rather than at session end. + +Arguments are forwarded verbatim to the real agy binary, except for +-r/--resume which are translated to -c/--continue. Opinionated component (C1): when disabled via __fish_config_op_aliases (or the __fish_config_opinionated master), the command is passed through @@ -2552,7 +2753,7 @@ agy models \f[R] .fi .PP -\f[B]Dependencies:\f[R] \f[V]agents-init\f[R] +\f[B]Dependencies:\f[R] \f[V]agents-init\f[R], \f[V]agents-vault\f[R] .SS antigravity-ide .IP .nf @@ -2580,6 +2781,12 @@ initialized and any agent-made changes are committed before launch. Delegates all scaffold and commit logic to agents-init --quiet (full setup), which ensures AGENTS/ is scaffolded and CLAUDE.md is symlinked to AGENTS/AGENTS.md in the current project. + +Also syncs the host-scoped agent memory vault (agents-vault), which +tracks curated memory living outside the project tree. The vault +commits on launch but does not push; pushing happens from the Claude +Code SessionEnd hook or an explicit agents-vault --push. + All arguments are forwarded verbatim to the real claude binary. Opinionated component (C1): when disabled via __fish_config_op_aliases @@ -2599,7 +2806,7 @@ claude \[dq]Explain the recent changes\[dq] \f[R] .fi .PP -\f[B]Dependencies:\f[R] \f[V]agents-init\f[R] +\f[B]Dependencies:\f[R] \f[V]agents-init\f[R], \f[V]agents-vault\f[R] .SS claude-docs .IP .nf @@ -3893,6 +4100,28 @@ Run \f[V]config-settings\f[R] and press Enter on a category row to browse and toggle its sub-categories interactively. See Components Reference for the full sub-category breakdown of every category. +.SS Agent Memory Vault +.IP +.nf +\f[C] +__fish_agent_vault_dir + +Overrides the agent memory vault location. Defaults to +$XDG_DATA_HOME/agent-vault (or \[ti]/.local/share/agent-vault). + +__fish_agent_vault_autopush + +When set to 1, agents-vault also pushes on wrapper launch. Defaults to +off: the vault commits locally on every launch and pushes from the +Claude Code SessionEnd hook or an explicit agents-vault --push. That +push is synchronous, so with autopush on the pull and the push are +each capped at 20 seconds; an explicit --push is left uncapped. +\f[R] +.fi +.PP +NOTE: With autopush off and no SessionEnd hook installed, backups +accumulate locally and never reach the remote. +Run \f[V]agents-vault --status\f[R] to check how far ahead the vault is. .SS Prompt and Theme .SS Starship .PP diff --git a/docs/fish-config.md b/docs/fish-config.md index fd73508..44ee9ef 100644 --- a/docs/fish-config.md +++ b/docs/fish-config.md @@ -1975,11 +1975,16 @@ functions). They are active in all interactive sessions. With no flags, runs both --agents and --plugins setup; --agents re-runs only the AGENTS.md / symlink step and --plugins only the plans/specs/ - devlogs wiring step. Managed paths are added to .gitignore. The sub-repo - is pulled first when it has an upstream, and at the end of every - invocation any uncommitted changes inside it are auto-committed so - agent-made edits are captured automatically. Fully idempotent: a second - run produces no output and no new commits. + devlogs wiring step. Managed paths are added to .gitignore. At the end + of every invocation any uncommitted changes inside the sub-repo are + auto-committed so agent-made edits are captured automatically. Fully + idempotent: a second run produces no output and no new commits. + + The commit is local only. Nothing here fetches or pushes: the wrappers + call this synchronously before starting an agent, and a network round + trip there blocks the launch until an unreachable remote times out and + can prompt for credentials with nobody watching. A sub-repo that has an + upstream is pulled by hand, on the user's own schedule. Called automatically by the claude and agy wrappers on every invocation. @@ -1993,7 +1998,8 @@ functions). They are active in all interactive sessions. Exit Status: 0 Setup completed successfully - 1 Fatal error (git init failed, move failed, etc.) + 1 Fatal error (git init failed, move failed, the AGENTS/ commit was + rejected, or an unresolved rebase blocked it) Example: agents-init @@ -2001,6 +2007,189 @@ functions). They are active in all interactive sessions. agents-init --plugins agents-init --quiet +**Dependencies:** `_agents_repo_install_tools`, `_agents_repo_sync`, `_agents_init_ensure_gitignore` + +**Used by:** `agy`, `claude` + +### agents-vault + + Synopsis: agents-vault [--link] [--push] [--restore] [--status] + [--adopt=SLUG] [--remote=URL] + [-v | --verbose] [-q | --quiet] [-s | --silent] + [-h | --help] + + Tracks curated agent memory in a host-scoped git repository so it + survives losing a machine. Complements agents-init, which scaffolds the + per-project AGENTS/ repo: that holds the shareable agent specification, + while this holds the personal memory an agent accumulates. + + Memory does not live in any project tree. Claude keeps it under + ~/.claude/projects//memory/ and agy keeps its knowledge + store under ~/.gemini/antigravity-cli/, both outside every repository. + + Entries are keyed by normalized git remote URL rather than by path, so + the key survives a machine change or a directory rename. The live + memory directory becomes a symlink into the vault, which makes backup + and restore the same operation: on a new machine, clone the vault once + and the first agents-vault run in any project relinks its memory + automatically. No manifest and no batch restore step are involved. + + Only curated memory is tracked. Session transcripts are excluded (tens + of megabytes per project, growing per session). Paths are allowlisted, + never denylisted, so nothing new upstream adds can leak in. The + allowlist runs all the way down, not just at the top: inside agy's + knowledge store only *.md and *.json files are copied, so a credential + file or a conversation database appearing there is left behind by the + same rule rather than by being known about in advance. Symlinks found + inside the store are neither followed nor copied, so the allowlist + bounds whose files it collects and not merely what kind. + + Global state that belongs to no project is tracked as well. Claude's + global memory directory (~/.claude/memory) is symlinked into the vault + exactly like per-project memory, and is only linked when one side or + the other already holds something, since that path does not exist by + default. agy's knowledge store and settings.json are copied rather + than symlinked: agy partitions by conversation UUID rather than by + workspace, so it has no per-project slice, and its store sits beside + SQLite databases whose WAL sidecars must never be live-tracked inside + a git worktree. A failed copy is reported but is not fatal, because an + incomplete backup still leaves the agent working. + + Because the slug is derived from the remote, gaining, losing, or + rewriting a project's origin changes it. Each run detects this by + reading the previous slug straight off the live memory symlink's + target (no guessing) and migrates that entry to the new slug before + relinking, so memory accumulated under the old key is never orphaned. + If both the old and new entries already hold content the migration is + ambiguous and is refused; resolve it with --adopt=SLUG. An entry that + is already at the new key but holds no memory -- the shape a fresh + clone always produces, since git cannot track an empty directory -- is + moved aside, not deleted, and its origin log is folded into the + migrated entry, so a clone's provenance survives the rename. The + rename is atomic: a failure at any point leaves the vault exactly as + it was and reports it. + + Run with no flags, the command scaffolds the vault, syncs global state, + links the current project, and commits. The other modes are exclusive + and each returns as soon as it is done: + + --status is a report and mutates nothing at all. It is answered before + the vault is even scaffolded, so asking what the vault looks like never + creates it, never copies agy state into it, and never claims + ~/.claude/memory. A missing vault is reported rather than built. + + --restore walks every vault entry and relinks the live memory directory + of each one whose recorded origin path still exists, naming the rest so + they can be rebound by hand. It is a convenience: the ordinary per- + project run restores a cloned vault's memory on its own. + + --adopt=SLUG rebinds the current project's entry to SLUG, which is how + a machine-specific local-* key or an ambiguous migration is resolved. + SLUG must match [a-z0-9._-]+ and be neither "." nor ".." -- the charset + the slug formula itself emits -- since it is interpolated into a vault + path and handed to git mv. The rename and the relink are atomic: if the + live memory directory cannot be repinned onto the new entry the rename + is rolled back, so an ordinary run still finds the original entry. + + --remote=URL points the vault at a remote; --push commits, pulls, and + then pushes there. The pull happens only on this path. Committing needs + no remote at all, and both wrappers run this command synchronously + before starting an agent, so a fetch on the ordinary run would block + every launch for as long as an unreachable remote takes to time out -- + and would take the local commit down with it, leaving an offline + machine with no backup at all. + + Arguments: + --link Scaffold the vault and link this project's memory; skip + the final commit + --push Commit, pull, then push to the vault remote + --restore Walk the vault, relink what is possible, report the rest + --status Show entries, link health, remote state, and orphans + --adopt=SLUG Bind the current project to an existing vault entry + --remote=URL Set the vault remote + -v, --verbose Print all per-step output (default) + -q, --quiet Print one summary line only if changes were made + -s, --silent Suppress all output; errors only + -h, --help Show this help message and exit + + Exit Status: + 0 Completed successfully + 1 Fatal error (vault unavailable, git failure, ambiguous migration, + invalid --adopt slug, nothing committed, or a push that did not + reach the remote) + + Returns: + --status prints its report on stdout: the vault path, the remote and + how far ahead of it the vault is, a warning for an unresolved rebase, + then one line per entry reading "linked" or "orphan", the slug, and the + file count. Every other mode prints only verbosity-gated progress + lines, and nothing at all when there was nothing to do. + + Notes: + Set __fish_agent_vault_dir to relocate the vault. Set + __fish_agent_vault_autopush to 1 to also push on wrapper launch; it + defaults to off because that push is synchronous and so delays every + launch. With it on, the pull and the push are each capped at 20 + seconds, since git has no connect timeout of its own and an + unreachable remote otherwise blocks for minutes. An explicit --push + is left uncapped: it is watched, and it must report what a real + transfer really did. The cap is timeout(1); on a system that somehow + lacks it, autopush says so on stderr and does not push at all, since + an unbounded network call in front of a launch is the one outcome the + cap exists to prevent. --push still works there. + + Over ssh the cap is delivered by setting GIT_SSH_COMMAND, which would + silently outrank the user's own configuration -- so it is not set at + all when GIT_SSH_COMMAND is already exported or git's core.sshCommand + is configured. A vault remote reachable only through a particular + identity file or ssh wrapper therefore keeps it, uncapped, rather than + failing to authenticate for the sake of a timeout. + + --adopt rebinds an entry; it does not pin its name. The slug is + re-derived from the project on every run, so the next ordinary run + migrates the adopted entry straight back to the canonical key, carrying + the memory and the live link with it. That is the point rather than a + wart: adopting is how a mismatched or ambiguous binding is repaired, not + how an entry is given a permanent name of its own. + + An entry's origin file records the project path once, when the entry is + created, and is never refreshed. A project that later moves on disk + therefore keeps a stale path there and --restore degrades to reporting + it as unplaceable rather than relinking the wrong directory. Rebind + such an entry from the project itself with --adopt=SLUG. + + The agy knowledge copy is merge-only. Files are copied into the vault + but are never removed from it, so a fact deleted upstream from agy's + knowledge store persists in the vault indefinitely, and a restore or a + fresh clone brings it back. Prune such an entry from the vault by hand + if it must really be gone. + + Three further variables exist only so the test suite can run against + throwaway directories instead of the real home, and are not meant for + everyday use. __fish_agent_vault_claude_root overrides Claude's + per-project directory (~/.claude/projects), which is where the + per-project memory directories live. __fish_agent_vault_claude_home + overrides Claude's home directory (~/.claude), whose memory + subdirectory holds the global memory. Those two name different paths + and setting one has no effect on the other. + __fish_agent_vault_agy_root overrides agy's state directory + (~/.gemini/antigravity-cli), which is only ever read from. + + The last two are not optional niceties. Without them, a test run on a + machine that has a real global memory directory would move it into a + throwaway directory and leave a dangling symlink behind, which is + strictly worse than having had no backup at all. + + Example: + agents-vault + agents-vault --status + agents-vault --remote=https://git.rootiest.dev/rootiest/agent-vault.git + agents-vault --push + agents-vault --adopt=git.rootiest.dev-rootiest-fish-config + agents-vault --restore + +**Dependencies:** `_agents_vault_dir`, `_agents_repo_slug`, `_agents_repo_local_slug`, `_agents_repo_ensure_symlink`, `_agents_repo_sync`, `_agents_repo_install_tools`, `git`, `hostname` + **Used by:** `agy`, `claude` ### agy @@ -2011,9 +2200,14 @@ functions). They are active in all interactive sessions. sub-repository is initialized and any agent-made changes are committed before launch. Delegates all scaffold and commit logic to agents-init --quiet (full setup), which ensures AGENTS/ is scaffolded and CLAUDE.md - is symlinked to AGENTS/AGENTS.md in the current project. Arguments are - forwarded verbatim to the real agy binary, except for -r/--resume which - are translated to -c/--continue. + is symlinked to AGENTS/AGENTS.md in the current project. + + Also syncs the host-scoped agent memory vault (agents-vault). agy has + no session-end hook, so its memory is captured on the next launch + rather than at session end. + + Arguments are forwarded verbatim to the real agy binary, except for + -r/--resume which are translated to -c/--continue. Opinionated component (C1): when disabled via __fish_config_op_aliases (or the __fish_config_opinionated master), the command is passed through @@ -2031,7 +2225,7 @@ functions). They are active in all interactive sessions. agy -i "initial prompt" agy models -**Dependencies:** `agents-init` +**Dependencies:** `agents-init`, `agents-vault` ### antigravity-ide @@ -2055,6 +2249,12 @@ functions). They are active in all interactive sessions. Delegates all scaffold and commit logic to agents-init --quiet (full setup), which ensures AGENTS/ is scaffolded and CLAUDE.md is symlinked to AGENTS/AGENTS.md in the current project. + + Also syncs the host-scoped agent memory vault (agents-vault), which + tracks curated memory living outside the project tree. The vault + commits on launch but does not push; pushing happens from the Claude + Code SessionEnd hook or an explicit agents-vault --push. + All arguments are forwarded verbatim to the real claude binary. Opinionated component (C1): when disabled via __fish_config_op_aliases @@ -2072,7 +2272,7 @@ functions). They are active in all interactive sessions. claude --resume claude "Explain the recent changes" -**Dependencies:** `agents-init` +**Dependencies:** `agents-init`, `agents-vault` ### claude-docs @@ -3017,6 +3217,27 @@ interactively. See Components Reference for the full sub-category breakdown of every category. +## Agent Memory Vault + + __fish_agent_vault_dir + + Overrides the agent memory vault location. Defaults to + $XDG_DATA_HOME/agent-vault (or ~/.local/share/agent-vault). + + __fish_agent_vault_autopush + + When set to 1, agents-vault also pushes on wrapper launch. Defaults to + off: the vault commits locally on every launch and pushes from the + Claude Code SessionEnd hook or an explicit agents-vault --push. That + push is synchronous, so with autopush on the pull and the push are + each capped at 20 seconds; an explicit --push is left uncapped. + +NOTE: +With autopush off and no SessionEnd hook installed, backups accumulate +locally and never reach the remote. Run `agents-vault --status` to check +how far ahead the vault is. + + ## Prompt and Theme ### Starship