@lbruton/specflow 3.5.4 → 3.5.7

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 (38) hide show
  1. package/dist/core/__tests__/template-generator.test.js +36 -1
  2. package/dist/core/__tests__/template-generator.test.js.map +1 -1
  3. package/dist/core/archive-service.d.ts.map +1 -1
  4. package/dist/core/archive-service.js +29 -12
  5. package/dist/core/archive-service.js.map +1 -1
  6. package/dist/core/template-generator.d.ts.map +1 -1
  7. package/dist/core/template-generator.js +116 -44
  8. package/dist/core/template-generator.js.map +1 -1
  9. package/dist/dashboard/approval-storage.d.ts.map +1 -1
  10. package/dist/dashboard/approval-storage.js +4 -2
  11. package/dist/dashboard/approval-storage.js.map +1 -1
  12. package/dist/dashboard/job-scheduler.js +2 -2
  13. package/dist/dashboard/job-scheduler.js.map +1 -1
  14. package/dist/dashboard/multi-server.d.ts.map +1 -1
  15. package/dist/dashboard/multi-server.js +23 -18
  16. package/dist/dashboard/multi-server.js.map +1 -1
  17. package/dist/dashboard/parser.d.ts.map +1 -1
  18. package/dist/dashboard/parser.js +8 -7
  19. package/dist/dashboard/parser.js.map +1 -1
  20. package/dist/dashboard/project-manager.d.ts.map +1 -1
  21. package/dist/dashboard/project-manager.js +12 -1
  22. package/dist/dashboard/project-manager.js.map +1 -1
  23. package/dist/dashboard/watcher.d.ts.map +1 -1
  24. package/dist/dashboard/watcher.js +5 -4
  25. package/dist/dashboard/watcher.js.map +1 -1
  26. package/dist/markdown/templates/code-quality-reviewer-template.md +2 -0
  27. package/dist/markdown/templates/implementer-prompt-template.md +11 -0
  28. package/dist/markdown/templates/spec-reviewer-template.md +32 -0
  29. package/dist/markdown/templates/tasks-template.md +124 -138
  30. package/dist/prompts/create-spec.d.ts.map +1 -1
  31. package/dist/prompts/create-spec.js +48 -0
  32. package/dist/prompts/create-spec.js.map +1 -1
  33. package/dist/server.d.ts.map +1 -1
  34. package/dist/server.js +99 -42
  35. package/dist/server.js.map +1 -1
  36. package/dist/tools/approvals.js +40 -13
  37. package/dist/tools/approvals.js.map +1 -1
  38. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"create-spec.d.ts","sourceRoot":"","sources":["../../src/prompts/create-spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAuG9C,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC"}
1
+ {"version":3,"file":"create-spec.d.ts","sourceRoot":"","sources":["../../src/prompts/create-spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgK9C,eAAO,MAAM,gBAAgB,EAAE,gBAG9B,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import { PathUtils } from '../core/path-utils.js';
2
+ import { access } from 'fs/promises';
3
+ import { join } from 'path';
4
+ import { constants } from 'fs';
2
5
  const prompt = {
3
6
  name: 'create-spec',
4
7
  title: 'Create Specification Document',
@@ -34,6 +37,51 @@ async function handler(args, context) {
34
37
  const workflowRoot = PathUtils.getWorkflowRoot(context.projectPath);
35
38
  const templatesDir = `${workflowRoot}/templates`;
36
39
  const specDir = `${workflowRoot}/specs/${specName}`;
40
+ // --- HARD GATE: Enforce phase ordering ---
41
+ // design requires approved requirements, tasks requires approved design
42
+ const prerequisites = {
43
+ design: { requires: 'requirements', label: 'Requirements' },
44
+ tasks: { requires: 'design', label: 'Design' },
45
+ };
46
+ const prereq = prerequisites[documentType];
47
+ if (prereq) {
48
+ const prereqPath = join(specDir, `${prereq.requires}.md`);
49
+ let prereqExists = false;
50
+ try {
51
+ await access(prereqPath, constants.F_OK);
52
+ prereqExists = true;
53
+ }
54
+ catch {
55
+ // file doesn't exist
56
+ }
57
+ if (!prereqExists) {
58
+ throw new Error(`PHASE GATE: Cannot create ${documentType} — ${prereq.label} document does not exist yet.\n` +
59
+ `Expected: ${prereqPath}\n` +
60
+ `You must create and get approval for ${prereq.requires}.md before proceeding to ${documentType}.`);
61
+ }
62
+ // Check if the prerequisite has been through the approval flow
63
+ // Look for approval snapshots with trigger:"approved" for the prerequisite doc
64
+ const snapshotDir = join(workflowRoot, 'approvals', specName, '.snapshots', `${prereq.requires}.md`);
65
+ let hasApprovedSnapshot = false;
66
+ try {
67
+ await access(snapshotDir, constants.F_OK);
68
+ // Snapshot dir exists — read metadata to check for approved trigger
69
+ const { readFile } = await import('fs/promises');
70
+ const metadataPath = join(snapshotDir, 'metadata.json');
71
+ const metadata = JSON.parse(await readFile(metadataPath, 'utf-8'));
72
+ // Check if any snapshot has trigger "approved"
73
+ hasApprovedSnapshot = metadata.snapshots?.some((s) => s.trigger === 'approved') ?? false;
74
+ }
75
+ catch {
76
+ // No snapshots found — prerequisite hasn't been through approval
77
+ }
78
+ if (!hasApprovedSnapshot) {
79
+ throw new Error(`PHASE GATE: Cannot create ${documentType} — ${prereq.label} has not been approved yet.\n` +
80
+ `The ${prereq.requires}.md document exists but has no approval record.\n` +
81
+ `Submit it for approval first: use the approvals tool with action:"request" for ${prereq.requires}.md,\n` +
82
+ `then wait for approval before creating ${documentType}.`);
83
+ }
84
+ }
37
85
  // Build context-aware messages
38
86
  const messages = [
39
87
  {
@@ -1 +1 @@
1
- {"version":3,"file":"create-spec.js","sourceRoot":"","sources":["../../src/prompts/create-spec.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,MAAM,GAAW;IACrB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,+BAA+B;IACtC,WAAW,EAAE,qKAAqK;IAClL,SAAS,EAAE;QACT;YACE,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,iJAAiJ;YAC9J,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,IAAI;SACf;QACD;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,uDAAuD;YACpE,QAAQ,EAAE,KAAK;SAChB;KACF;CACF,CAAC;AAEF,KAAK,UAAU,OAAO,CAAC,IAAyB,EAAE,OAAoB;IACpE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAErD,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,gCAAgC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,mDAAmD;IACnD,MAAM,YAAY,GAAG,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,GAAG,YAAY,YAAY,CAAC;IACjD,MAAM,OAAO,GAAG,GAAG,YAAY,UAAU,QAAQ,EAAE,CAAC;IAEpD,+BAA+B;IAC/B,MAAM,QAAQ,GAAoB;QAChC;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY,YAAY,sBAAsB,QAAQ;;;aAGvD,OAAO,CAAC,WAAW;aACnB,QAAQ;mBACF,YAAY;EAC7B,WAAW,CAAC,CAAC,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;EAClD,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE;;;kCAGlC,YAAY,IAAI,YAAY;;;;;6BAKjC,OAAO,IAAI,YAAY;;;;uBAI7B,YAAY,IAAI,YAAY;0BACzB,OAAO,IAAI,YAAY;;;;;;;;;EAS/C,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC;;;;;;;;;;;;;;CAc5B,CAAC,CAAC,CAAC,EAAE;;kBAEY,YAAY,wEAAwE;aAC/F;SACF;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAqB;IAChD,MAAM;IACN,OAAO;CACR,CAAC"}
1
+ {"version":3,"file":"create-spec.js","sourceRoot":"","sources":["../../src/prompts/create-spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAsBA,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,IAAI,CAAC,CAAS;;IAiChB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IA0F1E,OAAO,CAAC,aAAa;IAoCrB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAMd,IAAI;CAuBX"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAsBA,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,IAAI,CAAC,CAAS;;IAiChB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;IAoH1E,OAAO,CAAC,aAAa;IAsErB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAMd,IAAI;CAuBX"}
package/dist/server.js CHANGED
@@ -48,6 +48,9 @@ export class SpecWorkflowMCPServer {
48
48
  this.projectPath = projectPath;
49
49
  this.workspacePath = workspacePath;
50
50
  this.lang = lang;
51
+ // Track whether project initialization succeeded (degraded mode if not)
52
+ let projectInitialized = false;
53
+ let initError;
51
54
  try {
52
55
  // Validate project path
53
56
  await validateProjectPath(this.projectPath);
@@ -70,53 +73,75 @@ export class SpecWorkflowMCPServer {
70
73
  console.error(`Migration complete: ${migrationResult.migratedDirs.length} migrated, ${migrationResult.skippedDirs.length} skipped, ${migrationResult.errors.length} errors`);
71
74
  }
72
75
  // Register this project in the global registry
76
+ // Use DocVault specflow root (where specs/approvals/steering live) as the
77
+ // workflowRootPath, not the git root. The dashboard uses this path to find
78
+ // spec documents, approvals, and steering files.
73
79
  const projectId = await this.projectRegistry.registerProject(this.workspacePath, process.pid, {
74
- workflowRootPath: this.projectPath
80
+ workflowRootPath: config.specflowRoot
75
81
  });
76
- console.error(`Project registered: ${projectId}`);
77
- // Try to get the dashboard URL from session manager
78
- let dashboardUrl = undefined;
79
- try {
80
- const sessionManager = new DashboardSessionManager();
81
- const dashboardSession = await sessionManager.getDashboardSession();
82
- if (dashboardSession) {
83
- dashboardUrl = dashboardSession.url;
84
- }
85
- }
86
- catch (error) {
87
- // Dashboard not running, continue without it
82
+ console.error(`Project registered: ${projectId} (workflow root: ${config.specflowRoot})`);
83
+ projectInitialized = true;
84
+ }
85
+ catch (error) {
86
+ // Project initialization failed — enter degraded mode instead of crashing.
87
+ // This allows the MCP server to start and report the error via tool calls,
88
+ // rather than silently dying and leaving the client with no connection.
89
+ initError = error.message || String(error);
90
+ console.error(`WARNING: Project initialization failed — starting in degraded mode.`);
91
+ console.error(` Path: ${this.projectPath}`);
92
+ console.error(` Error: ${initError}`);
93
+ console.error(` Hint: Launch specflow with an explicit project path, e.g.:`);
94
+ console.error(` npx -y @lbruton/specflow@latest /path/to/your/project`);
95
+ console.error(` The MCP server will start, but tools will return errors until a valid project is configured.`);
96
+ }
97
+ // Try to get the dashboard URL from session manager
98
+ let dashboardUrl = undefined;
99
+ try {
100
+ const sessionManager = new DashboardSessionManager();
101
+ const dashboardSession = await sessionManager.getDashboardSession();
102
+ if (dashboardSession) {
103
+ dashboardUrl = dashboardSession.url;
88
104
  }
89
- // Create context for tools
90
- const context = {
91
- projectPath: this.projectPath,
92
- dashboardUrl: dashboardUrl,
93
- lang: this.lang
94
- };
95
- // Register handlers
96
- this.setupHandlers(context);
97
- // Connect to stdio transport
98
- const transport = new StdioServerTransport();
99
- // Handle client disconnection - exit gracefully when transport closes
100
- transport.onclose = async () => {
101
- await this.stop();
102
- process.exit(0);
103
- };
104
- await this.server.connect(transport);
105
- // Monitor stdin for client disconnection (additional safety net)
106
- process.stdin.on('end', async () => {
107
- await this.stop();
108
- process.exit(0);
109
- });
110
- // Handle stdin errors
111
- process.stdin.on('error', async (error) => {
112
- console.error('stdin error:', error);
113
- await this.stop();
114
- process.exit(1);
115
- });
116
- // MCP server initialized successfully
117
105
  }
118
106
  catch (error) {
119
- throw error;
107
+ // Dashboard not running, continue without it
108
+ }
109
+ // Create context for tools — include degraded mode info
110
+ const context = {
111
+ projectPath: this.projectPath,
112
+ dashboardUrl: dashboardUrl,
113
+ lang: this.lang
114
+ };
115
+ if (!projectInitialized) {
116
+ context.degraded = true;
117
+ context.degradedReason = initError;
118
+ }
119
+ // Register handlers
120
+ this.setupHandlers(context);
121
+ // Connect to stdio transport
122
+ const transport = new StdioServerTransport();
123
+ // Handle client disconnection - exit gracefully when transport closes
124
+ transport.onclose = async () => {
125
+ await this.stop();
126
+ process.exit(0);
127
+ };
128
+ await this.server.connect(transport);
129
+ // Monitor stdin for client disconnection (additional safety net)
130
+ process.stdin.on('end', async () => {
131
+ await this.stop();
132
+ process.exit(0);
133
+ });
134
+ // Handle stdin errors
135
+ process.stdin.on('error', async (error) => {
136
+ console.error('stdin error:', error);
137
+ await this.stop();
138
+ process.exit(1);
139
+ });
140
+ if (projectInitialized) {
141
+ console.error('MCP server initialized successfully');
142
+ }
143
+ else {
144
+ console.error('MCP server started in degraded mode — tools will report configuration errors');
120
145
  }
121
146
  }
122
147
  setupHandlers(context) {
@@ -125,6 +150,24 @@ export class SpecWorkflowMCPServer {
125
150
  tools: registerTools()
126
151
  }));
127
152
  this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
153
+ // In degraded mode, return a clear error for every tool call
154
+ if (context.degraded) {
155
+ return {
156
+ content: [{
157
+ type: 'text',
158
+ text: `SpecFlow MCP server is running in degraded mode — no valid project found.\n\n` +
159
+ `Error: ${context.degradedReason}\n\n` +
160
+ `The server was launched without a valid project path. To fix this:\n` +
161
+ `1. Ensure your MCP config passes the project directory as an argument:\n` +
162
+ ` npx -y @lbruton/specflow@latest .\n` +
163
+ `2. Or specify an absolute path:\n` +
164
+ ` npx -y @lbruton/specflow@latest /path/to/your/project\n` +
165
+ `3. Ensure the project has a .specflow/config.json file\n\n` +
166
+ `Current path: ${context.projectPath}`
167
+ }],
168
+ isError: true
169
+ };
170
+ }
128
171
  try {
129
172
  return await handleToolCall(request.params.name, request.params.arguments || {}, context);
130
173
  }
@@ -142,6 +185,20 @@ export class SpecWorkflowMCPServer {
142
185
  }
143
186
  });
144
187
  this.server.setRequestHandler(GetPromptRequestSchema, async (request) => {
188
+ // In degraded mode, return a helpful error for prompt requests too
189
+ if (context.degraded) {
190
+ return {
191
+ messages: [{
192
+ role: 'user',
193
+ content: {
194
+ type: 'text',
195
+ text: `SpecFlow MCP server is in degraded mode — no valid project found at: ${context.projectPath}\n` +
196
+ `Error: ${context.degradedReason}\n` +
197
+ `Fix: Add the project path to your MCP config args, e.g.: npx -y @lbruton/specflow@latest .`
198
+ }
199
+ }]
200
+ };
201
+ }
145
202
  try {
146
203
  return await handlePromptGet(request.params.name, request.params.arguments || {}, context);
147
204
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,QAAQ,EACR,SAAS,EACV,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAS;IACf,WAAW,CAAU,CAAG,4CAA4C;IACpE,aAAa,CAAU,CAAC,mDAAmD;IAC3E,eAAe,CAAkB;IACjC,IAAI,CAAU;IAEtB;QACE,gCAAgC;QAChC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QAEvE,uCAAuC;QACvC,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;QAElC,qDAAqD;QACrD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACjD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAwB,CAAC,CAAC;QAE7B,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,EAAE;YACD,YAAY,EAAE;gBACZ,KAAK,EAAE,eAAe;gBACtB,OAAO,EAAE;oBACP,WAAW,EAAE,IAAI;iBAClB;aACF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,aAAqB,EAAE,IAAa;QACxE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC;YACH,wBAAwB;YACxB,MAAM,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5C,MAAM,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE9C,iCAAiC;YACjC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1D,OAAO,CAAC,KAAK,CAAC,2BAA2B,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;YAEhE,gDAAgD;YAChD,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAErC,uBAAuB;YACvB,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;YACvE,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACrG,MAAM,oBAAoB,CAAC,mBAAmB,EAAE,CAAC;YAEjD,wCAAwC;YACxC,IAAI,MAAM,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC;gBACnD,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;gBACtE,MAAM,eAAe,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAC1E,OAAO,CAAC,KAAK,CAAC,uBAAuB,eAAe,CAAC,YAAY,CAAC,MAAM,cAAc,eAAe,CAAC,WAAW,CAAC,MAAM,aAAa,eAAe,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;YAC/K,CAAC;YAED,+CAA+C;YAC/C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE;gBAC5F,gBAAgB,EAAE,IAAI,CAAC,WAAW;aACnC,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;YAElD,oDAAoD;YACpD,IAAI,YAAY,GAAuB,SAAS,CAAC;YACjD,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,IAAI,uBAAuB,EAAE,CAAC;gBACrD,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,mBAAmB,EAAE,CAAC;gBACpE,IAAI,gBAAgB,EAAE,CAAC;oBACrB,YAAY,GAAG,gBAAgB,CAAC,GAAG,CAAC;gBACtC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,6CAA6C;YAC/C,CAAC;YAED,2BAA2B;YAC3B,MAAM,OAAO,GAAG;gBACd,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,YAAY;gBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;YAEF,oBAAoB;YACpB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAE5B,6BAA6B;YAC7B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAE7C,sEAAsE;YACtE,SAAS,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;gBAC7B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC;YAEF,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAErC,iEAAiE;YACjE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;gBACjC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,sBAAsB;YACtB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;gBACrC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,sCAAsC;QAExC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,OAAY;QAChC,gBAAgB;QAChB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YACjE,KAAK,EAAE,aAAa,EAAE;SACvB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACrE,IAAI,CAAC;gBACH,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;YAC5F,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,kBAAkB;QAClB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACjE,IAAI,CAAC;gBACH,OAAO,MAAM,gBAAgB,EAAE,CAAC;YAClC,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACtE,IAAI,CAAC;gBACH,OAAO,MAAM,eAAe,CAC1B,OAAO,CAAC,MAAM,CAAC,IAAI,EACnB,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,EAC9B,OAAO,CACR,CAAC;YACJ,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,YAAY;QAClB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC;QAC9D,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC;QACxE,OAAO,CAAC,CAAC,CAAC,UAAU,IAAI,eAAe,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,0CAA0C;YAC1C,qFAAqF;YACrF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,yDAAyD;oBACzD,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC9E,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;gBACtE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,+BAA+B;gBACjC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;YACnG,CAAC;YAED,kBAAkB;YAClB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC/C,kDAAkD;QACpD,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -157,17 +157,41 @@ async function handleRequestApproval(args, context) {
157
157
  const validatedProjectPath = await validateProjectPath(projectPath);
158
158
  // Translate path at tool entry point (ApprovalStorage expects pre-translated paths)
159
159
  const translatedPath = safeTranslatePath(validatedProjectPath);
160
- const approvalStorage = new ApprovalStorage(translatedPath, {
160
+ // Use DocVault workflow root for approval storage so approvals land in the
161
+ // centralized DocVault tree where the dashboard can find them (INC-006 fix)
162
+ const workflowRoot = PathUtils.getWorkflowRoot(validatedProjectPath);
163
+ const translatedWorkflowRoot = safeTranslatePath(workflowRoot);
164
+ const approvalStorage = new ApprovalStorage(translatedWorkflowRoot, {
161
165
  originalPath: validatedProjectPath,
162
- fileResolutionPath: translatedPath
166
+ fileResolutionPath: translatedWorkflowRoot
163
167
  });
164
168
  await approvalStorage.start();
165
169
  const isMarkdownFile = args.filePath.toLowerCase().endsWith('.md');
166
170
  let markdownContent;
167
171
  if (isMarkdownFile) {
168
172
  try {
169
- const fullPath = join(validatedProjectPath, args.filePath);
170
- markdownContent = await readFile(fullPath, 'utf-8');
173
+ // Try DocVault workflow root first, then project root (legacy fallback)
174
+ const workflowRoot = PathUtils.getWorkflowRoot(validatedProjectPath);
175
+ const candidates = [
176
+ join(workflowRoot, args.filePath),
177
+ join(validatedProjectPath, args.filePath),
178
+ ];
179
+ // Deduplicate (when no DocVault, workflowRoot is {project}/.specflow so both differ)
180
+ const uniqueCandidates = [...new Set(candidates)];
181
+ let readSuccess = false;
182
+ for (const candidate of uniqueCandidates) {
183
+ try {
184
+ markdownContent = await readFile(candidate, 'utf-8');
185
+ readSuccess = true;
186
+ break;
187
+ }
188
+ catch {
189
+ // try next candidate
190
+ }
191
+ }
192
+ if (!readSuccess) {
193
+ throw new Error(`ENOENT: file not found at any candidate path: ${uniqueCandidates.join(', ')}`);
194
+ }
171
195
  }
172
196
  catch (fileError) {
173
197
  await approvalStorage.stop();
@@ -202,7 +226,8 @@ async function handleRequestApproval(args, context) {
202
226
  }
203
227
  // Validate tasks.md format before allowing approval request
204
228
  if (args.filePath.endsWith('tasks.md')) {
205
- const content = markdownContent ?? await readFile(join(validatedProjectPath, args.filePath), 'utf-8');
229
+ // markdownContent is already resolved via DocVault-aware candidates above
230
+ const content = markdownContent ?? await readFile(join(PathUtils.getWorkflowRoot(validatedProjectPath), args.filePath), 'utf-8');
206
231
  const validationResult = validateTasksMarkdown(content);
207
232
  if (!validationResult.valid) {
208
233
  await approvalStorage.stop();
@@ -295,11 +320,12 @@ async function handleGetApprovalStatus(args, context) {
295
320
  }
296
321
  // Validate and resolve project path
297
322
  const validatedProjectPath = await validateProjectPath(projectPath);
298
- // Translate path at tool entry point (ApprovalStorage expects pre-translated paths)
299
- const translatedPath = safeTranslatePath(validatedProjectPath);
300
- const approvalStorage = new ApprovalStorage(translatedPath, {
323
+ // Use DocVault workflow root for approval storage (INC-006 fix)
324
+ const workflowRoot = PathUtils.getWorkflowRoot(validatedProjectPath);
325
+ const translatedWorkflowRoot = safeTranslatePath(workflowRoot);
326
+ const approvalStorage = new ApprovalStorage(translatedWorkflowRoot, {
301
327
  originalPath: validatedProjectPath,
302
- fileResolutionPath: translatedPath
328
+ fileResolutionPath: translatedWorkflowRoot
303
329
  });
304
330
  await approvalStorage.start();
305
331
  const approval = await approvalStorage.getApproval(args.approvalId);
@@ -423,11 +449,12 @@ async function handleDeleteApproval(args, context) {
423
449
  }
424
450
  // Validate and resolve project path
425
451
  const validatedProjectPath = await validateProjectPath(projectPath);
426
- // Translate path at tool entry point (ApprovalStorage expects pre-translated paths)
427
- const translatedPath = safeTranslatePath(validatedProjectPath);
428
- const approvalStorage = new ApprovalStorage(translatedPath, {
452
+ // Use DocVault workflow root for approval storage (INC-006 fix)
453
+ const workflowRoot = PathUtils.getWorkflowRoot(validatedProjectPath);
454
+ const translatedWorkflowRoot = safeTranslatePath(workflowRoot);
455
+ const approvalStorage = new ApprovalStorage(translatedWorkflowRoot, {
429
456
  originalPath: validatedProjectPath,
430
- fileResolutionPath: translatedPath
457
+ fileResolutionPath: translatedWorkflowRoot
431
458
  });
432
459
  await approvalStorage.start();
433
460
  // Check if approval exists and its status
@@ -1 +1 @@
1
- {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/tools/approvals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/tools/approvals.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lbruton/specflow",
3
- "version": "3.5.4",
3
+ "version": "3.5.7",
4
4
  "description": "MCP server for spec-driven development workflow with real-time web dashboard",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",