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.
- package/CHANGELOG.md +815 -13
- package/README.md +53 -2
- package/assets/schema.sql +6 -1
- package/dist/config/loader.d.ts +46 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +151 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/types.d.ts +77 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +28 -0
- package/dist/config/types.js.map +1 -0
- package/dist/constants.d.ts +9 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +10 -0
- package/dist/constants.js.map +1 -1
- package/dist/database.d.ts +1 -1
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +77 -10
- package/dist/database.js.map +1 -1
- package/dist/index.js +21 -3
- package/dist/index.js.map +1 -1
- package/dist/migrations/add-v3.5.0-pruned-files.d.ts +26 -0
- package/dist/migrations/add-v3.5.0-pruned-files.d.ts.map +1 -0
- package/dist/migrations/add-v3.5.0-pruned-files.js +107 -0
- package/dist/migrations/add-v3.5.0-pruned-files.js.map +1 -0
- package/dist/migrations/index.d.ts +2 -1
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +16 -1
- package/dist/migrations/index.js.map +1 -1
- package/dist/tests/git-aware-completion.test.d.ts +6 -0
- package/dist/tests/git-aware-completion.test.d.ts.map +1 -0
- package/dist/tests/git-aware-completion.test.js +141 -0
- package/dist/tests/git-aware-completion.test.js.map +1 -0
- package/dist/tests/tasks.auto-pruning-decision-link.test.d.ts +6 -0
- package/dist/tests/tasks.auto-pruning-decision-link.test.d.ts.map +1 -0
- package/dist/tests/tasks.auto-pruning-decision-link.test.js +250 -0
- package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +1 -0
- package/dist/tests/tasks.auto-pruning-partial.test.d.ts +6 -0
- package/dist/tests/tasks.auto-pruning-partial.test.d.ts.map +1 -0
- package/dist/tests/tasks.auto-pruning-partial.test.js +274 -0
- package/dist/tests/tasks.auto-pruning-partial.test.js.map +1 -0
- package/dist/tests/tasks.auto-pruning-persistence.test.d.ts +6 -0
- package/dist/tests/tasks.auto-pruning-persistence.test.d.ts.map +1 -0
- package/dist/tests/tasks.auto-pruning-persistence.test.js +232 -0
- package/dist/tests/tasks.auto-pruning-persistence.test.js.map +1 -0
- package/dist/tests/tasks.auto-pruning-safety.test.d.ts +12 -0
- package/dist/tests/tasks.auto-pruning-safety.test.d.ts.map +1 -0
- package/dist/tests/tasks.auto-pruning-safety.test.js +196 -0
- package/dist/tests/tasks.auto-pruning-safety.test.js.map +1 -0
- package/dist/tests/tasks.link-file-backward-compat.test.d.ts +6 -0
- package/dist/tests/tasks.link-file-backward-compat.test.d.ts.map +1 -0
- package/dist/tests/tasks.link-file-backward-compat.test.js +235 -0
- package/dist/tests/tasks.link-file-backward-compat.test.js.map +1 -0
- package/dist/tests/tasks.watch-files-action.test.d.ts +6 -0
- package/dist/tests/tasks.watch-files-action.test.d.ts.map +1 -0
- package/dist/tests/tasks.watch-files-action.test.js +351 -0
- package/dist/tests/tasks.watch-files-action.test.js.map +1 -0
- package/dist/tests/tasks.watch-files-parameter.test.d.ts +6 -0
- package/dist/tests/tasks.watch-files-parameter.test.d.ts.map +1 -0
- package/dist/tests/tasks.watch-files-parameter.test.js +249 -0
- package/dist/tests/tasks.watch-files-parameter.test.js.map +1 -0
- package/dist/tests/two-step-git-completion.test.d.ts +6 -0
- package/dist/tests/two-step-git-completion.test.d.ts.map +1 -0
- package/dist/tests/two-step-git-completion.test.js +283 -0
- package/dist/tests/two-step-git-completion.test.js.map +1 -0
- package/dist/tests/vcs-staging.test.d.ts +6 -0
- package/dist/tests/vcs-staging.test.d.ts.map +1 -0
- package/dist/tests/vcs-staging.test.js +137 -0
- package/dist/tests/vcs-staging.test.js.map +1 -0
- package/dist/tools/config.d.ts +4 -2
- package/dist/tools/config.d.ts.map +1 -1
- package/dist/tools/config.js +13 -11
- package/dist/tools/config.js.map +1 -1
- package/dist/tools/constraints.d.ts +7 -4
- package/dist/tools/constraints.d.ts.map +1 -1
- package/dist/tools/constraints.js +19 -16
- package/dist/tools/constraints.js.map +1 -1
- package/dist/tools/context.d.ts +33 -17
- package/dist/tools/context.d.ts.map +1 -1
- package/dist/tools/context.js +84 -68
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/files.d.ts +9 -5
- package/dist/tools/files.d.ts.map +1 -1
- package/dist/tools/files.js +19 -15
- package/dist/tools/files.js.map +1 -1
- package/dist/tools/messaging.d.ts +9 -5
- package/dist/tools/messaging.d.ts.map +1 -1
- package/dist/tools/messaging.js +20 -16
- package/dist/tools/messaging.js.map +1 -1
- package/dist/tools/tasks.d.ts +40 -12
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +475 -87
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/utils.d.ts +11 -6
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js +56 -44
- package/dist/tools/utils.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/file-pruning.d.ts +69 -0
- package/dist/utils/file-pruning.d.ts.map +1 -0
- package/dist/utils/file-pruning.js +185 -0
- package/dist/utils/file-pruning.js.map +1 -0
- package/dist/utils/quality-checks.d.ts +60 -0
- package/dist/utils/quality-checks.d.ts.map +1 -0
- package/dist/utils/quality-checks.js +228 -0
- package/dist/utils/quality-checks.js.map +1 -0
- package/dist/utils/retention.d.ts +8 -0
- package/dist/utils/retention.d.ts.map +1 -1
- package/dist/utils/retention.js +12 -0
- package/dist/utils/retention.js.map +1 -1
- package/dist/utils/task-stale-detection.d.ts +69 -1
- package/dist/utils/task-stale-detection.d.ts.map +1 -1
- package/dist/utils/task-stale-detection.js +494 -17
- package/dist/utils/task-stale-detection.js.map +1 -1
- package/dist/utils/vcs-adapter.d.ts +68 -0
- package/dist/utils/vcs-adapter.d.ts.map +1 -0
- package/dist/utils/vcs-adapter.js +187 -0
- package/dist/utils/vcs-adapter.js.map +1 -0
- package/dist/watcher/file-watcher.d.ts +54 -4
- package/dist/watcher/file-watcher.d.ts.map +1 -1
- package/dist/watcher/file-watcher.js +312 -30
- package/dist/watcher/file-watcher.js.map +1 -1
- package/dist/watcher/gitignore-parser.d.ts +70 -0
- package/dist/watcher/gitignore-parser.d.ts.map +1 -0
- package/dist/watcher/gitignore-parser.js +191 -0
- package/dist/watcher/gitignore-parser.js.map +1 -0
- package/dist/watcher/index.d.ts +1 -0
- package/dist/watcher/index.d.ts.map +1 -1
- package/dist/watcher/index.js +1 -0
- package/dist/watcher/index.js.map +1 -1
- package/docs/AI_AGENT_GUIDE.md +1 -1
- package/docs/ARCHITECTURE.md +12 -0
- package/docs/AUTO_FILE_TRACKING.md +486 -82
- package/docs/CONFIGURATION.md +908 -0
- package/docs/GIT_AWARE_AUTO_COMPLETE.md +645 -0
- package/docs/MIGRATION_v3.3.md +602 -0
- package/docs/SHARED_CONCEPTS.md +2 -1
- package/docs/TASK_ACTIONS.md +12 -0
- package/docs/TASK_OVERVIEW.md +124 -23
- package/docs/TASK_PRUNING.md +589 -0
- package/docs/TASK_SYSTEM.md +83 -13
- package/docs/TOOL_REFERENCE.md +94 -6
- 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
|
|
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,
|
|
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
|
-
*
|
|
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
|
|
48
|
-
this.
|
|
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:
|
|
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
|
|
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
|
|
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
|
-
|
|
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 (
|
|
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 =
|
|
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"}
|