@runfusion/fusion 0.77.0-beta.7 → 0.77.0-beta.9

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 (155) hide show
  1. package/dist/bin.js +9130 -4814
  2. package/dist/child-process-worker.js +9665 -6048
  3. package/dist/client/.vite/manifest.json +260 -260
  4. package/dist/client/assets/{AgentDetailView-C1eh_vXv.js → AgentDetailView-DLzgMG5W.js} +1 -1
  5. package/dist/client/assets/{AgentPermissionPolicyEditor-CeKsO1LR.js → AgentPermissionPolicyEditor-CHoQs5wt.js} +1 -1
  6. package/dist/client/assets/{AgentsView-BNe2ABOc.js → AgentsView-LDH9ih8-.js} +3 -3
  7. package/dist/client/assets/{CommandCenter-BuREM-G1.js → CommandCenter-DQ2Wjfo6.js} +1 -1
  8. package/dist/client/assets/{DevServerView-D0i1b-QO.js → DevServerView-NunavHb5.js} +1 -1
  9. package/dist/client/assets/{DirectoryPicker-VOx91hQt.js → DirectoryPicker-FymMYoLf.js} +1 -1
  10. package/dist/client/assets/{DocumentsView-CO5W_WVb.js → DocumentsView-By9SHDrK.js} +1 -1
  11. package/dist/client/assets/{EvalsView-BqSINSrZ.js → EvalsView-KHDm_jIP.js} +1 -1
  12. package/dist/client/assets/{ExperimentalAgentOnboardingModal-DEcFgONi.js → ExperimentalAgentOnboardingModal-CXZXL44D.js} +1 -1
  13. package/dist/client/assets/{GoalsView-DZ57wXmJ.js → GoalsView-CXJQllGu.js} +1 -1
  14. package/dist/client/assets/{InsightsView-DSWfXG7Q.js → InsightsView-PSlbun5-.js} +1 -1
  15. package/dist/client/assets/{MemoryView-BEX10uhl.js → MemoryView-Bj31SvJV.js} +1 -1
  16. package/dist/client/assets/{PiExtensionsManager-DcAmXXoR.js → PiExtensionsManager-CbEnWrEb.js} +1 -1
  17. package/dist/client/assets/{PluginManager-BU0omQUv.js → PluginManager-Ncr6jySY.js} +1 -1
  18. package/dist/client/assets/{PullRequestView-B-JL_8Kk.js → PullRequestView-3cR6DptH.js} +1 -1
  19. package/dist/client/assets/ReportModal-0cDRUWOi.js +21 -0
  20. package/dist/client/assets/ReportModal-Dx3f2aj7.css +1 -0
  21. package/dist/client/assets/{ResearchView-CnwTXfQO.js → ResearchView-rnrVF79-.js} +1 -1
  22. package/dist/client/assets/{SecretsView-BDvzsLFz.js → SecretsView-kF17RkhO.js} +1 -1
  23. package/dist/client/assets/{SettingsModal-BZHeQ3ED.js → SettingsModal-BQdO_hEg.js} +1 -1
  24. package/dist/client/assets/SettingsModal-DZdXfRcf.css +1 -0
  25. package/dist/client/assets/SettingsModal-DsA3Vg3y.js +21 -0
  26. package/dist/client/assets/{SettingsTextareaRow-B0rTuelr.js → SettingsTextareaRow-BmxrECAt.js} +1 -1
  27. package/dist/client/assets/{SetupWizardModal-CoExPwIn.js → SetupWizardModal-Dlgtw7CJ.js} +2 -2
  28. package/dist/client/assets/{SkillsView-WVP25LPj.js → SkillsView-D6BmZdru.js} +1 -1
  29. package/dist/client/assets/{WorkflowNodeEditor-pCMyKcnS.js → WorkflowNodeEditor-CVHHMqvn.js} +1 -1
  30. package/dist/client/assets/{agent-import-generation-M_hKtjgN.js → agent-import-generation-CnrRwmdq.js} +1 -1
  31. package/dist/client/assets/{agentsOrgChartLayout-DjvIMhFD.js → agentsOrgChartLayout-purG_-3A.js} +1 -1
  32. package/dist/client/assets/app-BE1XE5i8.js +5 -0
  33. package/dist/client/assets/app-BZBG5TsV.js +5 -0
  34. package/dist/client/assets/app-BZk9L8ul.js +13 -0
  35. package/dist/client/assets/app-CSFGL3vj.js +13 -0
  36. package/dist/client/assets/app-CfwwdZoX.js +13 -0
  37. package/dist/client/assets/app-CtSn_Ct1.js +13 -0
  38. package/dist/client/assets/app-CyJ_qBtM.js +13 -0
  39. package/dist/client/assets/{architectureDiagram-3BPJPVTR-CkzEm8i9.js → architectureDiagram-3BPJPVTR-D_oUETkg.js} +1 -1
  40. package/dist/client/assets/{blockDiagram-GPEHLZMM-Dc-dUMjY.js → blockDiagram-GPEHLZMM-SeVvCFBr.js} +1 -1
  41. package/dist/client/assets/{c4Diagram-AAUBKEIU-DnYjsrR0.js → c4Diagram-AAUBKEIU-C-bOAkwQ.js} +1 -1
  42. package/dist/client/assets/channel-CxElf6wV.js +1 -0
  43. package/dist/client/assets/{chunk-2J33WTMH-0E1GEFEr.js → chunk-2J33WTMH-Dfy3ok0u.js} +1 -1
  44. package/dist/client/assets/{chunk-4BX2VUAB-Dj5oZd51.js → chunk-4BX2VUAB-CJhw204d.js} +1 -1
  45. package/dist/client/assets/{chunk-55IACEB6-DfNT0s8E.js → chunk-55IACEB6-Sgt6UphC.js} +1 -1
  46. package/dist/client/assets/{chunk-727SXJPM-BnFjhiIQ.js → chunk-727SXJPM-BvQJpRvs.js} +1 -1
  47. package/dist/client/assets/{chunk-AQP2D5EJ-DR84wSqR.js → chunk-AQP2D5EJ-Cthfrcwy.js} +1 -1
  48. package/dist/client/assets/{chunk-FMBD7UC4-IjByNOrR.js → chunk-FMBD7UC4-Cz3x993o.js} +1 -1
  49. package/dist/client/assets/{chunk-ND2GUHAM-By0q_jZm.js → chunk-ND2GUHAM-PNcjW0Zw.js} +1 -1
  50. package/dist/client/assets/{chunk-QZHKN3VN-BELcl3N5.js → chunk-QZHKN3VN-4nKyNxvF.js} +1 -1
  51. package/dist/client/assets/classDiagram-4FO5ZUOK-CtVaR4ZF.js +1 -0
  52. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CtVaR4ZF.js +1 -0
  53. package/dist/client/assets/{cose-bilkent-S5V4N54A-D4cCw9-_.js → cose-bilkent-S5V4N54A-Ceay49Yk.js} +1 -1
  54. package/dist/client/assets/{dagre-BM42HDAG-JJp5dVeY.js → dagre-BM42HDAG-D9VGvuIj.js} +1 -1
  55. package/dist/client/assets/{dashboard-view-6zPJm9zC.js → dashboard-view-BBWCZOq1.js} +1 -1
  56. package/dist/client/assets/{dashboard-view-MAC_LHDX.js → dashboard-view-RQ4TPddv.js} +1 -1
  57. package/dist/client/assets/{dashboard-view-C5Nt8cvY.js → dashboard-view-ZGUl38Cw.js} +1 -1
  58. package/dist/client/assets/{dashboard-view-Bl9CPhxE.js → dashboard-view-gpkvNzBo.js} +1 -1
  59. package/dist/client/assets/{diagram-2AECGRRQ-D4L7j_t_.js → diagram-2AECGRRQ-Q5XXKnnv.js} +1 -1
  60. package/dist/client/assets/{diagram-5GNKFQAL-VAGFaXqG.js → diagram-5GNKFQAL-ByGKtZN7.js} +1 -1
  61. package/dist/client/assets/{diagram-KO2AKTUF-hqXSggfW.js → diagram-KO2AKTUF-B5wCSTUz.js} +1 -1
  62. package/dist/client/assets/{diagram-LMA3HP47-B3eAIuy8.js → diagram-LMA3HP47-C4eGtq1N.js} +1 -1
  63. package/dist/client/assets/{diagram-OG6HWLK6-BGufp0RK.js → diagram-OG6HWLK6-BxTb4tZr.js} +1 -1
  64. package/dist/client/assets/{erDiagram-TEJ5UH35-DplXdx8w.js → erDiagram-TEJ5UH35-CWt1TSp9.js} +1 -1
  65. package/dist/client/assets/{flowDiagram-I6XJVG4X-C1Ms2bko.js → flowDiagram-I6XJVG4X-DUAfL604.js} +1 -1
  66. package/dist/client/assets/{folder-open-nMraSDXu.js → folder-open-CihApyzT.js} +1 -1
  67. package/dist/client/assets/{ganttDiagram-6RSMTGT7-DVgxMtXb.js → ganttDiagram-6RSMTGT7-DBS31zRY.js} +1 -1
  68. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DH2_n0J8.js → gitGraphDiagram-PVQCEYII-BmYxNXvm.js} +1 -1
  69. package/dist/client/assets/index-BN0mudGK.js +2898 -0
  70. package/dist/client/assets/index-Bi6-k7Mt.css +1 -0
  71. package/dist/client/assets/{infoDiagram-5YYISTIA-DmZdWVcU.js → infoDiagram-5YYISTIA-oeqISHuE.js} +1 -1
  72. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-DsEIHSXr.js → ishikawaDiagram-YF4QCWOH-De7HSTs3.js} +1 -1
  73. package/dist/client/assets/{journeyDiagram-JHISSGLW-CsfIWmu1.js → journeyDiagram-JHISSGLW-CnOQgak6.js} +1 -1
  74. package/dist/client/assets/{kanban-definition-UN3LZRKU-CQKqeZvc.js → kanban-definition-UN3LZRKU-DkkSXQc1.js} +1 -1
  75. package/dist/client/assets/{mermaid.core-DkC_dr4-.js → mermaid.core-DPtpszZ3.js} +4 -4
  76. package/dist/client/assets/{mindmap-definition-RKZ34NQL-RnmE-NUe.js → mindmap-definition-RKZ34NQL-CTVye-HX.js} +1 -1
  77. package/dist/client/assets/{pieDiagram-4H26LBE5-DPu6FPc4.js → pieDiagram-4H26LBE5-Dls6obgy.js} +1 -1
  78. package/dist/client/assets/{puzzle-DwhHOf32.js → puzzle-o6sQbTzB.js} +1 -1
  79. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-CYbypO2p.js → quadrantDiagram-W4KKPZXB-BPHggPTG.js} +1 -1
  80. package/dist/client/assets/{requirementDiagram-4Y6WPE33-DFk1vK_N.js → requirementDiagram-4Y6WPE33-Cdtv6VSz.js} +1 -1
  81. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-CkUY1Zzu.js → sankeyDiagram-5OEKKPKP-CgQ4VG36.js} +1 -1
  82. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CFivaLOO.js → sequenceDiagram-3UESZ5HK-DllpS820.js} +1 -1
  83. package/dist/client/assets/{standing-instructions-template-BbqKGAC1.js → standing-instructions-template-BpjTC7lE.js} +1 -1
  84. package/dist/client/assets/{stateDiagram-AJRCARHV-BPeD5PwG.js → stateDiagram-AJRCARHV-BjDL2xGC.js} +1 -1
  85. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-DduiCPMb.js → stateDiagram-v2-BHNVJYJU-CvKLFCGR.js} +1 -1
  86. package/dist/client/assets/{timeline-definition-PNZ67QCA-CGUNNVro.js → timeline-definition-PNZ67QCA-BHlmiUIC.js} +1 -1
  87. package/dist/client/assets/{upload-BS96H1o7.js → upload-Bn7DjmMR.js} +1 -1
  88. package/dist/client/assets/{users--irrWoyU.js → users-CAwUf5mJ.js} +1 -1
  89. package/dist/client/assets/{vennDiagram-CIIHVFJN-CybTaJJH.js → vennDiagram-CIIHVFJN-_pYBvG2q.js} +1 -1
  90. package/dist/client/assets/{wardley-L42UT6IY-DSxaSCGi.js → wardley-L42UT6IY-Cnu65RLv.js} +1 -1
  91. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-YFb0AxNt.js → wardleyDiagram-YWT4CUSO-DQC_N8jk.js} +1 -1
  92. package/dist/client/assets/{xychartDiagram-2RQKCTM6-Cv6zlMJC.js → xychartDiagram-2RQKCTM6-CMaINq7s.js} +1 -1
  93. package/dist/client/index.html +13 -6
  94. package/dist/client/theme-data.css +85 -0
  95. package/dist/client/version.json +1 -1
  96. package/dist/droid-cli/package.json +1 -1
  97. package/dist/extension.js +8370 -4577
  98. package/dist/migrations/0066_chat_session_memory_focus.sql +20 -0
  99. package/dist/migrations/0067_fn_179_session_contention_wait_state.sql +3 -0
  100. package/dist/pi-claude-cli/package.json +1 -1
  101. package/dist/plugin-sdk/index.d.ts +58 -4
  102. package/dist/plugin-sdk/index.js +361 -20
  103. package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +379 -38
  104. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  105. package/dist/plugins/fusion-plugin-claude-runtime/bundled.js +374 -33
  106. package/dist/plugins/fusion-plugin-claude-runtime/package.json +1 -1
  107. package/dist/plugins/fusion-plugin-cli-printing-press/bundled.js +361 -20
  108. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  109. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +361 -20
  110. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  111. package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +361 -20
  112. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  113. package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +361 -20
  114. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  115. package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +361 -20
  116. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  117. package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +374 -33
  118. package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
  119. package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +361 -20
  120. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  121. package/dist/plugins/fusion-plugin-linear-import/bundled.js +361 -20
  122. package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
  123. package/dist/plugins/fusion-plugin-omp-runtime/bundled.js +374 -33
  124. package/dist/plugins/fusion-plugin-omp-runtime/package.json +1 -1
  125. package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +361 -20
  126. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  127. package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +361 -20
  128. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  129. package/dist/plugins/fusion-plugin-quality/bundled.js +361 -20
  130. package/dist/plugins/fusion-plugin-quality/package.json +1 -1
  131. package/dist/plugins/fusion-plugin-reports/bundled.js +361 -20
  132. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  133. package/dist/plugins/fusion-plugin-roadmap/bundled.js +361 -20
  134. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  135. package/dist/plugins/fusion-plugin-todos/bundled.js +361 -20
  136. package/dist/plugins/fusion-plugin-todos/package.json +1 -1
  137. package/dist/plugins/fusion-plugin-whatsapp-chat/bundled.js +464 -6486
  138. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  139. package/package.json +1 -1
  140. package/dist/client/assets/ReportModal-DxggF_RH.js +0 -21
  141. package/dist/client/assets/ReportModal-lzN_xrnM.css +0 -1
  142. package/dist/client/assets/SettingsModal-801eFQ9u.js +0 -21
  143. package/dist/client/assets/SettingsModal-Ds0Yj47X.css +0 -1
  144. package/dist/client/assets/app-BOvA34XN.js +0 -13
  145. package/dist/client/assets/app-Bic4iWXQ.js +0 -13
  146. package/dist/client/assets/app-BlbH7Tir.js +0 -5
  147. package/dist/client/assets/app-C6TctczU.js +0 -13
  148. package/dist/client/assets/app-D3qZmEIu.js +0 -13
  149. package/dist/client/assets/app-DLnMkUt5.js +0 -5
  150. package/dist/client/assets/app-mNy0DeDM.js +0 -13
  151. package/dist/client/assets/channel-CxQ40s_U.js +0 -1
  152. package/dist/client/assets/classDiagram-4FO5ZUOK-C2ARdiRL.js +0 -1
  153. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-C2ARdiRL.js +0 -1
  154. package/dist/client/assets/index-BJc-A7eB.css +0 -1
  155. package/dist/client/assets/index-CBFPgFTp.js +0 -2787
@@ -0,0 +1,20 @@
1
+ -- FNXC:MemoryFocus 2026-08-13-15:57:
2
+ -- RUFU-068: per-conversation read-time memory FOCUS/TOPIC layer over the
3
+ -- per-project Stash scope (ported from clean-rebase's 0049_chat_session_memory_focus.sql
4
+ -- and renumbered to 0060). Adds chat_sessions.memory_focus so the active topic
5
+ -- persists across reconnects and scopes fn_memory_search + proactive recall to a
6
+ -- working topic within the project. NULL/empty ('' normalized to NULL) means the
7
+ -- conversation inherits the whole-project scope. This column is a read-time focus
8
+ -- filter only — capture stays write-anywhere and cross-project isolation is
9
+ -- untouched (Stash owner_user_id SQL scope is orthogonal).
10
+ -- Sequence provenance (migration is 0066): it started at 0059, moved to 0060 when
11
+ -- origin/main concurrently landed FN-9037's 0059_fn_9037_tasks_source_agent_index.sql
12
+ -- (2026-08-14), to 0061 on 2026-08-15 (FN-9059's workspace coordination leases own
13
+ -- 0060), and the upstream 2026-08-20 batch (FN-066..FN-094) claiming 0061-0064
14
+ -- pinned it at 0065 (the next free sequence above SCHEMA_BASELINE_VERSION "0064").
15
+ -- Renumbered to 0066 on 2026-08-23 (rebase onto origin/main 3f448f7292): upstream's
16
+ -- FN-149 shipped 0065_fn_149_review_convergence_stage.sql, claiming 0065 canonically.
17
+ -- Upstream's 0065 is already released, so this migration takes the next free sequence.
18
+ -- Production ledgers that applied the memory-focus SQL under the old row "0065"
19
+ -- (v17-era) need a one-time 0065->0066 ledger remap before first 0066-ceiling boot.
20
+ ALTER TABLE IF EXISTS project.chat_sessions ADD COLUMN IF NOT EXISTS memory_focus text;
@@ -0,0 +1,3 @@
1
+ -- FNXC:WorkspaceContention 2026-08-24-03:34: Persist the bounded scheduling wait at 0067 because released chat memory focus owns 0066; restart cannot reset a live-holder budget or leave an unowned badge.
2
+ ALTER TABLE project.tasks ADD COLUMN IF NOT EXISTS session_contention_hold_count integer DEFAULT 0;
3
+ ALTER TABLE project.tasks ADD COLUMN IF NOT EXISTS session_contention_wait_reason text;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion/pi-claude-cli",
3
- "version": "0.77.0-beta.7",
3
+ "version": "0.77.0-beta.9",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "main": "index.ts",
@@ -607,6 +607,8 @@ interface TaskRow {
607
607
  postReviewFixCount: number | null;
608
608
  planReviewReplanCount: number | null;
609
609
  recoveryRetryCount: number | null;
610
+ sessionContentionHoldCount: number | null;
611
+ sessionContentionWaitReason: string | null;
610
612
  taskDoneRetryCount: number | null;
611
613
  bulkCompletionRefusalAt: string | null;
612
614
  workflowIrPin: string | null;
@@ -3503,6 +3505,15 @@ type AuthMaterialSnapshot = SharedSnapshotEnvelope<{
3503
3505
  providerAuth?: Record<string, ProviderAuthEntry>;
3504
3506
  }>;
3505
3507
 
3508
+ type IntegrationBranchSource = "configured" | "origin-head" | "well-known-local" | "current-head" | "sole-local" | "remote-tracking";
3509
+ interface IntegrationBranchReconciliation {
3510
+ repoRelPath: string;
3511
+ branch: string;
3512
+ source: IntegrationBranchSource | "fallback";
3513
+ action: "existing" | "created-from-remote" | "created-from-head" | "unavailable";
3514
+ reason?: string;
3515
+ }
3516
+
3506
3517
  type GitRepositoryEnsureOutcome = "existing" | "initialized";
3507
3518
  interface GitRepositoryCommandResult {
3508
3519
  stdout: string;
@@ -3517,6 +3528,11 @@ interface EnsureGitRepositoryOptions {
3517
3528
  runner?: GitRepositoryCommandRunner;
3518
3529
  timeoutMs?: number;
3519
3530
  }
3531
+ interface ProjectGitReadiness {
3532
+ outcome: GitRepositoryEnsureOutcome;
3533
+ integrationBranches: IntegrationBranchReconciliation[];
3534
+ }
3535
+ declare function ensureProjectGitReadiness(projectPath: string, options?: EnsureGitRepositoryOptions): Promise<ProjectGitReadiness>;
3520
3536
  declare function ensureGitRepositoryForProjectPath(projectPath: string, options?: EnsureGitRepositoryOptions): Promise<GitRepositoryEnsureOutcome>;
3521
3537
 
3522
3538
  type RunningAgentCountSource = (projectIds: readonly string[]) => Promise<Record<string, number>> | Record<string, number>;
@@ -3585,9 +3601,11 @@ interface EnsureProjectForPathResult {
3585
3601
  reattached: boolean;
3586
3602
  outcome: "existing" | "reattached" | "registered";
3587
3603
  gitRepository?: GitRepositoryEnsureOutcome;
3604
+ integrationBranches?: IntegrationBranchReconciliation[];
3588
3605
  }
3589
3606
  interface CentralCoreOptions {
3590
3607
  ensureGitRepositoryForProjectPath?: typeof ensureGitRepositoryForProjectPath;
3608
+ ensureProjectGitReadiness?: typeof ensureProjectGitReadiness;
3591
3609
  asyncLayer?: AsyncDataLayer;
3592
3610
  }
3593
3611
  declare class CentralCore extends EventEmitter<CentralCoreEvents> {
@@ -3597,7 +3615,7 @@ declare class CentralCore extends EventEmitter<CentralCoreEvents> {
3597
3615
  private nodeDiscovery;
3598
3616
  private discoveryConfig;
3599
3617
  private readonly discoveredNodes;
3600
- private readonly ensureGitRepositoryForProjectPath;
3618
+ private readonly ensureProjectGitReadiness;
3601
3619
  private ownedBackendShutdown;
3602
3620
  private ownedBackendReleaseConnections;
3603
3621
  private initializationPromise;
@@ -4326,6 +4344,16 @@ declare function reclaimWorkspaceLeaseAsync(store: TaskStore, input: {
4326
4344
  outcome: WorkspaceLeaseReclaimOutcome;
4327
4345
  }>;
4328
4346
 
4347
+ interface AppendRemediationStepsOptions {
4348
+ wave?: number;
4349
+ }
4350
+ interface AppendRemediationStepsResult {
4351
+ task: Task;
4352
+ appended: TaskStep[];
4353
+ appendedCount: number;
4354
+ wave: number;
4355
+ }
4356
+
4329
4357
  declare const TASK_DELETE_CALLER_KINDS: readonly ["operator-ui", "operator-cli", "agent-tool", "engine", "api-unattributed"];
4330
4358
  type TaskDeleteCallerKind = (typeof TASK_DELETE_CALLER_KINDS)[number];
4331
4359
  interface TaskDeleteAuditContext {
@@ -4960,6 +4988,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
4960
4988
  private pluginPostgresSchemaExecutor;
4961
4989
  private handoffMergeQueueFailureInjectorForTesting;
4962
4990
  get backendMode(): boolean;
4991
+ getProjectId(): string | null;
4963
4992
  watcher: FSWatcher | null;
4964
4993
  taskCache: Map<string, Task>;
4965
4994
  readonly laneCache: TaskLaneCache;
@@ -5152,7 +5181,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5152
5181
  leaseKey: string;
5153
5182
  owner: WorkspaceLeaseOwner;
5154
5183
  fenceToken: bigint;
5155
- }): Promise<"unknown" | "superseded" | "missing" | "valid">;
5184
+ }): Promise<"unknown" | "missing" | "superseded" | "valid">;
5156
5185
  recordWorkspaceLeaseFenceRef(input: {
5157
5186
  handle: WorkspaceLeaseHandle;
5158
5187
  fenceRefName: string;
@@ -5592,6 +5621,8 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5592
5621
  postReviewFixCount?: number | null;
5593
5622
  planReviewReplanCount?: number | null;
5594
5623
  recoveryRetryCount?: number | null;
5624
+ sessionContentionHoldCount?: number | null;
5625
+ sessionContentionWaitReason?: string | null;
5595
5626
  taskDoneRetryCount?: number | null;
5596
5627
  bulkCompletionRefusalAt?: string | null;
5597
5628
  workflowIrPin?: string | null;
@@ -5711,6 +5742,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5711
5742
  claimNextToolFailureRetry(taskId: string, expectedCursor: number, maxRetries: number): Promise<ToolFailureRetryClaim>;
5712
5743
  markToolFailureRetryExhaustedAudit(taskId: string): Promise<boolean>;
5713
5744
  updateTaskAtomic(id: string, updater: (current: Task) => Parameters<TaskStore["updateTask"]>[1] | null | undefined | Promise<Parameters<TaskStore["updateTask"]>[1] | null | undefined>, runContext?: RunMutationContext): Promise<Task>;
5745
+ appendRemediationSteps(taskId: string, steps: readonly TaskStep[], options?: AppendRemediationStepsOptions): Promise<AppendRemediationStepsResult>;
5714
5746
  dismissAiMergeReviewFinding(taskId: string, findingId: string, reason: string, actor?: string): Promise<Task>;
5715
5747
  linkTaskRecommendation(id: string, recommendationId: string, createdTaskId: string, completeColumns?: ReadonlySet<string>): Promise<Task>;
5716
5748
  normalizeWorkspaceTaskWorktreeMetadata(id: string): Promise<Task>;
@@ -5815,6 +5847,7 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5815
5847
  }): Promise<MergeRequestRecord>;
5816
5848
  getMergeRequestRecord(taskId: string): MergeRequestRecord | null;
5817
5849
  getMergeRequestRecordAsync(taskId: string): Promise<MergeRequestRecord | null>;
5850
+ getMergeRequestRecordsAsync(taskIds: readonly string[]): Promise<Map<string, MergeRequestRecord>>;
5818
5851
  projectMergeRequestToWorkflowWorkItem(taskId: string, opts?: MergeRequestWorkflowProjectionOptions): Promise<WorkflowWorkItem | null>;
5819
5852
  createCompletionHandoffWorkflowWork(task: Pick<Task, "id" | "autoMerge" | "priority">, opts?: {
5820
5853
  runId?: string;
@@ -5849,6 +5882,9 @@ declare class TaskStore extends EventEmitter<TaskStoreEvents> {
5849
5882
  listWorkflowWorkItemsForTask(taskId: string, opts?: {
5850
5883
  kinds?: WorkflowWorkItemKind[];
5851
5884
  }): Promise<WorkflowWorkItem[]>;
5885
+ listWorkflowWorkItemsForTasks(taskIds: readonly string[], opts?: {
5886
+ kinds?: WorkflowWorkItemKind[];
5887
+ }): Promise<Map<string, WorkflowWorkItem[]>>;
5852
5888
  listWorkflowWorkItemsForTaskSync(taskId: string, opts?: {
5853
5889
  kinds?: WorkflowWorkItemKind[];
5854
5890
  }): WorkflowWorkItem[];
@@ -6833,7 +6869,7 @@ declare const ANTHROPIC_AUTH_PREFERENCES: readonly ["api-key", "subscription"];
6833
6869
  type AnthropicAuthPreference = (typeof ANTHROPIC_AUTH_PREFERENCES)[number];
6834
6870
  declare const THEME_MODES: readonly ["dark", "light", "system"];
6835
6871
  type ThemeMode = (typeof THEME_MODES)[number];
6836
- 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"];
6872
+ 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", "iceberg", "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"];
6837
6873
  type ColorTheme = (typeof COLOR_THEMES)[number];
6838
6874
  declare const SUPPORTED_LOCALES: readonly ["en", "zh-CN", "zh-TW", "fr", "es", "ko", "pt-BR"];
6839
6875
  type Locale = (typeof SUPPORTED_LOCALES)[number];
@@ -6962,6 +6998,16 @@ type StepStatus = "pending" | "in-progress" | "done" | "skipped";
6962
6998
  interface TaskStep {
6963
6999
  name: string;
6964
7000
  status: StepStatus;
7001
+ remediation?: {
7002
+ wave: number;
7003
+ gate: string;
7004
+ gateStepId: string;
7005
+ findingId?: string;
7006
+ filePath?: string;
7007
+ line?: number;
7008
+ detail?: string;
7009
+ declaredFiles?: string[];
7010
+ };
6965
7011
  dependsOn?: number[];
6966
7012
  }
6967
7013
  interface RunMutationContext {
@@ -7804,6 +7850,8 @@ interface Task {
7804
7850
  postReviewFixCount?: number;
7805
7851
  planReviewReplanCount?: number;
7806
7852
  recoveryRetryCount?: number;
7853
+ sessionContentionHoldCount?: number;
7854
+ sessionContentionWaitReason?: string;
7807
7855
  taskDoneRetryCount?: number;
7808
7856
  bulkCompletionRefusalAt?: string;
7809
7857
  workflowIrPin?: string;
@@ -8206,6 +8254,7 @@ interface GlobalSettings {
8206
8254
  defaultProjectId?: string;
8207
8255
  setupComplete?: boolean;
8208
8256
  cliOnboardingCompletedAt?: string;
8257
+ githubStarPromptDismissedAt?: string;
8209
8258
  favoriteProviders?: string[];
8210
8259
  favoriteModels?: string[];
8211
8260
  openrouterModelSync?: boolean;
@@ -8240,7 +8289,6 @@ interface GlobalSettings {
8240
8289
  autoUpdateAndRestart?: boolean;
8241
8290
  autoUpdateEnabled?: boolean;
8242
8291
  autoRestartAfterUpdate?: boolean;
8243
- autoReloadOnVersionChange?: boolean;
8244
8292
  modelOnboardingComplete?: boolean;
8245
8293
  useClaudeCli?: boolean;
8246
8294
  useDroidCli?: boolean;
@@ -8686,6 +8734,12 @@ interface ProjectSettings {
8686
8734
  insightExtractionMinIntervalMs?: number;
8687
8735
  memoryEnabled?: boolean;
8688
8736
  memoryBackendType?: string;
8737
+ stashUrl?: string;
8738
+ stashApiKey?: string;
8739
+ stashVectorSearch?: boolean;
8740
+ executorSessionCaptureEnabled?: boolean;
8741
+ executorSessionCaptureMaxEvents?: number;
8742
+ executorSessionCaptureIncludeStatus?: boolean;
8689
8743
  memoryAutoSummarizeEnabled?: boolean;
8690
8744
  memoryAutoSummarizeThresholdChars?: number;
8691
8745
  memoryAutoSummarizeSchedule?: string;