@wipcomputer/wip-ai-devops-toolbox 1.9.36 → 1.9.38

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 CHANGED
@@ -31,6 +31,40 @@
31
31
 
32
32
 
33
33
 
34
+
35
+ ## 1.9.38 (2026-03-16)
36
+
37
+ # GitHub Packages publish from public repo
38
+
39
+ **Date:** 2026-03-16
40
+ **Closes:** #193
41
+
42
+ ## What changed
43
+
44
+ `deploy-public.sh` now publishes to GitHub Packages from the public repo clone after the npm publish step. Previously, GitHub Packages were only published from the private repo during `wip-release`, so they showed on the private repo's Packages tab. Users couldn't see them.
45
+
46
+ Now packages show on the public repo's Packages tab where users expect to find them. Uses `gh auth token` for authentication (already available from the gh CLI).
47
+
48
+ ## Why
49
+
50
+ The Packages tab on public repos was empty. Users visiting wipcomputer/wip-ldm-os or wipcomputer/wip-ai-devops-toolbox saw no packages even though they were published. The packages existed but were linked to the private repo.
51
+
52
+ ## 1.9.37 (2026-03-16)
53
+
54
+ # GitHub Packages publish from public repo
55
+
56
+ **Date:** 2026-03-16
57
+ **Closes:** #193
58
+
59
+ ## What changed
60
+
61
+ `deploy-public.sh` now publishes to GitHub Packages from the public repo clone after the npm publish step. Previously, GitHub Packages were only published from the private repo during `wip-release`, so they showed on the private repo's Packages tab. Users couldn't see them.
62
+
63
+ Now packages show on the public repo's Packages tab where users expect to find them. Uses `gh auth token` for authentication (already available from the gh CLI).
64
+
65
+ ## Why
66
+
67
+ The Packages tab on public repos was empty. Users visiting wipcomputer/wip-ldm-os or wipcomputer/wip-ai-devops-toolbox saw no packages even though they were published. The packages existed but were linked to the private repo.
34
68
 
35
69
  ## 1.9.36 (2026-03-16)
36
70
 
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.36"
8
+ version: "1.9.38"
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-ai-devops-toolbox",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
4
4
  "type": "module",
5
5
  "description": "The complete AI DevOps toolkit for AI-assisted development teams.",
6
6
  "license": "MIT",
@@ -122,6 +122,12 @@ rsync -a \
122
122
 
123
123
  cd "$TMPDIR/public"
124
124
 
125
+ # Rewrite package.json repository URL from private to public repo
126
+ # GitHub Packages links packages to the repo in repository.url
127
+ if [[ -f package.json ]] && grep -q "\-private" package.json 2>/dev/null; then
128
+ sed -i '' 's|-private\.git|.git|g; s|-private"|"|g' package.json
129
+ fi
130
+
125
131
  # Check if there are changes
126
132
  if git diff --quiet HEAD -- 2>/dev/null && git diff --cached --quiet HEAD -- 2>/dev/null && [[ -z "$(git ls-files --others --exclude-standard)" ]]; then
127
133
  echo "No changes to deploy."
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/deploy-public",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
4
4
  "description": "Private-to-public repo sync. Excludes ai/ folder, creates PR, merges, cleans up branches.",
5
5
  "bin": {
6
6
  "deploy-public": "./deploy-public.sh"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/post-merge-rename",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
4
4
  "description": "Post-merge branch renaming. Appends --merged-YYYY-MM-DD to preserve history.",
5
5
  "bin": {
6
6
  "post-merge-rename": "./post-merge-rename.sh"
@@ -3,6 +3,7 @@
3
3
  // PreToolUse hook for Claude Code.
4
4
  // Blocks ALL file writes and git commits when on main branch.
5
5
  // Agents must work on branches or worktrees. Never on main.
6
+ // Also blocks dangerous flags (--no-verify, --force) on ANY branch.
6
7
 
7
8
  import { execSync } from 'node:child_process';
8
9
  import { dirname, join } from 'node:path';
@@ -85,6 +86,9 @@ const ALLOWED_BASH_PATTERNS = [
85
86
  /\bwip-release\b.*--dry-run/,
86
87
  /\bnpm\s+install\s+-g\b/, // global installs modify /opt/homebrew/, not the repo
87
88
  /\bnpm\s+link\b/, // global operation, not repo-local
89
+ /\bldm\s+(install|init|doctor|stack|updates)\b/, // LDM OS commands modify ~/.ldm/, not the repo
90
+ /\brm\s+.*\.ldm\/state\//, // cleaning LDM state files only, not repo files
91
+ /\bclaude\s+mcp\b/, // MCP registration, not repo files
88
92
  ];
89
93
 
90
94
  function deny(reason) {
@@ -171,6 +175,19 @@ async function main() {
171
175
  const toolName = input.tool_name || '';
172
176
  const toolInput = input.tool_input || {};
173
177
 
178
+ // Block dangerous flags on ANY branch (these bypass safety checks)
179
+ if (toolName === BASH_TOOL) {
180
+ const cmd = (toolInput.command || '');
181
+ if (/--no-verify\b/.test(cmd)) {
182
+ deny('BLOCKED: --no-verify bypasses git hooks. Remove it and let the hooks run.');
183
+ process.exit(0);
184
+ }
185
+ if (/\bgit\s+push\b.*--force\b/.test(cmd) && !/--force-with-lease\b/.test(cmd)) {
186
+ deny('BLOCKED: git push --force can destroy remote history. Use --force-with-lease or ask Parker.');
187
+ process.exit(0);
188
+ }
189
+ }
190
+
174
191
  // Determine which repo to check.
175
192
  // Claude Code always opens in .openclaw, but edits files in other repos.
176
193
  // We need to check the branch of THE REPO THE FILE LIVES IN, not the CWD.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-branch-guard",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
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
6
  "main": "guard.mjs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-file-guard",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
4
4
  "type": "module",
5
5
  "description": "Hook that blocks destructive edits to protected identity files. For Claude Code CLI and OpenClaw.",
6
6
  "main": "guard.mjs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-license-guard",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
4
4
  "description": "License compliance for your own repos. Ensures correct copyright, dual-license blocks, and LICENSE files.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-license-hook",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
4
4
  "description": "License rug-pull detection and dependency license compliance for open source projects",
5
5
  "type": "module",
6
6
  "main": "dist/cli/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-readme-format",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
4
4
  "description": "Reformat any repo's README to follow the WIP Computer standard. Agent-first, human-readable.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-release",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
4
4
  "type": "module",
5
5
  "description": "One-command release pipeline. Bumps version, updates changelog + SKILL.md, publishes to npm + GitHub.",
6
6
  "main": "core.mjs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-repo-init",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
4
4
  "description": "Scaffold the standard ai/ directory structure in any repo",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-repo-permissions-hook",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
4
4
  "type": "module",
5
5
  "description": "Repo visibility guard. Blocks repos from going public without a -private counterpart.",
6
6
  "main": "core.mjs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/wip-repos",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
4
4
  "type": "module",
5
5
  "description": "Repo manifest reconciler. Single source of truth for repo organization. Like prettier for folder structure.",
6
6
  "main": "core.mjs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipcomputer/universal-installer",
3
- "version": "1.9.36",
3
+ "version": "1.9.38",
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",