@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.
- package/dist/bin.js +389 -134
- package/dist/child-process-worker.js +224 -123
- package/dist/client/.vite/manifest.json +249 -249
- package/dist/client/assets/{AgentDetailView-CsCVX96A.js → AgentDetailView-C4Xpag_i.js} +1 -1
- package/dist/client/assets/{AgentPermissionPolicyEditor-Dh5wDe8g.js → AgentPermissionPolicyEditor-D-Fp7-sy.js} +1 -1
- package/dist/client/assets/{AgentsView-Dd_oZbFn.js → AgentsView-BmFsoY1Q.js} +3 -3
- package/dist/client/assets/{ChatView-gC7_BCmZ.js → ChatView-5KsB3BVO.js} +1 -1
- package/dist/client/assets/{CommandCenter-Bk6RQ-hm.js → CommandCenter-CacGI8AV.js} +1 -1
- package/dist/client/assets/{DevServerView-Da8h5OC-.js → DevServerView-DufjauVn.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-DX9H1EdH.js → DirectoryPicker-DvwqfQDS.js} +1 -1
- package/dist/client/assets/{DocumentsView-BZ0g_Am7.js → DocumentsView-BbYJFIQ1.js} +1 -1
- package/dist/client/assets/{EvalsView-DsI_X6eQ.js → EvalsView-NBC8kOc-.js} +1 -1
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-BfE5f-XK.js → ExperimentalAgentOnboardingModal-C809yXXY.js} +1 -1
- package/dist/client/assets/{GoalsView-43sqRFfC.js → GoalsView-CpNO9eI0.js} +1 -1
- package/dist/client/assets/{InsightsView-Dvgn_hrA.js → InsightsView-Cahy5FcR.js} +1 -1
- package/dist/client/assets/{MemoryView-DWbHznu3.js → MemoryView-BNJAQjqn.js} +1 -1
- package/dist/client/assets/{PiExtensionsManager-BKfmIRDt.js → PiExtensionsManager-DCHTyOmJ.js} +1 -1
- package/dist/client/assets/{PluginManager-xhkrAjSK.js → PluginManager-CBt-CqUz.js} +1 -1
- package/dist/client/assets/{PullRequestView-CyEwGgRD.js → PullRequestView-Dsb9RwmX.js} +1 -1
- package/dist/client/assets/{ReportModal--NSmch5M.js → ReportModal-8FjZOcbC.js} +1 -1
- package/dist/client/assets/{ResearchView-CgqZlNMD.js → ResearchView-DlSG7dOd.js} +1 -1
- package/dist/client/assets/{SecretsView-am_ZT9z8.js → SecretsView-BSajNE-f.js} +1 -1
- package/dist/client/assets/{SessionTerminal-DSc_7NQ-.js → SessionTerminal-M2fIpHrL.js} +1 -1
- package/dist/client/assets/{SettingsModal-Bp6sytUe.js → SettingsModal-DLcvlp44.js} +3 -3
- package/dist/client/assets/{SettingsModal-D2jjC8m8.js → SettingsModal-z6gOf7dG.js} +1 -1
- package/dist/client/assets/{SettingsTextareaRow-DjJJD-Af.js → SettingsTextareaRow-DeC19053.js} +1 -1
- package/dist/client/assets/{SetupWizardModal-DLIeefbh.js → SetupWizardModal-BOjMePFh.js} +2 -2
- package/dist/client/assets/{SkillsView-C67Gdb5y.js → SkillsView-BSBEC-Xm.js} +1 -1
- package/dist/client/assets/{WorkflowNodeEditor-BxhdNPdn.js → WorkflowNodeEditor-DZ9-RBqo.js} +1 -1
- package/dist/client/assets/{agent-import-generation-Bk9fEowy.js → agent-import-generation-COItiXMT.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-s2YViNU1.js → architectureDiagram-3BPJPVTR-BwlCePoB.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-DMsf6VWl.js → blockDiagram-GPEHLZMM-KKrLi9v4.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-DXJExfmV.js → c4Diagram-AAUBKEIU-CkIDt_8M.js} +1 -1
- package/dist/client/assets/channel-CeYcnOtQ.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-CH99GAl7.js → chunk-2J33WTMH-D9sbdaqY.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-BTV9SXg5.js → chunk-4BX2VUAB-D3DtFoAY.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-ntvLX3jz.js → chunk-55IACEB6-gxblxRIN.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-DBNBtu-e.js → chunk-727SXJPM-D0AEDoHN.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DvbtWh_x.js → chunk-AQP2D5EJ-BweoM7qY.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-CUdRlAnf.js → chunk-FMBD7UC4-sjblhrjI.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-B7J-met1.js → chunk-ND2GUHAM-CYuRENSs.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-D7CahWp7.js → chunk-QZHKN3VN-CFKJr4kG.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CZwh2k1X.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CZwh2k1X.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-6E0Aaw7K.js → cose-bilkent-S5V4N54A-6Jb6SgHM.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-Wi236AfH.js → dagre-BM42HDAG-FQJ87Ol3.js} +1 -1
- package/dist/client/assets/{dashboard-view-CrHqKsfL.js → dashboard-view-B1Rq2-73.js} +1 -1
- package/dist/client/assets/{dashboard-view-NpkFaG9s.js → dashboard-view-DH1Zo0m4.js} +1 -1
- package/dist/client/assets/{dashboard-view-hLsXVJJN.js → dashboard-view-DVMZNVoc.js} +1 -1
- package/dist/client/assets/{dashboard-view-BZDf9tzC.js → dashboard-view-DgLbkn5n.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-B3TxtVcq.js → diagram-2AECGRRQ-CKYOu9to.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-45Y_FHjp.js → diagram-5GNKFQAL-DPwjFnde.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-D4w3m4cp.js → diagram-KO2AKTUF-DzZS9Nk3.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-Dv5F4ha2.js → diagram-LMA3HP47-DW9e5YSP.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-CvOQ1IYN.js → diagram-OG6HWLK6-C7V3Mj63.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-DYcp25dX.js → erDiagram-TEJ5UH35-DSQzBA0e.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-DnjuETCJ.js → flowDiagram-I6XJVG4X-BUuOq9tO.js} +1 -1
- package/dist/client/assets/{folder-open-ovJcpdOX.js → folder-open-DXNu4ED4.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-SU7_CTa4.js → ganttDiagram-6RSMTGT7-Bc32G_Ef.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DFvxZu8I.js → gitGraphDiagram-PVQCEYII-Cvfa0W6a.js} +1 -1
- package/dist/client/assets/{index-C_ZHzU4F.js → index-C5YdAqNQ.js} +14 -14
- package/dist/client/assets/index-DHk_s6rA.css +1 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-DgMEfdKk.js → infoDiagram-5YYISTIA-TqRUTfvy.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CFjnOb7V.js → ishikawaDiagram-YF4QCWOH-D33iop1_.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-46dGsf_j.js → journeyDiagram-JHISSGLW-DH-TDR5Y.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-9-nz-BFT.js → kanban-definition-UN3LZRKU-CAcebzyW.js} +1 -1
- package/dist/client/assets/{mermaid.core-CYHDO5ss.js → mermaid.core-C3Nh1Sak.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-BYQE0Nqo.js → mindmap-definition-RKZ34NQL-CSIccWV8.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-BNSMLSjW.js → pieDiagram-4H26LBE5-hXJ3G3MR.js} +1 -1
- package/dist/client/assets/{puzzle-D2SwAtRX.js → puzzle-DI3elldh.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CNdSBA7P.js → quadrantDiagram-W4KKPZXB-B3wpvneC.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-B6EJvc9H.js → requirementDiagram-4Y6WPE33-DPpYL2ca.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-8DcYdUmL.js → sankeyDiagram-5OEKKPKP-BS9QXSEF.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BjRXhtKa.js → sequenceDiagram-3UESZ5HK-C_fqU0MW.js} +1 -1
- package/dist/client/assets/{shield-alert-b4thCabv.js → shield-alert-CzZYSqmH.js} +1 -1
- package/dist/client/assets/{standing-instructions-template-B1X-jWip.js → standing-instructions-template-CsXA4WMZ.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-Btrn_84P.js → stateDiagram-AJRCARHV-DbSZrprS.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-DiyZxQF1.js → stateDiagram-v2-BHNVJYJU-Cf_ckwmM.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-CjEYU1kO.js → timeline-definition-PNZ67QCA-B1ohvKjs.js} +1 -1
- package/dist/client/assets/{upload-DMts5fzZ.js → upload-D7nNe9wD.js} +1 -1
- package/dist/client/assets/{users-C9O98ACz.js → users-B79Dvre4.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-DtEb-r3I.js → vennDiagram-CIIHVFJN-CxZYCQ72.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-Ds-v1VZi.js → wardley-L42UT6IY-clJem8VU.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-C15pYn-T.js → wardleyDiagram-YWT4CUSO-zE8lyaWe.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-ChJ77iYU.js → xychartDiagram-2RQKCTM6-DsdjuSxQ.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/package.json +1 -1
- package/dist/extension.js +242 -125
- package/dist/migrations/0000_initial.sql +1 -0
- package/dist/migrations/0044_fn_8785_queued_episode_signature.sql +3 -0
- package/dist/pi-claude-cli/package.json +1 -1
- package/dist/plugin-sdk/index.d.ts +16 -0
- package/dist/plugin-sdk/index.js +6 -5
- package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-claude-runtime/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-claude-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
- package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/.bundled.reload-3.js +19167 -0
- package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-linear-import/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
- package/dist/plugins/fusion-plugin-omp-runtime/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-omp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-quality/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-quality/package.json +1 -1
- package/dist/plugins/fusion-plugin-reports/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-reports/package.json +1 -1
- package/dist/plugins/fusion-plugin-roadmap/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-todos/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-todos/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/bundled.js +6 -5
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +1 -1
- package/dist/client/assets/channel-BRBjryTS.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-26ZYCgHv.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-26ZYCgHv.js +0 -1
- package/dist/client/assets/index-CJRmyxnw.css +0 -1
|
@@ -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;
|
package/dist/plugin-sdk/index.js
CHANGED
|
@@ -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.
|
|
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
|
-
|
|
12658
|
-
If
|
|
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
|
|
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.
|
|
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
|
-
|
|
12657
|
-
If
|
|
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
|
|
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")
|
|
@@ -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.
|
|
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
|
-
|
|
12657
|
-
If
|
|
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
|
|
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")
|
|
@@ -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.
|
|
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
|
-
|
|
12777
|
-
If
|
|
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
|
|
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")
|
|
@@ -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.
|
|
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
|
-
|
|
12657
|
-
If
|
|
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
|
|
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")
|
|
@@ -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.
|
|
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
|
-
|
|
12657
|
-
If
|
|
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
|
|
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")
|
|
@@ -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.
|
|
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
|
-
|
|
12657
|
-
If
|
|
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
|
|
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")
|
|
@@ -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.
|
|
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
|
-
|
|
12657
|
-
If
|
|
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
|
|
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")
|
|
@@ -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.
|
|
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
|
-
|
|
12657
|
-
If
|
|
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
|
|
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")
|