@imdeadpool/guardex 7.0.8 → 7.0.11
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.
- package/README.md +363 -360
- package/SECURITY.md +1 -1
- package/bin/multiagent-safety.js +30 -31
- package/package.json +6 -4
- package/templates/AGENTS.multiagent-safety.md +8 -8
- package/templates/claude/commands/gitguardex.md +5 -0
- package/templates/codex/skills/gitguardex/SKILL.md +11 -0
- package/templates/scripts/openspec/init-change-workspace.sh +2 -2
- package/templates/scripts/openspec/init-plan-workspace.sh +2 -2
- package/templates/claude/commands/guardex.md +0 -12
- package/templates/codex/skills/guardex/SKILL.md +0 -43
package/README.md
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
#
|
|
1
|
+
# GitGuardex — Guardian T-Rex for your repo
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@imdeadpool/guardex)
|
|
4
|
-
[](https://github.com/recodeee/gitguardex/actions/workflows/ci.yml)
|
|
5
|
+
[](https://securityscorecards.dev/viewer/?uri=github.com/recodeee/gitguardex)
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**GitGuardex is a safety layer for parallel agent work in git repos.** If you're running more than one Codex or Claude agent on the same codebase, this is what keeps them from deleting each other's work.
|
|
8
8
|
|
|
9
9
|
> [!WARNING]
|
|
10
|
-
> Not affiliated with OpenAI or Codex. Not an official tool.
|
|
10
|
+
> Not affiliated with OpenAI, Anthropic, or Codex. Not an official tool.
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
> [!IMPORTANT]
|
|
13
|
+
> GitGuardex is still being tested in real multi-agent repos. If something feels rough or broken, especially around cleanup, finish, merge, or recovery flows, sorry. We need to test those paths under real load first, and we'll patch issues as we find them.
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
- This repository tracks/mirrors the frontend under `frontend/` as documented below.
|
|
15
|
+
---
|
|
16
16
|
|
|
17
|
-
## The problem
|
|
17
|
+
## The problem
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
They started overwriting or deleting each other's changes.
|
|
21
|
-
Progress became **de-progressive**: more activity, less real forward movement.
|
|
19
|
+
I was running ~30 Codex agents in parallel and hit a wall: they kept working on the same files at the same time — especially tests — and started overwriting or deleting each other's changes. More agents meant *less* forward progress, not more. Classic de-progressive loop.
|
|
22
20
|
|
|
23
|
-
|
|
21
|
+
GitGuardex exists to stop that loop. Every agent gets its own worktree, claims the files it's touching, and can't clobber files another agent has claimed. Your local branch stays clean; agents stay in their lanes.
|
|
24
22
|
|
|
25
|
-

|
|
24
|
+
|
|
25
|
+
Coming soon: [recodee.com](https://recodee.com) — live account health, usage, routing, and capacity in one place.
|
|
26
26
|
|
|
27
27
|
```mermaid
|
|
28
28
|
flowchart LR
|
|
@@ -38,15 +38,21 @@ flowchart LR
|
|
|
38
38
|
I --> F
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## What it does
|
|
44
|
+
|
|
45
|
+
- **Isolated `agent/*` branch + worktree per task** — agents never share a working directory.
|
|
46
|
+
- **Explicit file lock claiming** — an agent declares which files it's editing before it edits them.
|
|
47
|
+
- **Deletion guard** — claimed files can't be removed by another agent.
|
|
48
|
+
- **Protected-base safety** — `main`, `dev`, `master` are blocked by default; agents must go through PRs.
|
|
49
|
+
- **Auto-merges agent configs into every worktree** — `oh-my-codex`, `oh-my-claudecode`, caveman mode, and OpenSpec all get applied automatically so every spawned agent starts tuned, not bare.
|
|
50
|
+
- **Repair/doctor flow** — when drift happens (and it will), `gx doctor` gets you back to a clean state.
|
|
51
|
+
- **Auto-finish** — when Codex exits a session, Guardex commits sandbox changes, syncs against the base, retries once if the base moved, and opens a PR.
|
|
42
52
|
|
|
43
|
-
|
|
44
|
-
- explicit file lock claiming before edits
|
|
45
|
-
- deletion guard for claimed files
|
|
46
|
-
- protected-base branch safety (`main`, `dev`, `master` by default)
|
|
47
|
-
- repair/doctor flow when drift appears
|
|
53
|
+
---
|
|
48
54
|
|
|
49
|
-
##
|
|
55
|
+
## Quick start
|
|
50
56
|
|
|
51
57
|
```sh
|
|
52
58
|
npm i -g @imdeadpool/guardex
|
|
@@ -54,293 +60,351 @@ cd /path/to/your/repo
|
|
|
54
60
|
gx setup
|
|
55
61
|
```
|
|
56
62
|
|
|
57
|
-
|
|
63
|
+
That's it. Setup installs hooks, scripts, templates, and scaffolds OpenSpec/caveman/OMX wiring. Aliases: `gx` (preferred), `gitguardex` (full), `guardex` (legacy).
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## What `gx` shows first
|
|
68
|
+
|
|
69
|
+
Before you branch, repair, or start agents, run plain `gx`. It gives you a one-screen status view for the CLI, global helpers, repo safety service, current repo path, and active branch.
|
|
58
70
|
|
|
59
|
-
|
|
60
|
-
- full: `guardex`
|
|
71
|
+

|
|
61
72
|
|
|
62
|
-
|
|
73
|
+
Use `gx setup` the first time you wire GitGuardex into a repo. It bootstraps the managed hooks, scripts, templates, and optional workspace/OpenSpec wiring. If the repo drifts later, use `gx doctor` as the repair path: it reapplies the managed safety files, verifies the setup, and on protected `main` it auto-sandboxes the repair so your visible base branch stays clean.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Daily workflow
|
|
78
|
+
|
|
79
|
+
Per new agent task:
|
|
63
80
|
|
|
64
81
|
```sh
|
|
65
82
|
# 1) Start isolated branch/worktree
|
|
66
83
|
bash scripts/agent-branch-start.sh "task-name" "agent-name"
|
|
67
84
|
|
|
68
|
-
# 2) Claim
|
|
69
|
-
python3 scripts/agent-file-locks.py claim
|
|
85
|
+
# 2) Claim the files you're going to touch
|
|
86
|
+
python3 scripts/agent-file-locks.py claim \
|
|
87
|
+
--branch "$(git rev-parse --abbrev-ref HEAD)" <file...>
|
|
70
88
|
|
|
71
89
|
# 3) Implement + verify
|
|
72
90
|
npm test
|
|
73
91
|
|
|
74
|
-
# 4) Finish (commit
|
|
75
|
-
bash scripts/agent-branch-finish.sh
|
|
92
|
+
# 4) Finish (commit + push + PR + merge)
|
|
93
|
+
bash scripts/agent-branch-finish.sh \
|
|
94
|
+
--branch "$(git rev-parse --abbrev-ref HEAD)" \
|
|
95
|
+
--base dev --via-pr --wait-for-merge
|
|
76
96
|
|
|
77
|
-
# 5) Optional cleanup after merge
|
|
97
|
+
# 5) Optional: cleanup after merge
|
|
78
98
|
gx cleanup --branch "$(git rev-parse --abbrev-ref HEAD)"
|
|
79
99
|
```
|
|
80
100
|
|
|
81
|
-
If you use `scripts/codex-agent.sh`, the finish flow
|
|
82
|
-
It auto-commits sandbox changes, retries once after syncing if the branch moved behind base during the run, then pushes/opens PR merge flow against `dev`.
|
|
101
|
+
If you use `scripts/codex-agent.sh`, the finish flow runs automatically when the Codex session exits — it auto-commits, retries once after syncing if the base moved during the run, then pushes and opens the PR.
|
|
83
102
|
|
|
84
|
-
|
|
103
|
+
Running Codex across several existing worktrees (e.g. from VS Code Source Control)? Finalize everything ready at once:
|
|
85
104
|
|
|
86
105
|
```sh
|
|
87
106
|
gx finish --all
|
|
88
107
|
```
|
|
89
108
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
### Setup status
|
|
93
|
-
|
|
94
|
-

|
|
95
|
-
|
|
96
|
-
### Service logs/status
|
|
109
|
+
---
|
|
97
110
|
|
|
98
|
-
|
|
111
|
+
## Visual reference
|
|
99
112
|
|
|
100
|
-
|
|
113
|
+
| | |
|
|
114
|
+
|---|---|
|
|
115
|
+
|  | **`gx setup`** — bootstraps everything in one command |
|
|
116
|
+
|  | **`gx status`** — health check for tools, hooks, services |
|
|
117
|
+
|  | **Branch/worktree start protocol** |
|
|
118
|
+
|  | **Lock + delete-guard protocol** |
|
|
119
|
+
|  | **VS Code Source Control view** with agent + OpenSpec files |
|
|
101
120
|
|
|
102
|
-
|
|
121
|
+
### How It Works In VS Code
|
|
103
122
|
|
|
104
|
-
|
|
123
|
+
This is the real Source Control shape Guardex is aiming for: isolated agent branches, clear OpenSpec artifacts, and no pile-up on one shared checkout.
|
|
105
124
|
|
|
106
|
-

|
|
107
126
|
|
|
108
|
-
|
|
127
|
+
---
|
|
109
128
|
|
|
110
|
-
|
|
129
|
+
## Commands
|
|
111
130
|
|
|
112
|
-
|
|
131
|
+
### Core
|
|
113
132
|
|
|
114
133
|
```sh
|
|
115
|
-
# health check (default
|
|
116
|
-
gx status
|
|
117
|
-
gx
|
|
118
|
-
|
|
119
|
-
#
|
|
120
|
-
gx setup
|
|
121
|
-
gx setup --repair # repair only (v6 name: gx fix)
|
|
122
|
-
gx setup --install-only # scaffold templates, skip global installs (v6 name: gx install)
|
|
134
|
+
gx status # health check (default)
|
|
135
|
+
gx status --strict # exit non-zero on findings
|
|
136
|
+
gx setup # full bootstrap
|
|
137
|
+
gx setup --repair # repair only
|
|
138
|
+
gx setup --install-only # scaffold templates, skip global installs
|
|
123
139
|
gx doctor # repair + verify (auto-sandboxes on protected main)
|
|
140
|
+
```
|
|
124
141
|
|
|
125
|
-
|
|
142
|
+
### Targeting other repos
|
|
143
|
+
|
|
144
|
+
```sh
|
|
126
145
|
gx setup --target /path/to/repo
|
|
127
146
|
gx doctor --target /path/to/repo
|
|
128
|
-
|
|
147
|
+
|
|
148
|
+
# optional: VS Code workspace showing repo + agent worktrees
|
|
129
149
|
gx setup --target /path/to/repo --parent-workspace-view
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Monorepo support
|
|
153
|
+
|
|
154
|
+
Setup auto-installs into every nested git repo (e.g. `apps/*/.git`). Submodules and worktrees under `.omx/agent-worktrees/` are skipped.
|
|
130
155
|
|
|
131
|
-
|
|
132
|
-
# setup auto-installs into every nested repo; use --no-recursive to limit to the top-level
|
|
156
|
+
```sh
|
|
133
157
|
gx setup --target /mainfolder
|
|
134
158
|
gx setup --target /mainfolder --no-recursive
|
|
159
|
+
```
|
|
135
160
|
|
|
136
|
-
|
|
161
|
+
### Protected branches
|
|
162
|
+
|
|
163
|
+
```sh
|
|
137
164
|
gx protect list
|
|
138
165
|
gx protect add release staging
|
|
139
166
|
gx protect remove release
|
|
167
|
+
gx protect set main release hotfix
|
|
168
|
+
gx protect reset
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Defaults: `dev`, `main`, `master`. Stored in git config key `multiagent.protectedBranches`.
|
|
140
172
|
|
|
141
|
-
|
|
173
|
+
### Sync current agent branch
|
|
174
|
+
|
|
175
|
+
```sh
|
|
142
176
|
gx sync --check
|
|
143
177
|
gx sync
|
|
178
|
+
```
|
|
144
179
|
|
|
145
|
-
|
|
146
|
-
|
|
180
|
+
### Background bots
|
|
181
|
+
|
|
182
|
+
```sh
|
|
183
|
+
gx agents start # review monitor + stale cleanup
|
|
147
184
|
gx agents stop
|
|
148
185
|
gx agents status
|
|
149
186
|
|
|
150
|
-
#
|
|
187
|
+
# tuning
|
|
188
|
+
gx agents start --review-interval 30 --cleanup-interval 60 --idle-minutes 10
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Lifecycle
|
|
192
|
+
|
|
193
|
+
```sh
|
|
151
194
|
gx finish --all # commit + PR + merge every ready agent/* branch
|
|
152
195
|
gx cleanup # prune merged/stale branches and worktrees
|
|
153
196
|
gx cleanup --watch --interval 60
|
|
197
|
+
gx cleanup --idle-minutes 10
|
|
198
|
+
gx cleanup --watch --once --interval 60
|
|
199
|
+
```
|
|
154
200
|
|
|
155
|
-
|
|
156
|
-
gx prompt # full checklist (v6 name: gx copy-prompt)
|
|
157
|
-
gx prompt --exec # commands only (v6 name: gx copy-commands)
|
|
158
|
-
gx prompt --snippet # AGENTS.md managed block template
|
|
201
|
+
### Prompts for your agents
|
|
159
202
|
|
|
160
|
-
|
|
161
|
-
gx
|
|
203
|
+
```sh
|
|
204
|
+
gx prompt # full checklist (paste into Codex/Claude)
|
|
205
|
+
gx prompt --exec # commands only
|
|
206
|
+
gx prompt --snippet # AGENTS.md managed-block template
|
|
162
207
|
```
|
|
163
208
|
|
|
164
|
-
###
|
|
209
|
+
### Reports
|
|
165
210
|
|
|
166
|
-
|
|
211
|
+
```sh
|
|
212
|
+
gx report scorecard --repo github.com/recodeee/gitguardex
|
|
213
|
+
```
|
|
167
214
|
|
|
168
|
-
|
|
169
|
-
| ---------------------- | ------------------------ |
|
|
170
|
-
| `gx init` | `gx setup` |
|
|
171
|
-
| `gx install` | `gx setup --install-only`|
|
|
172
|
-
| `gx fix` | `gx setup --repair` |
|
|
173
|
-
| `gx scan` | `gx status --strict` |
|
|
174
|
-
| `gx copy-prompt` | `gx prompt` |
|
|
175
|
-
| `gx copy-commands` | `gx prompt --exec` |
|
|
176
|
-
| `gx print-agents-snippet` | `gx prompt --snippet` |
|
|
177
|
-
| `gx review` | `gx agents start` (runs review + cleanup) |
|
|
215
|
+
---
|
|
178
216
|
|
|
179
|
-
|
|
217
|
+
## v6 → v7 migration
|
|
180
218
|
|
|
181
|
-
|
|
219
|
+
Five commands were consolidated into flags. Old names still work and print a deprecation notice; they'll be removed in v8.
|
|
182
220
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
gx
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
gx
|
|
221
|
+
| v6 | v7 |
|
|
222
|
+
| --------------------------- | ----------------------------- |
|
|
223
|
+
| `gx init` | `gx setup` |
|
|
224
|
+
| `gx install` | `gx setup --install-only` |
|
|
225
|
+
| `gx fix` | `gx setup --repair` |
|
|
226
|
+
| `gx scan` | `gx status --strict` |
|
|
227
|
+
| `gx copy-prompt` | `gx prompt` |
|
|
228
|
+
| `gx copy-commands` | `gx prompt --exec` |
|
|
229
|
+
| `gx print-agents-snippet` | `gx prompt --snippet` |
|
|
230
|
+
| `gx review` | `gx agents start` |
|
|
189
231
|
|
|
190
|
-
|
|
191
|
-
gx cleanup --watch --once --interval 60
|
|
192
|
-
```
|
|
232
|
+
---
|
|
193
233
|
|
|
194
|
-
|
|
234
|
+
## Default behavior
|
|
195
235
|
|
|
196
|
-
|
|
197
|
-
# starts review bot + cleanup bot in background for the current repo
|
|
198
|
-
gx agents start
|
|
236
|
+
A few things worth knowing up front:
|
|
199
237
|
|
|
200
|
-
|
|
201
|
-
gx
|
|
238
|
+
- Running `gx` with no command opens the status/health view.
|
|
239
|
+
- `gx init` is just an alias for `gx setup`.
|
|
240
|
+
- Setup/doctor can install missing global companion CLIs (OMC runtime, OpenSpec, cavemem, codex-auth) — but only with explicit Y/N confirmation.
|
|
241
|
+
- Direct commits/pushes to protected branches are **blocked** by default. Agents must use the `agent/*` + PR flow.
|
|
242
|
+
- **Exception:** VS Code Source Control commits are allowed on protected branches that exist only locally (no upstream, no remote branch).
|
|
243
|
+
- On protected `main`, `gx doctor` auto-runs in a sandbox agent branch/worktree so it can't touch your real main.
|
|
244
|
+
- In-place agent branching is disabled. `scripts/agent-branch-start.sh` always creates a separate worktree so your visible local/base branch never changes.
|
|
245
|
+
- Fresh sandbox branches start with no git upstream. Guardex records the protected base in `branch.<name>.guardexBase`, and the first `git push -u` publishes the real upstream.
|
|
246
|
+
- Interactive self-update prompt defaults to **No** (`[y/N]`).
|
|
202
247
|
|
|
203
|
-
|
|
204
|
-
gx agents status
|
|
248
|
+
Optional override for manual VS Code protected-branch writes:
|
|
205
249
|
|
|
206
|
-
|
|
207
|
-
|
|
250
|
+
```sh
|
|
251
|
+
git config multiagent.allowVscodeProtectedBranchWrites true
|
|
208
252
|
```
|
|
209
253
|
|
|
210
|
-
|
|
254
|
+
---
|
|
211
255
|
|
|
212
|
-
|
|
213
|
-
- `gx init` is alias of `gx setup`.
|
|
214
|
-
- Setup/doctor can install missing global OMX/OpenSpec/codex-auth with explicit Y/N confirmation.
|
|
215
|
-
- `gx setup` checks GitHub CLI (`gh`) and prints install guidance if missing.
|
|
216
|
-
- Optional parent-folder VS Code Source Control view: `gx setup --target /path/to/repo --parent-workspace-view` creates `../<repo>-branches.code-workspace`.
|
|
217
|
-
- Monorepo-aware: when the target contains nested git repos (e.g. `apps/*/.git`), `gx setup` installs the workflow into every discovered repo. Git submodules (`.git` files) and guardex worktrees under `.omx/agent-worktrees/` are skipped. Opt out with `--no-recursive`; tune discovery with `--max-depth <n>`, `--skip-nested <dir>`, and `--include-submodules`.
|
|
218
|
-
- Interactive self-update prompt defaults to **No** (`[y/N]`).
|
|
219
|
-
- In initialized repos, `setup`/`install`/`fix` block protected-base writes unless explicitly overridden.
|
|
220
|
-
- Direct commits/pushes to protected branches are blocked by default.
|
|
221
|
-
- Exception: VS Code Source Control commits are allowed on protected branches that exist only locally (no upstream and no remote branch).
|
|
222
|
-
- Optional repo override for manual VS Code protected-branch writes: `git config multiagent.allowVscodeProtectedBranchWrites true`.
|
|
223
|
-
- Codex/agent sessions stay blocked on protected branches and must use `agent/*` branch + PR workflow.
|
|
224
|
-
- On protected `main`, `gx doctor` auto-runs in a sandbox agent branch/worktree.
|
|
225
|
-
- In-place agent branching is disabled; `scripts/agent-branch-start.sh` always creates a separate worktree to keep your visible local/base branch unchanged.
|
|
226
|
-
- Fresh sandbox branches intentionally start without any git upstream; guardex records the protected base in `branch.<name>.guardexBase`, and the first `git push -u` publishes the real upstream branch.
|
|
227
|
-
- `scripts/agent-branch-start.sh` hydrates `scripts/codex-agent.sh` into new sandbox worktrees when missing, so auto-finish launcher flow stays available.
|
|
256
|
+
## Companion tools
|
|
228
257
|
|
|
229
|
-
|
|
258
|
+
GitGuardex is designed to work alongside these. All optional — but if you're running many agents, you probably want them. `gx status` reports the machine-detectable global helpers; plugin/skills-first add-ons like `caveman` and `cavekit` are documented below for manual setup.
|
|
230
259
|
|
|
231
|
-
|
|
260
|
+
```text
|
|
261
|
+
● oh-my-codex: active
|
|
262
|
+
● oh-my-claude-sisyphus: active
|
|
263
|
+
● @fission-ai/openspec: active
|
|
264
|
+
● cavemem: active
|
|
265
|
+
● @imdeadpool/codex-account-switcher: active
|
|
266
|
+
● gh: active
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### oh-my-codex — Codex config + skills framework
|
|
232
270
|
|
|
233
|
-
|
|
234
|
-
- `main`
|
|
235
|
-
- `master`
|
|
271
|
+
Loads skills, slash commands, and session defaults into Codex. Guardex merges `oh-my-codex` into every agent worktree automatically, so every spawned agent starts with the same tuned config instead of vanilla Codex.
|
|
236
272
|
|
|
237
273
|
```sh
|
|
238
|
-
|
|
239
|
-
gx protect set main release hotfix
|
|
240
|
-
gx protect reset
|
|
274
|
+
npm i -g oh-my-codex
|
|
241
275
|
```
|
|
242
276
|
|
|
243
|
-
|
|
277
|
+
Repo: <https://github.com/Yeachan-Heo/oh-my-codex>
|
|
244
278
|
|
|
245
|
-
|
|
246
|
-
|
|
279
|
+
### oh-my-claudecode — Claude Code equivalent
|
|
280
|
+
|
|
281
|
+
Claude-side mirror of oh-my-codex. Same idea: skills, commands, and defaults loaded into every Claude Code session. Guardex merges it into worktrees alongside oh-my-codex so mixed Codex + Claude agent fleets behave consistently. For the npm CLI/runtime path, the published package name is `oh-my-claude-sisyphus`.
|
|
282
|
+
|
|
283
|
+
```sh
|
|
284
|
+
npm i -g oh-my-claude-sisyphus@latest
|
|
247
285
|
```
|
|
248
286
|
|
|
249
|
-
|
|
287
|
+
Repo: <https://github.com/Yeachan-Heo/oh-my-claudecode>
|
|
250
288
|
|
|
251
|
-
|
|
252
|
-
`agent-branch-finish.sh` PR flows and `codex-agent.sh` auto-finish behavior.
|
|
289
|
+
### Caveman — output compression for long agent runs
|
|
253
290
|
|
|
254
|
-
|
|
291
|
+
Ultra-compressed response mode for Claude/Codex-style agents. Useful when you want less output-token churn during long reviews, debug loops, or multi-agent sessions.
|
|
255
292
|
|
|
256
293
|
```sh
|
|
257
|
-
|
|
258
|
-
gh --version
|
|
259
|
-
gh auth status
|
|
294
|
+
npx skills add JuliusBrussee/caveman
|
|
260
295
|
```
|
|
261
296
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
### Pull app (Probot fork sync)
|
|
297
|
+
Repo: <https://github.com/JuliusBrussee/caveman>
|
|
265
298
|
|
|
266
|
-
|
|
299
|
+
### Cavemem — local persistent memory for agents
|
|
267
300
|
|
|
268
|
-
|
|
301
|
+
Cross-agent memory with local SQLite + MCP. Helpful when you want Codex or Claude sessions to retain compressed history across runs. `gx setup` can install the CLI; you still run the IDE wiring once per machine.
|
|
269
302
|
|
|
270
303
|
```sh
|
|
271
|
-
|
|
304
|
+
npm install -g cavemem
|
|
305
|
+
cavemem install --ide codex
|
|
306
|
+
cavemem status
|
|
272
307
|
```
|
|
273
308
|
|
|
274
|
-
|
|
309
|
+
Repo: <https://github.com/JuliusBrussee/cavemem>
|
|
275
310
|
|
|
276
|
-
|
|
277
|
-
- set `rules[].upstream` to `<upstream-owner>:<branch>`
|
|
311
|
+
### Cavekit — spec-driven build loop
|
|
278
312
|
|
|
279
|
-
|
|
280
|
-
Validate config: `https://pull.git.ci/check/<owner>/<repo>`
|
|
313
|
+
Spec-driven workflow layer for building from durable specs with explicit build/check commands. The current install path also brings in its `spec`, `build`, `check`, `caveman`, and `backprop` skills.
|
|
281
314
|
|
|
282
|
-
|
|
315
|
+
```sh
|
|
316
|
+
npx skills add JuliusBrussee/cavekit
|
|
317
|
+
```
|
|
283
318
|
|
|
284
|
-
|
|
319
|
+
Repo: <https://github.com/JuliusBrussee/cavekit>
|
|
285
320
|
|
|
286
|
-
|
|
321
|
+
### OpenSpec — spec-driven workflows
|
|
287
322
|
|
|
288
|
-
|
|
323
|
+
Structured plan/change/apply/archive flow for agents. Prevents them from drifting off-task on long jobs. Full guide: [`docs/openspec-getting-started.md`](./docs/openspec-getting-started.md).
|
|
289
324
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
325
|
+
```sh
|
|
326
|
+
npm i -g @fission-ai/openspec
|
|
327
|
+
```
|
|
293
328
|
|
|
294
|
-
|
|
329
|
+
Repo: <https://github.com/Fission-AI/OpenSpec>
|
|
295
330
|
|
|
296
|
-
|
|
331
|
+
### codex-auth — multi-account switcher
|
|
297
332
|
|
|
298
|
-
|
|
299
|
-
the `frontend/` subtree to a separate repository whenever `main` receives
|
|
300
|
-
changes under `frontend/**`.
|
|
333
|
+
For multi-identity Codex workflows. I built this because switching accounts manually for 30 agents was impossible. Auto-registers accounts to a dashboard on `codex login` so you can see every account and switch with one command.
|
|
301
334
|
|
|
302
|
-
|
|
335
|
+
```sh
|
|
336
|
+
npm i -g @imdeadpool/codex-account-switcher
|
|
303
337
|
|
|
304
|
-
-
|
|
305
|
-
-
|
|
338
|
+
codex-auth save <name>
|
|
339
|
+
codex-auth use <name>
|
|
340
|
+
codex-auth list --details
|
|
341
|
+
codex-auth current
|
|
342
|
+
```
|
|
306
343
|
|
|
307
|
-
|
|
344
|
+
Repo: [recodeecom/codex-account-switcher-cli](https://github.com/recodeecom/codex-account-switcher-cli)
|
|
308
345
|
|
|
309
|
-
|
|
310
|
-
2. Add repository secret `GUARDEX_FRONTEND_MIRROR_PAT`
|
|
311
|
-
- value must be a token with `contents:write` access to `Webu-PRO/guardex-frontend`
|
|
346
|
+
### GitHub CLI (`gh`)
|
|
312
347
|
|
|
313
|
-
|
|
348
|
+
Required for PR/merge automation. `agent-branch-finish.sh` and `codex-agent.sh` auto-finish both depend on it.
|
|
314
349
|
|
|
315
|
-
|
|
316
|
-
|
|
350
|
+
```sh
|
|
351
|
+
# https://cli.github.com/
|
|
352
|
+
gh --version
|
|
353
|
+
gh auth status
|
|
354
|
+
```
|
|
317
355
|
|
|
318
|
-
|
|
356
|
+
### Pull app — fork auto-sync
|
|
357
|
+
|
|
358
|
+
Guardex installs a starter config at `.github/pull.yml.example`.
|
|
319
359
|
|
|
320
360
|
```sh
|
|
321
|
-
|
|
361
|
+
cp .github/pull.yml.example .github/pull.yml
|
|
362
|
+
# edit rules[].base and rules[].upstream
|
|
322
363
|
```
|
|
323
364
|
|
|
324
|
-
|
|
365
|
+
Install the app: <https://github.com/apps/pull>
|
|
366
|
+
Validate: `https://pull.git.ci/check/<owner>/<repo>`
|
|
325
367
|
|
|
326
|
-
|
|
327
|
-
[`codex-auth`](https://github.com/recodeecom/codex-account-switcher-cli).
|
|
368
|
+
### CR-GPT — AI PR reviews
|
|
328
369
|
|
|
329
|
-
Install:
|
|
370
|
+
Install: <https://github.com/apps/cr-gpt>
|
|
330
371
|
|
|
331
|
-
|
|
332
|
-
|
|
372
|
+
`gx setup` installs `.github/workflows/cr.yml`. Add `OPENAI_API_KEY` under `Settings → Secrets and variables → Actions → Secrets`. After that, new and updated PRs get reviewed automatically.
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## OpenSpec integration
|
|
377
|
+
|
|
378
|
+
If you installed OpenSpec during setup (`@fission-ai/openspec`), the full guide is at [`docs/openspec-getting-started.md`](./docs/openspec-getting-started.md).
|
|
379
|
+
|
|
380
|
+
Default flow:
|
|
381
|
+
|
|
382
|
+
```text
|
|
383
|
+
/opsx:propose <change-name> → /opsx:apply → /opsx:archive
|
|
333
384
|
```
|
|
334
385
|
|
|
335
|
-
|
|
386
|
+
Expanded flow:
|
|
336
387
|
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
codex-auth use <name>
|
|
340
|
-
codex-auth list --details
|
|
341
|
-
codex-auth current
|
|
388
|
+
```text
|
|
389
|
+
/opsx:new <change-name> → /opsx:ff or /opsx:continue → /opsx:apply → /opsx:verify → /opsx:archive
|
|
342
390
|
```
|
|
343
391
|
|
|
392
|
+
### OpenSpec in agent sub-branches
|
|
393
|
+
|
|
394
|
+
- `scripts/codex-agent.sh` enforces OpenSpec workspaces before launching Codex.
|
|
395
|
+
- `scripts/agent-branch-start.sh` can scaffold both `openspec/changes/<slug>/` and `openspec/plan/<slug>/` when `GUARDEX_OPENSPEC_AUTO_INIT=true`.
|
|
396
|
+
|
|
397
|
+
Environment variables:
|
|
398
|
+
|
|
399
|
+
| Var | Purpose |
|
|
400
|
+
|---|---|
|
|
401
|
+
| `GUARDEX_OPENSPEC_AUTO_INIT` | `true` to auto-bootstrap on branch start (default `false`) |
|
|
402
|
+
| `GUARDEX_OPENSPEC_PLAN_SLUG` | force a specific plan workspace name |
|
|
403
|
+
| `GUARDEX_OPENSPEC_CHANGE_SLUG` | force a specific change workspace name |
|
|
404
|
+
| `GUARDEX_OPENSPEC_CAPABILITY_SLUG` | override capability folder for `spec.md` scaffolding |
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
344
408
|
## Files installed by setup
|
|
345
409
|
|
|
346
410
|
```text
|
|
@@ -354,8 +418,8 @@ scripts/install-agent-git-hooks.sh
|
|
|
354
418
|
scripts/openspec/init-plan-workspace.sh
|
|
355
419
|
.githooks/pre-commit
|
|
356
420
|
.githooks/pre-push
|
|
357
|
-
.codex/skills/
|
|
358
|
-
.claude/commands/
|
|
421
|
+
.codex/skills/gitguardex/SKILL.md
|
|
422
|
+
.claude/commands/gitguardex.md
|
|
359
423
|
.github/pull.yml.example
|
|
360
424
|
.github/workflows/cr.yml
|
|
361
425
|
.omx/state/agent-file-locks.json
|
|
@@ -363,44 +427,51 @@ scripts/openspec/init-plan-workspace.sh
|
|
|
363
427
|
|
|
364
428
|
If `package.json` exists, setup also adds `agent:*` helper scripts.
|
|
365
429
|
|
|
366
|
-
|
|
430
|
+
---
|
|
367
431
|
|
|
368
|
-
|
|
432
|
+
## Frontend mirror
|
|
369
433
|
|
|
370
|
-
-
|
|
434
|
+
- Standalone frontend repo: <https://github.com/Webu-PRO/guardex-frontend>
|
|
435
|
+
- This repo tracks the frontend under `frontend/` and auto-mirrors it via `.github/workflows/sync-frontend-mirror.yml` on changes to `main`.
|
|
371
436
|
|
|
372
|
-
|
|
437
|
+
Setup (in this repo):
|
|
373
438
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
439
|
+
1. `Settings → Secrets and variables → Actions`
|
|
440
|
+
2. Add secret `GUARDEX_FRONTEND_MIRROR_PAT` with `contents:write` on `Webu-PRO/guardex-frontend`
|
|
441
|
+
|
|
442
|
+
Optional overrides (Actions Variables):
|
|
377
443
|
|
|
378
|
-
|
|
444
|
+
- `GUARDEX_FRONTEND_MIRROR_REPO` (default `Webu-PRO/guardex-frontend`)
|
|
445
|
+
- `GUARDEX_FRONTEND_MIRROR_BRANCH` (default `main`)
|
|
446
|
+
|
|
447
|
+
Manual run:
|
|
379
448
|
|
|
380
449
|
```sh
|
|
381
|
-
|
|
382
|
-
openspec update
|
|
450
|
+
gh workflow run sync-frontend-mirror.yml
|
|
383
451
|
```
|
|
384
452
|
|
|
385
|
-
|
|
386
|
-
/opsx:new <change-name> -> /opsx:ff or /opsx:continue -> /opsx:apply -> /opsx:verify -> /opsx:archive
|
|
387
|
-
```
|
|
453
|
+
---
|
|
388
454
|
|
|
389
|
-
|
|
455
|
+
## Known rough edges
|
|
456
|
+
|
|
457
|
+
Being honest about where this still has issues:
|
|
458
|
+
|
|
459
|
+
- **Usage limit mid-task.** When an agent hits its Codex/Claude usage limit partway through, the cleanup flow currently has to be handed to a different agent. It works, but the handoff is uglier than I'd like.
|
|
460
|
+
- **Conflict-stuck probes.** Fixed in v7.0.2 — earlier versions could leak `__source-probe-*` worktrees when the sync-guard rebase hit conflicts. If you're on an older release, `gx cleanup` sweeps these.
|
|
461
|
+
- **Windows.** Most of the hook surface assumes a POSIX shell. Use WSL or symlink-enabled git if you're on Windows.
|
|
390
462
|
|
|
391
|
-
|
|
392
|
-
- `scripts/agent-branch-start.sh` can scaffold both `openspec/changes/<agent-branch-slug>/` and `openspec/plan/<agent-branch-slug>/` when you set `GUARDEX_OPENSPEC_AUTO_INIT=true`.
|
|
393
|
-
- Set `GUARDEX_OPENSPEC_AUTO_INIT=false` (default for `agent-branch-start`) to skip branch-start auto-bootstrap.
|
|
394
|
-
- Set `GUARDEX_OPENSPEC_PLAN_SLUG=<kebab-case-slug>` to force a specific plan workspace name.
|
|
395
|
-
- Set `GUARDEX_OPENSPEC_CHANGE_SLUG=<kebab-case-slug>` to force a specific change workspace name.
|
|
396
|
-
- Set `GUARDEX_OPENSPEC_CAPABILITY_SLUG=<kebab-case-slug>` to override the default capability folder used for `spec.md` scaffolding.
|
|
463
|
+
PRs and issues welcome.
|
|
397
464
|
|
|
398
|
-
|
|
465
|
+
---
|
|
399
466
|
|
|
400
|
-
|
|
401
|
-
|
|
467
|
+
## Security & maintenance
|
|
468
|
+
|
|
469
|
+
- CI matrix on Node 18 / 20 / 22 (`npm test`, `node --check`, `npm pack --dry-run`)
|
|
470
|
+
- Trusted publishing with provenance via GitHub Actions
|
|
402
471
|
- OpenSSF Scorecard + Dependabot for Actions
|
|
403
|
-
-
|
|
472
|
+
- Disclosure policy in [`SECURITY.md`](./SECURITY.md)
|
|
473
|
+
|
|
474
|
+
---
|
|
404
475
|
|
|
405
476
|
## Local development
|
|
406
477
|
|
|
@@ -410,206 +481,138 @@ node --check bin/multiagent-safety.js
|
|
|
410
481
|
npm pack --dry-run
|
|
411
482
|
```
|
|
412
483
|
|
|
484
|
+
---
|
|
485
|
+
|
|
413
486
|
## Release notes
|
|
414
487
|
|
|
415
|
-
|
|
488
|
+
<details>
|
|
489
|
+
<summary><strong>v7.x</strong></summary>
|
|
416
490
|
|
|
417
|
-
|
|
418
|
-
-
|
|
491
|
+
### v7.0.11
|
|
492
|
+
- Fixed the npm release workflow trigger so publishes run from `release.published` or explicit manual dispatch, instead of double-firing on both the tag push and the release event.
|
|
493
|
+
- This keeps the GitHub `npm` environment from collecting duplicate cancelled deploy cards for the same version and leaves one canonical release deployment to monitor.
|
|
494
|
+
- Bumped `@imdeadpool/guardex` from `7.0.10` → `7.0.11` so the next release can publish cleanly after `7.0.10` was already taken on npm.
|
|
419
495
|
|
|
420
|
-
### v7.0.
|
|
496
|
+
### v7.0.10
|
|
497
|
+
- Primary user-facing long name is now **GitGuardex**. CLI/help presents `gitguardex` as the long-form command; `gx` stays the preferred short alias; `guardex` remains as legacy compatibility.
|
|
498
|
+
- Installed Codex/Claude startup files now use `gitguardex` paths: `.codex/skills/gitguardex/SKILL.md` and `.claude/commands/gitguardex.md`.
|
|
499
|
+
- Startup context shrunk further. Managed marker block + skill + command compressed from 4340 B → 1930 B across the three always-loaded template files.
|
|
500
|
+
- Bumped `@imdeadpool/guardex` from `7.0.9` → `7.0.10`.
|
|
421
501
|
|
|
422
|
-
|
|
423
|
-
-
|
|
502
|
+
### v7.0.9
|
|
503
|
+
- `gx doctor` and `gx setup` now refresh AGENTS with repo-toggle examples. Managed AGENTS block states Guardex is enabled by default and shows exact `.env` lines: `GUARDEX_ON=0` disables per repo, `GUARDEX_ON=1` re-enables.
|
|
504
|
+
- Bumped to `7.0.9`.
|
|
424
505
|
|
|
425
|
-
### v7.0.
|
|
506
|
+
### v7.0.8
|
|
507
|
+
- Added `REPO TOGGLE` section to `gx` status/help output. Operators see the repo-local switch immediately.
|
|
508
|
+
- Bumped to `7.0.8`.
|
|
509
|
+
|
|
510
|
+
### v7.0.7
|
|
511
|
+
- Advanced next publish target past npm. Bumped to `7.0.7`.
|
|
512
|
+
- Fixed root package metadata drift in `package-lock.json` (root version had fallen behind manifest).
|
|
426
513
|
|
|
427
|
-
|
|
514
|
+
### v7.0.6
|
|
515
|
+
- **Fixed: self-updater lied about success.** `gx`'s update prompt runs `npm i -g @imdeadpool/guardex@latest` and previously trusted npm's exit code. When npm's resolution cache reported "changed 1 package" without actually overwriting files (known quirk, triggers when user just bumped N-1 → N in the same session, or with a warm metadata cache), the prompt kept re-firing on every subsequent `gx` invocation because the on-disk `package.json` was stale. `gx` now re-reads the globally installed `package.json` after `@latest` returns, compares its `version` to the advertised latest, and if they don't match runs a pinned retry `npm i -g @imdeadpool/guardex@<latest>` to force past the obstructing cache entry. If the pinned retry also fails, the user gets a clear hint (`npm root -g && npm cache verify`) instead of a silent loop.
|
|
428
516
|
|
|
429
517
|
### v7.0.5
|
|
430
|
-
|
|
431
|
-
-
|
|
432
|
-
- **Added: `.omc/` to the managed `.gitignore` block.** `gx setup` / `gx doctor` write a `.omc/` entry next to `.omx/` so Claude-specific runtime state (notepad, worktrees landing there in a follow-up) stays out of commits by default, parity with the existing `.omx/` treatment.
|
|
518
|
+
- Added `oh-my-claude` to `gx status` global-toolchain check. Claude-side mirror of `oh-my-codex` is reported alongside existing services (`oh-my-codex`, `@fission-ai/openspec`, `@imdeadpool/codex-account-switcher`, `gh`).
|
|
519
|
+
- Added `.omc/` to the managed `.gitignore` block so Claude-specific runtime state (notepad, worktrees) stays out of commits, parity with `.omx/`.
|
|
433
520
|
|
|
434
521
|
### v7.0.4
|
|
435
|
-
|
|
436
|
-
- **Fixed: publish collision on npm.** Advanced the package metadata from `7.0.3` to `7.0.4` so `npm publish` no longer targets an already published version.
|
|
437
|
-
- **Changed: release-note sync for versioning rule.** Added this versioned entry in README in the same change as the package bump to keep publish metadata and release notes aligned.
|
|
522
|
+
- Fixed publish collision on npm. Bumped `7.0.3` → `7.0.4`.
|
|
438
523
|
|
|
439
524
|
### v7.0.3
|
|
440
|
-
|
|
441
|
-
- **
|
|
442
|
-
-
|
|
443
|
-
-
|
|
444
|
-
- **`--tier` flag accepted silently** for CLAUDE.md compatibility (scaffold sizing not wired through yet).
|
|
445
|
-
- Tests `install.test.js` covering the old snapshot-slug format were rewritten to assert the new role-datetime shape.
|
|
525
|
+
- **Branch/worktree naming refactor.** `agent-branch-start.sh` now produces `agent/<role>/<task>-<YYYY-MM-DD>-<HH-MM>` instead of `agent/<role+account-email>/<snapshot-slug>-<task>-<cksum6>`. Account names and 6-hex checksums no longer leak into branch/worktree paths.
|
|
526
|
+
- **Role normalization.** `AGENT_NAME` collapses to `{claude, codex, <explicit>}` via (in order) `GUARDEX_AGENT_TYPE` env override, substring match against `claude`/`codex`, `CLAUDECODE=1` sentinel, or fallback to `codex`. Other roles (`integrator`, `executor`, etc.) pass through when set via `GUARDEX_AGENT_TYPE`.
|
|
527
|
+
- New `--print-name-only` flag for deterministic tests; honors `GUARDEX_BRANCH_TIMESTAMP` for reproducible output.
|
|
528
|
+
- `--tier` flag accepted silently for CLAUDE.md compatibility (scaffold sizing not wired through yet).
|
|
446
529
|
|
|
447
530
|
### v7.0.2
|
|
448
|
-
|
|
449
|
-
-
|
|
450
|
-
- The cleanup trap is now installed immediately after probe creation, and aborts any in-progress `rebase`/`merge` before `worktree remove --force` so conflict-stuck probes are cleaned up reliably.
|
|
531
|
+
- **Fix: `__source-probe-*` worktree leak on conflict exit.** `agent-branch-finish.sh` was registering its `cleanup()` trap *after* the sync-guard rebase block, so when rebase hit conflicts and the script exited, the throwaway probe worktree was never removed. `gx doctor` sweeps accumulated one new probe per run.
|
|
532
|
+
- Cleanup trap is now installed immediately after probe creation, and aborts any in-progress `rebase`/`merge` before `worktree remove --force`.
|
|
451
533
|
|
|
452
534
|
### v7.0.1
|
|
453
|
-
|
|
454
535
|
- Maintenance release.
|
|
455
536
|
|
|
456
537
|
### v7.0.0
|
|
457
|
-
|
|
458
|
-
- **
|
|
459
|
-
- **Token-usage improvements.** Trimmed the auto-installed agent templates that live inside every consumer repo and get loaded into every Claude/Codex session:
|
|
538
|
+
- **Breaking (soft).** Consolidated 17 commands into 12 visible commands with flag-based subcommands. Removed names still work but print a deprecation notice; will be removed in v8.
|
|
539
|
+
- **Token-usage improvements.** Trimmed auto-installed agent templates that live in every consumer repo and get loaded into every session:
|
|
460
540
|
- `templates/AGENTS.multiagent-safety.md`: 6990 B → 1615 B (−77%)
|
|
461
541
|
- `templates/codex/skills/guardex/SKILL.md`: 2732 B → 1086 B (−60%)
|
|
462
542
|
- `templates/claude/commands/guardex.md`: 472 B → 357 B (−24%)
|
|
463
543
|
- Total: 10194 B → 3058 B per consumer repo (−70%, ~1.5k fewer tokens per agent session).
|
|
544
|
+
- New `gx prompt` command replaces three prompt-emitting commands.
|
|
545
|
+
- New flag surface on `gx setup`: `--install-only`, `--repair`.
|
|
546
|
+
- New `gx status --strict` mirrors old `gx scan`.
|
|
464
547
|
|
|
465
|
-
|
|
466
|
-
- **New `gx prompt` command** replaces three prompt-emitting commands: `gx prompt` (full checklist), `gx prompt --exec` (commands only), `gx prompt --snippet` (AGENTS.md managed-block template).
|
|
467
|
-
- **New flag surface on `gx setup`**: `--install-only` (templates/hooks/locks only), `--repair` (fix drift), plus the existing `--target`, `--parent-workspace-view`, `--dry-run`, etc.
|
|
468
|
-
- **New `gx status --strict`** mirrors the old `gx scan` behavior (exit non-zero on findings).
|
|
469
|
-
- Updated internal `REQUIRED_PACKAGE_SCRIPTS` for consumer `package.json` so `agent:safety:scan` and `agent:safety:fix` helper scripts now invoke the new v7 surface (`gx status --strict`, `gx setup --repair`).
|
|
548
|
+
</details>
|
|
470
549
|
|
|
471
|
-
|
|
550
|
+
<details>
|
|
551
|
+
<summary><strong>v6.x</strong></summary>
|
|
472
552
|
|
|
473
|
-
|
|
474
|
-
- Preserve existing `
|
|
475
|
-
-
|
|
476
|
-
-
|
|
477
|
-
-
|
|
553
|
+
### v6.0.1
|
|
554
|
+
- Preserve existing repo-owned `AGENTS.md` marker content during `gx setup` / `gx doctor` by default; only rewrite marker blocks when `--force` is explicit.
|
|
555
|
+
- Preserve existing `agent:*` package scripts during setup/doctor repairs by default.
|
|
556
|
+
- Forward `--force` through sandboxed doctor execution.
|
|
557
|
+
- Added regression tests for both preservation behaviors.
|
|
478
558
|
|
|
479
559
|
### v6.0.0
|
|
560
|
+
- **Breaking** — removed legacy `musafety` bin alias and all `MUSAFETY_*` environment variables. Callers must migrate to `guardex` / `gx` and `GUARDEX_*`.
|
|
561
|
+
- **Breaking** — bootstrap manifest filename changed from `musafety-bootstrap-manifest.json` to `guardex-bootstrap-manifest.json`; existing sandbox worktrees must be pruned + re-bootstrapped.
|
|
562
|
+
- Rebranded `musafety` → `guardex` across scripts, templates, hooks, tests, docs.
|
|
563
|
+
- The descriptive phrase `multiagent-safety` (including `bin/multiagent-safety.js`) is preserved — only the short codename changed.
|
|
480
564
|
|
|
481
|
-
|
|
482
|
-
- **Breaking** — bootstrap manifest filename changed from `musafety-bootstrap-manifest.json` to `guardex-bootstrap-manifest.json`; existing sandbox worktrees must be pruned + re-bootstrapped (or have their manifest manually renamed).
|
|
483
|
-
- Rebranded all remaining `musafety` / `Musafety` / `MUSAFETY` codename tokens to `guardex` / `Guardex` / `GUARDEX` across scripts, templates, hooks, tests, and docs.
|
|
484
|
-
- The descriptive phrase `multiagent-safety` (including `bin/multiagent-safety.js` and `templates/AGENTS.multiagent-safety.md`) is preserved intentionally — only the short codename changed.
|
|
485
|
-
- Bumped package version from `5.0.17` to `6.0.0` for the next npm publish.
|
|
486
|
-
|
|
487
|
-
### v5.0.17
|
|
488
|
-
|
|
489
|
-
- Bumped package version from `5.0.16` to `5.0.17` for the next npm publish.
|
|
490
|
-
|
|
491
|
-
### v5.0.16
|
|
492
|
-
|
|
493
|
-
- Fixed `gx doctor` runtime crash (`parseDoctorArgs is not defined`) by restoring the doctor argument parser for `--target` and `--strict`.
|
|
494
|
-
- Fixed `gx doctor` command routing so the repair-first doctor flow remains the active command path (duplicate legacy doctor definition no longer overrides it).
|
|
495
|
-
- Updated worktree change detection to run `git status --porcelain --untracked-files=normal --` for consistent normal untracked-file behavior.
|
|
496
|
-
- Added regression coverage that asserts the doctor parser function exists in `bin/multiagent-safety.js`.
|
|
497
|
-
- Bumped package version from `5.0.15` to `5.0.16`.
|
|
498
|
-
|
|
499
|
-
### v5.0.15
|
|
500
|
-
|
|
501
|
-
- Added `gx setup --parent-workspace-view` to generate a parent-folder VS Code workspace (`../<repo>-branches.code-workspace`) that shows both the base repo and `.omx/agent-worktrees` in Source Control.
|
|
502
|
-
- Added dry-run-safe parent workspace operations (`would-create` / `would-update`) and setup output that prints the created workspace path.
|
|
503
|
-
- Added regression coverage for parent workspace generation and dry-run behavior.
|
|
504
|
-
- Bumped package version from `5.0.14` to `5.0.15`.
|
|
505
|
-
|
|
506
|
-
### v5.0.14
|
|
507
|
-
|
|
508
|
-
- Changed release metadata for the next npm publish by bumping package version from `5.0.13` to `5.0.14`.
|
|
509
|
-
- Kept Guardex release notes synchronized with the published package version.
|
|
510
|
-
|
|
511
|
-
### v5.0.13
|
|
512
|
-
|
|
513
|
-
- Bumped package version from `5.0.12` to `5.0.13` for the next npm publish.
|
|
514
|
-
|
|
515
|
-
### v5.0.12
|
|
516
|
-
|
|
517
|
-
- Bumped package version from `5.0.11` to `5.0.12` for the next npm publish.
|
|
518
|
-
- Updated repository metadata and README links to the renamed GitHub repository (`recodeee/guardex`).
|
|
519
|
-
|
|
520
|
-
### v5.0.11
|
|
565
|
+
</details>
|
|
521
566
|
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
- Bumped package version from `5.0.10` to `5.0.11` for the next npm publish.
|
|
567
|
+
<details>
|
|
568
|
+
<summary><strong>v5.x</strong></summary>
|
|
525
569
|
|
|
526
|
-
### v5.0.10
|
|
527
|
-
|
|
528
|
-
- Bumped package version from `5.0.9` to `5.0.10` for the next npm publish.
|
|
529
|
-
|
|
530
|
-
### v5.0.9
|
|
531
|
-
|
|
532
|
-
- Enforced OpenSpec workspace bootstrap for sandbox agent execution: `scripts/codex-agent.sh` now initializes `openspec/plan/<agent-branch-slug>/` before launching Codex, and `scripts/agent-branch-start.sh` supports `GUARDEX_OPENSPEC_AUTO_INIT` plus `GUARDEX_OPENSPEC_PLAN_SLUG`.
|
|
533
|
-
- Tightened doctor auto-finish correctness: sandbox finish now waits for merge and exits non-zero if the PR closes without merge, so repair flows are not reported as complete when policy blocks merge.
|
|
534
|
-
- Updated package version from `5.0.8` to `5.0.9` for the next npm publish.
|
|
535
|
-
|
|
536
|
-
### v5.0.8
|
|
537
|
-
|
|
538
|
-
- Fixed `bin/multiagent-safety.js` syntax regressions in the doctor sandbox flow (`Unexpected identifier` / `Unexpected end of input`) that were breaking CLI execution and CI tests.
|
|
539
|
-
- Restored `scripts/codex-agent.sh` from `templates/scripts/codex-agent.sh` so critical runtime helper parity checks pass in clean CI clones.
|
|
540
|
-
- Bumped package version from `5.0.7` to `5.0.8` for the next npm publish.
|
|
541
|
-
|
|
542
|
-
### v5.0.7
|
|
543
|
-
### Unreleased (generated draft, not versioned yet)
|
|
544
|
-
|
|
545
|
-
- Add the user-facing changes for the next release here before assigning a version number.
|
|
546
|
-
- Keep this section focused on behavior changes (`Added`, `Changed`, `Fixed`) rather than version-bump-only notes.
|
|
570
|
+
### v5.0.17 – v5.0.10
|
|
571
|
+
Version bumps for npm publish continuity plus incremental fixes: doctor arg-parser restored (5.0.16), parent-workspace view added (5.0.15), OMX completion policy wording (5.0.11), OpenSpec sandbox bootstrap enforced (5.0.9), bin syntax regressions fixed (5.0.8).
|
|
547
572
|
|
|
548
573
|
### v5.0.6
|
|
549
|
-
|
|
550
|
-
- `gx cleanup
|
|
551
|
-
- Added `gx cleanup --keep-clean-worktrees` to opt out and keep clean worktrees visible.
|
|
552
|
-
- Bumped package version from `5.0.5` to `5.0.6` for the next npm publish.
|
|
553
|
-
|
|
554
|
-
### v5.0.5
|
|
555
|
-
|
|
556
|
-
- Bumped package version from `5.0.4` to `5.0.5` so npm publish can proceed with the next patch release.
|
|
557
|
-
|
|
558
|
-
### v5.0.4
|
|
559
|
-
|
|
560
|
-
- Bumped package version from `5.0.3` to `5.0.4` to stay one patch ahead of the current npm published version.
|
|
561
|
-
|
|
562
|
-
### v5.0.3
|
|
563
|
-
|
|
564
|
-
- Bumped package version from `5.0.2` to `5.0.3` for the next npm publish.
|
|
574
|
+
- `gx cleanup` and auto-finish cleanup now prune clean agent worktrees by default. VS Code Source Control focuses on your local branch + worktrees with active changes.
|
|
575
|
+
- Added `gx cleanup --keep-clean-worktrees` to opt out.
|
|
565
576
|
|
|
566
577
|
### v5.0.2
|
|
567
|
-
|
|
568
|
-
- Auto-closes Codex sandbox branches through PR workflow and keeps merged branch/worktree sandboxes for explicit cleanup via `gx cleanup`.
|
|
578
|
+
- Auto-closes Codex sandbox branches through PR workflow; keeps merged branch/worktree sandboxes for explicit cleanup via `gx cleanup`.
|
|
569
579
|
- Runs `gx doctor` repairs from a sandbox when `main` is protected.
|
|
570
580
|
- Allows tightly guarded Codex-only commits for `AGENTS.md` / `.gitignore` on protected branches.
|
|
571
|
-
- Advanced package version to keep npm publishing unblocked.
|
|
572
581
|
|
|
573
582
|
### v5.0.0
|
|
574
|
-
|
|
575
|
-
-
|
|
576
|
-
-
|
|
577
|
-
- Enforced a repeatable per-message agent branch lifecycle in setup/init flows.
|
|
583
|
+
- Rebranded CLI to **GuardeX** with `gx`-first command UX.
|
|
584
|
+
- Published under scoped package name `@imdeadpool/guardex`.
|
|
585
|
+
- Enforced repeatable per-message agent branch lifecycle in setup/init flows.
|
|
578
586
|
- Added codex-auth-aware sandbox branch naming support.
|
|
579
587
|
|
|
580
|
-
|
|
588
|
+
</details>
|
|
581
589
|
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
590
|
+
<details>
|
|
591
|
+
<summary><strong>v0.4.x</strong></summary>
|
|
592
|
+
|
|
593
|
+
### v0.4.6
|
|
594
|
+
- Added repository metadata (`repository`, `bugs`, `homepage`, `funding`).
|
|
595
|
+
- Added CI workflow for Node 18/20/22.
|
|
596
|
+
- Added npm provenance release workflow, OpenSSF Scorecard, Dependabot for Actions.
|
|
585
597
|
- Added explicit `SECURITY.md` and `CONTRIBUTING.md`.
|
|
586
598
|
|
|
587
599
|
### v0.4.5
|
|
588
|
-
|
|
589
600
|
- Added optional pre-commit behind-threshold sync gate (`multiagent.sync.requireBeforeCommit`, `multiagent.sync.maxBehindCommits`).
|
|
590
|
-
- Added `gx sync` workflow (`--check`,
|
|
591
|
-
- `agent-branch-finish.sh`
|
|
601
|
+
- Added `gx sync` workflow (`--check`, strategies, report mode).
|
|
602
|
+
- `agent-branch-finish.sh` blocks finishing when source is behind `origin/<base>`.
|
|
592
603
|
|
|
593
604
|
### v0.4.4
|
|
594
|
-
|
|
595
605
|
- Added `scripts/agent-worktree-prune.sh` to templates/install.
|
|
596
|
-
- `agent-branch-finish.sh`
|
|
597
|
-
- Added npm helper
|
|
606
|
+
- `agent-branch-finish.sh` auto-runs prune after merge.
|
|
607
|
+
- Added npm helper: `agent:cleanup`.
|
|
598
608
|
|
|
599
609
|
### v0.4.2
|
|
600
|
-
|
|
601
|
-
-
|
|
602
|
-
-
|
|
603
|
-
- Interactive approval is strict `[y/n]` (waits for explicit answer).
|
|
604
|
-
- Added setup screenshot to README.
|
|
605
|
-
- Added workflow screenshots (branch start, lock/delete guard, source-control view).
|
|
610
|
+
- Setup detects existing global OMX/OpenSpec installs first; skips global install if tools are present.
|
|
611
|
+
- Interactive approval is strict `[y/n]`.
|
|
612
|
+
- Added setup + workflow screenshots.
|
|
606
613
|
|
|
607
614
|
### v0.4.0
|
|
615
|
+
- Added setup-time Y/N approval for optional global install of `oh-my-codex` and `@fission-ai/openspec`.
|
|
616
|
+
- Added setup flags: `--yes-global-install`, `--no-global-install`.
|
|
608
617
|
|
|
609
|
-
|
|
610
|
-
- `oh-my-codex`
|
|
611
|
-
- `@fission-ai/openspec`
|
|
612
|
-
- Added setup flags for automation:
|
|
613
|
-
- `--yes-global-install`
|
|
614
|
-
- `--no-global-install`
|
|
615
|
-
- Added official repo links for OMX and OpenSpec.
|
|
618
|
+
</details>
|