@wipcomputer/wip-ai-devops-toolbox 1.9.63 → 1.9.64
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/CHANGELOG.md +12 -0
- package/SKILL.md +1 -1
- package/package.json +1 -1
- package/tools/deploy-public/package.json +1 -1
- package/tools/post-merge-rename/package.json +1 -1
- package/tools/wip-branch-guard/RELEASE-NOTES-v1-9-64.md +23 -0
- package/tools/wip-branch-guard/guard.mjs +1 -0
- package/tools/wip-branch-guard/package.json +4 -1
- package/tools/wip-file-guard/package.json +1 -1
- package/tools/wip-file-guard/test.sh +3 -2
- package/tools/wip-license-guard/package.json +1 -1
- package/tools/wip-license-hook/package.json +1 -1
- package/tools/wip-readme-format/package.json +1 -1
- package/tools/wip-release/core.mjs +1 -1
- package/tools/wip-release/package.json +1 -1
- package/tools/wip-repo-init/package.json +1 -1
- package/tools/wip-repo-permissions-hook/package.json +1 -1
- package/tools/wip-repos/package.json +1 -1
- package/tools/wip-universal-installer/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -31,6 +31,18 @@
|
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
|
|
34
|
+
|
|
35
|
+
## 1.9.64 (2026-03-29)
|
|
36
|
+
|
|
37
|
+
# Release Notes: wip-ai-devops-toolbox v1.9.64
|
|
38
|
+
|
|
39
|
+
Closes #295
|
|
40
|
+
|
|
41
|
+
## Branch guard: allow extension cleanup
|
|
42
|
+
|
|
43
|
+
The branch guard blocked `rm` on deployed extension directories (`~/.openclaw/extensions/` and `~/.ldm/extensions/`) because those paths live inside git repos. But deployed extensions are managed by `ldm install`, not by hand. When a stale `-private` extension needed to be removed (e.g. `wip-xai-grok-private` replaced by the public `wip-xai-grok`), the agent couldn't clean it up without asking the user to run the command manually.
|
|
44
|
+
|
|
45
|
+
Added an allowlist pattern for `rm` targeting `.openclaw/extensions/` and `.ldm/extensions/` paths. Same approach as the existing `.ldm/state/` allowlist. The guard still blocks `rm` on actual repo source files.
|
|
34
46
|
|
|
35
47
|
## 1.9.63 (2026-03-29)
|
|
36
48
|
|
package/SKILL.md
CHANGED
|
@@ -5,7 +5,7 @@ license: MIT
|
|
|
5
5
|
interface: [cli, module, mcp, skill, hook, plugin]
|
|
6
6
|
metadata:
|
|
7
7
|
display-name: "WIP AI DevOps Toolbox"
|
|
8
|
-
version: "1.9.
|
|
8
|
+
version: "1.9.64"
|
|
9
9
|
homepage: "https://github.com/wipcomputer/wip-ai-devops-toolbox"
|
|
10
10
|
author: "Parker Todd Brooks"
|
|
11
11
|
category: dev-tools
|
package/package.json
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Release Notes: wip-branch-guard v1.9.64
|
|
2
|
+
|
|
3
|
+
**One-line summary of what this release does**
|
|
4
|
+
|
|
5
|
+
Tell the story. What was broken or missing? What did we build? Why does the user care?
|
|
6
|
+
Write at least one real paragraph of prose. Not just bullets. The release notes gate
|
|
7
|
+
will block if there is no narrative. Bullets are fine for details, but the story comes first.
|
|
8
|
+
|
|
9
|
+
## The story
|
|
10
|
+
|
|
11
|
+
(Write a paragraph here. What was the problem? What does this release fix? Why does it matter?
|
|
12
|
+
This is what users read. Make it worth reading.)
|
|
13
|
+
|
|
14
|
+
## Issues closed
|
|
15
|
+
|
|
16
|
+
- #296
|
|
17
|
+
- #295
|
|
18
|
+
|
|
19
|
+
## How to verify
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Commands to test the changes
|
|
23
|
+
```
|
|
@@ -133,6 +133,7 @@ const ALLOWED_BASH_PATTERNS = [
|
|
|
133
133
|
/\bnpm\s+link\b/, // global operation, not repo-local
|
|
134
134
|
/\bldm\s+(install|init|doctor|stack|updates)\b/, // LDM OS commands modify ~/.ldm/, not the repo
|
|
135
135
|
/\brm\s+.*\.ldm\/state\//, // cleaning LDM state files only, not repo files
|
|
136
|
+
/\brm\s+.*\.(openclaw|ldm)\/extensions\//, // cleaning deployed extensions (managed by ldm install, not source code)
|
|
136
137
|
/\bclaude\s+mcp\b/, // MCP registration, not repo files
|
|
137
138
|
/\bmkdir\s+.*\.worktrees\b/, // creating .worktrees/ directory is part of the process
|
|
138
139
|
];
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wipcomputer/wip-branch-guard",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.64",
|
|
4
4
|
"description": "PreToolUse hook that blocks all writes on main branch. Forces agents to work on branches or worktrees.",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "bash test.sh"
|
|
8
|
+
},
|
|
6
9
|
"main": "guard.mjs",
|
|
7
10
|
"bin": {
|
|
8
11
|
"wip-branch-guard": "guard.mjs"
|
|
@@ -83,9 +83,10 @@ check "Block Write to TOOLS.md" \
|
|
|
83
83
|
"block"
|
|
84
84
|
|
|
85
85
|
# Large replacement (same line count, different content)
|
|
86
|
-
|
|
86
|
+
# SHARED-CONTEXT.md is shared state (maxReplace=30), so 8 lines is allowed
|
|
87
|
+
check "Allow Edit replacing 8 lines with 8 different lines in SHARED-CONTEXT.md (shared state)" \
|
|
87
88
|
'{"tool_name":"Edit","tool_input":{"file_path":"/foo/SHARED-CONTEXT.md","old_string":"line1\nline2\nline3\nline4\nline5\nline6\nline7\nline8","new_string":"new1\nnew2\nnew3\nnew4\nnew5\nnew6\nnew7\nnew8"}}' \
|
|
88
|
-
"
|
|
89
|
+
"allow"
|
|
89
90
|
|
|
90
91
|
check "Allow Edit replacing 3 lines in CLAUDE.md" \
|
|
91
92
|
'{"tool_name":"Edit","tool_input":{"file_path":"/foo/CLAUDE.md","old_string":"a\nb\nc","new_string":"x\ny\nz"}}' \
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import { execSync, execFileSync } from 'node:child_process';
|
|
9
9
|
import { readFileSync, writeFileSync, existsSync, readdirSync, mkdirSync, renameSync } from 'node:fs';
|
|
10
|
-
import { join, basename } from 'node:path';
|
|
10
|
+
import { join, basename, dirname } from 'node:path';
|
|
11
11
|
|
|
12
12
|
// ── Version ─────────────────────────────────────────────────────────
|
|
13
13
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wipcomputer/universal-installer",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.64",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "The Universal Interface specification for agent-native software. Teaches your AI how to build repos with every interface: CLI, Module, MCP Server, OpenClaw Plugin, Skill, Claude Code Hook.",
|
|
6
6
|
"main": "detect.mjs",
|