agentdir-cli 0.7.7__tar.gz → 0.7.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. {agentdir_cli-0.7.7/src/agentdir_cli.egg-info → agentdir_cli-0.7.8}/PKG-INFO +15 -3
  2. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/README.md +14 -2
  3. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/AGENTIC_CODING.md +10 -1
  4. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/INSTALL.md +17 -6
  5. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/PI_PACKAGE.md +5 -3
  6. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/RELEASING.md +15 -15
  7. agentdir_cli-0.7.8/docs/releases/v0.7.8.md +50 -0
  8. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/package.json +2 -2
  9. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/pyproject.toml +1 -1
  10. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/scripts/install.sh +3 -1
  11. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/scripts/rollback.sh +1 -1
  12. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/skills/agentdir/SKILL.md +1 -1
  13. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/__init__.py +1 -1
  14. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/skills.py +6 -3
  15. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8/src/agentdir_cli.egg-info}/PKG-INFO +15 -3
  16. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir_cli.egg-info/SOURCES.txt +2 -0
  17. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/tests/test_agent_first.py +20 -1
  18. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/tests/test_environment.py +1 -0
  19. agentdir_cli-0.7.8/tests/test_install_script.py +14 -0
  20. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/tests/test_pi_package.py +3 -2
  21. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/LICENSE +0 -0
  22. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/MANIFEST.in +0 -0
  23. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/DEMO.md +0 -0
  24. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/PRD.md +0 -0
  25. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/TECH_BRIEF.md +0 -0
  26. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/assets/agentdir-overview.png +0 -0
  27. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/investigations/2026-05-12-cross-repo-ergonomics-lanes.md +0 -0
  28. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/investigations/2026-05-12-rag-vector-scenarios.md +0 -0
  29. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.1.0.md +0 -0
  30. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.1.1.md +0 -0
  31. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.2.0.md +0 -0
  32. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.3.0.md +0 -0
  33. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.3.1.md +0 -0
  34. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.3.2.md +0 -0
  35. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.3.3.md +0 -0
  36. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.3.4.md +0 -0
  37. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.4.0.md +0 -0
  38. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.5.0.md +0 -0
  39. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.5.1.md +0 -0
  40. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.5.2.md +0 -0
  41. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.5.3.md +0 -0
  42. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.6.0.md +0 -0
  43. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.7.0.md +0 -0
  44. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.7.1.md +0 -0
  45. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.7.2.md +0 -0
  46. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.7.3.md +0 -0
  47. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.7.4.md +0 -0
  48. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.7.5.md +0 -0
  49. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.7.6.md +0 -0
  50. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/docs/releases/v0.7.7.md +0 -0
  51. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/examples/dogfood-session.sh +0 -0
  52. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/setup.cfg +0 -0
  53. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/__main__.py +0 -0
  54. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/actors.py +0 -0
  55. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/artifacts.py +0 -0
  56. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/audit.py +0 -0
  57. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/capture.py +0 -0
  58. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/cli.py +0 -0
  59. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/context.py +0 -0
  60. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/control.py +0 -0
  61. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/daemon.py +0 -0
  62. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/doctor.py +0 -0
  63. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/envelope.py +0 -0
  64. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/environment.py +0 -0
  65. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/events.py +0 -0
  66. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/federation.py +0 -0
  67. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/fsutil.py +0 -0
  68. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/git.py +0 -0
  69. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/gitignore.py +0 -0
  70. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/hooks.py +0 -0
  71. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/index.py +0 -0
  72. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/mailbox.py +0 -0
  73. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/memory.py +0 -0
  74. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/query.py +0 -0
  75. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/redaction.py +0 -0
  76. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/rendering.py +0 -0
  77. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/replay.py +0 -0
  78. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/retention.py +0 -0
  79. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/review.py +0 -0
  80. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/secrets.py +0 -0
  81. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/sessions.py +0 -0
  82. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/store.py +0 -0
  83. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir/upgrade.py +0 -0
  84. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir_cli.egg-info/dependency_links.txt +0 -0
  85. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir_cli.egg-info/entry_points.txt +0 -0
  86. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir_cli.egg-info/requires.txt +0 -0
  87. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/src/agentdir_cli.egg-info/top_level.txt +0 -0
  88. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/tests/test_agent_trust.py +0 -0
  89. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/tests/test_audit.py +0 -0
  90. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/tests/test_truncation.py +0 -0
  91. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/tests/test_v1_behavior.py +0 -0
  92. {agentdir_cli-0.7.7 → agentdir_cli-0.7.8}/tests/test_vector_memory.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentdir-cli
3
- Version: 0.7.7
3
+ Version: 0.7.8
4
4
  Summary: Local-first Maildir-inspired work mailstore for software agents
5
5
  Author: AgentDir Contributors
6
6
  License-Expression: MIT
@@ -128,7 +128,8 @@ curl -fsSL https://raw.githubusercontent.com/jstxn/agentdir/main/scripts/install
128
128
 
129
129
  The installer uses `pipx` when available. Otherwise it creates a self-contained
130
130
  virtual environment under `~/.local/share/agentdir` and links the CLI into
131
- `~/.local/bin`.
131
+ `~/.local/bin`. It does not edit Git configuration or ignore files; after
132
+ installation it prints the explicit adoption choices.
132
133
 
133
134
  Verify:
134
135
 
@@ -155,7 +156,7 @@ available automatically during coding tasks:
155
156
  Package page: [@jstxn/agentdir-pi](https://pi.dev/packages/@jstxn/agentdir-pi)
156
157
 
157
158
  ```bash
158
- pi install npm:@jstxn/agentdir-pi@0.7.7
159
+ pi install npm:@jstxn/agentdir-pi@0.7.8
159
160
  # or install directly from a local checkout / release tag:
160
161
  pi install /absolute/path/to/agentdir
161
162
  pi install git:github.com/jstxn/agentdir@<tag-or-commit>
@@ -174,6 +175,13 @@ Run once from a git repository:
174
175
  agentdir adopt
175
176
  ```
176
177
 
178
+ Coding agents use the non-interactive form below so `.agentdir/` is ignored at
179
+ the user level without creating a repository `.gitignore` change:
180
+
181
+ ```bash
182
+ agentdir adopt --gitignore user
183
+ ```
184
+
177
185
  This is intentionally boring setup. It prepares the repository once, then agents
178
186
  operate AgentDir during normal coding work:
179
187
 
@@ -219,6 +227,10 @@ agentdir adopt --gitignore user # write the user-level Git excludes file
219
227
  agentdir adopt --gitignore none # leave ignore files unchanged
220
228
  ```
221
229
 
230
+ Generated AgentDir guidance selects `--gitignore user` by default. The plain
231
+ interactive command still prompts, and all three explicit choices remain
232
+ available.
233
+
222
234
  Undo managed setup while keeping the `.agentdir` evidence store:
223
235
 
224
236
  ```bash
@@ -95,7 +95,8 @@ curl -fsSL https://raw.githubusercontent.com/jstxn/agentdir/main/scripts/install
95
95
 
96
96
  The installer uses `pipx` when available. Otherwise it creates a self-contained
97
97
  virtual environment under `~/.local/share/agentdir` and links the CLI into
98
- `~/.local/bin`.
98
+ `~/.local/bin`. It does not edit Git configuration or ignore files; after
99
+ installation it prints the explicit adoption choices.
99
100
 
100
101
  Verify:
101
102
 
@@ -122,7 +123,7 @@ available automatically during coding tasks:
122
123
  Package page: [@jstxn/agentdir-pi](https://pi.dev/packages/@jstxn/agentdir-pi)
123
124
 
124
125
  ```bash
125
- pi install npm:@jstxn/agentdir-pi@0.7.7
126
+ pi install npm:@jstxn/agentdir-pi@0.7.8
126
127
  # or install directly from a local checkout / release tag:
127
128
  pi install /absolute/path/to/agentdir
128
129
  pi install git:github.com/jstxn/agentdir@<tag-or-commit>
@@ -141,6 +142,13 @@ Run once from a git repository:
141
142
  agentdir adopt
142
143
  ```
143
144
 
145
+ Coding agents use the non-interactive form below so `.agentdir/` is ignored at
146
+ the user level without creating a repository `.gitignore` change:
147
+
148
+ ```bash
149
+ agentdir adopt --gitignore user
150
+ ```
151
+
144
152
  This is intentionally boring setup. It prepares the repository once, then agents
145
153
  operate AgentDir during normal coding work:
146
154
 
@@ -186,6 +194,10 @@ agentdir adopt --gitignore user # write the user-level Git excludes file
186
194
  agentdir adopt --gitignore none # leave ignore files unchanged
187
195
  ```
188
196
 
197
+ Generated AgentDir guidance selects `--gitignore user` by default. The plain
198
+ interactive command still prompts, and all three explicit choices remain
199
+ available.
200
+
189
201
  Undo managed setup while keeping the `.agentdir` evidence store:
190
202
 
191
203
  ```bash
@@ -27,6 +27,15 @@ From a git repository:
27
27
  agentdir adopt
28
28
  ```
29
29
 
30
+ For agent-driven, non-interactive setup, make the ignore destination explicit:
31
+
32
+ ```bash
33
+ agentdir adopt --gitignore user
34
+ ```
35
+
36
+ This keeps `.agentdir/` out of Git across repositories without changing a
37
+ project's tracked `.gitignore`.
38
+
30
39
  This initializes `.agentdir`, installs managed Git hook shims, installs the
31
40
  Codex skill in the user skill directory, writes broad project guidance for
32
41
  common agent tools, asks interactive users where to ignore `.agentdir/`, runs
@@ -54,7 +63,7 @@ The user should not have to operate AgentDir during a normal coding session. Onc
54
63
  Agent responsibilities:
55
64
 
56
65
  - run `agentdir work start "<task>" --emit-context` when coding work begins
57
- - run `agentdir adopt` once if the repository has not been prepared yet
66
+ - run `agentdir adopt --gitignore user` once if the repository has not been prepared yet
58
67
  - use `agentdir status` when a single health view is needed
59
68
  - emit context packs when retrieved context materially informs the work
60
69
  - record which context sources were consumed and cited when reporting lineage
@@ -28,6 +28,17 @@ The installer downloads release assets anonymously with `curl`. If `curl` is
28
28
  unavailable or the download fails, it falls back to authenticated GitHub CLI
29
29
  (`gh auth login`).
30
30
 
31
+ The installer does not modify Git configuration or ignore files. It prints a
32
+ post-install command that agents can use from a repository:
33
+
34
+ ```bash
35
+ agentdir adopt --gitignore user
36
+ ```
37
+
38
+ This appends `.agentdir/` to the configured user-level Git excludes file. Use
39
+ `--gitignore project` for a repository `.gitignore` entry or `--gitignore none`
40
+ to leave ignore files unchanged.
41
+
31
42
  The installer downloads the release wheel and installs it with `pipx` when available. If `pipx` is not installed, it falls back to a self-contained virtual environment at:
32
43
 
33
44
  ```text
@@ -65,7 +76,7 @@ Useful variants:
65
76
  ```bash
66
77
  agentdir update --install-skill none
67
78
  agentdir update --no-adopt
68
- agentdir update --version v0.7.7
79
+ agentdir update --version v0.7.8
69
80
  agentdir update --dry-run
70
81
  ```
71
82
 
@@ -82,7 +93,7 @@ repo="$(mktemp -d)/agentdir-install-smoke"
82
93
  mkdir -p "$repo"
83
94
  git -C "$repo" init
84
95
  cd "$repo"
85
- agentdir adopt --install-skill store
96
+ agentdir adopt --install-skill store --gitignore user
86
97
  agentdir work start "install smoke" --emit-context
87
98
  agentdir run -- python3 -c "print('agentdir install smoke')"
88
99
  agentdir evidence --brief
@@ -99,13 +110,13 @@ agentdir work finish --json
99
110
  If you already have the wheel asset:
100
111
 
101
112
  ```bash
102
- AGENTDIR_WHEEL=/path/to/agentdir_cli-0.7.7-py3-none-any.whl bash scripts/install.sh
113
+ AGENTDIR_WHEEL=/path/to/agentdir_cli-0.7.8-py3-none-any.whl bash scripts/install.sh
103
114
  ```
104
115
 
105
116
  To force the virtual environment installer even when `pipx` is present:
106
117
 
107
118
  ```bash
108
- AGENTDIR_FORCE_VENV=1 AGENTDIR_WHEEL=/path/to/agentdir_cli-0.7.7-py3-none-any.whl bash scripts/install.sh
119
+ AGENTDIR_FORCE_VENV=1 AGENTDIR_WHEEL=/path/to/agentdir_cli-0.7.8-py3-none-any.whl bash scripts/install.sh
109
120
  ```
110
121
 
111
122
  ## Roll Back To The Previous Release
@@ -122,13 +133,13 @@ curl -fsSL https://raw.githubusercontent.com/jstxn/agentdir/main/scripts/rollbac
122
133
  To choose a specific release:
123
134
 
124
135
  ```bash
125
- curl -fsSL https://raw.githubusercontent.com/jstxn/agentdir/main/scripts/rollback.sh | bash -s -- v0.7.6
136
+ curl -fsSL https://raw.githubusercontent.com/jstxn/agentdir/main/scripts/rollback.sh | bash -s -- v0.7.7
126
137
  ```
127
138
 
128
139
  The equivalent manual rollback is:
129
140
 
130
141
  ```bash
131
- curl -fsSL https://raw.githubusercontent.com/jstxn/agentdir/main/scripts/install.sh | AGENTDIR_VERSION=v0.7.6 bash
142
+ curl -fsSL https://raw.githubusercontent.com/jstxn/agentdir/main/scripts/install.sh | AGENTDIR_VERSION=v0.7.7 bash
132
143
  ```
133
144
 
134
145
  ## Optional Extras
@@ -9,7 +9,9 @@ skills/agentdir/SKILL.md
9
9
 
10
10
  The skill teaches Pi to start AgentDir sessions, wrap evidence-bearing shell
11
11
  commands, use local memory/context packs, and produce evidence-aware handoffs.
12
- It does not install the `agentdir` CLI; install AgentDir separately first.
12
+ It also tells Pi to adopt unprepared repositories with `--gitignore user`, so
13
+ the local store stays out of Git without changing project files. It does not
14
+ install the `agentdir` CLI; install AgentDir separately first.
13
15
 
14
16
  ## Install
15
17
 
@@ -34,7 +36,7 @@ pi install git:github.com/jstxn/agentdir@<tag-or-commit>
34
36
  If the npm package has been published:
35
37
 
36
38
  ```bash
37
- pi install npm:@jstxn/agentdir-pi@0.7.7
39
+ pi install npm:@jstxn/agentdir-pi@0.7.8
38
40
  ```
39
41
 
40
42
  Use `pi config` to enable or disable the bundled skill after installation.
@@ -48,7 +50,7 @@ The root `package.json` declares the Pi resources:
48
50
  "keywords": ["pi-package"],
49
51
  "pi": {
50
52
  "skills": ["./skills"],
51
- "image": "https://raw.githubusercontent.com/jstxn/agentdir/v0.7.7/docs/assets/agentdir-overview.png"
53
+ "image": "https://raw.githubusercontent.com/jstxn/agentdir/v0.7.8/docs/assets/agentdir-overview.png"
52
54
  }
53
55
  }
54
56
  ```
@@ -31,9 +31,9 @@ chmod +x dist/rollback-agentdir.sh
31
31
  Expected assets (substitute the release version):
32
32
 
33
33
  ```text
34
- dist/agentdir_cli-0.7.7-py3-none-any.whl
35
- dist/agentdir_cli-0.7.7.tar.gz
36
- dist/jstxn-agentdir-pi-0.7.7.tgz
34
+ dist/agentdir_cli-0.7.8-py3-none-any.whl
35
+ dist/agentdir_cli-0.7.8.tar.gz
36
+ dist/jstxn-agentdir-pi-0.7.8.tgz
37
37
  dist/install-agentdir.sh
38
38
  dist/rollback-agentdir.sh
39
39
  ```
@@ -41,19 +41,19 @@ dist/rollback-agentdir.sh
41
41
  ## Tag And Release
42
42
 
43
43
  ```bash
44
- git tag -a v0.7.7 -m "Release AgentDir v0.7.7"
44
+ git tag -a v0.7.8 -m "Release AgentDir v0.7.8"
45
45
  git push origin main
46
- git push origin v0.7.7
46
+ git push origin v0.7.8
47
47
 
48
- gh release create v0.7.7 \
49
- dist/agentdir_cli-0.7.7-py3-none-any.whl \
50
- dist/agentdir_cli-0.7.7.tar.gz \
51
- dist/jstxn-agentdir-pi-0.7.7.tgz \
48
+ gh release create v0.7.8 \
49
+ dist/agentdir_cli-0.7.8-py3-none-any.whl \
50
+ dist/agentdir_cli-0.7.8.tar.gz \
51
+ dist/jstxn-agentdir-pi-0.7.8.tgz \
52
52
  dist/install-agentdir.sh \
53
53
  dist/rollback-agentdir.sh \
54
54
  --repo jstxn/agentdir \
55
- --title "AgentDir v0.7.7" \
56
- --notes-file docs/releases/v0.7.7.md
55
+ --title "AgentDir v0.7.8" \
56
+ --notes-file docs/releases/v0.7.8.md
57
57
  ```
58
58
 
59
59
  Publishing the release triggers `publish.yml`, which rebuilds the sdist and
@@ -65,7 +65,7 @@ Use a disposable environment:
65
65
 
66
66
  ```bash
67
67
  tmp="$(mktemp -d)"
68
- gh release download v0.7.7 --repo jstxn/agentdir --pattern install-agentdir.sh --dir "$tmp"
68
+ gh release download v0.7.8 --repo jstxn/agentdir --pattern install-agentdir.sh --dir "$tmp"
69
69
  AGENTDIR_PREFIX="$tmp/prefix" AGENTDIR_HOME="$tmp/home" bash "$tmp/install-agentdir.sh"
70
70
  "$tmp/prefix/bin/agentdir" --help
71
71
  "$tmp/prefix/bin/agentdir" --version
@@ -79,7 +79,7 @@ mkdir -p "$repo"
79
79
  git -C "$repo" init
80
80
  printf 'release smoke\n' > "$tmp/body.txt"
81
81
  cd "$repo"
82
- "$tmp/prefix/bin/agentdir" adopt --install-skill store
82
+ "$tmp/prefix/bin/agentdir" adopt --install-skill store --gitignore user
83
83
  "$tmp/prefix/bin/agentdir" work start "release smoke" --emit-context
84
84
  "$tmp/prefix/bin/agentdir" run -- python3 -c "print('release smoke')"
85
85
  "$tmp/prefix/bin/agentdir" context build "release smoke"
@@ -101,13 +101,13 @@ tmp="$(mktemp -d)"
101
101
  AGENTDIR_PREFIX="$tmp/prefix" \
102
102
  AGENTDIR_HOME="$tmp/home" \
103
103
  AGENTDIR_FORCE_VENV=1 \
104
- AGENTDIR_WHEEL="$PWD/dist/agentdir_cli-0.7.7-py3-none-any.whl" \
104
+ AGENTDIR_WHEEL="$PWD/dist/agentdir_cli-0.7.8-py3-none-any.whl" \
105
105
  bash dist/install-agentdir.sh
106
106
 
107
107
  AGENTDIR_PREFIX="$tmp/prefix" \
108
108
  AGENTDIR_HOME="$tmp/home" \
109
109
  AGENTDIR_FORCE_VENV=1 \
110
- bash dist/rollback-agentdir.sh v0.7.6
110
+ bash dist/rollback-agentdir.sh v0.7.7
111
111
 
112
112
  "$tmp/prefix/bin/agentdir" --help
113
113
  ```
@@ -0,0 +1,50 @@
1
+ # AgentDir v0.7.8
2
+
3
+ AgentDir v0.7.8 removes a common first-run annoyance by teaching coding agents
4
+ to keep the local `.agentdir/` store out of Git automatically.
5
+
6
+ ## Changes
7
+
8
+ - Update generated Codex, generic, Claude, Copilot, Cursor, Windsurf, rulesync,
9
+ and Pi guidance to adopt repositories with `agentdir adopt --gitignore user`.
10
+ - Keep plain interactive adoption and all existing
11
+ `--gitignore ask|project|user|none` choices backward compatible.
12
+ - Make the release installer print the recommended user-level adoption command
13
+ and the project/none alternatives without silently editing Git configuration.
14
+ - Add regression coverage for every generated guidance surface, the Pi package,
15
+ rulesync, and installer messaging.
16
+
17
+ ## Install Or Update
18
+
19
+ Install from PyPI:
20
+
21
+ ```bash
22
+ uv tool install agentdir-cli
23
+ # or
24
+ pipx install agentdir-cli
25
+ ```
26
+
27
+ Update an existing installation:
28
+
29
+ ```bash
30
+ agentdir update
31
+ ```
32
+
33
+ Or use the release installer:
34
+
35
+ ```bash
36
+ curl -fsSL https://raw.githubusercontent.com/jstxn/agentdir/main/scripts/install.sh | bash
37
+ ```
38
+
39
+ Install the Pi package from npm or the release tag:
40
+
41
+ ```bash
42
+ pi install npm:@jstxn/agentdir-pi@0.7.8
43
+ pi install git:github.com/jstxn/agentdir@v0.7.8
44
+ ```
45
+
46
+ Rollback to v0.7.7 with:
47
+
48
+ ```bash
49
+ curl -fsSL https://raw.githubusercontent.com/jstxn/agentdir/main/scripts/rollback.sh | bash
50
+ ```
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jstxn/agentdir-pi",
3
- "version": "0.7.7",
3
+ "version": "0.7.8",
4
4
  "description": "Pi package for AgentDir local-first coding-agent memory and evidence capture.",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -29,6 +29,6 @@
29
29
  "skills": [
30
30
  "./skills"
31
31
  ],
32
- "image": "https://raw.githubusercontent.com/jstxn/agentdir/v0.7.7/docs/assets/agentdir-overview.png"
32
+ "image": "https://raw.githubusercontent.com/jstxn/agentdir/v0.7.8/docs/assets/agentdir-overview.png"
33
33
  }
34
34
  }
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agentdir-cli"
7
- version = "0.7.7"
7
+ version = "0.7.8"
8
8
  description = "Local-first Maildir-inspired work mailstore for software agents"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
  set -euo pipefail
3
3
 
4
- AGENTDIR_VERSION="${AGENTDIR_VERSION:-v0.7.7}"
4
+ AGENTDIR_VERSION="${AGENTDIR_VERSION:-v0.7.8}"
5
5
  AGENTDIR_REPO="${AGENTDIR_REPO:-jstxn/agentdir}"
6
6
  AGENTDIR_PACKAGE_VERSION="${AGENTDIR_VERSION#v}"
7
7
  # Releases after v0.7.4 ship the wheel under the agentdir-cli distribution
@@ -151,6 +151,8 @@ main() {
151
151
  fail "agentdir executable was not found on PATH after pipx install"
152
152
  fi
153
153
  log "installed AgentDir $AGENTDIR_VERSION"
154
+ log "next: from a repository, run: agentdir adopt --gitignore user"
155
+ log "use --gitignore project for a repo-local rule, or --gitignore none to leave ignore files unchanged"
154
156
  }
155
157
 
156
158
  main "$@"
@@ -2,7 +2,7 @@
2
2
  set -euo pipefail
3
3
 
4
4
  AGENTDIR_REPO="${AGENTDIR_REPO:-jstxn/agentdir}"
5
- AGENTDIR_ROLLBACK_VERSION="${1:-${AGENTDIR_ROLLBACK_VERSION:-v0.7.6}}"
5
+ AGENTDIR_ROLLBACK_VERSION="${1:-${AGENTDIR_ROLLBACK_VERSION:-v0.7.7}}"
6
6
  AGENTDIR_TMP_DIR=""
7
7
 
8
8
  log() {
@@ -21,7 +21,7 @@ This Pi package teaches Pi how to operate AgentDir. It does not install the `age
21
21
 
22
22
  At the start of a non-trivial coding task in a software repository:
23
23
 
24
- 1. If `.agentdir` is missing, run `agentdir adopt` once before work begins.
24
+ 1. If `.agentdir` is missing, run `agentdir adopt --gitignore user` once so the local store stays out of Git without changing the repository's `.gitignore`.
25
25
  2. Start the session with `agentdir work start "<short task>" --emit-context`.
26
26
  3. Keep any returned context pack id/source ids if you plan to cite or consume retrieved context later.
27
27
 
@@ -1,3 +1,3 @@
1
1
  """AgentDir local agent work mailstore."""
2
2
 
3
- __version__ = "0.7.7"
3
+ __version__ = "0.7.8"
@@ -35,7 +35,9 @@ user when reporting evidence, blockers, or setup problems.
35
35
  ## Start
36
36
 
37
37
  - At the start of a coding task in a repository, run `agentdir work start "<short task>" --emit-context`.
38
- - If `.agentdir` is missing and the task is non-trivial, run `agentdir adopt` once for the repository before work begins.
38
+ - If `.agentdir` is missing and the task is non-trivial, run
39
+ `agentdir adopt --gitignore user` once so the local store stays out of Git
40
+ without changing the repository's `.gitignore`.
39
41
  - Prefer the default project store. It writes to the nearest repo `.agentdir`.
40
42
  - Do not record secrets, private keys, raw environment dumps, or credential-bearing command output.
41
43
  - If `doctor` reports secret-like persisted bodies, do not print the bodies.
@@ -103,7 +105,8 @@ The engineer should not have to run AgentDir commands during normal coding work.
103
105
  The agent owns the background recording flow:
104
106
 
105
107
  - Start non-trivial coding work with `agentdir work start "<short task>" --emit-context`.
106
- - If `.agentdir` is missing, run `agentdir adopt` once before work begins.
108
+ - If `.agentdir` is missing, run `agentdir adopt --gitignore user` once so the
109
+ local store stays out of Git without changing the repository's `.gitignore`.
107
110
  - Run evidence-bearing commands through `agentdir run -- <command>`.
108
111
  - Evidence-bearing commands include tests, lint, typecheck, build, release checks,
109
112
  reproduced failures, and diagnostics that support final claims.
@@ -697,7 +700,7 @@ GUIDANCE_BODY = """AgentDir is agent-owned background instrumentation for this r
697
700
  The engineer installs or adopts it once; agents operate it during normal work.
698
701
 
699
702
  - Start non-trivial coding work with `agentdir work start "<short task>" --emit-context`.
700
- - If `.agentdir` is missing, run `agentdir adopt` once before starting.
703
+ - If `.agentdir` is missing, run `agentdir adopt --gitignore user` once so the local store stays out of Git without changing the repository's `.gitignore`.
701
704
  - Wrap evidence-bearing commands with `agentdir run -- <command>`.
702
705
  - Evidence includes tests, lint, typecheck, builds, doctor checks, release checks, reproduced failures, and diagnostics used in final claims.
703
706
  - Do not wrap routine exploration such as `rg`, `sed`, `nl`, `cat`, `ls`, `find`, or quick read-only `git status`.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentdir-cli
3
- Version: 0.7.7
3
+ Version: 0.7.8
4
4
  Summary: Local-first Maildir-inspired work mailstore for software agents
5
5
  Author: AgentDir Contributors
6
6
  License-Expression: MIT
@@ -128,7 +128,8 @@ curl -fsSL https://raw.githubusercontent.com/jstxn/agentdir/main/scripts/install
128
128
 
129
129
  The installer uses `pipx` when available. Otherwise it creates a self-contained
130
130
  virtual environment under `~/.local/share/agentdir` and links the CLI into
131
- `~/.local/bin`.
131
+ `~/.local/bin`. It does not edit Git configuration or ignore files; after
132
+ installation it prints the explicit adoption choices.
132
133
 
133
134
  Verify:
134
135
 
@@ -155,7 +156,7 @@ available automatically during coding tasks:
155
156
  Package page: [@jstxn/agentdir-pi](https://pi.dev/packages/@jstxn/agentdir-pi)
156
157
 
157
158
  ```bash
158
- pi install npm:@jstxn/agentdir-pi@0.7.7
159
+ pi install npm:@jstxn/agentdir-pi@0.7.8
159
160
  # or install directly from a local checkout / release tag:
160
161
  pi install /absolute/path/to/agentdir
161
162
  pi install git:github.com/jstxn/agentdir@<tag-or-commit>
@@ -174,6 +175,13 @@ Run once from a git repository:
174
175
  agentdir adopt
175
176
  ```
176
177
 
178
+ Coding agents use the non-interactive form below so `.agentdir/` is ignored at
179
+ the user level without creating a repository `.gitignore` change:
180
+
181
+ ```bash
182
+ agentdir adopt --gitignore user
183
+ ```
184
+
177
185
  This is intentionally boring setup. It prepares the repository once, then agents
178
186
  operate AgentDir during normal coding work:
179
187
 
@@ -219,6 +227,10 @@ agentdir adopt --gitignore user # write the user-level Git excludes file
219
227
  agentdir adopt --gitignore none # leave ignore files unchanged
220
228
  ```
221
229
 
230
+ Generated AgentDir guidance selects `--gitignore user` by default. The plain
231
+ interactive command still prompts, and all three explicit choices remain
232
+ available.
233
+
222
234
  Undo managed setup while keeping the `.agentdir` evidence store:
223
235
 
224
236
  ```bash
@@ -35,6 +35,7 @@ docs/releases/v0.7.4.md
35
35
  docs/releases/v0.7.5.md
36
36
  docs/releases/v0.7.6.md
37
37
  docs/releases/v0.7.7.md
38
+ docs/releases/v0.7.8.md
38
39
  examples/dogfood-session.sh
39
40
  scripts/install.sh
40
41
  scripts/rollback.sh
@@ -82,6 +83,7 @@ tests/test_agent_first.py
82
83
  tests/test_agent_trust.py
83
84
  tests/test_audit.py
84
85
  tests/test_environment.py
86
+ tests/test_install_script.py
85
87
  tests/test_pi_package.py
86
88
  tests/test_truncation.py
87
89
  tests/test_v1_behavior.py
@@ -69,7 +69,7 @@ def query_rows(root: Path, event_type: str | None = None) -> list[dict[str, obje
69
69
  def test_cli_version_reports_package_version() -> None:
70
70
  result = run_cli("--version")
71
71
 
72
- assert result.stdout.strip() == "agentdir 0.7.7"
72
+ assert result.stdout.strip() == "agentdir 0.7.8"
73
73
 
74
74
 
75
75
  def test_session_current_and_sessionless_emit_use_project_store(tmp_path: Path) -> None:
@@ -322,6 +322,7 @@ def test_setup_installs_hooks_and_user_codex_skill(tmp_path: Path) -> None:
322
322
  assert skill_path.is_file()
323
323
  skill_text = skill_path.read_text(encoding="utf-8")
324
324
  assert "The user should not have to run AgentDir commands during normal coding work." in skill_text
325
+ assert "agentdir adopt --gitignore user" in skill_text
325
326
  assert 'agentdir work start "<short task>" --emit-context' in skill_text
326
327
  assert "agentdir status" in skill_text
327
328
  assert "agentdir run -- <command>" in skill_text
@@ -566,6 +567,24 @@ def test_integrations_project_rerun_is_byte_stable_for_managed_only_files(tmp_pa
566
567
  assert all(item["updated"] is False for item in json.loads(rerun.stdout))
567
568
 
568
569
 
570
+ def test_generated_agent_guidance_uses_user_gitignore(tmp_path: Path) -> None:
571
+ repo = init_repo(tmp_path / "repo")
572
+
573
+ run_cli("integrations", "install", "all", "--target", "project", "--json", cwd=repo)
574
+
575
+ guidance_paths = [
576
+ repo / "AGENTS.md",
577
+ repo / ".agents" / "skills" / "agentdir" / "SKILL.md",
578
+ repo / "CLAUDE.md",
579
+ repo / ".github" / "copilot-instructions.md",
580
+ repo / ".cursor" / "rules" / "agentdir.mdc",
581
+ repo / ".windsurf" / "rules" / "agentdir.md",
582
+ ]
583
+ for path in guidance_paths:
584
+ text = path.read_text(encoding="utf-8")
585
+ assert "agentdir adopt --gitignore user" in text, path
586
+
587
+
569
588
  def test_integrations_install_all_store_target(tmp_path: Path) -> None:
570
589
  repo = init_repo(tmp_path / "repo")
571
590
 
@@ -89,6 +89,7 @@ def test_adopt_redirects_integrations_to_rulesync_source_rule(tmp_path: Path) ->
89
89
  assert 'targets: ["*"]' in rule_text
90
90
  assert "<!-- agentdir-managed-rulesync:start -->" in rule_text
91
91
  assert "agentdir work start" in rule_text
92
+ assert "agentdir adopt --gitignore user" in rule_text
92
93
  assert not (repo / "CLAUDE.md").exists()
93
94
  assert not (repo / "AGENTS.md").exists()
94
95
  assert not (repo / ".cursor").exists()
@@ -0,0 +1,14 @@
1
+ from __future__ import annotations
2
+
3
+ from pathlib import Path
4
+
5
+
6
+ ROOT = Path(__file__).resolve().parents[1]
7
+
8
+
9
+ def test_installer_prints_safe_gitignore_choices() -> None:
10
+ text = (ROOT / "scripts" / "install.sh").read_text(encoding="utf-8")
11
+
12
+ assert "agentdir adopt --gitignore user" in text
13
+ assert "--gitignore project" in text
14
+ assert "--gitignore none" in text
@@ -12,11 +12,11 @@ def test_pi_package_manifest_points_to_agentdir_skill() -> None:
12
12
  package = json.loads((ROOT / "package.json").read_text(encoding="utf-8"))
13
13
 
14
14
  assert package["name"] == "@jstxn/agentdir-pi"
15
- assert package["version"] == "0.7.7"
15
+ assert package["version"] == "0.7.8"
16
16
  assert "pi-package" in package["keywords"]
17
17
  assert package["pi"] == {
18
18
  "skills": ["./skills"],
19
- "image": "https://raw.githubusercontent.com/jstxn/agentdir/v0.7.7/docs/assets/agentdir-overview.png",
19
+ "image": "https://raw.githubusercontent.com/jstxn/agentdir/v0.7.8/docs/assets/agentdir-overview.png",
20
20
  }
21
21
  assert "skills" in package["files"]
22
22
  assert "docs/PI_PACKAGE.md" in package["files"]
@@ -35,5 +35,6 @@ def test_agentdir_pi_skill_frontmatter_and_workflow() -> None:
35
35
  assert len(description.group(1)) <= 1024
36
36
  assert re.search(r"^compatibility: ", frontmatter, re.MULTILINE)
37
37
  assert "agentdir work start" in text
38
+ assert "agentdir adopt --gitignore user" in text
38
39
  assert "agentdir run --" in text
39
40
  assert "agentdir work finish --json" in text
File without changes
File without changes
File without changes
File without changes
File without changes