@runfusion/fusion 0.77.0-beta.3 → 0.77.0-beta.5

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 (179) hide show
  1. package/dist/bin.js +13158 -10683
  2. package/dist/child-process-worker.js +9200 -6239
  3. package/dist/client/.vite/manifest.json +301 -274
  4. package/dist/client/assets/{AgentDetailView-D-mPbGXe.js → AgentDetailView-CSK_Rnlk.js} +3 -3
  5. package/dist/client/assets/{AgentPermissionPolicyEditor-Bq3z2QY0.js → AgentPermissionPolicyEditor-kG44Adcm.js} +1 -1
  6. package/dist/client/assets/{AgentsView-CYg6b9n0.js → AgentsView-ClKwKWnU.js} +4 -4
  7. package/dist/client/assets/ChatView-DoOqgkPX.js +13 -0
  8. package/dist/client/assets/{CommandCenter-DDCbSURT.js → CommandCenter-CJxvPbgn.js} +3 -3
  9. package/dist/client/assets/{DevServerView-DJ459OYL.js → DevServerView-C4nyLONX.js} +1 -1
  10. package/dist/client/assets/{DirectoryPicker-ClOKp7d1.js → DirectoryPicker-BIvXWIB5.js} +1 -1
  11. package/dist/client/assets/DocumentsView-DH_aZysM.js +1 -0
  12. package/dist/client/assets/{EvalsView-DGJFQc1W.js → EvalsView-klRK-GJQ.js} +1 -1
  13. package/dist/client/assets/{ExperimentalAgentOnboardingModal-CMy3zvnk.js → ExperimentalAgentOnboardingModal-CgBmukIm.js} +1 -1
  14. package/dist/client/assets/{GoalsView-D-z3Rf4g.js → GoalsView-ysh3X2x6.js} +1 -1
  15. package/dist/client/assets/{InsightsView-By1AFGbM.js → InsightsView-BbMjCu7J.js} +3 -3
  16. package/dist/client/assets/MemoryView-B3IgA8Bx.js +3 -0
  17. package/dist/client/assets/{PiExtensionsManager-_8u94B1u.js → PiExtensionsManager-CZlIw7C3.js} +1 -1
  18. package/dist/client/assets/PluginManager-vy0YZ2Nx.js +1 -0
  19. package/dist/client/assets/{PullRequestView-NkCEKKpG.js → PullRequestView-DhhsJV8I.js} +2 -2
  20. package/dist/client/assets/ReportModal-CQMn4i1y.js +21 -0
  21. package/dist/client/assets/ReportModal-lzN_xrnM.css +1 -0
  22. package/dist/client/assets/{ResearchView-BCxXqB8F.js → ResearchView-CVwfs4l3.js} +2 -2
  23. package/dist/client/assets/{SecretsView-CxK0XDc2.js → SecretsView-CrJfHle9.js} +1 -1
  24. package/dist/client/assets/{SessionTerminal-CuVsOYc8.js → SessionTerminal-BRI8W1-G.js} +1 -1
  25. package/dist/client/assets/{SettingsModal-BtV1tIIf.js → SettingsModal-B6U5Umru.js} +1 -1
  26. package/dist/client/assets/SettingsModal-C5ic1ls7.css +1 -0
  27. package/dist/client/assets/SettingsModal-h1A_aFqD.js +21 -0
  28. package/dist/client/assets/{SettingsTextareaRow-YR4pGawU.js → SettingsTextareaRow-O7-u9uMC.js} +1 -1
  29. package/dist/client/assets/SetupWizardModal-nXfJp8cA.js +2 -0
  30. package/dist/client/assets/{SkillsView-B4Jc91WM.js → SkillsView-CoWAjvWU.js} +1 -1
  31. package/dist/client/assets/{WorkflowNodeEditor-DGtYlSHs.js → WorkflowNodeEditor-BFMM3RF_.js} +2 -2
  32. package/dist/client/assets/{agent-import-generation-CHAXFtOA.js → agent-import-generation-BqDmtTur.js} +1 -1
  33. package/dist/client/assets/{agentsOrgChartLayout-DsahEyq7.js → agentsOrgChartLayout-C4cLqlV6.js} +1 -1
  34. package/dist/client/assets/app-BBSLJDbV.js +13 -0
  35. package/dist/client/assets/app-BKwOvuxE.js +5 -0
  36. package/dist/client/assets/app-Bvr57EZQ.js +5 -0
  37. package/dist/client/assets/app-C_PTWuI1.js +13 -0
  38. package/dist/client/assets/app-DKx18PHE.js +13 -0
  39. package/dist/client/assets/app-DRW5hIgr.js +13 -0
  40. package/dist/client/assets/app-DwvelD-n.js +13 -0
  41. package/dist/client/assets/{architectureDiagram-3BPJPVTR-BKJBR8ob.js → architectureDiagram-3BPJPVTR-CdxcwdRe.js} +1 -1
  42. package/dist/client/assets/{blockDiagram-GPEHLZMM-CqpNEYwI.js → blockDiagram-GPEHLZMM-CfQrRfHR.js} +1 -1
  43. package/dist/client/assets/{c4Diagram-AAUBKEIU-CouyKoYs.js → c4Diagram-AAUBKEIU-Cx7-2SOm.js} +1 -1
  44. package/dist/client/assets/channel-B4WN1jC_.js +1 -0
  45. package/dist/client/assets/{chunk-2J33WTMH-WHWSsNaC.js → chunk-2J33WTMH-D8jvgP3M.js} +1 -1
  46. package/dist/client/assets/{chunk-4BX2VUAB-B-EVACQc.js → chunk-4BX2VUAB-B5tBx_s_.js} +1 -1
  47. package/dist/client/assets/{chunk-55IACEB6-CVvNjEpv.js → chunk-55IACEB6-C-F-HQ5Z.js} +1 -1
  48. package/dist/client/assets/{chunk-727SXJPM-CV4EKLRh.js → chunk-727SXJPM-BP8Ln-8C.js} +1 -1
  49. package/dist/client/assets/{chunk-AQP2D5EJ-DtDpuURf.js → chunk-AQP2D5EJ-DMnTmRmn.js} +1 -1
  50. package/dist/client/assets/{chunk-FMBD7UC4-DPejtS21.js → chunk-FMBD7UC4-D_YdfnNc.js} +1 -1
  51. package/dist/client/assets/{chunk-ND2GUHAM-DGDxBRA_.js → chunk-ND2GUHAM-CULXyuXq.js} +1 -1
  52. package/dist/client/assets/{chunk-QZHKN3VN-D2k1MIuX.js → chunk-QZHKN3VN-CT1BWEJL.js} +1 -1
  53. package/dist/client/assets/classDiagram-4FO5ZUOK-CKE8RSOv.js +1 -0
  54. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CKE8RSOv.js +1 -0
  55. package/dist/client/assets/{cose-bilkent-S5V4N54A-Cr6PW7Dk.js → cose-bilkent-S5V4N54A-M-3DXa6e.js} +1 -1
  56. package/dist/client/assets/{dagre-BM42HDAG-QKrqYGWy.js → dagre-BM42HDAG-Bsiqvroz.js} +1 -1
  57. package/dist/client/assets/{dashboard-view-BQRwsBoj.js → dashboard-view-BEBh_Ei5.js} +1 -1
  58. package/dist/client/assets/{dashboard-view-BcNU4vFB.js → dashboard-view-Bo_gFjdO.js} +1 -1
  59. package/dist/client/assets/{dashboard-view-CkPDyljq.js → dashboard-view-CnFFG3cW.js} +1 -1
  60. package/dist/client/assets/{dashboard-view-BksOkReD.js → dashboard-view-DAHn20ph.js} +1 -1
  61. package/dist/client/assets/{diagram-2AECGRRQ-BBFXrRQl.js → diagram-2AECGRRQ-CZiHoXo5.js} +1 -1
  62. package/dist/client/assets/{diagram-5GNKFQAL-_T4nM0jp.js → diagram-5GNKFQAL-BoJVz4Or.js} +1 -1
  63. package/dist/client/assets/{diagram-KO2AKTUF-BAKmsx_j.js → diagram-KO2AKTUF-DivGQuAL.js} +1 -1
  64. package/dist/client/assets/{diagram-LMA3HP47-Xdsdd6Gx.js → diagram-LMA3HP47-DkMK7OJp.js} +1 -1
  65. package/dist/client/assets/{diagram-OG6HWLK6-tIHxhnE8.js → diagram-OG6HWLK6-DFFvRcpW.js} +1 -1
  66. package/dist/client/assets/{erDiagram-TEJ5UH35-HZSbfe0g.js → erDiagram-TEJ5UH35--217vrom.js} +1 -1
  67. package/dist/client/assets/{flowDiagram-I6XJVG4X-C4O3r0DX.js → flowDiagram-I6XJVG4X-CQgWO3xf.js} +1 -1
  68. package/dist/client/assets/{folder-open-15UiPjYb.js → folder-open-DR6cRcNR.js} +1 -1
  69. package/dist/client/assets/{ganttDiagram-6RSMTGT7-DGsKKMEu.js → ganttDiagram-6RSMTGT7-BjDMUrS3.js} +1 -1
  70. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-BY4kgtHp.js → gitGraphDiagram-PVQCEYII-gKUcDnln.js} +1 -1
  71. package/dist/client/assets/index-Dki2LBAp.css +1 -0
  72. package/dist/client/assets/index-oxnX59eO.js +2774 -0
  73. package/dist/client/assets/{infoDiagram-5YYISTIA-lJBWxF8I.js → infoDiagram-5YYISTIA-BA91T8S5.js} +1 -1
  74. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CrE_q16o.js → ishikawaDiagram-YF4QCWOH-0BY5xe-c.js} +1 -1
  75. package/dist/client/assets/{journeyDiagram-JHISSGLW-9V42jgFW.js → journeyDiagram-JHISSGLW-B_OwenbQ.js} +1 -1
  76. package/dist/client/assets/{kanban-definition-UN3LZRKU-B_T-7Vyf.js → kanban-definition-UN3LZRKU-GLabUTKp.js} +1 -1
  77. package/dist/client/assets/{mermaid.core-CwJ7S3PS.js → mermaid.core-BXo4rxYI.js} +4 -4
  78. package/dist/client/assets/{mindmap-definition-RKZ34NQL-MYNSgM6G.js → mindmap-definition-RKZ34NQL-DZl6LPoE.js} +1 -1
  79. package/dist/client/assets/{pieDiagram-4H26LBE5-CtT-wbYj.js → pieDiagram-4H26LBE5-DtHq-4py.js} +1 -1
  80. package/dist/client/assets/pixelify-sans-cyrillic-400-normal-DfOZNMlW.woff +0 -0
  81. package/dist/client/assets/pixelify-sans-latin-400-normal-DLrIX9QE.woff2 +0 -0
  82. package/dist/client/assets/pixelify-sans-latin-400-normal-JapMNN6Z.woff +0 -0
  83. package/dist/client/assets/pixelify-sans-latin-ext-400-normal-BkfTUL4s.woff +0 -0
  84. package/dist/client/assets/pixelify-sans-latin-ext-400-normal-DdH6zlBQ.woff2 +0 -0
  85. package/dist/client/assets/{puzzle-CXdFNN8H.js → puzzle-OVm-I1L4.js} +1 -1
  86. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-3klC5x4k.js → quadrantDiagram-W4KKPZXB-BdjXhd5d.js} +1 -1
  87. package/dist/client/assets/{requirementDiagram-4Y6WPE33-CHfFrsBL.js → requirementDiagram-4Y6WPE33-BoFVjELN.js} +1 -1
  88. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Dtktw7Dy.js → sankeyDiagram-5OEKKPKP-B0qyJh-P.js} +1 -1
  89. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CuXPMjTU.js → sequenceDiagram-3UESZ5HK-ByY62Eqp.js} +1 -1
  90. package/dist/client/assets/{shield-alert-D9xqzJwR.js → shield-alert-CDy69fl7.js} +1 -1
  91. package/dist/client/assets/{standing-instructions-template-CcpV_LRP.js → standing-instructions-template-BsnnRlwm.js} +2 -2
  92. package/dist/client/assets/{stateDiagram-AJRCARHV-Bj_rDJwQ.js → stateDiagram-AJRCARHV-CwJ-_Phi.js} +1 -1
  93. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-D-YYF-kX.js → stateDiagram-v2-BHNVJYJU-Cfvhq8mV.js} +1 -1
  94. package/dist/client/assets/{timeline-definition-PNZ67QCA-DXalwFMD.js → timeline-definition-PNZ67QCA-Co8VfGN9.js} +1 -1
  95. package/dist/client/assets/{upload-CWVc30BQ.js → upload-CkqDbEeE.js} +1 -1
  96. package/dist/client/assets/{useDiscoveredSkillsCache-D2M95Nn0.js → useDiscoveredSkillsCache-BHUasRiZ.js} +1 -1
  97. package/dist/client/assets/{users-q_-iLqv9.js → users-B8DkpbXD.js} +1 -1
  98. package/dist/client/assets/{vennDiagram-CIIHVFJN-0-aTlrbe.js → vennDiagram-CIIHVFJN-XSJteQrL.js} +1 -1
  99. package/dist/client/assets/{wardley-L42UT6IY-Bz_e_5wx.js → wardley-L42UT6IY-Btc0FRfF.js} +1 -1
  100. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DsQu4YnA.js → wardleyDiagram-YWT4CUSO--IcDNmrf.js} +1 -1
  101. package/dist/client/assets/{xychartDiagram-2RQKCTM6-K6GQdwVG.js → xychartDiagram-2RQKCTM6-CZW93G6X.js} +1 -1
  102. package/dist/client/index.html +4 -4
  103. package/dist/client/theme-data.css +183 -1
  104. package/dist/client/version.json +1 -1
  105. package/dist/droid-cli/package.json +1 -1
  106. package/dist/extension.js +10390 -7118
  107. package/dist/migrations/0000_initial.sql +3 -0
  108. package/dist/migrations/0061_fn_066_activity_log_task_id_index.sql +7 -0
  109. package/dist/migrations/0062_remove_task_subtask_splitting.sql +2 -0
  110. package/dist/migrations/0063_fn_090_ai_merge_review_reconciliation.sql +2 -0
  111. package/dist/migrations/0064_fn_094_task_repository_scope.sql +2 -0
  112. package/dist/pi-claude-cli/package.json +1 -1
  113. package/dist/pi-claude-cli/src/__tests__/event-bridge.test.ts +29 -1
  114. package/dist/pi-claude-cli/src/event-bridge.ts +10 -4
  115. package/dist/plugin-sdk/index.d.ts +301 -189
  116. package/dist/plugin-sdk/index.js +45 -105
  117. package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +47 -106
  118. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  119. package/dist/plugins/fusion-plugin-claude-runtime/bundled.js +47 -106
  120. package/dist/plugins/fusion-plugin-claude-runtime/package.json +1 -1
  121. package/dist/plugins/fusion-plugin-cli-printing-press/bundled.js +45 -105
  122. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  123. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +45 -105
  124. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  125. package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +45 -105
  126. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  127. package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +45 -105
  128. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  129. package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +47 -106
  130. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  131. package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +47 -106
  132. package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
  133. package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +45 -105
  134. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  135. package/dist/plugins/fusion-plugin-linear-import/bundled.js +45 -105
  136. package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
  137. package/dist/plugins/fusion-plugin-omp-runtime/bundled.js +47 -106
  138. package/dist/plugins/fusion-plugin-omp-runtime/package.json +1 -1
  139. package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +45 -105
  140. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  141. package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +45 -105
  142. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  143. package/dist/plugins/fusion-plugin-quality/bundled.js +45 -105
  144. package/dist/plugins/fusion-plugin-quality/package.json +1 -1
  145. package/dist/plugins/fusion-plugin-reports/bundled.js +45 -105
  146. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  147. package/dist/plugins/fusion-plugin-roadmap/bundled.js +45 -105
  148. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  149. package/dist/plugins/fusion-plugin-todos/bundled.js +45 -105
  150. package/dist/plugins/fusion-plugin-todos/package.json +1 -1
  151. package/dist/plugins/fusion-plugin-whatsapp-chat/bundled.js +45 -105
  152. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  153. package/package.json +1 -1
  154. package/skill/fusion/SKILL.md +1 -1
  155. package/skill/fusion/references/extension-tools.md +19 -1
  156. package/skill/fusion/references/fusion-capabilities.md +3 -1
  157. package/skill/fusion/references/task-structure.md +1 -1
  158. package/skill/fusion/workflows/specifications.md +2 -2
  159. package/dist/client/assets/ChatView-qnlDeWDu.js +0 -13
  160. package/dist/client/assets/DocumentsView-D3Yb4WqD.js +0 -1
  161. package/dist/client/assets/MemoryView-Dhe8ydZR.js +0 -3
  162. package/dist/client/assets/PluginManager-ByNlw3zN.js +0 -1
  163. package/dist/client/assets/ReportModal-DovuZwdY.js +0 -21
  164. package/dist/client/assets/ReportModal-M3uh98sc.css +0 -1
  165. package/dist/client/assets/SettingsModal-C-tiAvqQ.js +0 -21
  166. package/dist/client/assets/SettingsModal-C0FY8MPW.css +0 -1
  167. package/dist/client/assets/SetupWizardModal-DrbeWku9.js +0 -2
  168. package/dist/client/assets/app-BgpuMvTU.js +0 -13
  169. package/dist/client/assets/app-BlexHhbW.js +0 -13
  170. package/dist/client/assets/app-BsuUOR0P.js +0 -13
  171. package/dist/client/assets/app-DQVOujmO.js +0 -13
  172. package/dist/client/assets/app-DjyTRx1N.js +0 -5
  173. package/dist/client/assets/app-Dniggype.js +0 -13
  174. package/dist/client/assets/app-EV-lyZ0T.js +0 -5
  175. package/dist/client/assets/channel-D7yWYIo9.js +0 -1
  176. package/dist/client/assets/classDiagram-4FO5ZUOK-cuSqS34E.js +0 -1
  177. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-cuSqS34E.js +0 -1
  178. package/dist/client/assets/index-4c8KmZSa.js +0 -2818
  179. package/dist/client/assets/index-Bg6JQgJj.css +0 -1
@@ -209,7 +209,9 @@ declare class Database {
209
209
  getPath(): string;
210
210
  }
211
211
 
212
- declare const THINKING_LEVELS: readonly ["off", "minimal", "low", "medium", "high", "xhigh"];
212
+ type TaskColumnSortMode = "completion-date-desc" | "task-id-desc";
213
+
214
+ declare const THINKING_LEVELS: readonly ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
213
215
  type ThinkingLevel = (typeof THINKING_LEVELS)[number];
214
216
  declare const COLUMNS: readonly ["triage", "todo", "in-progress", "in-review", "done", "archived"];
215
217
  type Column = (typeof COLUMNS)[number];
@@ -241,6 +243,17 @@ interface WorkflowReviewFinding {
241
243
  severity?: WorkflowReviewFindingSeverity;
242
244
  resolution?: WorkflowReviewFindingResolution;
243
245
  }
246
+ interface WorkflowRepositoryReviewOutcome {
247
+ repository: string;
248
+ status: "REVIEWED" | "NOT_REVIEWED";
249
+ verdict?: "APPROVE" | "APPROVE_WITH_NOTES" | "REVISE" | "RETHINK" | "UNAVAILABLE";
250
+ findings?: WorkflowReviewFinding[];
251
+ output?: string;
252
+ fingerprint?: string;
253
+ episodeId: string;
254
+ scopeRevision?: number;
255
+ reviewedAt: string;
256
+ }
244
257
  type WorkflowStepPhase = "pre-merge" | "post-merge";
245
258
  type WorkflowReviewKind = "plan" | "code";
246
259
  interface WorkflowStep {
@@ -312,6 +325,8 @@ interface WorkflowStepResult {
312
325
  reviewKind?: WorkflowReviewKind;
313
326
  output?: string;
314
327
  findings?: WorkflowReviewFinding[];
328
+ repositoryReviewOutcomes?: WorkflowRepositoryReviewOutcome[];
329
+ repositoryScopeRevision?: number;
315
330
  supersededFindingSourceWorkflowStepId?: string;
316
331
  supersededFindingIds?: string[];
317
332
  verdict?: "APPROVE" | "APPROVE_WITH_NOTES" | "REVISE" | "CLOSE_NO_OP";
@@ -525,6 +540,185 @@ interface StepStartResult {
525
540
  blockingStepIndex?: number;
526
541
  }
527
542
 
543
+ interface TaskRow {
544
+ id: string;
545
+ lineageId: string | null;
546
+ title: string | null;
547
+ description: string;
548
+ priority: string | null;
549
+ column: string;
550
+ status: string | null;
551
+ size: string | null;
552
+ reviewLevel: number | null;
553
+ currentStep: number;
554
+ worktree: string | null;
555
+ blockedBy: string | null;
556
+ overlapBlockedBy: string | null;
557
+ queuedLogEpisodeSignature: string | null;
558
+ paused: number | null;
559
+ pausedReason: string | null;
560
+ wedgeNotification: string | null;
561
+ userPaused: number | null;
562
+ baseBranch: string | null;
563
+ executionStartBranch: string | null;
564
+ branch: string | null;
565
+ autoMerge: number | null;
566
+ autoMergeProvenance: string | null;
567
+ baseCommitSha: string | null;
568
+ modelPresetId: string | null;
569
+ modelProvider: string | null;
570
+ credentialInstanceId: string | null;
571
+ modelId: string | null;
572
+ validatorModelProvider: string | null;
573
+ validatorCredentialInstanceId: string | null;
574
+ validatorModelId: string | null;
575
+ planningModelProvider: string | null;
576
+ planningCredentialInstanceId: string | null;
577
+ planningModelId: string | null;
578
+ mergerModelProvider: string | null;
579
+ mergerCredentialInstanceId: string | null;
580
+ mergerModelId: string | null;
581
+ mergeRetries: number | null;
582
+ aiMergeReviewReconciliation: string | null;
583
+ workflowStepRetries: number | null;
584
+ stuckKillCount: number | null;
585
+ resumeLimboCount: number | null;
586
+ graphResumeRetryCount: number | null;
587
+ consecutiveToolFailureRetryCount: number | null;
588
+ executorEscalationAttempted: number | null;
589
+ toolFailureDetectorLogCursor: number | null;
590
+ toolFailureRetryExhaustedAuditEmitted: number | null;
591
+ resumeLimboTipSha: string | null;
592
+ resumeLimboStepSignature: string | null;
593
+ executeRequeueLoopCount: number | null;
594
+ executeRequeueLoopSignature: string | null;
595
+ postReviewFixCount: number | null;
596
+ planReviewReplanCount: number | null;
597
+ recoveryRetryCount: number | null;
598
+ taskDoneRetryCount: number | null;
599
+ bulkCompletionRefusalAt: string | null;
600
+ workflowIrPin: string | null;
601
+ workflowIrPinNodeId: string | null;
602
+ workflowIrPinColumnId: string | null;
603
+ legacyAdoptedAt: string | null;
604
+ worktreeSessionRetryCount: number | null;
605
+ completionHandoffLimboRecoveryCount: number | null;
606
+ verificationFailureCount: number | null;
607
+ mergeConflictBounceCount: number | null;
608
+ mergeAuditBounceCount: number | null;
609
+ mergeTransientRetryCount: number | null;
610
+ branchConflictRecoveryCount: number | null;
611
+ reviewerContextRetryCount: number | null;
612
+ reviewerFallbackRetryCount: number | null;
613
+ nextRecoveryAt: string | null;
614
+ error: string | null;
615
+ summary: string | null;
616
+ recommendations: string | null;
617
+ thinkingLevel: string | null;
618
+ validatorThinkingLevel: string | null;
619
+ planningThinkingLevel: string | null;
620
+ mergerThinkingLevel: string | null;
621
+ executionMode: string | null;
622
+ sessionAdvisorEnabled: number | null;
623
+ tokenUsageInputTokens: number | null;
624
+ tokenUsageOutputTokens: number | null;
625
+ tokenUsageCachedTokens: number | null;
626
+ tokenUsageCacheWriteTokens: number | null;
627
+ tokenUsageTotalTokens: number | null;
628
+ tokenUsageFirstUsedAt: string | null;
629
+ tokenUsageLastUsedAt: string | null;
630
+ tokenUsageModelProvider: string | null;
631
+ tokenUsageModelId: string | null;
632
+ tokenUsagePerModel: string | null;
633
+ tokenBudgetSoftAlertedAt: string | null;
634
+ tokenBudgetHardAlertedAt: string | null;
635
+ tokenBudgetOverride: string | null;
636
+ createdAt: string;
637
+ updatedAt: string;
638
+ columnMovedAt: string | null;
639
+ firstExecutionAt: string | null;
640
+ cumulativeActiveMs: number | null;
641
+ cumulativePlanningMs: number | null;
642
+ planningStartedAt: string | null;
643
+ columnDwellMs: string | null;
644
+ workflowTransitionNotification: string | null;
645
+ plannerOversightLevel: string | null;
646
+ awaitingApprovalReason: string | null;
647
+ approvedPlanFingerprint: string | null;
648
+ executionStartedAt: string | null;
649
+ executionCompletedAt: string | null;
650
+ dependencies: string | null;
651
+ steps: string | null;
652
+ customFields: string | null;
653
+ log: string | null;
654
+ attachments: string | null;
655
+ steeringComments: string | null;
656
+ comments: string | null;
657
+ review: string | null;
658
+ reviewState: string | null;
659
+ workflowStepResults: string | null;
660
+ prInfo: string | null;
661
+ prInfos: string | null;
662
+ issueInfo: string | null;
663
+ githubTracking: string | null;
664
+ gitlabTracking: string | null;
665
+ sourceIssueProvider: string | null;
666
+ sourceIssueRepository: string | null;
667
+ sourceIssueExternalIssueId: string | null;
668
+ sourceIssueNumber: number | null;
669
+ sourceIssueUrl: string | null;
670
+ sourceIssueClosedAt: string | null;
671
+ mergeDetails: string | null;
672
+ workspaceWorktrees: string | null;
673
+ repositoryScope: string | null;
674
+ noCommitsExpected: number | null;
675
+ enabledWorkflowSteps: string | null;
676
+ modifiedFiles: string | null;
677
+ declaredSymbols: string | null;
678
+ missionId: string | null;
679
+ sliceId: string | null;
680
+ scopeOverride: number | null;
681
+ scopeOverrideReason: string | null;
682
+ scopeAutoWiden: string | null;
683
+ assignedAgentId: string | null;
684
+ pausedByAgentId: string | null;
685
+ assigneeUserId: string | null;
686
+ nodeId: string | null;
687
+ effectiveNodeId: string | null;
688
+ effectiveNodeSource: string | null;
689
+ sourceType: string | null;
690
+ sourceAgentId: string | null;
691
+ sourceRunId: string | null;
692
+ sourceSessionId: string | null;
693
+ sourceMessageId: string | null;
694
+ sourceParentTaskId: string | null;
695
+ sourceMetadata: string | null;
696
+ proposalClaimId: string | null;
697
+ checkedOutBy: string | null;
698
+ checkedOutAt: string | null;
699
+ checkoutNodeId: string | null;
700
+ checkoutRunId: string | null;
701
+ checkoutLeaseRenewedAt: string | null;
702
+ checkoutLeaseEpoch: number | null;
703
+ deletedAt: string | null;
704
+ allowResurrection: number | null;
705
+ }
706
+ type TaskPersistSerializationContext = {
707
+ lineageId: string;
708
+ };
709
+ type TaskColumnDescriptor = {
710
+ column: keyof TaskRow;
711
+ sqlIdentifier: string;
712
+ serialize: (task: Task, context: TaskPersistSerializationContext) => unknown;
713
+ };
714
+
715
+ type TaskRepositoryScopeMutation = {
716
+ action: "add" | "remove" | "refuse";
717
+ repositories: string[];
718
+ reason: string;
719
+ actor: string;
720
+ };
721
+
528
722
  declare const WORKFLOW_EXTENSION_SCHEMA_VERSION: 1;
529
723
  type WorkflowExtensionFallback = "degradeToDefault" | "parkNeedsAttention" | "failClosed";
530
724
  type WorkflowExtensionKind = "column-metadata" | "move-policy" | "work-engine" | "node-handler" | "verdict-provider" | "merge-fact-provider";
@@ -1054,6 +1248,7 @@ declare class GlobalSettingsStore {
1054
1248
  private readonly revisionIntentPath;
1055
1249
  private readonly dir;
1056
1250
  private cachedSettings;
1251
+ private cachedSettingsEpoch;
1057
1252
  private lock;
1058
1253
  constructor(dir?: string, asyncLayer?: AsyncDataLayer | undefined);
1059
1254
  private getRevisionLayer;
@@ -1428,6 +1623,10 @@ interface MissionWithHierarchy extends Mission {
1428
1623
  slices: SliceWithFeatures[];
1429
1624
  }>;
1430
1625
  }
1626
+ interface FeatureUnlinkedPayload {
1627
+ feature: MissionFeature;
1628
+ taskId?: string;
1629
+ }
1431
1630
  interface FixFeatureCreatedPayload {
1432
1631
  feature: MissionFeature;
1433
1632
  sourceFeatureId: string;
@@ -1543,6 +1742,7 @@ interface MissionStoreEvents {
1543
1742
  feature: MissionFeature;
1544
1743
  taskId: string;
1545
1744
  }];
1745
+ "feature:unlinked": [FeatureUnlinkedPayload];
1546
1746
  "mission:event": [MissionEvent];
1547
1747
  "assertion:created": [MissionContractAssertion];
1548
1748
  "assertion:updated": [MissionContractAssertion];
@@ -1652,6 +1852,7 @@ declare class MissionStore extends EventEmitter<MissionStoreEvents> {
1652
1852
  private resolveTaskLinkage;
1653
1853
  linkFeatureToTask(featureId: string, taskId: string): MissionFeature;
1654
1854
  unlinkFeatureFromTask(featureId: string): MissionFeature;
1855
+ repointFeatureToTask(featureId: string, taskId: string): MissionFeature;
1655
1856
  updateFeatureStatus(featureId: string, status: FeatureStatus, options?: MissionUpdateOptions): MissionFeature;
1656
1857
  getFeatureByTaskId(taskId: string): MissionFeature | undefined;
1657
1858
  startManualValidatorRun(featureId: string, input?: {
@@ -1833,6 +2034,7 @@ declare class AsyncMissionStore extends EventEmitter<MissionStoreEvents> {
1833
2034
  }): Promise<void>;
1834
2035
  linkFeatureToTask(featureId: string, taskId: string): Promise<MissionFeature>;
1835
2036
  unlinkFeatureFromTask(featureId: string): Promise<MissionFeature>;
2037
+ repointFeatureToTask(featureId: string, taskId: string): Promise<MissionFeature>;
1836
2038
  repairFeatureValidationState(featureId: string, options: {
1837
2039
  action: "clear" | "re_run";
1838
2040
  actor: MissionTransitionActor;
@@ -3295,6 +3497,7 @@ interface GitRepositoryCommandResult {
3295
3497
  type GitRepositoryCommandRunner = (command: string, args: string[], options: {
3296
3498
  cwd?: string;
3297
3499
  timeout: number;
3500
+ env?: NodeJS.ProcessEnv;
3298
3501
  }) => Promise<GitRepositoryCommandResult>;
3299
3502
  interface EnsureGitRepositoryOptions {
3300
3503
  runner?: GitRepositoryCommandRunner;
@@ -3362,7 +3565,6 @@ interface EnsureProjectForPathInput {
3362
3565
  isolationMode?: IsolationMode;
3363
3566
  nodeId?: string;
3364
3567
  settings?: ProjectSettings;
3365
- skipGitInit?: boolean;
3366
3568
  }
3367
3569
  interface EnsureProjectForPathResult {
3368
3570
  project: RegisteredProject;
@@ -3536,8 +3738,10 @@ declare class CentralCore extends EventEmitter<CentralCoreEvents> {
3536
3738
  logActivity(entry: Omit<CentralActivityLogEntry, "id">): Promise<CentralActivityLogEntry>;
3537
3739
  getRecentActivity(options?: {
3538
3740
  limit?: number;
3741
+ since?: string;
3539
3742
  projectId?: string;
3540
3743
  types?: ActivityEventType[];
3744
+ taskId?: string;
3541
3745
  }): Promise<CentralActivityLogEntry[]>;
3542
3746
  getActivityCount(projectId?: string): Promise<number>;
3543
3747
  cleanupOldActivity(olderThanDays: number): Promise<number>;
@@ -3952,177 +4156,6 @@ type IntakeOwnershipExemption = {
3952
4156
  readonly [intakeOwnershipExemptionBrand]: true;
3953
4157
  };
3954
4158
 
3955
- interface TaskRow {
3956
- id: string;
3957
- lineageId: string | null;
3958
- title: string | null;
3959
- description: string;
3960
- priority: string | null;
3961
- column: string;
3962
- status: string | null;
3963
- size: string | null;
3964
- reviewLevel: number | null;
3965
- currentStep: number;
3966
- worktree: string | null;
3967
- blockedBy: string | null;
3968
- overlapBlockedBy: string | null;
3969
- queuedLogEpisodeSignature: string | null;
3970
- paused: number | null;
3971
- pausedReason: string | null;
3972
- wedgeNotification: string | null;
3973
- userPaused: number | null;
3974
- baseBranch: string | null;
3975
- executionStartBranch: string | null;
3976
- branch: string | null;
3977
- autoMerge: number | null;
3978
- autoMergeProvenance: string | null;
3979
- baseCommitSha: string | null;
3980
- modelPresetId: string | null;
3981
- modelProvider: string | null;
3982
- credentialInstanceId: string | null;
3983
- modelId: string | null;
3984
- validatorModelProvider: string | null;
3985
- validatorCredentialInstanceId: string | null;
3986
- validatorModelId: string | null;
3987
- planningModelProvider: string | null;
3988
- planningCredentialInstanceId: string | null;
3989
- planningModelId: string | null;
3990
- mergerModelProvider: string | null;
3991
- mergerCredentialInstanceId: string | null;
3992
- mergerModelId: string | null;
3993
- mergeRetries: number | null;
3994
- workflowStepRetries: number | null;
3995
- stuckKillCount: number | null;
3996
- resumeLimboCount: number | null;
3997
- graphResumeRetryCount: number | null;
3998
- consecutiveToolFailureRetryCount: number | null;
3999
- executorEscalationAttempted: number | null;
4000
- toolFailureDetectorLogCursor: number | null;
4001
- toolFailureRetryExhaustedAuditEmitted: number | null;
4002
- resumeLimboTipSha: string | null;
4003
- resumeLimboStepSignature: string | null;
4004
- executeRequeueLoopCount: number | null;
4005
- executeRequeueLoopSignature: string | null;
4006
- postReviewFixCount: number | null;
4007
- planReviewReplanCount: number | null;
4008
- recoveryRetryCount: number | null;
4009
- taskDoneRetryCount: number | null;
4010
- bulkCompletionRefusalAt: string | null;
4011
- workflowIrPin: string | null;
4012
- workflowIrPinNodeId: string | null;
4013
- workflowIrPinColumnId: string | null;
4014
- legacyAdoptedAt: string | null;
4015
- worktreeSessionRetryCount: number | null;
4016
- completionHandoffLimboRecoveryCount: number | null;
4017
- verificationFailureCount: number | null;
4018
- mergeConflictBounceCount: number | null;
4019
- mergeAuditBounceCount: number | null;
4020
- mergeTransientRetryCount: number | null;
4021
- branchConflictRecoveryCount: number | null;
4022
- reviewerContextRetryCount: number | null;
4023
- reviewerFallbackRetryCount: number | null;
4024
- nextRecoveryAt: string | null;
4025
- error: string | null;
4026
- summary: string | null;
4027
- recommendations: string | null;
4028
- thinkingLevel: string | null;
4029
- validatorThinkingLevel: string | null;
4030
- planningThinkingLevel: string | null;
4031
- mergerThinkingLevel: string | null;
4032
- executionMode: string | null;
4033
- sessionAdvisorEnabled: number | null;
4034
- tokenUsageInputTokens: number | null;
4035
- tokenUsageOutputTokens: number | null;
4036
- tokenUsageCachedTokens: number | null;
4037
- tokenUsageCacheWriteTokens: number | null;
4038
- tokenUsageTotalTokens: number | null;
4039
- tokenUsageFirstUsedAt: string | null;
4040
- tokenUsageLastUsedAt: string | null;
4041
- tokenUsageModelProvider: string | null;
4042
- tokenUsageModelId: string | null;
4043
- tokenUsagePerModel: string | null;
4044
- tokenBudgetSoftAlertedAt: string | null;
4045
- tokenBudgetHardAlertedAt: string | null;
4046
- tokenBudgetOverride: string | null;
4047
- createdAt: string;
4048
- updatedAt: string;
4049
- columnMovedAt: string | null;
4050
- firstExecutionAt: string | null;
4051
- cumulativeActiveMs: number | null;
4052
- cumulativePlanningMs: number | null;
4053
- planningStartedAt: string | null;
4054
- columnDwellMs: string | null;
4055
- workflowTransitionNotification: string | null;
4056
- plannerOversightLevel: string | null;
4057
- awaitingApprovalReason: string | null;
4058
- approvedPlanFingerprint: string | null;
4059
- executionStartedAt: string | null;
4060
- executionCompletedAt: string | null;
4061
- dependencies: string | null;
4062
- steps: string | null;
4063
- customFields: string | null;
4064
- log: string | null;
4065
- attachments: string | null;
4066
- steeringComments: string | null;
4067
- comments: string | null;
4068
- review: string | null;
4069
- reviewState: string | null;
4070
- workflowStepResults: string | null;
4071
- prInfo: string | null;
4072
- prInfos: string | null;
4073
- issueInfo: string | null;
4074
- githubTracking: string | null;
4075
- gitlabTracking: string | null;
4076
- sourceIssueProvider: string | null;
4077
- sourceIssueRepository: string | null;
4078
- sourceIssueExternalIssueId: string | null;
4079
- sourceIssueNumber: number | null;
4080
- sourceIssueUrl: string | null;
4081
- sourceIssueClosedAt: string | null;
4082
- mergeDetails: string | null;
4083
- workspaceWorktrees: string | null;
4084
- breakIntoSubtasks: number | null;
4085
- noCommitsExpected: number | null;
4086
- enabledWorkflowSteps: string | null;
4087
- modifiedFiles: string | null;
4088
- declaredSymbols: string | null;
4089
- missionId: string | null;
4090
- sliceId: string | null;
4091
- scopeOverride: number | null;
4092
- scopeOverrideReason: string | null;
4093
- scopeAutoWiden: string | null;
4094
- assignedAgentId: string | null;
4095
- pausedByAgentId: string | null;
4096
- assigneeUserId: string | null;
4097
- nodeId: string | null;
4098
- effectiveNodeId: string | null;
4099
- effectiveNodeSource: string | null;
4100
- sourceType: string | null;
4101
- sourceAgentId: string | null;
4102
- sourceRunId: string | null;
4103
- sourceSessionId: string | null;
4104
- sourceMessageId: string | null;
4105
- sourceParentTaskId: string | null;
4106
- sourceMetadata: string | null;
4107
- proposalClaimId: string | null;
4108
- checkedOutBy: string | null;
4109
- checkedOutAt: string | null;
4110
- checkoutNodeId: string | null;
4111
- checkoutRunId: string | null;
4112
- checkoutLeaseRenewedAt: string | null;
4113
- checkoutLeaseEpoch: number | null;
4114
- deletedAt: string | null;
4115
- allowResurrection: number | null;
4116
- }
4117
- type TaskPersistSerializationContext = {
4118
- lineageId: string;
4119
- };
4120
- type TaskColumnDescriptor = {
4121
- column: keyof TaskRow;
4122
- sqlIdentifier: string;
4123
- serialize: (task: Task, context: TaskPersistSerializationContext) => unknown;
4124
- };
4125
-
4126
4159
  interface MoveTaskIfResult {
4127
4160
  task: Task;
4128
4161
  moved: boolean;
@@ -4809,10 +4842,10 @@ interface TaskStoreEvents {
4809
4842
  }];
4810
4843
  "task:updated": [task: Task, meta?: {
4811
4844
  lanes?: TaskMoveLanes;
4845
+ failedTransition?: boolean;
4812
4846
  }];
4813
4847
  "task:deleted": [task: Task, meta?: {
4814
4848
  githubIssueAction?: GithubIssueAction;
4815
- closureContext?: TaskDeleteClosureContext;
4816
4849
  observed?: boolean;
4817
4850
  outboxEventId?: string;
4818
4851
  }];
@@ -4988,7 +5021,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
4988
5021
  consumerId?: string;
4989
5022
  });
4990
5023
  emitTaskLifecycleEventSafely(event: "task:created" | "task:updated" | "task:deleted", args: TaskStoreEvents["task:created"] | TaskStoreEvents["task:updated"] | TaskStoreEvents["task:deleted"]): boolean;
4991
- emitObservedTaskDeleted(task: Task, outboxEventId: string, metadata?: Pick<NonNullable<TaskStoreEvents["task:deleted"][1]>, "githubIssueAction" | "closureContext">): boolean;
5024
+ emitObservedTaskDeleted(task: Task, outboxEventId: string, metadata?: Pick<NonNullable<TaskStoreEvents["task:deleted"][1]>, "githubIssueAction">): boolean;
4992
5025
  startTaskDeletedOutboxConsumer(): Promise<void>;
4993
5026
  stopTaskDeletedOutboxConsumer(): Promise<void>;
4994
5027
  get db(): Database;
@@ -5455,6 +5488,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5455
5488
  areAllDependenciesDone(dependencies: string[], tasksById: Map<string, Task>, satisfiedColumns?: ReadonlySet<string>): boolean;
5456
5489
  readTaskForMove(id: string): Promise<Task>;
5457
5490
  moveTask(id: string, toColumn: ColumnId, options?: MoveTaskOptions): Promise<Task>;
5491
+ resetTaskPublication(id: string, intakeColumn: ColumnId): Promise<Task>;
5458
5492
  moveTaskIf(id: string, toColumn: ColumnId, predicate: (live: Task) => boolean | Promise<boolean>, options?: MoveTaskOptions): Promise<MoveTaskIfResult>;
5459
5493
  handoffToReview(taskId: string, opts: HandoffToReviewOptions): Promise<Task>;
5460
5494
  __setHandoffMergeQueueFailureInjectorForTesting(injector: ((taskId: string) => void | Promise<void>) | null): void;
@@ -5482,6 +5516,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5482
5516
  prompt?: string;
5483
5517
  worktree?: string | null;
5484
5518
  workspaceWorktrees?: Task["workspaceWorktrees"];
5519
+ repositoryScope?: Task["repositoryScope"] | null;
5485
5520
  status?: string | null;
5486
5521
  awaitingApprovalReason?: Task["awaitingApprovalReason"] | null;
5487
5522
  dependencies?: string[];
@@ -5518,12 +5553,16 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5518
5553
  baseBranch?: string | null;
5519
5554
  autoMerge?: boolean | null;
5520
5555
  branch?: string | null;
5556
+ branchWriteOrigin?: "operator" | "engine";
5557
+ branchContext?: TaskBranchContext | null;
5521
5558
  executionStartBranch?: string | null;
5522
5559
  baseCommitSha?: string | null;
5523
5560
  size?: "S" | "M" | "L";
5524
5561
  reviewLevel?: number;
5525
5562
  executionMode?: ExecutionMode | null;
5526
5563
  mergeRetries?: number;
5564
+ aiMergeReviewReconciliation?: Task["aiMergeReviewReconciliation"] | null;
5565
+ log?: TaskLogEntry[];
5527
5566
  workflowStepRetries?: number;
5528
5567
  stuckKillCount?: number | null;
5529
5568
  resumeLimboCount?: number | null;
@@ -5656,11 +5695,15 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5656
5695
  claimNextToolFailureRetry(taskId: string, expectedCursor: number, maxRetries: number): Promise<ToolFailureRetryClaim>;
5657
5696
  markToolFailureRetryExhaustedAudit(taskId: string): Promise<boolean>;
5658
5697
  updateTaskAtomic(id: string, updater: (current: Task) => Parameters<TaskStore["updateTask"]>[1] | null | undefined | Promise<Parameters<TaskStore["updateTask"]>[1] | null | undefined>, runContext?: RunMutationContext): Promise<Task>;
5698
+ dismissAiMergeReviewFinding(taskId: string, findingId: string, reason: string, actor?: string): Promise<Task>;
5659
5699
  linkTaskRecommendation(id: string, recommendationId: string, createdTaskId: string, completeColumns?: ReadonlySet<string>): Promise<Task>;
5700
+ normalizeWorkspaceTaskWorktreeMetadata(id: string): Promise<Task>;
5660
5701
  mergeWorkspaceWorktreeEntry(id: string, repoRelPath: string, patch: Partial<WorkspaceWorktreeEntry>, options?: {
5661
5702
  requireExistingEntry?: boolean;
5662
5703
  clearSingularWorktree?: boolean;
5663
5704
  }): Promise<Task>;
5705
+ updateTaskRepositoryScope(id: string, repositoryScope: TaskRepositoryScope | undefined): Promise<Task>;
5706
+ mutateTaskRepositoryScope(id: string, mutation: TaskRepositoryScopeMutation): Promise<Task>;
5664
5707
  resolveTaskWedgeNotificationEpisode(id: string, episodeId: string): Promise<{
5665
5708
  task: Task;
5666
5709
  resolved: boolean;
@@ -5832,7 +5875,6 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5832
5875
  removeLineageReferences?: boolean;
5833
5876
  allowResurrection?: boolean;
5834
5877
  githubIssueAction?: GithubIssueAction;
5835
- closureContext?: TaskDeleteClosureContext;
5836
5878
  auditContext?: TaskDeleteAuditContext;
5837
5879
  }): Promise<Task>;
5838
5880
  recordRunAuditEventBackend(tx: DbTransaction, event: {
@@ -5849,7 +5891,6 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5849
5891
  removeLineageReferences?: boolean;
5850
5892
  allowResurrection?: boolean;
5851
5893
  githubIssueAction?: GithubIssueAction;
5852
- closureContext?: TaskDeleteClosureContext;
5853
5894
  auditContext?: TaskDeleteAuditContext;
5854
5895
  }): Promise<Task>;
5855
5896
  deleteTaskIf(id: string, predicate: (live: Task) => boolean | Promise<boolean>, options?: {
@@ -5857,7 +5898,6 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5857
5898
  removeLineageReferences?: boolean;
5858
5899
  allowResurrection?: boolean;
5859
5900
  githubIssueAction?: GithubIssueAction;
5860
- closureContext?: TaskDeleteClosureContext;
5861
5901
  auditContext?: TaskDeleteAuditContext;
5862
5902
  }): Promise<DeleteTaskIfResult>;
5863
5903
  deleteTaskById(taskId: string): void;
@@ -6003,6 +6043,8 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
6003
6043
  limit?: number;
6004
6044
  offset?: number;
6005
6045
  slim?: boolean;
6046
+ sort?: TaskColumnSortMode;
6047
+ sortMode?: TaskColumnSortMode;
6006
6048
  }): Promise<{
6007
6049
  tasks: Task[];
6008
6050
  total: number;
@@ -6178,6 +6220,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
6178
6220
  limit?: number;
6179
6221
  since?: string;
6180
6222
  type?: ActivityEventType;
6223
+ taskId?: string;
6181
6224
  }): Promise<ActivityLogEntry[]>;
6182
6225
  getTaskMovedCountsByDay(options: {
6183
6226
  since: string;
@@ -6756,7 +6799,7 @@ declare const ANTHROPIC_AUTH_PREFERENCES: readonly ["api-key", "subscription"];
6756
6799
  type AnthropicAuthPreference = (typeof ANTHROPIC_AUTH_PREFERENCES)[number];
6757
6800
  declare const THEME_MODES: readonly ["dark", "light", "system"];
6758
6801
  type ThemeMode = (typeof THEME_MODES)[number];
6759
- declare const COLOR_THEMES: readonly ["default", "ocean", "forest", "sunset", "zen", "berry", "high-contrast", "industrial", "monochrome", "slate", "ash", "air", "graphite", "silver", "solarized", "factory", "factory-mono", "ayu", "one-dark", "nord", "dracula", "gruvbox", "tokyo-night", "catppuccin-mocha", "github-dark", "everforest", "rose-pine", "kanagawa", "night-owl", "palenight", "monokai-pro", "slime", "brutalist", "neon-city", "parchment", "terminal", "glass", "glass-silver", "horizon", "vitesse", "outrun", "snazzy", "porple", "espresso", "mars", "poimandres", "ember", "rust", "copper", "foundry", "carbon", "sandstone", "lagoon", "frost", "lavender", "neon-bloom", "sepia", "cobalt", "clay", "moss", "aurora", "calm", "dawn", "sage", "midnight", "factory-dark", "factory-light", "shadcn", "shadcn-ember", "shadcn-custom", "shadcn-blue", "shadcn-green", "shadcn-red", "shadcn-purple", "shadcn-pink", "shadcn-orange", "shadcn-yellow", "shadcn-mono", "shadcn-mono-red", "shadcn-mono-blue", "shadcn-mono-green", "shadcn-mono-purple", "shadcn-mono-pink", "shadcn-mono-orange", "shadcn-mono-yellow", "shadcn-black", "shadcn-gray", "shadcn-gray-blue"];
6802
+ declare const COLOR_THEMES: readonly ["default", "ocean", "forest", "sunset", "zen", "berry", "high-contrast", "industrial", "monochrome", "slate", "ash", "air", "graphite", "silver", "solarized", "factory", "factory-mono", "ayu", "one-dark", "nord", "dracula", "gruvbox", "tokyo-night", "catppuccin-mocha", "github-dark", "everforest", "rose-pine", "kanagawa", "night-owl", "palenight", "monokai-pro", "slime", "brutalist", "neon-city", "parchment", "medieval", "terminal", "glass", "glass-silver", "horizon", "vitesse", "outrun", "snazzy", "porple", "espresso", "mars", "poimandres", "ember", "rust", "copper", "foundry", "carbon", "sandstone", "lagoon", "frost", "lavender", "neon-bloom", "sepia", "cobalt", "clay", "moss", "aurora", "calm", "dawn", "sage", "midnight", "velvet", "factory-dark", "factory-light", "shadcn", "shadcn-ember", "shadcn-custom", "shadcn-blue", "shadcn-green", "shadcn-red", "shadcn-purple", "shadcn-pink", "shadcn-orange", "shadcn-yellow", "shadcn-mono", "shadcn-mono-red", "shadcn-mono-blue", "shadcn-mono-green", "shadcn-mono-purple", "shadcn-mono-pink", "shadcn-mono-orange", "shadcn-mono-yellow", "shadcn-black", "shadcn-gray", "shadcn-gray-blue"];
6760
6803
  type ColorTheme = (typeof COLOR_THEMES)[number];
6761
6804
  declare const SUPPORTED_LOCALES: readonly ["en", "zh-CN", "zh-TW", "fr", "es", "ko", "pt-BR"];
6762
6805
  type Locale = (typeof SUPPORTED_LOCALES)[number];
@@ -7364,9 +7407,15 @@ interface TaskSource {
7364
7407
  type TaskBranchGroupSource = "planning" | "mission" | "new-task";
7365
7408
  type TaskBranchAssignmentMode = "shared" | "per-task-derived";
7366
7409
  interface TaskBranchContext {
7410
+ branchOverride?: {
7411
+ by: "operator";
7412
+ at: string;
7413
+ branch: string;
7414
+ previousBranch?: string;
7415
+ };
7367
7416
  groupId?: string;
7368
- source: TaskBranchGroupSource;
7369
- assignmentMode: TaskBranchAssignmentMode;
7417
+ source?: TaskBranchGroupSource;
7418
+ assignmentMode?: TaskBranchAssignmentMode;
7370
7419
  inheritedBaseBranch?: string;
7371
7420
  }
7372
7421
  type BranchGroupPrState = "none" | "open" | "merged" | "closed";
@@ -7541,9 +7590,32 @@ interface TaskReleaseGateVerdict {
7541
7590
  evaluatedAt: string;
7542
7591
  evaluatedForUpdatedAt?: string;
7543
7592
  }
7593
+ interface TaskRepositoryScope {
7594
+ repositories: string[];
7595
+ state?: "proposed" | "confirmed";
7596
+ revision?: number;
7597
+ confirmedAt?: string;
7598
+ confirmedBy?: "operator" | "plan" | "inferred";
7599
+ reviewEvidence?: Record<string, {
7600
+ fingerprint: string;
7601
+ approvedAt: string;
7602
+ }>;
7603
+ extensions?: Array<{
7604
+ repository: string;
7605
+ requestedAt: string;
7606
+ requestedBy: string;
7607
+ reason: string;
7608
+ status: "accepted" | "refused";
7609
+ refusedAt?: string;
7610
+ refusedBy?: string;
7611
+ refusalReason?: string;
7612
+ }>;
7613
+ }
7544
7614
  interface WorkspaceWorktreeEntry {
7545
7615
  worktreePath: string;
7546
7616
  branch: string;
7617
+ baseBranch?: string;
7618
+ baseBranchFallbackFrom?: string;
7547
7619
  baseCommitSha?: string;
7548
7620
  landedSha?: string;
7549
7621
  revertBoundarySha?: string;
@@ -7553,6 +7625,28 @@ interface WorkspaceWorktreeEntry {
7553
7625
  branch?: string;
7554
7626
  };
7555
7627
  }
7628
+ type AiMergeFindingDisposition = "pending" | "corrected" | "absent-from-squash" | "still-present" | "dismissed";
7629
+ interface AiMergeReviewFinding {
7630
+ id: string;
7631
+ text: string;
7632
+ disposition: AiMergeFindingDisposition;
7633
+ audit?: Array<{
7634
+ at: string;
7635
+ actor: string;
7636
+ disposition: AiMergeFindingDisposition;
7637
+ reason?: string;
7638
+ }>;
7639
+ }
7640
+ interface AiMergeReviewReconciliation {
7641
+ sourceSha: string;
7642
+ integrationTipSha: string;
7643
+ candidateSha?: string;
7644
+ candidateTreeSha?: string;
7645
+ findings: AiMergeReviewFinding[];
7646
+ consecutiveCleanApprovals: number;
7647
+ correctivePasses: number;
7648
+ terminal?: boolean;
7649
+ }
7556
7650
  interface Task {
7557
7651
  id: string;
7558
7652
  lineageId?: string;
@@ -7563,10 +7657,10 @@ interface Task {
7563
7657
  column: ColumnId;
7564
7658
  preArchiveColumn?: Column;
7565
7659
  dependencies: string[];
7566
- breakIntoSubtasks?: boolean;
7567
7660
  noCommitsExpected?: boolean;
7568
7661
  worktree?: string;
7569
7662
  workspaceWorktrees?: Record<string, WorkspaceWorktreeEntry>;
7663
+ repositoryScope?: TaskRepositoryScope;
7570
7664
  steps: TaskStep[];
7571
7665
  currentStep: number;
7572
7666
  customFields?: Record<string, unknown>;
@@ -7647,6 +7741,7 @@ interface Task {
7647
7741
  enabledWorkflowSteps?: string[];
7648
7742
  workflowStepResults?: WorkflowStepResult[];
7649
7743
  mergeRetries?: number;
7744
+ aiMergeReviewReconciliation?: AiMergeReviewReconciliation;
7650
7745
  workflowStepRetries?: number;
7651
7746
  stuckKillCount?: number;
7652
7747
  resumeLimboCount?: number;
@@ -7679,7 +7774,7 @@ interface Task {
7679
7774
  reviewerFallbackRetryCount?: number;
7680
7775
  retrySummary?: RetrySummary;
7681
7776
  nextRecoveryAt?: string;
7682
- awaitingApprovalReason?: "release-authorization" | "plan-review-replan-cap" | "merge-blocked-by-policy";
7777
+ awaitingApprovalReason?: "release-authorization" | "plan-review-replan-cap" | "merge-blocked-by-policy" | "code-review-non-convergence";
7683
7778
  approvedPlanFingerprint?: string;
7684
7779
  thinkingLevel?: ThinkingLevel;
7685
7780
  validatorThinkingLevel?: ThinkingLevel;
@@ -7783,6 +7878,7 @@ interface TaskCreateInput {
7783
7878
  description: string;
7784
7879
  baseBranch?: string;
7785
7880
  branch?: string;
7881
+ branchWriteOrigin?: "operator" | "engine";
7786
7882
  branchContext?: TaskBranchContext;
7787
7883
  taskPrefix?: string;
7788
7884
  autoMerge?: boolean;
@@ -7794,8 +7890,8 @@ interface TaskCreateInput {
7794
7890
  priority?: TaskPriority;
7795
7891
  column?: ColumnId;
7796
7892
  dependencies?: string[];
7797
- breakIntoSubtasks?: boolean;
7798
7893
  noCommitsExpected?: boolean;
7894
+ repositoryScope?: string[];
7799
7895
  enabledWorkflowSteps?: string[];
7800
7896
  workflowId?: string | null;
7801
7897
  modelPresetId?: string;
@@ -8082,9 +8178,18 @@ interface GlobalSettings {
8082
8178
  gitlabApiBaseUrl?: string;
8083
8179
  gitlabAuthToken?: string;
8084
8180
  gitlabAuthTokenType?: GitlabAuthTokenType;
8181
+ jiraEnabled?: boolean;
8182
+ jiraBaseUrl?: string;
8183
+ jiraApiBaseUrl?: string;
8184
+ jiraAuthEmail?: string;
8185
+ jiraAuthTokenSecretKey?: string;
8186
+ jiraAuthTokenSecretScope?: "project" | "global";
8187
+ jiraBranchNameTemplate?: string;
8085
8188
  updateCheckFrequency?: "manual" | "on-startup" | "daily" | "weekly";
8086
8189
  updateChannel?: UpdateChannel;
8087
8190
  autoUpdateAndRestart?: boolean;
8191
+ autoUpdateEnabled?: boolean;
8192
+ autoRestartAfterUpdate?: boolean;
8088
8193
  autoReloadOnVersionChange?: boolean;
8089
8194
  modelOnboardingComplete?: boolean;
8090
8195
  useClaudeCli?: boolean;
@@ -8219,6 +8324,7 @@ type ReportActionType = "bug" | "feedback" | "idea" | "help";
8219
8324
  type ReportTarget = "issue" | "discussion";
8220
8325
  interface ProjectSettings {
8221
8326
  maxRecommendationsPerTask?: number;
8327
+ requireTaskRecommendations?: boolean;
8222
8328
  recommendationMailboxNoticeEnabled?: boolean;
8223
8329
  globalPause?: boolean;
8224
8330
  globalPauseReason?: string;
@@ -8299,6 +8405,7 @@ interface ProjectSettings {
8299
8405
  openMobileTasksInPopup?: boolean;
8300
8406
  taskPopupsBoardListOnly?: boolean;
8301
8407
  showCostBadgeOnCards?: boolean;
8408
+ chatMessageLayout?: "bubbles" | "full-width";
8302
8409
  taskDetailChatFirst?: boolean;
8303
8410
  executorAllowSiblingBranchRename?: boolean;
8304
8411
  worktreeNaming?: "random" | "task-id" | "task-title";
@@ -8469,6 +8576,13 @@ interface ProjectSettings {
8469
8576
  gitlabApiBaseUrl?: string;
8470
8577
  gitlabAuthToken?: string;
8471
8578
  gitlabAuthTokenType?: GitlabAuthTokenType;
8579
+ jiraEnabled?: boolean;
8580
+ jiraBaseUrl?: string;
8581
+ jiraApiBaseUrl?: string;
8582
+ jiraAuthEmail?: string;
8583
+ jiraAuthTokenSecretKey?: string;
8584
+ jiraAuthTokenSecretScope?: "project" | "global";
8585
+ jiraBranchNameTemplate?: string;
8472
8586
  gitlabCommentOnDone?: boolean;
8473
8587
  gitlabCommentTemplate?: string;
8474
8588
  gitlabCloseSourceIssueOnDone?: boolean;
@@ -8483,6 +8597,7 @@ interface ProjectSettings {
8483
8597
  memoryBackupScope?: "project" | "agents" | "all";
8484
8598
  autoSummarizeTitles?: boolean;
8485
8599
  taskDefinitionInInputLanguage?: boolean;
8600
+ taskOutputLanguage?: TaskOutputLanguage;
8486
8601
  useAiMergeCommitSummary?: boolean;
8487
8602
  titleSummarizerProvider?: string;
8488
8603
  titleSummarizerCredentialInstanceId?: string;
@@ -8831,7 +8946,6 @@ interface ArchivedTaskEntry {
8831
8946
  mergerModelId?: string;
8832
8947
  mergerThinkingLevel?: ThinkingLevel;
8833
8948
  tokenUsage?: TaskTokenUsage;
8834
- breakIntoSubtasks?: boolean;
8835
8949
  noCommitsExpected?: boolean;
8836
8950
  paused?: boolean;
8837
8951
  baseBranch?: string;
@@ -9184,10 +9298,6 @@ interface RunAuditEventFilter {
9184
9298
  limit?: number;
9185
9299
  }
9186
9300
 
9187
- interface TaskDeleteClosureContext {
9188
- kind: "split-into-subtasks";
9189
- childTaskIds: string[];
9190
- }
9191
9301
  interface BlockedStateSnapshot {
9192
9302
  taskId: string;
9193
9303
  blockedBy: string;
@@ -9208,6 +9318,8 @@ interface AgentPromptsConfig {
9208
9318
  roleAssignments?: Partial<Record<AgentCapability, string>>;
9209
9319
  }
9210
9320
 
9321
+ type TaskOutputLanguage = "english" | "input" | "interface";
9322
+
9211
9323
  interface RunCommandResult {
9212
9324
  stdout: string;
9213
9325
  stderr: string;