@controlvector/cv-agent 1.10.0 → 1.11.0

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.
@@ -6,30 +6,106 @@
6
6
  * Ensures all changes are committed and pushed, because Claude Code
7
7
  * cannot be trusted to do this reliably.
8
8
  *
9
- * Evidence: ANAX Artifact Registry task (2026-04-03) — Claude Code wrote
10
- * an entire module and didn't git-add a single file.
9
+ * SAFETY GUARDS (Bug 3 fix, 2026-04-11):
10
+ * - REFUSES to run if workspace is user's HOME directory
11
+ * - REFUSES to run if workspace has no .git directory
12
+ * - Filters out sensitive files from staging (.claude/, .zsh_history, etc.)
13
+ * - Logs warnings instead of silently committing dangerous paths
11
14
  */
12
15
  Object.defineProperty(exports, "__esModule", { value: true });
13
16
  exports.gitSafetyNet = gitSafetyNet;
14
17
  const node_child_process_1 = require("node:child_process");
15
- /**
16
- * Execute a git command, return stdout or throw.
17
- */
18
+ const node_fs_1 = require("node:fs");
19
+ const node_path_1 = require("node:path");
20
+ const node_os_1 = require("node:os");
21
+ /** Files/directories that must NEVER be committed by the safety net */
22
+ const DANGEROUS_PATTERNS = [
23
+ '.claude/',
24
+ '.claude.json',
25
+ '.credentials',
26
+ '.zsh_history',
27
+ '.bash_history',
28
+ '.zsh_sessions/',
29
+ '.ssh/',
30
+ '.gnupg/',
31
+ '.npm/',
32
+ '.config/',
33
+ '.CFUserTextEncoding',
34
+ 'Library/',
35
+ 'Applications/',
36
+ '.Trash/',
37
+ '.DS_Store',
38
+ 'node_modules/',
39
+ '.env',
40
+ '.env.local',
41
+ '.env.production',
42
+ ];
18
43
  function git(cmd, cwd) {
19
44
  return (0, node_child_process_1.execSync)(cmd, { cwd, encoding: 'utf8', timeout: 30_000 }).trim();
20
45
  }
46
+ /**
47
+ * Check if a workspace is safe for auto-commit operations.
48
+ * Returns an error string if unsafe, null if safe.
49
+ */
50
+ function checkWorkspaceSafety(workspaceRoot) {
51
+ const resolved = (0, node_path_1.resolve)(workspaceRoot);
52
+ const home = (0, node_path_1.resolve)((0, node_os_1.homedir)());
53
+ // NEVER auto-commit from user's HOME directory
54
+ if (resolved === home) {
55
+ return `Workspace is user HOME directory (${home}). Refusing to auto-commit to prevent indexing personal files.`;
56
+ }
57
+ // NEVER auto-commit from a parent of HOME (e.g., /Users or /)
58
+ if (home.startsWith(resolved + '/')) {
59
+ return `Workspace (${resolved}) is a parent of HOME. Refusing to auto-commit.`;
60
+ }
61
+ // Must have a .git directory
62
+ if (!(0, node_fs_1.existsSync)((0, node_path_1.join)(resolved, '.git'))) {
63
+ return `No .git directory in ${resolved}. Not a git repository.`;
64
+ }
65
+ return null;
66
+ }
67
+ /**
68
+ * Filter out dangerous files from git status output.
69
+ * Returns only the safe lines.
70
+ */
71
+ function filterDangerousFiles(statusLines) {
72
+ const safe = [];
73
+ const blocked = [];
74
+ for (const line of statusLines) {
75
+ const filePath = line.substring(3).trim(); // Remove status prefix (e.g., "?? " or " M ")
76
+ const isDangerous = DANGEROUS_PATTERNS.some(pattern => filePath.startsWith(pattern) || filePath.includes('/' + pattern));
77
+ if (isDangerous) {
78
+ blocked.push(filePath);
79
+ }
80
+ else {
81
+ safe.push(line);
82
+ }
83
+ }
84
+ return { safe, blocked };
85
+ }
21
86
  /**
22
87
  * Ensure all changes are committed and pushed after Claude Code exits.
23
88
  *
24
- * 1. Check for uncommitted changes (untracked, modified, deleted)
25
- * 2. If any: git add -A, commit with task metadata, push
26
- * 3. If no local changes but unpushed commits: push them
27
- * 4. Return structured result for task reporting
89
+ * Safety guards:
90
+ * - Refuses if workspace is HOME directory
91
+ * - Refuses if no .git directory exists
92
+ * - Filters out sensitive files (.claude/, .zsh_history, etc.)
93
+ * - Only stages files that pass the safety filter
28
94
  */
29
95
  function gitSafetyNet(workspaceRoot, taskTitle, taskId, branch) {
30
96
  const targetBranch = branch || 'main';
97
+ // ── Safety check: refuse to run in dangerous directories ──────────
98
+ const safetyError = checkWorkspaceSafety(workspaceRoot);
99
+ if (safetyError) {
100
+ console.log(` [git-safety] BLOCKED: ${safetyError}`);
101
+ return {
102
+ hadChanges: false, filesAdded: 0, filesModified: 0,
103
+ filesDeleted: 0, pushed: false, skipped: true,
104
+ skipReason: safetyError,
105
+ };
106
+ }
31
107
  try {
32
- // 1. Check for ANY uncommitted changes
108
+ // 1. Check for uncommitted changes
33
109
  let statusOutput;
34
110
  try {
35
111
  statusOutput = git('git status --porcelain', workspaceRoot);
@@ -37,8 +113,8 @@ function gitSafetyNet(workspaceRoot, taskTitle, taskId, branch) {
37
113
  catch {
38
114
  return { hadChanges: false, filesAdded: 0, filesModified: 0, filesDeleted: 0, pushed: false, error: 'git status failed' };
39
115
  }
40
- const lines = statusOutput.split('\n').filter(Boolean);
41
- if (lines.length === 0) {
116
+ const allLines = statusOutput.split('\n').filter(Boolean);
117
+ if (allLines.length === 0) {
42
118
  // No local changes — check for unpushed commits
43
119
  try {
44
120
  const unpushed = git(`git log origin/${targetBranch}..HEAD --oneline 2>/dev/null`, workspaceRoot);
@@ -49,13 +125,22 @@ function gitSafetyNet(workspaceRoot, taskTitle, taskId, branch) {
49
125
  }
50
126
  }
51
127
  catch {
52
- // No remote tracking or push failed — not critical
128
+ // No remote tracking or push failed
53
129
  }
54
130
  return { hadChanges: false, filesAdded: 0, filesModified: 0, filesDeleted: 0, pushed: false };
55
131
  }
56
- // 2. Parse what Claude Code left behind
132
+ // 2. Filter out dangerous files
133
+ const { safe: safeLines, blocked } = filterDangerousFiles(allLines);
134
+ if (blocked.length > 0) {
135
+ console.log(` [git-safety] Blocked ${blocked.length} sensitive file(s) from staging: ${blocked.slice(0, 5).join(', ')}${blocked.length > 5 ? '...' : ''}`);
136
+ }
137
+ if (safeLines.length === 0) {
138
+ console.log(` [git-safety] All ${allLines.length} changed files were blocked by safety filter`);
139
+ return { hadChanges: false, filesAdded: 0, filesModified: 0, filesDeleted: 0, pushed: false };
140
+ }
141
+ // 3. Parse safe changes
57
142
  let added = 0, modified = 0, deleted = 0;
58
- for (const line of lines) {
143
+ for (const line of safeLines) {
59
144
  const code = line.substring(0, 2);
60
145
  if (code.includes('?'))
61
146
  added++;
@@ -64,13 +149,21 @@ function gitSafetyNet(workspaceRoot, taskTitle, taskId, branch) {
64
149
  else if (code.includes('M') || code.includes('A'))
65
150
  modified++;
66
151
  else
67
- added++; // Treat unknown status as added
152
+ added++;
68
153
  }
69
- console.log(` [git-safety] ${lines.length} uncommitted changes ` +
154
+ console.log(` [git-safety] ${safeLines.length} safe changes ` +
70
155
  `(${added} new, ${modified} modified, ${deleted} deleted) — committing now`);
71
- // 3. Stage everything
72
- git('git add -A', workspaceRoot);
73
- // 4. Commit with task metadata
156
+ // 4. Stage only safe files (NOT git add -A)
157
+ for (const line of safeLines) {
158
+ const filePath = line.substring(3).trim();
159
+ try {
160
+ git(`git add -- ${JSON.stringify(filePath)}`, workspaceRoot);
161
+ }
162
+ catch {
163
+ // Individual file add failed — skip it
164
+ }
165
+ }
166
+ // 5. Commit with task metadata
74
167
  const shortId = taskId.substring(0, 8);
75
168
  const commitMsg = `task: ${taskTitle} [${shortId}]\n\nAuto-committed by cv-agent git safety net.\nTask ID: ${taskId}\nFiles: ${added} added, ${modified} modified, ${deleted} deleted`;
76
169
  let commitSha;
@@ -80,7 +173,6 @@ function gitSafetyNet(workspaceRoot, taskTitle, taskId, branch) {
80
173
  commitSha = shaMatch ? shaMatch[1] : undefined;
81
174
  }
82
175
  catch (e) {
83
- // Commit may fail if there's nothing to commit after add
84
176
  if (!e.message?.includes('nothing to commit')) {
85
177
  return {
86
178
  hadChanges: true, filesAdded: added, filesModified: modified,
@@ -88,7 +180,7 @@ function gitSafetyNet(workspaceRoot, taskTitle, taskId, branch) {
88
180
  };
89
181
  }
90
182
  }
91
- // 5. Push
183
+ // 6. Push
92
184
  try {
93
185
  git(`git push origin ${targetBranch}`, workspaceRoot);
94
186
  console.log(` [git-safety] Committed and pushed: ${commitSha || 'ok'}`);
@@ -1 +1 @@
1
- {"version":3,"file":"git-safety.js","sourceRoot":"","sources":["../../src/commands/git-safety.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-safety.js","sourceRoot":"","sources":["../../src/commands/git-safety.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmQpC,wBAAgB,YAAY,IAAI,OAAO,CAKtC"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8lBpC,wBAAgB,YAAY,IAAI,OAAO,CAKtC"}