@runfusion/fusion 0.75.0-beta.1 → 0.75.0-beta.2

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 (136) hide show
  1. package/dist/bin.js +389 -134
  2. package/dist/child-process-worker.js +224 -123
  3. package/dist/client/.vite/manifest.json +249 -249
  4. package/dist/client/assets/{AgentDetailView-CsCVX96A.js → AgentDetailView-C4Xpag_i.js} +1 -1
  5. package/dist/client/assets/{AgentPermissionPolicyEditor-Dh5wDe8g.js → AgentPermissionPolicyEditor-D-Fp7-sy.js} +1 -1
  6. package/dist/client/assets/{AgentsView-Dd_oZbFn.js → AgentsView-BmFsoY1Q.js} +3 -3
  7. package/dist/client/assets/{ChatView-gC7_BCmZ.js → ChatView-5KsB3BVO.js} +1 -1
  8. package/dist/client/assets/{CommandCenter-Bk6RQ-hm.js → CommandCenter-CacGI8AV.js} +1 -1
  9. package/dist/client/assets/{DevServerView-Da8h5OC-.js → DevServerView-DufjauVn.js} +1 -1
  10. package/dist/client/assets/{DirectoryPicker-DX9H1EdH.js → DirectoryPicker-DvwqfQDS.js} +1 -1
  11. package/dist/client/assets/{DocumentsView-BZ0g_Am7.js → DocumentsView-BbYJFIQ1.js} +1 -1
  12. package/dist/client/assets/{EvalsView-DsI_X6eQ.js → EvalsView-NBC8kOc-.js} +1 -1
  13. package/dist/client/assets/{ExperimentalAgentOnboardingModal-BfE5f-XK.js → ExperimentalAgentOnboardingModal-C809yXXY.js} +1 -1
  14. package/dist/client/assets/{GoalsView-43sqRFfC.js → GoalsView-CpNO9eI0.js} +1 -1
  15. package/dist/client/assets/{InsightsView-Dvgn_hrA.js → InsightsView-Cahy5FcR.js} +1 -1
  16. package/dist/client/assets/{MemoryView-DWbHznu3.js → MemoryView-BNJAQjqn.js} +1 -1
  17. package/dist/client/assets/{PiExtensionsManager-BKfmIRDt.js → PiExtensionsManager-DCHTyOmJ.js} +1 -1
  18. package/dist/client/assets/{PluginManager-xhkrAjSK.js → PluginManager-CBt-CqUz.js} +1 -1
  19. package/dist/client/assets/{PullRequestView-CyEwGgRD.js → PullRequestView-Dsb9RwmX.js} +1 -1
  20. package/dist/client/assets/{ReportModal--NSmch5M.js → ReportModal-8FjZOcbC.js} +1 -1
  21. package/dist/client/assets/{ResearchView-CgqZlNMD.js → ResearchView-DlSG7dOd.js} +1 -1
  22. package/dist/client/assets/{SecretsView-am_ZT9z8.js → SecretsView-BSajNE-f.js} +1 -1
  23. package/dist/client/assets/{SessionTerminal-DSc_7NQ-.js → SessionTerminal-M2fIpHrL.js} +1 -1
  24. package/dist/client/assets/{SettingsModal-Bp6sytUe.js → SettingsModal-DLcvlp44.js} +3 -3
  25. package/dist/client/assets/{SettingsModal-D2jjC8m8.js → SettingsModal-z6gOf7dG.js} +1 -1
  26. package/dist/client/assets/{SettingsTextareaRow-DjJJD-Af.js → SettingsTextareaRow-DeC19053.js} +1 -1
  27. package/dist/client/assets/{SetupWizardModal-DLIeefbh.js → SetupWizardModal-BOjMePFh.js} +2 -2
  28. package/dist/client/assets/{SkillsView-C67Gdb5y.js → SkillsView-BSBEC-Xm.js} +1 -1
  29. package/dist/client/assets/{WorkflowNodeEditor-BxhdNPdn.js → WorkflowNodeEditor-DZ9-RBqo.js} +1 -1
  30. package/dist/client/assets/{agent-import-generation-Bk9fEowy.js → agent-import-generation-COItiXMT.js} +1 -1
  31. package/dist/client/assets/{architectureDiagram-3BPJPVTR-s2YViNU1.js → architectureDiagram-3BPJPVTR-BwlCePoB.js} +1 -1
  32. package/dist/client/assets/{blockDiagram-GPEHLZMM-DMsf6VWl.js → blockDiagram-GPEHLZMM-KKrLi9v4.js} +1 -1
  33. package/dist/client/assets/{c4Diagram-AAUBKEIU-DXJExfmV.js → c4Diagram-AAUBKEIU-CkIDt_8M.js} +1 -1
  34. package/dist/client/assets/channel-CeYcnOtQ.js +1 -0
  35. package/dist/client/assets/{chunk-2J33WTMH-CH99GAl7.js → chunk-2J33WTMH-D9sbdaqY.js} +1 -1
  36. package/dist/client/assets/{chunk-4BX2VUAB-BTV9SXg5.js → chunk-4BX2VUAB-D3DtFoAY.js} +1 -1
  37. package/dist/client/assets/{chunk-55IACEB6-ntvLX3jz.js → chunk-55IACEB6-gxblxRIN.js} +1 -1
  38. package/dist/client/assets/{chunk-727SXJPM-DBNBtu-e.js → chunk-727SXJPM-D0AEDoHN.js} +1 -1
  39. package/dist/client/assets/{chunk-AQP2D5EJ-DvbtWh_x.js → chunk-AQP2D5EJ-BweoM7qY.js} +1 -1
  40. package/dist/client/assets/{chunk-FMBD7UC4-CUdRlAnf.js → chunk-FMBD7UC4-sjblhrjI.js} +1 -1
  41. package/dist/client/assets/{chunk-ND2GUHAM-B7J-met1.js → chunk-ND2GUHAM-CYuRENSs.js} +1 -1
  42. package/dist/client/assets/{chunk-QZHKN3VN-D7CahWp7.js → chunk-QZHKN3VN-CFKJr4kG.js} +1 -1
  43. package/dist/client/assets/classDiagram-4FO5ZUOK-CZwh2k1X.js +1 -0
  44. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CZwh2k1X.js +1 -0
  45. package/dist/client/assets/{cose-bilkent-S5V4N54A-6E0Aaw7K.js → cose-bilkent-S5V4N54A-6Jb6SgHM.js} +1 -1
  46. package/dist/client/assets/{dagre-BM42HDAG-Wi236AfH.js → dagre-BM42HDAG-FQJ87Ol3.js} +1 -1
  47. package/dist/client/assets/{dashboard-view-CrHqKsfL.js → dashboard-view-B1Rq2-73.js} +1 -1
  48. package/dist/client/assets/{dashboard-view-NpkFaG9s.js → dashboard-view-DH1Zo0m4.js} +1 -1
  49. package/dist/client/assets/{dashboard-view-hLsXVJJN.js → dashboard-view-DVMZNVoc.js} +1 -1
  50. package/dist/client/assets/{dashboard-view-BZDf9tzC.js → dashboard-view-DgLbkn5n.js} +1 -1
  51. package/dist/client/assets/{diagram-2AECGRRQ-B3TxtVcq.js → diagram-2AECGRRQ-CKYOu9to.js} +1 -1
  52. package/dist/client/assets/{diagram-5GNKFQAL-45Y_FHjp.js → diagram-5GNKFQAL-DPwjFnde.js} +1 -1
  53. package/dist/client/assets/{diagram-KO2AKTUF-D4w3m4cp.js → diagram-KO2AKTUF-DzZS9Nk3.js} +1 -1
  54. package/dist/client/assets/{diagram-LMA3HP47-Dv5F4ha2.js → diagram-LMA3HP47-DW9e5YSP.js} +1 -1
  55. package/dist/client/assets/{diagram-OG6HWLK6-CvOQ1IYN.js → diagram-OG6HWLK6-C7V3Mj63.js} +1 -1
  56. package/dist/client/assets/{erDiagram-TEJ5UH35-DYcp25dX.js → erDiagram-TEJ5UH35-DSQzBA0e.js} +1 -1
  57. package/dist/client/assets/{flowDiagram-I6XJVG4X-DnjuETCJ.js → flowDiagram-I6XJVG4X-BUuOq9tO.js} +1 -1
  58. package/dist/client/assets/{folder-open-ovJcpdOX.js → folder-open-DXNu4ED4.js} +1 -1
  59. package/dist/client/assets/{ganttDiagram-6RSMTGT7-SU7_CTa4.js → ganttDiagram-6RSMTGT7-Bc32G_Ef.js} +1 -1
  60. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DFvxZu8I.js → gitGraphDiagram-PVQCEYII-Cvfa0W6a.js} +1 -1
  61. package/dist/client/assets/{index-C_ZHzU4F.js → index-C5YdAqNQ.js} +14 -14
  62. package/dist/client/assets/index-DHk_s6rA.css +1 -0
  63. package/dist/client/assets/{infoDiagram-5YYISTIA-DgMEfdKk.js → infoDiagram-5YYISTIA-TqRUTfvy.js} +1 -1
  64. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CFjnOb7V.js → ishikawaDiagram-YF4QCWOH-D33iop1_.js} +1 -1
  65. package/dist/client/assets/{journeyDiagram-JHISSGLW-46dGsf_j.js → journeyDiagram-JHISSGLW-DH-TDR5Y.js} +1 -1
  66. package/dist/client/assets/{kanban-definition-UN3LZRKU-9-nz-BFT.js → kanban-definition-UN3LZRKU-CAcebzyW.js} +1 -1
  67. package/dist/client/assets/{mermaid.core-CYHDO5ss.js → mermaid.core-C3Nh1Sak.js} +4 -4
  68. package/dist/client/assets/{mindmap-definition-RKZ34NQL-BYQE0Nqo.js → mindmap-definition-RKZ34NQL-CSIccWV8.js} +1 -1
  69. package/dist/client/assets/{pieDiagram-4H26LBE5-BNSMLSjW.js → pieDiagram-4H26LBE5-hXJ3G3MR.js} +1 -1
  70. package/dist/client/assets/{puzzle-D2SwAtRX.js → puzzle-DI3elldh.js} +1 -1
  71. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CNdSBA7P.js → quadrantDiagram-W4KKPZXB-B3wpvneC.js} +1 -1
  72. package/dist/client/assets/{requirementDiagram-4Y6WPE33-B6EJvc9H.js → requirementDiagram-4Y6WPE33-DPpYL2ca.js} +1 -1
  73. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-8DcYdUmL.js → sankeyDiagram-5OEKKPKP-BS9QXSEF.js} +1 -1
  74. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BjRXhtKa.js → sequenceDiagram-3UESZ5HK-C_fqU0MW.js} +1 -1
  75. package/dist/client/assets/{shield-alert-b4thCabv.js → shield-alert-CzZYSqmH.js} +1 -1
  76. package/dist/client/assets/{standing-instructions-template-B1X-jWip.js → standing-instructions-template-CsXA4WMZ.js} +1 -1
  77. package/dist/client/assets/{stateDiagram-AJRCARHV-Btrn_84P.js → stateDiagram-AJRCARHV-DbSZrprS.js} +1 -1
  78. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-DiyZxQF1.js → stateDiagram-v2-BHNVJYJU-Cf_ckwmM.js} +1 -1
  79. package/dist/client/assets/{timeline-definition-PNZ67QCA-CjEYU1kO.js → timeline-definition-PNZ67QCA-B1ohvKjs.js} +1 -1
  80. package/dist/client/assets/{upload-DMts5fzZ.js → upload-D7nNe9wD.js} +1 -1
  81. package/dist/client/assets/{users-C9O98ACz.js → users-B79Dvre4.js} +1 -1
  82. package/dist/client/assets/{vennDiagram-CIIHVFJN-DtEb-r3I.js → vennDiagram-CIIHVFJN-CxZYCQ72.js} +1 -1
  83. package/dist/client/assets/{wardley-L42UT6IY-Ds-v1VZi.js → wardley-L42UT6IY-clJem8VU.js} +1 -1
  84. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-C15pYn-T.js → wardleyDiagram-YWT4CUSO-zE8lyaWe.js} +1 -1
  85. package/dist/client/assets/{xychartDiagram-2RQKCTM6-ChJ77iYU.js → xychartDiagram-2RQKCTM6-DsdjuSxQ.js} +1 -1
  86. package/dist/client/index.html +2 -2
  87. package/dist/client/version.json +1 -1
  88. package/dist/droid-cli/package.json +1 -1
  89. package/dist/extension.js +242 -125
  90. package/dist/migrations/0000_initial.sql +1 -0
  91. package/dist/migrations/0044_fn_8785_queued_episode_signature.sql +3 -0
  92. package/dist/pi-claude-cli/package.json +1 -1
  93. package/dist/plugin-sdk/index.d.ts +16 -0
  94. package/dist/plugin-sdk/index.js +6 -5
  95. package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +6 -5
  96. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  97. package/dist/plugins/fusion-plugin-claude-runtime/bundled.js +6 -5
  98. package/dist/plugins/fusion-plugin-claude-runtime/package.json +1 -1
  99. package/dist/plugins/fusion-plugin-cli-printing-press/bundled.js +6 -5
  100. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  101. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +6 -5
  102. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  103. package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +6 -5
  104. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  105. package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +6 -5
  106. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  107. package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +6 -5
  108. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  109. package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +6 -5
  110. package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
  111. package/dist/plugins/fusion-plugin-hermes-runtime/.bundled.reload-3.js +19167 -0
  112. package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +6 -5
  113. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  114. package/dist/plugins/fusion-plugin-linear-import/bundled.js +6 -5
  115. package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
  116. package/dist/plugins/fusion-plugin-omp-runtime/bundled.js +6 -5
  117. package/dist/plugins/fusion-plugin-omp-runtime/package.json +1 -1
  118. package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +6 -5
  119. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  120. package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +6 -5
  121. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  122. package/dist/plugins/fusion-plugin-quality/bundled.js +6 -5
  123. package/dist/plugins/fusion-plugin-quality/package.json +1 -1
  124. package/dist/plugins/fusion-plugin-reports/bundled.js +6 -5
  125. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  126. package/dist/plugins/fusion-plugin-roadmap/bundled.js +6 -5
  127. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  128. package/dist/plugins/fusion-plugin-todos/bundled.js +6 -5
  129. package/dist/plugins/fusion-plugin-todos/package.json +1 -1
  130. package/dist/plugins/fusion-plugin-whatsapp-chat/bundled.js +6 -5
  131. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  132. package/package.json +1 -1
  133. package/dist/client/assets/channel-BRBjryTS.js +0 -1
  134. package/dist/client/assets/classDiagram-4FO5ZUOK-26ZYCgHv.js +0 -1
  135. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-26ZYCgHv.js +0 -1
  136. package/dist/client/assets/index-CJRmyxnw.css +0 -1
@@ -52,6 +52,7 @@ CREATE TABLE IF NOT EXISTS project.tasks (
52
52
  worktree text,
53
53
  blocked_by text,
54
54
  overlap_blocked_by text,
55
+ queued_log_episode_signature text,
55
56
  paused integer DEFAULT 0,
56
57
  user_paused integer DEFAULT 0,
57
58
  paused_reason text,
@@ -0,0 +1,3 @@
1
+ -- FNXC:QueuedTaskLogging 2026-08-04-18:03: retain one durable full blocker signature per live task queue episode.
2
+ ALTER TABLE project.tasks
3
+ ADD COLUMN IF NOT EXISTS queued_log_episode_signature text;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion/pi-claude-cli",
3
- "version": "0.75.0-beta.1",
3
+ "version": "0.75.0-beta.2",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "main": "index.ts",
@@ -342,6 +342,19 @@ interface WorkflowIrV2 {
342
342
  }
343
343
  type WorkflowIr = WorkflowIrV1 | WorkflowIrV2;
344
344
 
345
+ interface QueuedEpisodeTransition {
346
+ signature: string;
347
+ blockedBy: string | null;
348
+ overlapBlockedBy: string | null;
349
+ action: string;
350
+ outcome?: string;
351
+ runContext?: RunMutationContext;
352
+ }
353
+ interface QueuedEpisodeTransitionResult {
354
+ appended: boolean;
355
+ task: Task;
356
+ }
357
+
345
358
  type StepStartDisposition = "started" | "resumed" | "blocked" | "terminal";
346
359
  interface StepStartResult {
347
360
  task: Task;
@@ -3389,6 +3402,7 @@ interface TaskRow {
3389
3402
  worktree: string | null;
3390
3403
  blockedBy: string | null;
3391
3404
  overlapBlockedBy: string | null;
3405
+ queuedLogEpisodeSignature: string | null;
3392
3406
  paused: number | null;
3393
3407
  pausedReason: string | null;
3394
3408
  wedgeNotification: string | null;
@@ -4582,6 +4596,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
4582
4596
  source?: "graph";
4583
4597
  }): Promise<StepStartResult>;
4584
4598
  checkAndRecordUnplannedExecutionBlock(id: string, episode: string): Promise<boolean>;
4599
+ transitionQueuedEpisode(id: string, transition: QueuedEpisodeTransition): Promise<QueuedEpisodeTransitionResult>;
4585
4600
  logEntry(id: string, action: string, outcome?: string, runContext?: RunMutationContext): Promise<Task>;
4586
4601
  getMutationsForRun(runId: string): Promise<TaskLogEntry[]>;
4587
4602
  rowToMergeQueueEntry(row: MergeQueueRow): MergeQueueEntry;
@@ -6483,6 +6498,7 @@ interface Task {
6483
6498
  recentAgentActivityAt?: string;
6484
6499
  blockedBy?: string;
6485
6500
  overlapBlockedBy?: string;
6501
+ queuedLogEpisodeSignature?: string;
6486
6502
  paused?: boolean;
6487
6503
  userPaused?: boolean;
6488
6504
  pausedReason?: string;
@@ -5800,6 +5800,7 @@ var tasks = projectSchema.table("tasks", {
5800
5800
  worktree: text("worktree"),
5801
5801
  blockedBy: text("blocked_by"),
5802
5802
  overlapBlockedBy: text("overlap_blocked_by"),
5803
+ queuedLogEpisodeSignature: text("queued_log_episode_signature"),
5803
5804
  paused: integer("paused").default(0),
5804
5805
  userPaused: integer("user_paused").default(0),
5805
5806
  pausedReason: text("paused_reason"),
@@ -12385,7 +12386,7 @@ Write a lean, executable PROMPT.md quickly. Preserve safety gates, but skip heav
12385
12386
  - Preserve required safety sections for bugs, workflow routing, forensic tasks, and decision-only work.
12386
12387
 
12387
12388
  ## Duplicate check
12388
- Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` and inspect it before deciding. If an existing task covers the same work, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12389
+ Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. Do not search completed or archived work for duplicate candidates. When an active match is a duplicate, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12389
12390
 
12390
12391
  ## Required PROMPT.md shape
12391
12392
  Write PROMPT.md with Original Description, Before \u2192 After Transformation, Mission, Dependencies, Context to Read First, File Scope, Steps, Documentation Requirements, Completion Criteria, Git Commit Convention, and Do NOT. Put \`## Original Description\` immediately after the title/\`Created\`/\`Size\` metadata with the operator's original task description copied **verbatim** (do not paraphrase). Put \`## Before \u2192 After Transformation\` next, before \`## Mission\`, with concise Before/After bullets: current state, target state, why it satisfies the user's request at a glance. In \`## Steps\`, every executable heading MUST use \`### Step N: <name>\` (e.g. \`### Step 1: Preflight\`). Do not write bare \`### Preflight\` / \`### Implementation\` headings, and do not add review-level, triage subtask, or proactive subtask headings.
@@ -12653,9 +12654,9 @@ Verified facts about this codebase's storage \u2014 cite these correctly so Plan
12653
12654
  - New Postgres migrations must be **registered explicitly** in \`packages/core/src/postgres/schema-applier.ts\` (version constant + bookkeeping check); a \`.sql\` file dropped in the migrations dir that is not wired there silently never runs.
12654
12655
 
12655
12656
  ## Duplicate check
12656
- Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12657
- For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` to inspect details before deciding.
12658
- If a task already covers the same work (even if worded differently), do not write a spec.
12657
+ Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12658
+ Do not search completed or archived work for duplicate candidates.
12659
+ If an actionable task already covers the same work (even if worded differently), do not write a spec.
12659
12660
  Instead you MUST still write PROMPT.md, with its ENTIRE contents being this one line and nothing else:
12660
12661
  \`DUPLICATE: {existing-task-id}\`
12661
12662
  Writing that file IS how you report the duplicate. Reporting it only in your reply is not recorded:
@@ -12686,7 +12687,7 @@ Workflow policy can disable proactive oversized-task splitting for operators who
12686
12687
  ## Triage tools
12687
12688
  You have these extra tools during triage:
12688
12689
  - \`fn_task_list\` \u2014 list existing active tasks
12689
- - \`fn_task_search\` \u2014 keyword search across tasks, including done and archived tasks
12690
+ - \`fn_task_search\` \u2014 keyword search across active tasks by default; history is opt-in for non-duplicate research
12690
12691
  - \`fn_task_show\` \u2014 inspect a task and its PROMPT.md
12691
12692
  - \`fn_task_create\` \u2014 create a child/follow-up task while triaging
12692
12693
  - \`fn_task_document_write\` \u2014 save a planning document (e.g., key="plan")
@@ -5799,6 +5799,7 @@ var tasks = projectSchema.table("tasks", {
5799
5799
  worktree: text("worktree"),
5800
5800
  blockedBy: text("blocked_by"),
5801
5801
  overlapBlockedBy: text("overlap_blocked_by"),
5802
+ queuedLogEpisodeSignature: text("queued_log_episode_signature"),
5802
5803
  paused: integer("paused").default(0),
5803
5804
  userPaused: integer("user_paused").default(0),
5804
5805
  pausedReason: text("paused_reason"),
@@ -12384,7 +12385,7 @@ Write a lean, executable PROMPT.md quickly. Preserve safety gates, but skip heav
12384
12385
  - Preserve required safety sections for bugs, workflow routing, forensic tasks, and decision-only work.
12385
12386
 
12386
12387
  ## Duplicate check
12387
- Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` and inspect it before deciding. If an existing task covers the same work, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
+ Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. Do not search completed or archived work for duplicate candidates. When an active match is a duplicate, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
12389
 
12389
12390
  ## Required PROMPT.md shape
12390
12391
  Write PROMPT.md with Original Description, Before \u2192 After Transformation, Mission, Dependencies, Context to Read First, File Scope, Steps, Documentation Requirements, Completion Criteria, Git Commit Convention, and Do NOT. Put \`## Original Description\` immediately after the title/\`Created\`/\`Size\` metadata with the operator's original task description copied **verbatim** (do not paraphrase). Put \`## Before \u2192 After Transformation\` next, before \`## Mission\`, with concise Before/After bullets: current state, target state, why it satisfies the user's request at a glance. In \`## Steps\`, every executable heading MUST use \`### Step N: <name>\` (e.g. \`### Step 1: Preflight\`). Do not write bare \`### Preflight\` / \`### Implementation\` headings, and do not add review-level, triage subtask, or proactive subtask headings.
@@ -12652,9 +12653,9 @@ Verified facts about this codebase's storage \u2014 cite these correctly so Plan
12652
12653
  - New Postgres migrations must be **registered explicitly** in \`packages/core/src/postgres/schema-applier.ts\` (version constant + bookkeeping check); a \`.sql\` file dropped in the migrations dir that is not wired there silently never runs.
12653
12654
 
12654
12655
  ## Duplicate check
12655
- Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12656
- For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` to inspect details before deciding.
12657
- If a task already covers the same work (even if worded differently), do not write a spec.
12656
+ Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12657
+ Do not search completed or archived work for duplicate candidates.
12658
+ If an actionable task already covers the same work (even if worded differently), do not write a spec.
12658
12659
  Instead you MUST still write PROMPT.md, with its ENTIRE contents being this one line and nothing else:
12659
12660
  \`DUPLICATE: {existing-task-id}\`
12660
12661
  Writing that file IS how you report the duplicate. Reporting it only in your reply is not recorded:
@@ -12685,7 +12686,7 @@ Workflow policy can disable proactive oversized-task splitting for operators who
12685
12686
  ## Triage tools
12686
12687
  You have these extra tools during triage:
12687
12688
  - \`fn_task_list\` \u2014 list existing active tasks
12688
- - \`fn_task_search\` \u2014 keyword search across tasks, including done and archived tasks
12689
+ - \`fn_task_search\` \u2014 keyword search across active tasks by default; history is opt-in for non-duplicate research
12689
12690
  - \`fn_task_show\` \u2014 inspect a task and its PROMPT.md
12690
12691
  - \`fn_task_create\` \u2014 create a child/follow-up task while triaging
12691
12692
  - \`fn_task_document_write\` \u2014 save a planning document (e.g., key="plan")
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/acp-runtime",
3
- "version": "0.1.33-beta.1",
3
+ "version": "0.1.33-beta.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -5799,6 +5799,7 @@ var tasks = projectSchema.table("tasks", {
5799
5799
  worktree: text("worktree"),
5800
5800
  blockedBy: text("blocked_by"),
5801
5801
  overlapBlockedBy: text("overlap_blocked_by"),
5802
+ queuedLogEpisodeSignature: text("queued_log_episode_signature"),
5802
5803
  paused: integer("paused").default(0),
5803
5804
  userPaused: integer("user_paused").default(0),
5804
5805
  pausedReason: text("paused_reason"),
@@ -12384,7 +12385,7 @@ Write a lean, executable PROMPT.md quickly. Preserve safety gates, but skip heav
12384
12385
  - Preserve required safety sections for bugs, workflow routing, forensic tasks, and decision-only work.
12385
12386
 
12386
12387
  ## Duplicate check
12387
- Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` and inspect it before deciding. If an existing task covers the same work, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
+ Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. Do not search completed or archived work for duplicate candidates. When an active match is a duplicate, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
12389
 
12389
12390
  ## Required PROMPT.md shape
12390
12391
  Write PROMPT.md with Original Description, Before \u2192 After Transformation, Mission, Dependencies, Context to Read First, File Scope, Steps, Documentation Requirements, Completion Criteria, Git Commit Convention, and Do NOT. Put \`## Original Description\` immediately after the title/\`Created\`/\`Size\` metadata with the operator's original task description copied **verbatim** (do not paraphrase). Put \`## Before \u2192 After Transformation\` next, before \`## Mission\`, with concise Before/After bullets: current state, target state, why it satisfies the user's request at a glance. In \`## Steps\`, every executable heading MUST use \`### Step N: <name>\` (e.g. \`### Step 1: Preflight\`). Do not write bare \`### Preflight\` / \`### Implementation\` headings, and do not add review-level, triage subtask, or proactive subtask headings.
@@ -12652,9 +12653,9 @@ Verified facts about this codebase's storage \u2014 cite these correctly so Plan
12652
12653
  - New Postgres migrations must be **registered explicitly** in \`packages/core/src/postgres/schema-applier.ts\` (version constant + bookkeeping check); a \`.sql\` file dropped in the migrations dir that is not wired there silently never runs.
12653
12654
 
12654
12655
  ## Duplicate check
12655
- Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12656
- For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` to inspect details before deciding.
12657
- If a task already covers the same work (even if worded differently), do not write a spec.
12656
+ Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12657
+ Do not search completed or archived work for duplicate candidates.
12658
+ If an actionable task already covers the same work (even if worded differently), do not write a spec.
12658
12659
  Instead you MUST still write PROMPT.md, with its ENTIRE contents being this one line and nothing else:
12659
12660
  \`DUPLICATE: {existing-task-id}\`
12660
12661
  Writing that file IS how you report the duplicate. Reporting it only in your reply is not recorded:
@@ -12685,7 +12686,7 @@ Workflow policy can disable proactive oversized-task splitting for operators who
12685
12686
  ## Triage tools
12686
12687
  You have these extra tools during triage:
12687
12688
  - \`fn_task_list\` \u2014 list existing active tasks
12688
- - \`fn_task_search\` \u2014 keyword search across tasks, including done and archived tasks
12689
+ - \`fn_task_search\` \u2014 keyword search across active tasks by default; history is opt-in for non-duplicate research
12689
12690
  - \`fn_task_show\` \u2014 inspect a task and its PROMPT.md
12690
12691
  - \`fn_task_create\` \u2014 create a child/follow-up task while triaging
12691
12692
  - \`fn_task_document_write\` \u2014 save a planning document (e.g., key="plan")
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/claude-runtime",
3
- "version": "0.1.8-beta.1",
3
+ "version": "0.1.8-beta.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -5827,6 +5827,7 @@ var tasks = projectSchema.table("tasks", {
5827
5827
  worktree: text("worktree"),
5828
5828
  blockedBy: text("blocked_by"),
5829
5829
  overlapBlockedBy: text("overlap_blocked_by"),
5830
+ queuedLogEpisodeSignature: text("queued_log_episode_signature"),
5830
5831
  paused: integer("paused").default(0),
5831
5832
  userPaused: integer("user_paused").default(0),
5832
5833
  pausedReason: text("paused_reason"),
@@ -12504,7 +12505,7 @@ Write a lean, executable PROMPT.md quickly. Preserve safety gates, but skip heav
12504
12505
  - Preserve required safety sections for bugs, workflow routing, forensic tasks, and decision-only work.
12505
12506
 
12506
12507
  ## Duplicate check
12507
- Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` and inspect it before deciding. If an existing task covers the same work, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12508
+ Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. Do not search completed or archived work for duplicate candidates. When an active match is a duplicate, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12508
12509
 
12509
12510
  ## Required PROMPT.md shape
12510
12511
  Write PROMPT.md with Original Description, Before \u2192 After Transformation, Mission, Dependencies, Context to Read First, File Scope, Steps, Documentation Requirements, Completion Criteria, Git Commit Convention, and Do NOT. Put \`## Original Description\` immediately after the title/\`Created\`/\`Size\` metadata with the operator's original task description copied **verbatim** (do not paraphrase). Put \`## Before \u2192 After Transformation\` next, before \`## Mission\`, with concise Before/After bullets: current state, target state, why it satisfies the user's request at a glance. In \`## Steps\`, every executable heading MUST use \`### Step N: <name>\` (e.g. \`### Step 1: Preflight\`). Do not write bare \`### Preflight\` / \`### Implementation\` headings, and do not add review-level, triage subtask, or proactive subtask headings.
@@ -12772,9 +12773,9 @@ Verified facts about this codebase's storage \u2014 cite these correctly so Plan
12772
12773
  - New Postgres migrations must be **registered explicitly** in \`packages/core/src/postgres/schema-applier.ts\` (version constant + bookkeeping check); a \`.sql\` file dropped in the migrations dir that is not wired there silently never runs.
12773
12774
 
12774
12775
  ## Duplicate check
12775
- Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12776
- For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` to inspect details before deciding.
12777
- If a task already covers the same work (even if worded differently), do not write a spec.
12776
+ Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12777
+ Do not search completed or archived work for duplicate candidates.
12778
+ If an actionable task already covers the same work (even if worded differently), do not write a spec.
12778
12779
  Instead you MUST still write PROMPT.md, with its ENTIRE contents being this one line and nothing else:
12779
12780
  \`DUPLICATE: {existing-task-id}\`
12780
12781
  Writing that file IS how you report the duplicate. Reporting it only in your reply is not recorded:
@@ -12805,7 +12806,7 @@ Workflow policy can disable proactive oversized-task splitting for operators who
12805
12806
  ## Triage tools
12806
12807
  You have these extra tools during triage:
12807
12808
  - \`fn_task_list\` \u2014 list existing active tasks
12808
- - \`fn_task_search\` \u2014 keyword search across tasks, including done and archived tasks
12809
+ - \`fn_task_search\` \u2014 keyword search across active tasks by default; history is opt-in for non-duplicate research
12809
12810
  - \`fn_task_show\` \u2014 inspect a task and its PROMPT.md
12810
12811
  - \`fn_task_create\` \u2014 create a child/follow-up task while triaging
12811
12812
  - \`fn_task_document_write\` \u2014 save a planning document (e.g., key="plan")
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/cli-printing-press",
3
- "version": "0.1.50-beta.1",
3
+ "version": "0.1.50-beta.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -5799,6 +5799,7 @@ var tasks = projectSchema.table("tasks", {
5799
5799
  worktree: text("worktree"),
5800
5800
  blockedBy: text("blocked_by"),
5801
5801
  overlapBlockedBy: text("overlap_blocked_by"),
5802
+ queuedLogEpisodeSignature: text("queued_log_episode_signature"),
5802
5803
  paused: integer("paused").default(0),
5803
5804
  userPaused: integer("user_paused").default(0),
5804
5805
  pausedReason: text("paused_reason"),
@@ -12384,7 +12385,7 @@ Write a lean, executable PROMPT.md quickly. Preserve safety gates, but skip heav
12384
12385
  - Preserve required safety sections for bugs, workflow routing, forensic tasks, and decision-only work.
12385
12386
 
12386
12387
  ## Duplicate check
12387
- Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` and inspect it before deciding. If an existing task covers the same work, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
+ Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. Do not search completed or archived work for duplicate candidates. When an active match is a duplicate, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
12389
 
12389
12390
  ## Required PROMPT.md shape
12390
12391
  Write PROMPT.md with Original Description, Before \u2192 After Transformation, Mission, Dependencies, Context to Read First, File Scope, Steps, Documentation Requirements, Completion Criteria, Git Commit Convention, and Do NOT. Put \`## Original Description\` immediately after the title/\`Created\`/\`Size\` metadata with the operator's original task description copied **verbatim** (do not paraphrase). Put \`## Before \u2192 After Transformation\` next, before \`## Mission\`, with concise Before/After bullets: current state, target state, why it satisfies the user's request at a glance. In \`## Steps\`, every executable heading MUST use \`### Step N: <name>\` (e.g. \`### Step 1: Preflight\`). Do not write bare \`### Preflight\` / \`### Implementation\` headings, and do not add review-level, triage subtask, or proactive subtask headings.
@@ -12652,9 +12653,9 @@ Verified facts about this codebase's storage \u2014 cite these correctly so Plan
12652
12653
  - New Postgres migrations must be **registered explicitly** in \`packages/core/src/postgres/schema-applier.ts\` (version constant + bookkeeping check); a \`.sql\` file dropped in the migrations dir that is not wired there silently never runs.
12653
12654
 
12654
12655
  ## Duplicate check
12655
- Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12656
- For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` to inspect details before deciding.
12657
- If a task already covers the same work (even if worded differently), do not write a spec.
12656
+ Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12657
+ Do not search completed or archived work for duplicate candidates.
12658
+ If an actionable task already covers the same work (even if worded differently), do not write a spec.
12658
12659
  Instead you MUST still write PROMPT.md, with its ENTIRE contents being this one line and nothing else:
12659
12660
  \`DUPLICATE: {existing-task-id}\`
12660
12661
  Writing that file IS how you report the duplicate. Reporting it only in your reply is not recorded:
@@ -12685,7 +12686,7 @@ Workflow policy can disable proactive oversized-task splitting for operators who
12685
12686
  ## Triage tools
12686
12687
  You have these extra tools during triage:
12687
12688
  - \`fn_task_list\` \u2014 list existing active tasks
12688
- - \`fn_task_search\` \u2014 keyword search across tasks, including done and archived tasks
12689
+ - \`fn_task_search\` \u2014 keyword search across active tasks by default; history is opt-in for non-duplicate research
12689
12690
  - \`fn_task_show\` \u2014 inspect a task and its PROMPT.md
12690
12691
  - \`fn_task_create\` \u2014 create a child/follow-up task while triaging
12691
12692
  - \`fn_task_document_write\` \u2014 save a planning document (e.g., key="plan")
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/compound-engineering",
3
- "version": "0.1.33-beta.1",
3
+ "version": "0.1.33-beta.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -5799,6 +5799,7 @@ var tasks = projectSchema.table("tasks", {
5799
5799
  worktree: text("worktree"),
5800
5800
  blockedBy: text("blocked_by"),
5801
5801
  overlapBlockedBy: text("overlap_blocked_by"),
5802
+ queuedLogEpisodeSignature: text("queued_log_episode_signature"),
5802
5803
  paused: integer("paused").default(0),
5803
5804
  userPaused: integer("user_paused").default(0),
5804
5805
  pausedReason: text("paused_reason"),
@@ -12384,7 +12385,7 @@ Write a lean, executable PROMPT.md quickly. Preserve safety gates, but skip heav
12384
12385
  - Preserve required safety sections for bugs, workflow routing, forensic tasks, and decision-only work.
12385
12386
 
12386
12387
  ## Duplicate check
12387
- Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` and inspect it before deciding. If an existing task covers the same work, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
+ Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. Do not search completed or archived work for duplicate candidates. When an active match is a duplicate, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
12389
 
12389
12390
  ## Required PROMPT.md shape
12390
12391
  Write PROMPT.md with Original Description, Before \u2192 After Transformation, Mission, Dependencies, Context to Read First, File Scope, Steps, Documentation Requirements, Completion Criteria, Git Commit Convention, and Do NOT. Put \`## Original Description\` immediately after the title/\`Created\`/\`Size\` metadata with the operator's original task description copied **verbatim** (do not paraphrase). Put \`## Before \u2192 After Transformation\` next, before \`## Mission\`, with concise Before/After bullets: current state, target state, why it satisfies the user's request at a glance. In \`## Steps\`, every executable heading MUST use \`### Step N: <name>\` (e.g. \`### Step 1: Preflight\`). Do not write bare \`### Preflight\` / \`### Implementation\` headings, and do not add review-level, triage subtask, or proactive subtask headings.
@@ -12652,9 +12653,9 @@ Verified facts about this codebase's storage \u2014 cite these correctly so Plan
12652
12653
  - New Postgres migrations must be **registered explicitly** in \`packages/core/src/postgres/schema-applier.ts\` (version constant + bookkeeping check); a \`.sql\` file dropped in the migrations dir that is not wired there silently never runs.
12653
12654
 
12654
12655
  ## Duplicate check
12655
- Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12656
- For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` to inspect details before deciding.
12657
- If a task already covers the same work (even if worded differently), do not write a spec.
12656
+ Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12657
+ Do not search completed or archived work for duplicate candidates.
12658
+ If an actionable task already covers the same work (even if worded differently), do not write a spec.
12658
12659
  Instead you MUST still write PROMPT.md, with its ENTIRE contents being this one line and nothing else:
12659
12660
  \`DUPLICATE: {existing-task-id}\`
12660
12661
  Writing that file IS how you report the duplicate. Reporting it only in your reply is not recorded:
@@ -12685,7 +12686,7 @@ Workflow policy can disable proactive oversized-task splitting for operators who
12685
12686
  ## Triage tools
12686
12687
  You have these extra tools during triage:
12687
12688
  - \`fn_task_list\` \u2014 list existing active tasks
12688
- - \`fn_task_search\` \u2014 keyword search across tasks, including done and archived tasks
12689
+ - \`fn_task_search\` \u2014 keyword search across active tasks by default; history is opt-in for non-duplicate research
12689
12690
  - \`fn_task_show\` \u2014 inspect a task and its PROMPT.md
12690
12691
  - \`fn_task_create\` \u2014 create a child/follow-up task while triaging
12691
12692
  - \`fn_task_document_write\` \u2014 save a planning document (e.g., key="plan")
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/cursor-runtime",
3
- "version": "0.1.52-beta.1",
3
+ "version": "0.1.52-beta.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -5799,6 +5799,7 @@ var tasks = projectSchema.table("tasks", {
5799
5799
  worktree: text("worktree"),
5800
5800
  blockedBy: text("blocked_by"),
5801
5801
  overlapBlockedBy: text("overlap_blocked_by"),
5802
+ queuedLogEpisodeSignature: text("queued_log_episode_signature"),
5802
5803
  paused: integer("paused").default(0),
5803
5804
  userPaused: integer("user_paused").default(0),
5804
5805
  pausedReason: text("paused_reason"),
@@ -12384,7 +12385,7 @@ Write a lean, executable PROMPT.md quickly. Preserve safety gates, but skip heav
12384
12385
  - Preserve required safety sections for bugs, workflow routing, forensic tasks, and decision-only work.
12385
12386
 
12386
12387
  ## Duplicate check
12387
- Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` and inspect it before deciding. If an existing task covers the same work, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
+ Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. Do not search completed or archived work for duplicate candidates. When an active match is a duplicate, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
12389
 
12389
12390
  ## Required PROMPT.md shape
12390
12391
  Write PROMPT.md with Original Description, Before \u2192 After Transformation, Mission, Dependencies, Context to Read First, File Scope, Steps, Documentation Requirements, Completion Criteria, Git Commit Convention, and Do NOT. Put \`## Original Description\` immediately after the title/\`Created\`/\`Size\` metadata with the operator's original task description copied **verbatim** (do not paraphrase). Put \`## Before \u2192 After Transformation\` next, before \`## Mission\`, with concise Before/After bullets: current state, target state, why it satisfies the user's request at a glance. In \`## Steps\`, every executable heading MUST use \`### Step N: <name>\` (e.g. \`### Step 1: Preflight\`). Do not write bare \`### Preflight\` / \`### Implementation\` headings, and do not add review-level, triage subtask, or proactive subtask headings.
@@ -12652,9 +12653,9 @@ Verified facts about this codebase's storage \u2014 cite these correctly so Plan
12652
12653
  - New Postgres migrations must be **registered explicitly** in \`packages/core/src/postgres/schema-applier.ts\` (version constant + bookkeeping check); a \`.sql\` file dropped in the migrations dir that is not wired there silently never runs.
12653
12654
 
12654
12655
  ## Duplicate check
12655
- Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12656
- For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` to inspect details before deciding.
12657
- If a task already covers the same work (even if worded differently), do not write a spec.
12656
+ Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12657
+ Do not search completed or archived work for duplicate candidates.
12658
+ If an actionable task already covers the same work (even if worded differently), do not write a spec.
12658
12659
  Instead you MUST still write PROMPT.md, with its ENTIRE contents being this one line and nothing else:
12659
12660
  \`DUPLICATE: {existing-task-id}\`
12660
12661
  Writing that file IS how you report the duplicate. Reporting it only in your reply is not recorded:
@@ -12685,7 +12686,7 @@ Workflow policy can disable proactive oversized-task splitting for operators who
12685
12686
  ## Triage tools
12686
12687
  You have these extra tools during triage:
12687
12688
  - \`fn_task_list\` \u2014 list existing active tasks
12688
- - \`fn_task_search\` \u2014 keyword search across tasks, including done and archived tasks
12689
+ - \`fn_task_search\` \u2014 keyword search across active tasks by default; history is opt-in for non-duplicate research
12689
12690
  - \`fn_task_show\` \u2014 inspect a task and its PROMPT.md
12690
12691
  - \`fn_task_create\` \u2014 create a child/follow-up task while triaging
12691
12692
  - \`fn_task_document_write\` \u2014 save a planning document (e.g., key="plan")
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/dependency-graph",
3
- "version": "0.1.64-beta.1",
3
+ "version": "0.1.64-beta.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -5799,6 +5799,7 @@ var tasks = projectSchema.table("tasks", {
5799
5799
  worktree: text("worktree"),
5800
5800
  blockedBy: text("blocked_by"),
5801
5801
  overlapBlockedBy: text("overlap_blocked_by"),
5802
+ queuedLogEpisodeSignature: text("queued_log_episode_signature"),
5802
5803
  paused: integer("paused").default(0),
5803
5804
  userPaused: integer("user_paused").default(0),
5804
5805
  pausedReason: text("paused_reason"),
@@ -12384,7 +12385,7 @@ Write a lean, executable PROMPT.md quickly. Preserve safety gates, but skip heav
12384
12385
  - Preserve required safety sections for bugs, workflow routing, forensic tasks, and decision-only work.
12385
12386
 
12386
12387
  ## Duplicate check
12387
- Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` and inspect it before deciding. If an existing task covers the same work, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
+ Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. Do not search completed or archived work for duplicate candidates. When an active match is a duplicate, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
12389
 
12389
12390
  ## Required PROMPT.md shape
12390
12391
  Write PROMPT.md with Original Description, Before \u2192 After Transformation, Mission, Dependencies, Context to Read First, File Scope, Steps, Documentation Requirements, Completion Criteria, Git Commit Convention, and Do NOT. Put \`## Original Description\` immediately after the title/\`Created\`/\`Size\` metadata with the operator's original task description copied **verbatim** (do not paraphrase). Put \`## Before \u2192 After Transformation\` next, before \`## Mission\`, with concise Before/After bullets: current state, target state, why it satisfies the user's request at a glance. In \`## Steps\`, every executable heading MUST use \`### Step N: <name>\` (e.g. \`### Step 1: Preflight\`). Do not write bare \`### Preflight\` / \`### Implementation\` headings, and do not add review-level, triage subtask, or proactive subtask headings.
@@ -12652,9 +12653,9 @@ Verified facts about this codebase's storage \u2014 cite these correctly so Plan
12652
12653
  - New Postgres migrations must be **registered explicitly** in \`packages/core/src/postgres/schema-applier.ts\` (version constant + bookkeeping check); a \`.sql\` file dropped in the migrations dir that is not wired there silently never runs.
12653
12654
 
12654
12655
  ## Duplicate check
12655
- Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12656
- For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` to inspect details before deciding.
12657
- If a task already covers the same work (even if worded differently), do not write a spec.
12656
+ Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12657
+ Do not search completed or archived work for duplicate candidates.
12658
+ If an actionable task already covers the same work (even if worded differently), do not write a spec.
12658
12659
  Instead you MUST still write PROMPT.md, with its ENTIRE contents being this one line and nothing else:
12659
12660
  \`DUPLICATE: {existing-task-id}\`
12660
12661
  Writing that file IS how you report the duplicate. Reporting it only in your reply is not recorded:
@@ -12685,7 +12686,7 @@ Workflow policy can disable proactive oversized-task splitting for operators who
12685
12686
  ## Triage tools
12686
12687
  You have these extra tools during triage:
12687
12688
  - \`fn_task_list\` \u2014 list existing active tasks
12688
- - \`fn_task_search\` \u2014 keyword search across tasks, including done and archived tasks
12689
+ - \`fn_task_search\` \u2014 keyword search across active tasks by default; history is opt-in for non-duplicate research
12689
12690
  - \`fn_task_show\` \u2014 inspect a task and its PROMPT.md
12690
12691
  - \`fn_task_create\` \u2014 create a child/follow-up task while triaging
12691
12692
  - \`fn_task_document_write\` \u2014 save a planning document (e.g., key="plan")
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/droid-runtime",
3
- "version": "0.1.59-beta.1",
3
+ "version": "0.1.59-beta.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -5799,6 +5799,7 @@ var tasks = projectSchema.table("tasks", {
5799
5799
  worktree: text("worktree"),
5800
5800
  blockedBy: text("blocked_by"),
5801
5801
  overlapBlockedBy: text("overlap_blocked_by"),
5802
+ queuedLogEpisodeSignature: text("queued_log_episode_signature"),
5802
5803
  paused: integer("paused").default(0),
5803
5804
  userPaused: integer("user_paused").default(0),
5804
5805
  pausedReason: text("paused_reason"),
@@ -12384,7 +12385,7 @@ Write a lean, executable PROMPT.md quickly. Preserve safety gates, but skip heav
12384
12385
  - Preserve required safety sections for bugs, workflow routing, forensic tasks, and decision-only work.
12385
12386
 
12386
12387
  ## Duplicate check
12387
- Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` and inspect it before deciding. If an existing task covers the same work, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
+ Before writing a spec, call \`fn_task_list\` for active work, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 targeted keyword phrases from the title/description, such as file paths, symptoms, and symbols. Do not search completed or archived work for duplicate candidates. When an active match is a duplicate, do not write a spec \u2014 but still write PROMPT.md, with its entire contents being the single line \`DUPLICATE: {existing-task-id}\` and nothing else. That file is how the duplicate is recorded; announcing it only in your reply leaves no plan behind and re-plans the task in a loop.
12388
12389
 
12389
12390
  ## Required PROMPT.md shape
12390
12391
  Write PROMPT.md with Original Description, Before \u2192 After Transformation, Mission, Dependencies, Context to Read First, File Scope, Steps, Documentation Requirements, Completion Criteria, Git Commit Convention, and Do NOT. Put \`## Original Description\` immediately after the title/\`Created\`/\`Size\` metadata with the operator's original task description copied **verbatim** (do not paraphrase). Put \`## Before \u2192 After Transformation\` next, before \`## Mission\`, with concise Before/After bullets: current state, target state, why it satisfies the user's request at a glance. In \`## Steps\`, every executable heading MUST use \`### Step N: <name>\` (e.g. \`### Step 1: Preflight\`). Do not write bare \`### Preflight\` / \`### Implementation\` headings, and do not add review-level, triage subtask, or proactive subtask headings.
@@ -12652,9 +12653,9 @@ Verified facts about this codebase's storage \u2014 cite these correctly so Plan
12652
12653
  - New Postgres migrations must be **registered explicitly** in \`packages/core/src/postgres/schema-applier.ts\` (version constant + bookkeeping check); a \`.sql\` file dropped in the migrations dir that is not wired there silently never runs.
12653
12654
 
12654
12655
  ## Duplicate check
12655
- Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12656
- For any likely match in \`done\` or \`archived\`, call \`fn_task_show\` to inspect details before deciding.
12657
- If a task already covers the same work (even if worded differently), do not write a spec.
12656
+ Before writing a spec, first call \`fn_task_list\` to see active tasks, then call \`fn_task_search\` with \`includeDone: false\` and \`includeArchived: false\` for 2-4 distinct keyword phrases from the task title and description (for example file paths, error symptoms, and symbol names).
12657
+ Do not search completed or archived work for duplicate candidates.
12658
+ If an actionable task already covers the same work (even if worded differently), do not write a spec.
12658
12659
  Instead you MUST still write PROMPT.md, with its ENTIRE contents being this one line and nothing else:
12659
12660
  \`DUPLICATE: {existing-task-id}\`
12660
12661
  Writing that file IS how you report the duplicate. Reporting it only in your reply is not recorded:
@@ -12685,7 +12686,7 @@ Workflow policy can disable proactive oversized-task splitting for operators who
12685
12686
  ## Triage tools
12686
12687
  You have these extra tools during triage:
12687
12688
  - \`fn_task_list\` \u2014 list existing active tasks
12688
- - \`fn_task_search\` \u2014 keyword search across tasks, including done and archived tasks
12689
+ - \`fn_task_search\` \u2014 keyword search across active tasks by default; history is opt-in for non-duplicate research
12689
12690
  - \`fn_task_show\` \u2014 inspect a task and its PROMPT.md
12690
12691
  - \`fn_task_create\` \u2014 create a child/follow-up task while triaging
12691
12692
  - \`fn_task_document_write\` \u2014 save a planning document (e.g., key="plan")
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/grok-runtime",
3
- "version": "0.2.11-beta.1",
3
+ "version": "0.2.11-beta.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {