rrce-workflow 0.3.34 → 0.3.36

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.
@@ -360,9 +360,41 @@ After saving plan:
360
360
 
361
361
  **Wait for user response** before taking any action.
362
362
 
363
- ### 2.9 Handoff Execution (After Confirmation)
363
+ ### 2.9 Handoff Execution (ONLY AFTER EXPLICIT USER CONFIRMATION)
364
364
 
365
- Only after receiving explicit user confirmation to proceed, use the `task` tool to delegate:
365
+ **STOP: Do NOT proceed with the code below unless:**
366
+ 1. User explicitly answered "y"/"yes"/"yeah"/"sure"/"go ahead" to "Ready to develop?"
367
+ 2. You have verified their response is affirmative
368
+
369
+ **If user said "n", "no", or any ambiguous response:**
370
+ - Update task metadata
371
+ - Emit completion signal
372
+ - END SESSION immediately
373
+
374
+ The following code block is provided **for reference only**. Do NOT execute unless user explicitly confirmed:
375
+
376
+ ```javascript
377
+ // REFERENCE CODE - EXECUTE ONLY AFTER USER CONFIRMATION
378
+ task({
379
+ description: "Develop {{TASK_SLUG}}",
380
+ prompt: `TASK_SLUG={{TASK_SLUG}}
381
+ WORKSPACE_NAME={{WORKSPACE_NAME}}
382
+ RRCE_DATA={{RRCE_DATA}}
383
+ WORKSPACE_ROOT={{WORKSPACE_ROOT}}
384
+ RRCE_HOME={{RRCE_HOME}}
385
+
386
+ ## CONTEXT (DO NOT RE-SEARCH)
387
+ - Design complete: research + planning saved
388
+ - Task count: <X> tasks planned
389
+ - Artifacts: research/{{TASK_SLUG}}-research.md, planning/{{TASK_SLUG}}-plan.md
390
+
391
+ Execute the planned tasks. Return completion signal when done.`,
392
+ subagent_type: "rrce_develop",
393
+ session_id: `develop-{{TASK_SLUG}}`
394
+ })
395
+ ```
396
+
397
+ **IMPORTANT:** Use resolved path values (RRCE_DATA, etc.) from orchestrator. Do not use placeholder variables in delegation prompt.
366
398
 
367
399
  ```javascript
368
400
  task({
package/dist/index.js CHANGED
@@ -283,6 +283,7 @@ function scanKnownProjects(projects, excludeWorkspace) {
283
283
  if (p.name === excludeWorkspace) continue;
284
284
  const localConfigPath = path3.join(p.path, ".rrce-workflow", "config.yaml");
285
285
  if (fs3.existsSync(localConfigPath)) {
286
+ migrateSemanticSearch(localConfigPath);
286
287
  const config = parseWorkspaceConfig(localConfigPath);
287
288
  const fullPath = path3.join(p.path, ".rrce-workflow");
288
289
  const knowledgePath = path3.join(fullPath, "knowledge");
@@ -335,6 +336,7 @@ function scanKnownPaths(paths, excludeWorkspace) {
335
336
  if (!fs3.existsSync(p)) continue;
336
337
  const localConfigPath = path3.join(p, ".rrce-workflow", "config.yaml");
337
338
  if (fs3.existsSync(localConfigPath)) {
339
+ migrateSemanticSearch(localConfigPath);
338
340
  const config = parseWorkspaceConfig(localConfigPath);
339
341
  if (config?.name === excludeWorkspace) continue;
340
342
  const fullPath = path3.join(p, ".rrce-workflow");
@@ -376,6 +378,7 @@ function scanGlobalStorage(excludeWorkspace) {
376
378
  const refsPath = path3.join(projectDataPath, "refs");
377
379
  const tasksPath = path3.join(projectDataPath, "tasks");
378
380
  const configPath = path3.join(projectDataPath, "config.yaml");
381
+ migrateSemanticSearch(configPath);
379
382
  const config = parseWorkspaceConfig(configPath);
380
383
  projects.push({
381
384
  name: config?.name || entry.name,
@@ -459,7 +462,7 @@ function parseWorkspaceConfig(configPath) {
459
462
  }
460
463
  }
461
464
  const semanticSearchMatch = content.match(/semantic_search:\s*\n\s*enabled:\s*(true|false)/);
462
- const semanticSearchEnabled = semanticSearchMatch ? semanticSearchMatch[1] === "true" : false;
465
+ const semanticSearchEnabled = semanticSearchMatch ? semanticSearchMatch[1] === "true" : true;
463
466
  return {
464
467
  name: nameMatch?.[1]?.trim() || path3.basename(path3.dirname(path3.dirname(configPath))),
465
468
  sourcePath: sourcePathMatch?.[1]?.trim(),
@@ -471,6 +474,20 @@ function parseWorkspaceConfig(configPath) {
471
474
  return null;
472
475
  }
473
476
  }
477
+ function migrateSemanticSearch(configPath) {
478
+ try {
479
+ const content = fs3.readFileSync(configPath, "utf-8");
480
+ const semanticSearchMatch = content.match(/semantic_search:\s*\n\s*enabled:\s*(true|false)/);
481
+ if (semanticSearchMatch) {
482
+ return false;
483
+ }
484
+ const updatedContent = content.trimEnd() + "\n\nsemantic_search:\n enabled: true\n";
485
+ fs3.writeFileSync(configPath, updatedContent, "utf-8");
486
+ return true;
487
+ } catch {
488
+ return false;
489
+ }
490
+ }
474
491
  function findClosestProject(projects, cwd = process.cwd()) {
475
492
  const matches = projects.map((p) => {
476
493
  let matchPath = "";
@@ -1324,6 +1341,10 @@ var init_types = __esm({
1324
1341
  knowledge: true,
1325
1342
  tasks: true,
1326
1343
  refs: true
1344
+ },
1345
+ semanticSearch: {
1346
+ enabled: true,
1347
+ model: "Xenova/all-MiniLM-L6-v2"
1327
1348
  }
1328
1349
  }
1329
1350
  };
@@ -5688,11 +5709,11 @@ async function handleConfigure() {
5688
5709
  }
5689
5710
  const selectedPaths = selected;
5690
5711
  logger.info("Configure: User selected projects by path", selectedPaths);
5691
- let enableSemanticSearch = false;
5712
+ let enableSemanticSearch = true;
5692
5713
  if (selectedPaths.length > 0) {
5693
5714
  const shouldEnable = await confirm2({
5694
5715
  message: "Enable Semantic Search (Local Mini RAG)?",
5695
- initialValue: false
5716
+ initialValue: true
5696
5717
  });
5697
5718
  if (isCancel3(shouldEnable)) return;
5698
5719
  enableSemanticSearch = shouldEnable;
@@ -8179,13 +8200,10 @@ tools:
8179
8200
  opencode: ${config.tools.includes("opencode")}
8180
8201
  copilot: ${config.tools.includes("copilot")}
8181
8202
  antigravity: ${config.tools.includes("antigravity")}
8182
- `;
8183
- if (config.enableRAG) {
8184
- content += `
8203
+
8185
8204
  semantic_search:
8186
8205
  enabled: true
8187
8206
  `;
8188
- }
8189
8207
  if (config.linkedProjects.length > 0) {
8190
8208
  content += `
8191
8209
  linked_projects:
@@ -8208,7 +8226,7 @@ async function registerWithMCP(config, workspacePath, workspaceName) {
8208
8226
  true,
8209
8227
  void 0,
8210
8228
  workspacePath,
8211
- config.enableRAG ? { enabled: true } : void 0
8229
+ { enabled: true, model: "Xenova/all-MiniLM-L6-v2" }
8212
8230
  );
8213
8231
  saveMCPConfig2(mcpConfig);
8214
8232
  } catch (e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rrce-workflow",
3
- "version": "0.3.34",
3
+ "version": "0.3.36",
4
4
  "description": "RRCE-Workflow TUI - Agentic code workflow generator for AI-assisted development",
5
5
  "author": "RRCE Team",
6
6
  "license": "MIT",