@imdeadpool/guardex 5.0.1 → 5.0.3
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/CONTRIBUTING.md +1 -0
- package/README.md +128 -298
- package/bin/multiagent-safety.js +738 -20
- package/package.json +2 -2
- package/templates/AGENTS.multiagent-safety.md +7 -1
- package/templates/codex/skills/guardex/SKILL.md +2 -0
- package/templates/githooks/pre-commit +22 -0
- package/templates/scripts/agent-branch-finish.sh +216 -33
- package/templates/scripts/agent-branch-start.sh +40 -6
- package/templates/scripts/agent-worktree-prune.sh +57 -14
- package/templates/scripts/codex-agent.sh +318 -2
package/CONTRIBUTING.md
CHANGED
package/README.md
CHANGED
|
@@ -4,377 +4,182 @@
|
|
|
4
4
|
[](https://github.com/recodeecom/multiagent-safety/actions/workflows/ci.yml)
|
|
5
5
|
[](https://securityscorecards.dev/viewer/?uri=github.com/recodeecom/multiagent-safety)
|
|
6
6
|
|
|
7
|
-
GuardeX is a
|
|
7
|
+
GuardeX is a safety layer for parallel Codex/agent work in git repos.
|
|
8
8
|
|
|
9
9
|
> [!WARNING]
|
|
10
10
|
> Not affiliated with OpenAI or Codex. Not an official tool.
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## The problem (what was going wrong)
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
Multiple Codex agents worked on the same files at the same time.
|
|
15
|
+
They started overwriting or deleting each other's changes.
|
|
16
|
+
Progress became **de-progressive**: more activity, less real forward movement.
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
GuardeX exists to stop that loop.
|
|
19
19
|
|
|
20
20
|

|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
```sh
|
|
30
|
-
npm i -g @imdeadpool/guardex
|
|
22
|
+
```mermaid
|
|
23
|
+
flowchart LR
|
|
24
|
+
A[Agent A edits file X] --> C[Conflict / overwrite]
|
|
25
|
+
B[Agent B edits file X] --> C
|
|
26
|
+
C --> D[Deleted or lost code]
|
|
27
|
+
D --> E[Rework and confusion]
|
|
28
|
+
E --> C
|
|
31
29
|
```
|
|
32
30
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
## Command aliases
|
|
37
|
-
|
|
38
|
-
- Preferred short command: `gx`
|
|
39
|
-
- Full command: `guardex`
|
|
40
|
-
- Legacy aliases still supported: `musafety`, `multiagent-safety`
|
|
41
|
-
|
|
42
|
-
## Security + maintenance posture
|
|
31
|
+
## What GuardeX enforces
|
|
43
32
|
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
Related tools:
|
|
50
|
-
|
|
51
|
-
- [oh-my-codex (OMX)](https://github.com/Yeachan-Heo/oh-my-codex)
|
|
52
|
-
- [OpenSpec](https://github.com/Fission-AI/OpenSpec)
|
|
53
|
-
- [codex-account-switcher-cli](https://github.com/recodeecom/codex-account-switcher-cli)
|
|
33
|
+
- isolated `agent/*` branch + worktree per task
|
|
34
|
+
- explicit file lock claiming before edits
|
|
35
|
+
- deletion guard for claimed files
|
|
36
|
+
- protected-base branch safety (`main`, `dev`, `master` by default)
|
|
37
|
+
- repair/doctor flow when drift appears
|
|
54
38
|
|
|
55
|
-
##
|
|
39
|
+
## Copy-paste: install + bootstrap
|
|
56
40
|
|
|
57
41
|
```sh
|
|
58
|
-
|
|
42
|
+
npm i -g @imdeadpool/guardex
|
|
43
|
+
cd /path/to/your/repo
|
|
59
44
|
gx setup
|
|
60
|
-
# alias:
|
|
61
|
-
gx init
|
|
62
45
|
```
|
|
63
46
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
1. detects whether OMX/OpenSpec/codex-auth are already globally installed,
|
|
67
|
-
2. asks strict Y/N approval only if something is missing,
|
|
68
|
-
3. installs guardrail scripts/hooks,
|
|
69
|
-
4. repairs common safety problems,
|
|
70
|
-
5. installs local Codex + Claude gx helper skill files if missing,
|
|
71
|
-
6. scans and reports final status.
|
|
72
|
-
|
|
73
|
-
## Setup behavior screenshot
|
|
74
|
-
|
|
75
|
-

|
|
76
|
-
|
|
77
|
-
## Status logs screenshot
|
|
78
|
-
|
|
79
|
-

|
|
47
|
+
Alias support:
|
|
80
48
|
|
|
81
|
-
|
|
49
|
+
- preferred: `gx`
|
|
50
|
+
- full: `guardex`
|
|
82
51
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
- Codex skill: `.codex/skills/guardex/SKILL.md`
|
|
86
|
-
- Claude command: `.claude/commands/guardex.md` (use as `/guardex`)
|
|
87
|
-
|
|
88
|
-
## Scorecard report generation
|
|
89
|
-
|
|
90
|
-
Create/update markdown reports from OpenSSF Scorecard JSON:
|
|
52
|
+
## Copy-paste: daily workflow (per new user task)
|
|
91
53
|
|
|
92
54
|
```sh
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
By default this writes:
|
|
97
|
-
|
|
98
|
-
- `docs/reports/openssf-scorecard-baseline-YYYY-MM-DD.md`
|
|
99
|
-
- `docs/reports/openssf-scorecard-remediation-plan-YYYY-MM-DD.md`
|
|
100
|
-
|
|
101
|
-
## Workflow protocol screenshots
|
|
102
|
-
|
|
103
|
-
### 1) Start isolated agent branch/worktree
|
|
104
|
-
|
|
105
|
-

|
|
106
|
-
|
|
107
|
-
### 2) Lock claim + deletion guard protocol
|
|
108
|
-
|
|
109
|
-

|
|
110
|
-
|
|
111
|
-
### 3) Multi-agent branch visibility (IDE/source control style)
|
|
112
|
-
|
|
113
|
-

|
|
114
|
-
|
|
115
|
-
#### Real VS Code Source Control example (after `gx setup`)
|
|
55
|
+
# 1) Start isolated branch/worktree
|
|
56
|
+
bash scripts/agent-branch-start.sh "task-name" "agent-name"
|
|
116
57
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
This is the exact layout you should expect in VS Code Source Control after setup
|
|
120
|
-
and a few `agent-branch-start` runs:
|
|
121
|
-
|
|
122
|
-
```text
|
|
123
|
-
GuardeX (your preferred local branch: main/dev)
|
|
124
|
-
agent_codex_<timestamp>-<snapshot>-<task>
|
|
125
|
-
agent_bot_<timestamp>-<snapshot>-<task>
|
|
126
|
-
agent_bot_<timestamp>-<snapshot>-<task>
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
That gives you one stable main repo view plus parallel agent worktrees in the
|
|
130
|
-
same VS Code window, so branch ownership and progress stay visible at once.
|
|
131
|
-
|
|
132
|
-
## Companion tool: `codex-auth` account switcher
|
|
133
|
-
|
|
134
|
-
If you run multiple Codex identities, this workflow pairs well with
|
|
135
|
-
[`codex-auth`](https://github.com/recodeecom/codex-account-switcher-cli/tree/main),
|
|
136
|
-
a CLI that snapshots `~/.codex/auth.json` per account and lets you switch fast
|
|
137
|
-
without repeated login/logout loops.
|
|
138
|
-
|
|
139
|
-
> [!WARNING]
|
|
140
|
-
> Not affiliated with OpenAI or Codex. Not an official tool.
|
|
141
|
-
|
|
142
|
-
How `codex-auth` works:
|
|
143
|
-
|
|
144
|
-
- stores named snapshots in `~/.codex/accounts/*.json`
|
|
145
|
-
- switches by replacing active `~/.codex/auth.json`
|
|
146
|
-
- keeps lightweight per-terminal session memory (default key is shell PPID),
|
|
147
|
-
so older terminals can keep their original account context
|
|
58
|
+
# 2) Claim ownership
|
|
59
|
+
python3 scripts/agent-file-locks.py claim --branch "$(git rev-parse --abbrev-ref HEAD)" <file...>
|
|
148
60
|
|
|
149
|
-
|
|
61
|
+
# 3) Implement + verify
|
|
62
|
+
npm test
|
|
150
63
|
|
|
151
|
-
|
|
64
|
+
# 4) Finish (commit/push/PR/merge flow)
|
|
65
|
+
bash scripts/agent-branch-finish.sh --branch "$(git rev-parse --abbrev-ref HEAD)"
|
|
152
66
|
|
|
153
|
-
|
|
154
|
-
|
|
67
|
+
# 5) Optional cleanup after merge
|
|
68
|
+
gx cleanup --branch "$(git rev-parse --abbrev-ref HEAD)"
|
|
155
69
|
```
|
|
156
70
|
|
|
157
|
-
|
|
71
|
+
If you use `scripts/codex-agent.sh`, the finish flow is auto-run after the Codex session exits.
|
|
158
72
|
|
|
159
|
-
|
|
160
|
-
codex-auth login [name]
|
|
161
|
-
codex-auth save <name>
|
|
162
|
-
codex-auth use <name>
|
|
163
|
-
codex-auth list --details
|
|
164
|
-
codex-auth current
|
|
165
|
-
codex-auth status
|
|
166
|
-
codex-auth self-update --check
|
|
167
|
-
```
|
|
73
|
+
## Visual workflow
|
|
168
74
|
|
|
169
|
-
|
|
75
|
+
### Setup status
|
|
170
76
|
|
|
171
|
-
|
|
172
|
-
codex-auth setup-login-hook
|
|
173
|
-
codex-auth hook-status
|
|
174
|
-
codex-auth remove-login-hook
|
|
175
|
-
```
|
|
77
|
+

|
|
176
78
|
|
|
177
|
-
|
|
79
|
+
### Service logs/status
|
|
178
80
|
|
|
179
|
-
|
|
180
|
-
gx copy-prompt
|
|
181
|
-
```
|
|
81
|
+

|
|
182
82
|
|
|
183
|
-
|
|
83
|
+
### Branch/worktree start protocol
|
|
184
84
|
|
|
185
|
-
|
|
85
|
+

|
|
186
86
|
|
|
187
|
-
|
|
87
|
+
### Lock + delete guard protocol
|
|
188
88
|
|
|
189
|
-
|
|
89
|
+

|
|
190
90
|
|
|
191
|
-
|
|
91
|
+
## Copy-paste: common commands
|
|
192
92
|
|
|
193
93
|
```sh
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
Example output:
|
|
94
|
+
# health / safety status
|
|
95
|
+
gx status
|
|
198
96
|
|
|
199
|
-
|
|
200
|
-
npm i -g @imdeadpool/guardex
|
|
97
|
+
# setup and repair
|
|
201
98
|
gx setup
|
|
202
99
|
gx doctor
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
bash scripts/agent-branch-finish.sh --branch "$(git rev-parse --abbrev-ref HEAD)"
|
|
207
|
-
bash scripts/openspec/init-plan-workspace.sh "<plan-slug>"
|
|
100
|
+
|
|
101
|
+
# protected branch management
|
|
102
|
+
gx protect list
|
|
208
103
|
gx protect add release staging
|
|
104
|
+
gx protect remove release
|
|
105
|
+
|
|
106
|
+
# sync with base branch
|
|
209
107
|
gx sync --check
|
|
210
108
|
gx sync
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
Full checklist output:
|
|
214
|
-
|
|
215
|
-
```text
|
|
216
|
-
Use this exact checklist to setup multi-agent safety in this repository for Codex or Claude.
|
|
217
109
|
|
|
218
|
-
|
|
219
|
-
|
|
110
|
+
# cleanup merged agent branches/worktrees
|
|
111
|
+
gx cleanup
|
|
220
112
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
- Setup detects global OMX/OpenSpec/codex-auth first.
|
|
226
|
-
- If one is missing and setup asks for approval, reply explicitly:
|
|
227
|
-
- y = run: npm i -g oh-my-codex @fission-ai/openspec @imdeadpool/codex-account-switcher (missing ones only)
|
|
228
|
-
- n = skip global installs
|
|
229
|
-
|
|
230
|
-
3) If setup reports warnings/errors, repair + re-check:
|
|
231
|
-
gx doctor
|
|
232
|
-
|
|
233
|
-
4) Confirm next safe agent workflow commands:
|
|
234
|
-
bash scripts/codex-agent.sh "task" "agent-name"
|
|
235
|
-
bash scripts/agent-branch-start.sh "task" "agent-name"
|
|
236
|
-
python3 scripts/agent-file-locks.py claim --branch "$(git rev-parse --abbrev-ref HEAD)" <file...>
|
|
237
|
-
bash scripts/agent-branch-finish.sh --branch "$(git rev-parse --abbrev-ref HEAD)"
|
|
238
|
-
- For every new user message/task, repeat the same cycle:
|
|
239
|
-
start isolated agent branch/worktree -> claim file locks -> implement/verify ->
|
|
240
|
-
finish via PR/merge cleanup with scripts/agent-branch-finish.sh.
|
|
241
|
-
|
|
242
|
-
5) Optional: create OpenSpec planning workspace:
|
|
243
|
-
bash scripts/openspec/init-plan-workspace.sh "<plan-slug>"
|
|
244
|
-
|
|
245
|
-
6) Optional: protect extra branches:
|
|
246
|
-
gx protect add release staging
|
|
247
|
-
|
|
248
|
-
7) Optional: sync your current agent branch with latest base branch:
|
|
249
|
-
gx sync --check
|
|
250
|
-
gx sync
|
|
251
|
-
|
|
252
|
-
8) Optional (GitHub remote cleanup): enable:
|
|
253
|
-
Settings -> General -> Pull Requests -> Automatically delete head branches
|
|
113
|
+
# scan/report
|
|
114
|
+
gx scan
|
|
115
|
+
gx report scorecard --repo github.com/recodeecom/multiagent-safety
|
|
254
116
|
```
|
|
255
117
|
|
|
256
|
-
##
|
|
118
|
+
## Important behavior defaults
|
|
257
119
|
|
|
258
|
-
|
|
259
|
-
gx
|
|
260
|
-
|
|
261
|
-
gx
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
gx
|
|
265
|
-
|
|
266
|
-
gx protect add <branch...> [--target <path>]
|
|
267
|
-
gx protect remove <branch...> [--target <path>]
|
|
268
|
-
gx protect set <branch...> [--target <path>]
|
|
269
|
-
gx protect reset [--target <path>]
|
|
270
|
-
gx sync --check [--target <path>] [--base <branch>] [--json]
|
|
271
|
-
gx sync [--target <path>] [--base <branch>] [--strategy rebase|merge] [--ff-only]
|
|
272
|
-
gx report scorecard [--target <path>] [--repo github.com/<owner>/<repo>] [--scorecard-json <file>] [--output-dir <path>] [--date YYYY-MM-DD]
|
|
273
|
-
bash scripts/agent-worktree-prune.sh # manual stale worktree cleanup (auto base detection)
|
|
274
|
-
bash scripts/agent-worktree-prune.sh --force-dirty # remove stale dirty worktrees too
|
|
275
|
-
bash scripts/openspec/init-plan-workspace.sh <plan-slug> # optional OpenSpec plan scaffold
|
|
276
|
-
```
|
|
120
|
+
- No command defaults to `gx status`.
|
|
121
|
+
- `gx init` is alias of `gx setup`.
|
|
122
|
+
- Setup/doctor can install missing global OMX/OpenSpec/codex-auth with explicit Y/N confirmation.
|
|
123
|
+
- `gx setup` checks GitHub CLI (`gh`) and prints install guidance if missing.
|
|
124
|
+
- Interactive self-update prompt defaults to **No** (`[y/N]`).
|
|
125
|
+
- In initialized repos, `setup`/`install`/`fix` block protected-base writes unless explicitly overridden.
|
|
126
|
+
- On protected `main`, `gx doctor` auto-runs in a sandbox agent branch/worktree.
|
|
127
|
+
- `scripts/agent-branch-start.sh` hydrates `scripts/codex-agent.sh` into new sandbox worktrees when missing, so auto-finish launcher flow stays available.
|
|
277
128
|
|
|
278
|
-
|
|
279
|
-
`gx status` reports CLI/runtime info, global OMX/OpenSpec/codex-auth service status, and repo safety service state.
|
|
280
|
-
`gx init` is an alias of `gx setup`.
|
|
281
|
-
When run in an interactive terminal, default `GuardeX` checks npm for a newer version first
|
|
282
|
-
and asks `[y/N]` whether to update immediately (default is `N`).
|
|
129
|
+
## Configure protected branches
|
|
283
130
|
|
|
284
|
-
|
|
285
|
-
- Interactive prompt is strict (`[y/n]`) and waits for explicit answer.
|
|
286
|
-
- Non-interactive setup: skips global installs by default; use `--yes-global-install` to force.
|
|
287
|
-
- In already-initialized repos, `setup` / `install` / `fix` / `doctor` block writes on protected `main` by default; start an agent branch first. Use `--allow-protected-base-write` only for emergency in-place maintenance.
|
|
288
|
-
- `scripts/codex-agent.sh` now auto-runs worktree prune after a Codex session; clean sandbox branches are removed automatically, dirty ones are kept.
|
|
131
|
+
Default protected branches:
|
|
289
132
|
|
|
290
|
-
|
|
133
|
+
- `dev`
|
|
134
|
+
- `main`
|
|
135
|
+
- `master`
|
|
291
136
|
|
|
292
137
|
```sh
|
|
293
|
-
gx
|
|
294
|
-
gx
|
|
295
|
-
gx
|
|
296
|
-
gx report help
|
|
138
|
+
gx protect list
|
|
139
|
+
gx protect set main release hotfix
|
|
140
|
+
gx protect reset
|
|
297
141
|
```
|
|
298
142
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
Use sync checks before finishing agent branches:
|
|
143
|
+
Stored in git config key:
|
|
302
144
|
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
gx sync
|
|
145
|
+
```text
|
|
146
|
+
multiagent.protectedBranches
|
|
306
147
|
```
|
|
307
148
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
- `gx sync` base branch: `dev` (or `multiagent.baseBranch`)
|
|
311
|
-
- strategy: `rebase` (or `multiagent.sync.strategy`)
|
|
312
|
-
|
|
313
|
-
`agent-branch-start.sh` and `agent-branch-finish.sh` resolve base branch in this order:
|
|
314
|
-
|
|
315
|
-
1. explicit `--base`
|
|
316
|
-
2. `multiagent.baseBranch`
|
|
317
|
-
3. branch-linked base metadata / source upstream / current checked-out branch (context-dependent)
|
|
318
|
-
4. fallback `dev`
|
|
149
|
+
## Companion dependency: GitHub CLI (`gh`)
|
|
319
150
|
|
|
320
|
-
|
|
151
|
+
GuardeX PR/merge automation depends on GitHub CLI (`gh`), including
|
|
152
|
+
`agent-branch-finish.sh` PR flows and `codex-agent.sh` auto-finish behavior.
|
|
321
153
|
|
|
322
|
-
|
|
323
|
-
gx sync --strategy merge
|
|
324
|
-
gx sync --all-agent-branches --check
|
|
325
|
-
```
|
|
326
|
-
|
|
327
|
-
By default, `agent-branch-finish.sh` also blocks finishing when your branch is behind `origin/<base>` and points to `gx sync`.
|
|
328
|
-
|
|
329
|
-
Optional pre-commit behind-threshold gate (off by default):
|
|
154
|
+
Install + verify:
|
|
330
155
|
|
|
331
156
|
```sh
|
|
332
|
-
|
|
333
|
-
|
|
157
|
+
# install guide: https://cli.github.com/
|
|
158
|
+
gh --version
|
|
159
|
+
gh auth status
|
|
334
160
|
```
|
|
335
161
|
|
|
336
|
-
|
|
162
|
+
## Companion dependency: `codex-auth` account switcher
|
|
337
163
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
Default protected branches are:
|
|
341
|
-
|
|
342
|
-
- `dev`
|
|
343
|
-
- `main`
|
|
344
|
-
- `master`
|
|
164
|
+
For multi-identity Codex workflows, GuardeX pairs with
|
|
165
|
+
[`codex-auth`](https://github.com/recodeecom/codex-account-switcher-cli).
|
|
345
166
|
|
|
346
|
-
|
|
167
|
+
Install:
|
|
347
168
|
|
|
348
169
|
```sh
|
|
349
|
-
|
|
350
|
-
gx protect add release staging
|
|
351
|
-
gx protect remove dev
|
|
352
|
-
gx protect set main release hotfix
|
|
353
|
-
gx protect reset
|
|
170
|
+
npm i -g @imdeadpool/codex-account-switcher
|
|
354
171
|
```
|
|
355
172
|
|
|
356
|
-
|
|
173
|
+
Common commands:
|
|
357
174
|
|
|
358
|
-
```
|
|
359
|
-
|
|
175
|
+
```sh
|
|
176
|
+
codex-auth save <name>
|
|
177
|
+
codex-auth use <name>
|
|
178
|
+
codex-auth list --details
|
|
179
|
+
codex-auth current
|
|
360
180
|
```
|
|
361
181
|
|
|
362
|
-
##
|
|
363
|
-
|
|
364
|
-
- direct commits to protected branches (defaults: `dev`, `main`, `master`; configurable via `gx protect ...`)
|
|
365
|
-
- protected-branch commits are blocked regardless of commit client (including VS Code Source Control)
|
|
366
|
-
- Codex-session commits on non-`agent/*` branches are blocked by default (`multiagent.codexRequireAgentBranch=true`)
|
|
367
|
-
- Codex commits attempted on protected branches trigger `guardex-preedit-guard` and require starting work via `scripts/codex-agent.sh`
|
|
368
|
-
- overlapping file ownership between agents
|
|
369
|
-
- unapproved deletions of claimed files
|
|
370
|
-
- risky stale/missing lock state
|
|
371
|
-
- accidental loss of critical guardrail files
|
|
372
|
-
- in-place branch bootstrap requires explicit opt-in (`--in-place --allow-in-place`)
|
|
373
|
-
- setup also writes a managed `.gitignore` block so generated gx scripts/hooks stay out of normal git status noise by default
|
|
374
|
-
- includes `oh-my-codex/` by default to keep local OMX source clones out of repo status
|
|
375
|
-
- pass `--no-gitignore` if you want to keep tracking these files in git
|
|
376
|
-
|
|
377
|
-
## Files it installs
|
|
182
|
+
## Files installed by setup
|
|
378
183
|
|
|
379
184
|
```text
|
|
380
185
|
scripts/agent-branch-start.sh
|
|
@@ -390,7 +195,14 @@ scripts/openspec/init-plan-workspace.sh
|
|
|
390
195
|
.omx/state/agent-file-locks.json
|
|
391
196
|
```
|
|
392
197
|
|
|
393
|
-
If `package.json` exists,
|
|
198
|
+
If `package.json` exists, setup also adds `agent:*` helper scripts.
|
|
199
|
+
|
|
200
|
+
## Security and maintenance posture
|
|
201
|
+
|
|
202
|
+
- CI matrix on Node 18/20/22 (`npm test`, `node --check`, `npm pack --dry-run`)
|
|
203
|
+
- trusted publishing with provenance in GitHub Actions
|
|
204
|
+
- OpenSSF Scorecard + Dependabot for Actions
|
|
205
|
+
- disclosure policy in [`SECURITY.md`](./SECURITY.md)
|
|
394
206
|
|
|
395
207
|
## Local development
|
|
396
208
|
|
|
@@ -402,6 +214,24 @@ npm pack --dry-run
|
|
|
402
214
|
|
|
403
215
|
## Release notes
|
|
404
216
|
|
|
217
|
+
### v5.0.3
|
|
218
|
+
|
|
219
|
+
- Bumped package version from `5.0.2` to `5.0.3` for the next npm publish.
|
|
220
|
+
|
|
221
|
+
### v5.0.2
|
|
222
|
+
|
|
223
|
+
- Auto-closes Codex sandbox branches through PR workflow and keeps merged branch/worktree sandboxes for explicit cleanup via `gx cleanup`.
|
|
224
|
+
- Runs `gx doctor` repairs from a sandbox when `main` is protected.
|
|
225
|
+
- Allows tightly guarded Codex-only commits for `AGENTS.md` / `.gitignore` on protected branches.
|
|
226
|
+
- Advanced package version to keep npm publishing unblocked.
|
|
227
|
+
|
|
228
|
+
### v5.0.0
|
|
229
|
+
|
|
230
|
+
- Rebranded the CLI to **GuardeX** with `gx`-first command UX.
|
|
231
|
+
- Published under scoped package name `@imdeadpool/guardex` to avoid npm name collisions.
|
|
232
|
+
- Enforced a repeatable per-message agent branch lifecycle in setup/init flows.
|
|
233
|
+
- Added codex-auth-aware sandbox branch naming support.
|
|
234
|
+
|
|
405
235
|
### v0.4.6
|
|
406
236
|
|
|
407
237
|
- Added repository metadata (`repository`, `bugs`, `homepage`, `funding`) in package manifest.
|
|
@@ -425,9 +255,9 @@ npm pack --dry-run
|
|
|
425
255
|
|
|
426
256
|
- Setup now detects existing global OMX/OpenSpec installs first.
|
|
427
257
|
- If tools are already present, setup skips global install automatically.
|
|
428
|
-
- Interactive approval is
|
|
258
|
+
- Interactive approval is strict `[y/n]` (waits for explicit answer).
|
|
429
259
|
- Added setup screenshot to README.
|
|
430
|
-
- Added
|
|
260
|
+
- Added workflow screenshots (branch start, lock/delete guard, source-control view).
|
|
431
261
|
|
|
432
262
|
### v0.4.0
|
|
433
263
|
|