sqlew 3.2.5 → 3.5.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.
Files changed (144) hide show
  1. package/CHANGELOG.md +815 -13
  2. package/README.md +53 -2
  3. package/assets/schema.sql +6 -1
  4. package/dist/config/loader.d.ts +46 -0
  5. package/dist/config/loader.d.ts.map +1 -0
  6. package/dist/config/loader.js +151 -0
  7. package/dist/config/loader.js.map +1 -0
  8. package/dist/config/types.d.ts +77 -0
  9. package/dist/config/types.d.ts.map +1 -0
  10. package/dist/config/types.js +28 -0
  11. package/dist/config/types.js.map +1 -0
  12. package/dist/constants.d.ts +9 -0
  13. package/dist/constants.d.ts.map +1 -1
  14. package/dist/constants.js +10 -0
  15. package/dist/constants.js.map +1 -1
  16. package/dist/database.d.ts +1 -1
  17. package/dist/database.d.ts.map +1 -1
  18. package/dist/database.js +77 -10
  19. package/dist/database.js.map +1 -1
  20. package/dist/index.js +21 -3
  21. package/dist/index.js.map +1 -1
  22. package/dist/migrations/add-v3.5.0-pruned-files.d.ts +26 -0
  23. package/dist/migrations/add-v3.5.0-pruned-files.d.ts.map +1 -0
  24. package/dist/migrations/add-v3.5.0-pruned-files.js +107 -0
  25. package/dist/migrations/add-v3.5.0-pruned-files.js.map +1 -0
  26. package/dist/migrations/index.d.ts +2 -1
  27. package/dist/migrations/index.d.ts.map +1 -1
  28. package/dist/migrations/index.js +16 -1
  29. package/dist/migrations/index.js.map +1 -1
  30. package/dist/tests/git-aware-completion.test.d.ts +6 -0
  31. package/dist/tests/git-aware-completion.test.d.ts.map +1 -0
  32. package/dist/tests/git-aware-completion.test.js +141 -0
  33. package/dist/tests/git-aware-completion.test.js.map +1 -0
  34. package/dist/tests/tasks.auto-pruning-decision-link.test.d.ts +6 -0
  35. package/dist/tests/tasks.auto-pruning-decision-link.test.d.ts.map +1 -0
  36. package/dist/tests/tasks.auto-pruning-decision-link.test.js +250 -0
  37. package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +1 -0
  38. package/dist/tests/tasks.auto-pruning-partial.test.d.ts +6 -0
  39. package/dist/tests/tasks.auto-pruning-partial.test.d.ts.map +1 -0
  40. package/dist/tests/tasks.auto-pruning-partial.test.js +274 -0
  41. package/dist/tests/tasks.auto-pruning-partial.test.js.map +1 -0
  42. package/dist/tests/tasks.auto-pruning-persistence.test.d.ts +6 -0
  43. package/dist/tests/tasks.auto-pruning-persistence.test.d.ts.map +1 -0
  44. package/dist/tests/tasks.auto-pruning-persistence.test.js +232 -0
  45. package/dist/tests/tasks.auto-pruning-persistence.test.js.map +1 -0
  46. package/dist/tests/tasks.auto-pruning-safety.test.d.ts +12 -0
  47. package/dist/tests/tasks.auto-pruning-safety.test.d.ts.map +1 -0
  48. package/dist/tests/tasks.auto-pruning-safety.test.js +196 -0
  49. package/dist/tests/tasks.auto-pruning-safety.test.js.map +1 -0
  50. package/dist/tests/tasks.link-file-backward-compat.test.d.ts +6 -0
  51. package/dist/tests/tasks.link-file-backward-compat.test.d.ts.map +1 -0
  52. package/dist/tests/tasks.link-file-backward-compat.test.js +235 -0
  53. package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -0
  54. package/dist/tests/tasks.watch-files-action.test.d.ts +6 -0
  55. package/dist/tests/tasks.watch-files-action.test.d.ts.map +1 -0
  56. package/dist/tests/tasks.watch-files-action.test.js +351 -0
  57. package/dist/tests/tasks.watch-files-action.test.js.map +1 -0
  58. package/dist/tests/tasks.watch-files-parameter.test.d.ts +6 -0
  59. package/dist/tests/tasks.watch-files-parameter.test.d.ts.map +1 -0
  60. package/dist/tests/tasks.watch-files-parameter.test.js +249 -0
  61. package/dist/tests/tasks.watch-files-parameter.test.js.map +1 -0
  62. package/dist/tests/two-step-git-completion.test.d.ts +6 -0
  63. package/dist/tests/two-step-git-completion.test.d.ts.map +1 -0
  64. package/dist/tests/two-step-git-completion.test.js +283 -0
  65. package/dist/tests/two-step-git-completion.test.js.map +1 -0
  66. package/dist/tests/vcs-staging.test.d.ts +6 -0
  67. package/dist/tests/vcs-staging.test.d.ts.map +1 -0
  68. package/dist/tests/vcs-staging.test.js +137 -0
  69. package/dist/tests/vcs-staging.test.js.map +1 -0
  70. package/dist/tools/config.d.ts +4 -2
  71. package/dist/tools/config.d.ts.map +1 -1
  72. package/dist/tools/config.js +13 -11
  73. package/dist/tools/config.js.map +1 -1
  74. package/dist/tools/constraints.d.ts +7 -4
  75. package/dist/tools/constraints.d.ts.map +1 -1
  76. package/dist/tools/constraints.js +19 -16
  77. package/dist/tools/constraints.js.map +1 -1
  78. package/dist/tools/context.d.ts +33 -17
  79. package/dist/tools/context.d.ts.map +1 -1
  80. package/dist/tools/context.js +84 -68
  81. package/dist/tools/context.js.map +1 -1
  82. package/dist/tools/files.d.ts +9 -5
  83. package/dist/tools/files.d.ts.map +1 -1
  84. package/dist/tools/files.js +19 -15
  85. package/dist/tools/files.js.map +1 -1
  86. package/dist/tools/messaging.d.ts +9 -5
  87. package/dist/tools/messaging.d.ts.map +1 -1
  88. package/dist/tools/messaging.js +20 -16
  89. package/dist/tools/messaging.js.map +1 -1
  90. package/dist/tools/tasks.d.ts +40 -12
  91. package/dist/tools/tasks.d.ts.map +1 -1
  92. package/dist/tools/tasks.js +475 -87
  93. package/dist/tools/tasks.js.map +1 -1
  94. package/dist/tools/utils.d.ts +11 -6
  95. package/dist/tools/utils.d.ts.map +1 -1
  96. package/dist/tools/utils.js +56 -44
  97. package/dist/tools/utils.js.map +1 -1
  98. package/dist/types.d.ts +4 -0
  99. package/dist/types.d.ts.map +1 -1
  100. package/dist/utils/file-pruning.d.ts +69 -0
  101. package/dist/utils/file-pruning.d.ts.map +1 -0
  102. package/dist/utils/file-pruning.js +185 -0
  103. package/dist/utils/file-pruning.js.map +1 -0
  104. package/dist/utils/quality-checks.d.ts +60 -0
  105. package/dist/utils/quality-checks.d.ts.map +1 -0
  106. package/dist/utils/quality-checks.js +228 -0
  107. package/dist/utils/quality-checks.js.map +1 -0
  108. package/dist/utils/retention.d.ts +8 -0
  109. package/dist/utils/retention.d.ts.map +1 -1
  110. package/dist/utils/retention.js +12 -0
  111. package/dist/utils/retention.js.map +1 -1
  112. package/dist/utils/task-stale-detection.d.ts +69 -1
  113. package/dist/utils/task-stale-detection.d.ts.map +1 -1
  114. package/dist/utils/task-stale-detection.js +494 -17
  115. package/dist/utils/task-stale-detection.js.map +1 -1
  116. package/dist/utils/vcs-adapter.d.ts +68 -0
  117. package/dist/utils/vcs-adapter.d.ts.map +1 -0
  118. package/dist/utils/vcs-adapter.js +187 -0
  119. package/dist/utils/vcs-adapter.js.map +1 -0
  120. package/dist/watcher/file-watcher.d.ts +54 -4
  121. package/dist/watcher/file-watcher.d.ts.map +1 -1
  122. package/dist/watcher/file-watcher.js +312 -30
  123. package/dist/watcher/file-watcher.js.map +1 -1
  124. package/dist/watcher/gitignore-parser.d.ts +70 -0
  125. package/dist/watcher/gitignore-parser.d.ts.map +1 -0
  126. package/dist/watcher/gitignore-parser.js +191 -0
  127. package/dist/watcher/gitignore-parser.js.map +1 -0
  128. package/dist/watcher/index.d.ts +1 -0
  129. package/dist/watcher/index.d.ts.map +1 -1
  130. package/dist/watcher/index.js +1 -0
  131. package/dist/watcher/index.js.map +1 -1
  132. package/docs/AI_AGENT_GUIDE.md +1 -1
  133. package/docs/ARCHITECTURE.md +12 -0
  134. package/docs/AUTO_FILE_TRACKING.md +486 -82
  135. package/docs/CONFIGURATION.md +908 -0
  136. package/docs/GIT_AWARE_AUTO_COMPLETE.md +645 -0
  137. package/docs/MIGRATION_v3.3.md +602 -0
  138. package/docs/SHARED_CONCEPTS.md +2 -1
  139. package/docs/TASK_ACTIONS.md +12 -0
  140. package/docs/TASK_OVERVIEW.md +124 -23
  141. package/docs/TASK_PRUNING.md +589 -0
  142. package/docs/TASK_SYSTEM.md +83 -13
  143. package/docs/TOOL_REFERENCE.md +94 -6
  144. package/package.json +8 -6
@@ -2,17 +2,25 @@
2
2
  * File Watcher - Auto-tracking file changes linked to tasks
3
3
  * Monitors files and auto-transitions task status on file modification
4
4
  *
5
- * Features:
6
- * - chokidar-based file watching with debouncing
5
+ * Features (v3.5.1):
6
+ * - chokidar v4 file watching with automatic WSL support
7
+ * - Project root watching with .gitignore support
7
8
  * - Dynamic file registration (add/remove files at runtime)
8
9
  * - Auto-transition: todo → in_progress on file change
9
10
  * - Maps file paths → task IDs for efficient lookup
11
+ * - Respects .gitignore patterns and built-in ignore rules
10
12
  */
11
13
  import chokidar from 'chokidar';
12
- import { getDatabase } from '../database.js';
13
- import { basename, dirname } from 'path';
14
+ import { getDatabase, getConfigInt, getConfigBool } from '../database.js';
15
+ import { basename, join } from 'path';
14
16
  import { existsSync } from 'fs';
17
+ import { execSync } from 'child_process';
15
18
  import { executeAcceptanceCriteria } from './test-executor.js';
19
+ import { createGitIgnoreParser } from './gitignore-parser.js';
20
+ import { checkReadyForReview } from '../utils/quality-checks.js';
21
+ import { CONFIG_KEYS } from '../constants.js';
22
+ import { detectAndCompleteReviewedTasks, detectAndCompleteOnStaging, detectAndArchiveOnCommit } from '../utils/task-stale-detection.js';
23
+ import { detectVCS } from '../utils/vcs-adapter.js';
16
24
  /**
17
25
  * FileWatcher class - Singleton pattern
18
26
  */
@@ -23,8 +31,15 @@ export class FileWatcher {
23
31
  isRunning = false;
24
32
  debounceTimers = new Map();
25
33
  DEBOUNCE_MS = 2000; // Wait 2s after last write
34
+ gitignoreParser = null;
35
+ projectRoot;
36
+ lastModifiedTimes = new Map(); // taskId -> timestamp
37
+ filesModifiedSet = new Map(); // taskId -> modified files
38
+ vcsDetectionInterval = null; // Periodic VCS re-detection (v3.5.3)
26
39
  constructor() {
27
40
  // Private constructor for singleton
41
+ // Determine project root (current working directory)
42
+ this.projectRoot = process.cwd();
28
43
  }
29
44
  /**
30
45
  * Get singleton instance
@@ -36,7 +51,19 @@ export class FileWatcher {
36
51
  return FileWatcher.instance;
37
52
  }
38
53
  /**
39
- * Initialize and start the file watcher
54
+ * Detect if running on WSL (Windows Subsystem for Linux)
55
+ */
56
+ isWSL() {
57
+ try {
58
+ const result = execSync('uname -r', { encoding: 'utf-8' });
59
+ return result.toLowerCase().includes('microsoft') || result.toLowerCase().includes('wsl');
60
+ }
61
+ catch {
62
+ return false;
63
+ }
64
+ }
65
+ /**
66
+ * Initialize and start the file watcher (v3.5.1 - Chokidar v4)
40
67
  */
41
68
  async start() {
42
69
  if (this.isRunning) {
@@ -44,31 +71,71 @@ export class FileWatcher {
44
71
  return;
45
72
  }
46
73
  try {
47
- // Initialize chokidar with debouncing
48
- this.watcher = chokidar.watch([], {
74
+ // Initialize gitignore parser
75
+ this.gitignoreParser = createGitIgnoreParser(this.projectRoot);
76
+ // Detect WSL (informational only - chokidar v4 handles WSL automatically)
77
+ const isWSL = this.isWSL();
78
+ if (isWSL) {
79
+ console.error('✓ WSL detected - chokidar v4 handles WSL automatically');
80
+ }
81
+ // Initialize chokidar v4 with debouncing and gitignore support
82
+ // NOTE: Chokidar v4 automatically detects and handles WSL without manual polling configuration
83
+ this.watcher = chokidar.watch(this.projectRoot, {
49
84
  persistent: true,
50
85
  ignoreInitial: true, // Don't trigger on startup
51
86
  awaitWriteFinish: {
52
87
  stabilityThreshold: this.DEBOUNCE_MS,
53
88
  pollInterval: 100
54
89
  },
55
- ignored: /(^|[\/\\])\../, // Ignore dotfiles
90
+ ignored: (path) => {
91
+ // Use gitignore parser to filter files
92
+ if (this.gitignoreParser) {
93
+ return this.gitignoreParser.shouldIgnore(path);
94
+ }
95
+ // Fallback: ignore dotfiles
96
+ return /(^|[\/\\])\./.test(path);
97
+ },
56
98
  });
57
99
  // Set up event handlers
58
100
  this.watcher.on('change', (path) => {
59
- this.handleFileChange(path);
101
+ // Check if this is a VCS index file
102
+ if (this.isVCSIndexFile(path)) {
103
+ this.handleVCSIndexChange(path);
104
+ }
105
+ else {
106
+ this.handleFileChange(path);
107
+ }
60
108
  });
61
109
  this.watcher.on('add', (path) => {
62
- this.handleFileChange(path);
110
+ // Check if this is a VCS index file
111
+ if (this.isVCSIndexFile(path)) {
112
+ this.handleVCSIndexChange(path);
113
+ }
114
+ else {
115
+ this.handleFileChange(path);
116
+ }
63
117
  });
64
118
  this.watcher.on('error', (error) => {
65
119
  console.error('File watcher error:', error);
66
120
  });
67
121
  // Load existing task-file links from database
68
122
  await this.loadTaskFileLinks();
123
+ // Initialize tracking maps
124
+ this.lastModifiedTimes.clear();
125
+ this.filesModifiedSet.clear();
126
+ // Watch VCS index files for commit detection (v3.4.0 VCS-aware auto-complete)
127
+ await this.watchVCSIndexFiles();
128
+ // Periodic VCS re-detection (v3.5.3)
129
+ // Handles case where git is initialized after watcher starts
130
+ // Check every 5 minutes for new VCS initialization
131
+ this.vcsDetectionInterval = setInterval(async () => {
132
+ await this.refreshVCSWatching();
133
+ }, 5 * 60 * 1000); // 5 minutes
69
134
  this.isRunning = true;
70
135
  console.error('✓ File watcher started successfully');
136
+ console.error(` Project root: ${this.projectRoot}`);
71
137
  console.error(` Watching ${this.watchedFiles.size} files for ${this.getTotalTaskCount()} tasks`);
138
+ console.error(` .gitignore patterns loaded: ${existsSync(this.projectRoot + '/.gitignore') ? 'Yes' : 'No'}`);
72
139
  }
73
140
  catch (error) {
74
141
  console.error('Failed to start file watcher:', error);
@@ -86,6 +153,14 @@ export class FileWatcher {
86
153
  // Clear all debounce timers
87
154
  this.debounceTimers.forEach(timer => clearTimeout(timer));
88
155
  this.debounceTimers.clear();
156
+ // Clear tracking maps
157
+ this.lastModifiedTimes.clear();
158
+ this.filesModifiedSet.clear();
159
+ // Clear VCS detection interval (v3.5.3)
160
+ if (this.vcsDetectionInterval) {
161
+ clearInterval(this.vcsDetectionInterval);
162
+ this.vcsDetectionInterval = null;
163
+ }
89
164
  // Close watcher
90
165
  if (this.watcher) {
91
166
  await this.watcher.close();
@@ -112,18 +187,6 @@ export class FileWatcher {
112
187
  // Add to watched files map
113
188
  if (!this.watchedFiles.has(normalizedPath)) {
114
189
  this.watchedFiles.set(normalizedPath, []);
115
- // Check if file exists
116
- if (existsSync(normalizedPath)) {
117
- // File exists - watch it directly
118
- this.watcher.add(normalizedPath);
119
- console.error(` Watching file: ${basename(normalizedPath)} for task #${taskId}`);
120
- }
121
- else {
122
- // File doesn't exist - watch parent directory
123
- const parentDir = dirname(normalizedPath);
124
- this.watcher.add(parentDir);
125
- console.error(` Watching directory: ${parentDir} for task #${taskId} (file doesn't exist yet)`);
126
- }
127
190
  }
128
191
  const mappings = this.watchedFiles.get(normalizedPath);
129
192
  // Check if task already registered for this file
@@ -152,10 +215,7 @@ export class FileWatcher {
152
215
  if (filtered.length === 0) {
153
216
  // No more tasks watching this file
154
217
  this.watchedFiles.delete(normalizedPath);
155
- if (this.watcher) {
156
- this.watcher.unwatch(normalizedPath);
157
- }
158
- console.error(` Stopped watching: ${basename(normalizedPath)}`);
218
+ console.error(` Removed task mapping for: ${basename(normalizedPath)}`);
159
219
  }
160
220
  else {
161
221
  this.watchedFiles.set(normalizedPath, filtered);
@@ -177,6 +237,72 @@ export class FileWatcher {
177
237
  this.unregisterFile(filePath, taskId);
178
238
  });
179
239
  }
240
+ /**
241
+ * Check if a path is a VCS index file
242
+ */
243
+ isVCSIndexFile(path) {
244
+ // Git index file
245
+ if (path.endsWith('.git/index') || path.endsWith('.git\\index')) {
246
+ return true;
247
+ }
248
+ // Mercurial dirstate file
249
+ if (path.endsWith('.hg/dirstate') || path.endsWith('.hg\\dirstate')) {
250
+ return true;
251
+ }
252
+ // SVN doesn't have a local index file that changes on commit
253
+ return false;
254
+ }
255
+ /**
256
+ * Get VCS index file path for given VCS type (v3.5.3)
257
+ * Centralized mapping for easier extension to Mercurial/SVN
258
+ * @param vcsType - VCS type string (Git, Mercurial, SVN)
259
+ * @returns Absolute path to VCS index file, or null if VCS has no local index
260
+ */
261
+ getVCSIndexPath(vcsType) {
262
+ const vcsIndexPaths = {
263
+ 'Git': join(this.projectRoot, '.git', 'index'),
264
+ 'Mercurial': join(this.projectRoot, '.hg', 'dirstate'),
265
+ 'SVN': null, // SVN has no local index file (commits are remote)
266
+ };
267
+ return vcsIndexPaths[vcsType] || null;
268
+ }
269
+ /**
270
+ * Re-detect VCS and start watching index files (v3.5.3)
271
+ * Called when VCS might be initialized after watcher starts
272
+ * Public method for external triggering (e.g., after git init)
273
+ */
274
+ async refreshVCSWatching() {
275
+ if (!this.watcher || !this.isRunning) {
276
+ console.error('⚠ Cannot refresh VCS watching: watcher not running');
277
+ return;
278
+ }
279
+ console.error('\n🔍 Re-detecting VCS...');
280
+ await this.watchVCSIndexFiles();
281
+ }
282
+ /**
283
+ * Watch VCS index files for commit detection
284
+ */
285
+ async watchVCSIndexFiles() {
286
+ // Detect VCS type
287
+ const vcsAdapter = await detectVCS(this.projectRoot);
288
+ if (!vcsAdapter) {
289
+ console.error('ℹ No VCS detected - skipping VCS index watching');
290
+ return;
291
+ }
292
+ const vcsType = vcsAdapter.getVCSType();
293
+ const indexPath = this.getVCSIndexPath(vcsType);
294
+ if (indexPath === null) {
295
+ console.error(`ℹ ${vcsType} detected - no local index file to watch (commits are remote)`);
296
+ return;
297
+ }
298
+ if (existsSync(indexPath) && this.watcher) {
299
+ this.watcher.add(indexPath);
300
+ console.error(`✓ Watching ${indexPath} for ${vcsType} commits (v3.5.3)`);
301
+ }
302
+ else if (!existsSync(indexPath)) {
303
+ console.error(`⚠ ${vcsType} index file not found: ${indexPath}`);
304
+ }
305
+ }
180
306
  /**
181
307
  * Handle file change event
182
308
  */
@@ -191,6 +317,12 @@ export class FileWatcher {
191
317
  // Process each task linked to this file
192
318
  for (const mapping of mappings) {
193
319
  const { taskId, taskTitle, currentStatus } = mapping;
320
+ // Track file modification
321
+ this.lastModifiedTimes.set(taskId, Date.now());
322
+ if (!this.filesModifiedSet.has(taskId)) {
323
+ this.filesModifiedSet.set(taskId, new Set());
324
+ }
325
+ this.filesModifiedSet.get(taskId).add(normalizedPath);
194
326
  // Auto-transition: todo → in_progress
195
327
  if (currentStatus === 'todo') {
196
328
  try {
@@ -231,12 +363,57 @@ export class FileWatcher {
231
363
  // Check acceptance criteria for in_progress tasks
232
364
  if (currentStatus === 'in_progress' || mapping.currentStatus === 'in_progress') {
233
365
  await this.checkAcceptanceCriteria(taskId, taskTitle, mapping);
366
+ // After debounce period, check if task is ready for review
367
+ // Use setTimeout to check after idle period
368
+ const idleMinutes = getConfigInt(db, CONFIG_KEYS.REVIEW_IDLE_MINUTES, 15);
369
+ setTimeout(async () => {
370
+ await this.checkAndTransitionToReview(taskId);
371
+ }, idleMinutes * 60 * 1000);
234
372
  }
235
373
  else {
236
374
  console.error(` • Task #${taskId} "${taskTitle}": status ${currentStatus}`);
237
375
  }
238
376
  }
239
377
  }
378
+ /**
379
+ * Handle VCS index file change - triggers two-step Git-aware workflow (v3.5.2)
380
+ * Step 1: Staging (git add) → waiting_review → done
381
+ * Step 2: Commit (git commit) → done → archived
382
+ * Fallback: If files already committed (not in staging), use v3.4.0 logic
383
+ */
384
+ async handleVCSIndexChange(filePath) {
385
+ console.error('\n🔄 VCS index changed - checking for tasks ready to auto-transition');
386
+ const db = getDatabase();
387
+ try {
388
+ // Step 1: Check for staged files → complete tasks (waiting_review → done)
389
+ const stagingCompleted = await detectAndCompleteOnStaging(db);
390
+ // Step 2: Check for committed files → archive tasks (done → archived)
391
+ const commitArchived = await detectAndArchiveOnCommit(db);
392
+ // Fallback: Check for committed files → complete tasks (waiting_review → done)
393
+ // This handles cases where files go straight to commit without visible staging
394
+ const commitCompleted = await detectAndCompleteReviewedTasks(db);
395
+ // Log results
396
+ const transitions = [];
397
+ if (stagingCompleted > 0) {
398
+ transitions.push(`${stagingCompleted} task(s) completed (git add detected)`);
399
+ }
400
+ if (commitCompleted > 0) {
401
+ transitions.push(`${commitCompleted} task(s) completed (git commit fallback)`);
402
+ }
403
+ if (commitArchived > 0) {
404
+ transitions.push(`${commitArchived} task(s) archived (git commit detected)`);
405
+ }
406
+ if (transitions.length > 0) {
407
+ console.error(` ✓ ${transitions.join(', ')}`);
408
+ }
409
+ else {
410
+ console.error(` ℹ No tasks ready for auto-transition`);
411
+ }
412
+ }
413
+ catch (error) {
414
+ console.error(` ✗ Error during VCS-aware auto-transition:`, error);
415
+ }
416
+ }
240
417
  /**
241
418
  * Check acceptance criteria and auto-complete task if all pass
242
419
  */
@@ -341,13 +518,21 @@ export class FileWatcher {
341
518
  }
342
519
  }
343
520
  /**
344
- * Normalize file path (resolve relative paths, remove trailing slashes)
521
+ * Normalize file path (convert to relative path from project root, remove trailing slashes)
345
522
  */
346
523
  normalizePath(filePath) {
347
- // Remove trailing slashes
348
- let normalized = filePath.replace(/[\/\\]+$/, '');
349
524
  // Convert backslashes to forward slashes (Windows compatibility)
350
- normalized = normalized.replace(/\\/g, '/');
525
+ let normalized = filePath.replace(/\\/g, '/');
526
+ // Remove trailing slashes
527
+ normalized = normalized.replace(/[\/\\]+$/, '');
528
+ // Convert absolute paths to relative paths from project root
529
+ const projectRootNormalized = this.projectRoot.replace(/\\/g, '/');
530
+ if (normalized.startsWith(projectRootNormalized + '/')) {
531
+ normalized = normalized.substring(projectRootNormalized.length + 1);
532
+ }
533
+ else if (normalized.startsWith(projectRootNormalized)) {
534
+ normalized = normalized.substring(projectRootNormalized.length);
535
+ }
351
536
  return normalized;
352
537
  }
353
538
  /**
@@ -360,6 +545,103 @@ export class FileWatcher {
360
545
  });
361
546
  return taskIds.size;
362
547
  }
548
+ /**
549
+ * Check if task is ready for review and transition if conditions met
550
+ * Quality gates:
551
+ * - All watched files modified at least once
552
+ * - TypeScript compiles without errors (if .ts files)
553
+ * - Tests pass (if test files exist)
554
+ * - Idle for configured time (default 15 minutes)
555
+ *
556
+ * @param taskId - Task ID to check
557
+ */
558
+ async checkAndTransitionToReview(taskId) {
559
+ const db = getDatabase();
560
+ try {
561
+ // Get current task status
562
+ const task = db.prepare(`
563
+ SELECT t.status_id, s.name as status_name, td.acceptance_criteria_json
564
+ FROM t_tasks t
565
+ JOIN m_task_statuses s ON s.id = t.status_id
566
+ LEFT JOIN t_task_details td ON td.task_id = t.id
567
+ WHERE t.id = ?
568
+ `).get(taskId);
569
+ if (!task) {
570
+ return; // Task not found
571
+ }
572
+ // Only check for in_progress tasks
573
+ if (task.status_name !== 'in_progress') {
574
+ return;
575
+ }
576
+ // Read configuration
577
+ const idleMinutes = getConfigInt(db, CONFIG_KEYS.REVIEW_IDLE_MINUTES, 15);
578
+ const requireAllFilesModified = getConfigBool(db, CONFIG_KEYS.REVIEW_REQUIRE_ALL_FILES_MODIFIED, true);
579
+ const requireTestsPass = getConfigBool(db, CONFIG_KEYS.REVIEW_REQUIRE_TESTS_PASS, true);
580
+ const requireCompile = getConfigBool(db, CONFIG_KEYS.REVIEW_REQUIRE_COMPILE, true);
581
+ // Check idle time
582
+ const lastModified = this.lastModifiedTimes.get(taskId);
583
+ if (!lastModified) {
584
+ return; // No modifications tracked yet
585
+ }
586
+ const idleTimeMs = Date.now() - lastModified;
587
+ const requiredIdleMs = idleMinutes * 60 * 1000;
588
+ if (idleTimeMs < requiredIdleMs) {
589
+ return; // Not idle long enough
590
+ }
591
+ // Get all watched files for this task
592
+ const filePaths = [];
593
+ this.watchedFiles.forEach((mappings, path) => {
594
+ if (mappings.some(m => m.taskId === taskId)) {
595
+ filePaths.push(path);
596
+ }
597
+ });
598
+ if (filePaths.length === 0) {
599
+ return; // No files being watched
600
+ }
601
+ // Get modified files set
602
+ const modifiedFiles = this.filesModifiedSet.get(taskId) || new Set();
603
+ // Run quality checks
604
+ const { ready, results } = await checkReadyForReview(db, taskId, filePaths, modifiedFiles, {
605
+ requireAllFilesModified,
606
+ requireTestsPass,
607
+ requireCompile,
608
+ });
609
+ if (ready) {
610
+ // All quality gates passed - transition to waiting_review
611
+ console.error(` ✓ Quality checks passed for task #${taskId}`);
612
+ // Log individual results
613
+ results.forEach(({ check, result }) => {
614
+ console.error(` • ${check}: ${result.message}`);
615
+ });
616
+ // Update task status
617
+ db.prepare(`
618
+ UPDATE t_tasks
619
+ SET status_id = (SELECT id FROM m_task_statuses WHERE name = 'waiting_review'),
620
+ updated_ts = unixepoch()
621
+ WHERE id = ?
622
+ `).run(taskId);
623
+ console.error(` → Task #${taskId} auto-transitioned to waiting_review`);
624
+ // Clear tracking for this task
625
+ this.lastModifiedTimes.delete(taskId);
626
+ this.filesModifiedSet.delete(taskId);
627
+ }
628
+ else {
629
+ // Some checks failed - log details
630
+ const failedChecks = results.filter(({ result }) => !result.passed);
631
+ console.error(` ℹ Task #${taskId} not ready for review (${failedChecks.length} checks failed)`);
632
+ failedChecks.forEach(({ check, result }) => {
633
+ console.error(` • ${check}: ${result.message}`);
634
+ if (result.details) {
635
+ console.error(` ${result.details}`);
636
+ }
637
+ });
638
+ }
639
+ }
640
+ catch (error) {
641
+ // Log error but don't crash the watcher
642
+ console.error(`Error checking review readiness for task #${taskId}:`, error);
643
+ }
644
+ }
363
645
  /**
364
646
  * Get current watcher status
365
647
  */
@@ -1 +1 @@
1
- {"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../src/watcher/file-watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../src/watcher/file-watcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * GitIgnore Parser Module (v3.4.1)
3
+ * Parses .gitignore files and provides file filtering functionality
4
+ *
5
+ * Features:
6
+ * - Load .gitignore from project root
7
+ * - Built-in ignore patterns (node_modules, .git, etc.)
8
+ * - Efficient pattern matching with ignore library
9
+ * - Path normalization for cross-platform compatibility
10
+ */
11
+ /**
12
+ * VCS index files that must NEVER be ignored (v3.5.3)
13
+ * These files are explicitly watched for commit detection
14
+ */
15
+ export declare const VCS_WATCH_WHITELIST: string[];
16
+ /**
17
+ * Built-in patterns to always ignore (v3.4.1)
18
+ * These are common patterns that should be ignored regardless of .gitignore
19
+ */
20
+ export declare const BUILT_IN_IGNORE_PATTERNS: string[];
21
+ /**
22
+ * GitIgnoreParser class
23
+ * Handles .gitignore file parsing and file filtering
24
+ */
25
+ export declare class GitIgnoreParser {
26
+ private ig;
27
+ private projectRoot;
28
+ /**
29
+ * Constructor
30
+ * @param projectRoot - Absolute path to project root directory
31
+ * @param customPatterns - Additional patterns to ignore (optional)
32
+ */
33
+ constructor(projectRoot: string, customPatterns?: string[]);
34
+ /**
35
+ * Check if a file path should be ignored
36
+ * @param filePath - Absolute file path to check
37
+ * @returns true if file should be ignored, false otherwise
38
+ */
39
+ shouldIgnore(filePath: string): boolean;
40
+ /**
41
+ * Filter an array of file paths, removing ignored files
42
+ * @param filePaths - Array of absolute file paths
43
+ * @returns Filtered array with ignored files removed
44
+ */
45
+ filter(filePaths: string[]): string[];
46
+ /**
47
+ * Get the project root directory
48
+ * @returns Absolute path to project root
49
+ */
50
+ getProjectRoot(): string;
51
+ /**
52
+ * Add additional patterns to ignore
53
+ * @param patterns - Array of gitignore-style patterns
54
+ */
55
+ addPatterns(patterns: string[]): void;
56
+ /**
57
+ * Create a new GitIgnoreParser with additional patterns
58
+ * @param patterns - Additional patterns to ignore
59
+ * @returns New GitIgnoreParser instance
60
+ */
61
+ createChild(patterns: string[]): GitIgnoreParser;
62
+ }
63
+ /**
64
+ * Create a GitIgnoreParser for the given project root
65
+ * @param projectRoot - Absolute path to project root
66
+ * @param customPatterns - Additional patterns to ignore (optional)
67
+ * @returns GitIgnoreParser instance
68
+ */
69
+ export declare function createGitIgnoreParser(projectRoot: string, customPatterns?: string[]): GitIgnoreParser;
70
+ //# sourceMappingURL=gitignore-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitignore-parser.d.ts","sourceRoot":"","sources":["../../src/watcher/gitignore-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;GAGG;AACH,eAAO,MAAM,mBAAmB,UAG/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,UAoEpC,CAAC;AAEF;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;OAIG;gBACS,WAAW,EAAE,MAAM,EAAE,cAAc,GAAE,MAAM,EAAO;IAwB9D;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAqCvC;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAIrC;;;OAGG;IACH,cAAc,IAAI,MAAM;IAIxB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAIrC;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,eAAe;CAIjD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,MAAM,EAAO,GAC5B,eAAe,CAEjB"}