@runfusion/fusion 0.77.0-beta.2 → 0.77.0-beta.4

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 (173) hide show
  1. package/dist/bin.js +12324 -8618
  2. package/dist/child-process-worker.js +8252 -6106
  3. package/dist/client/.vite/manifest.json +294 -267
  4. package/dist/client/assets/{AgentDetailView-Dew3af1O.js → AgentDetailView-CH6GtXl9.js} +3 -3
  5. package/dist/client/assets/{AgentPermissionPolicyEditor-CxPQffiY.js → AgentPermissionPolicyEditor-YTEpMhUx.js} +1 -1
  6. package/dist/client/assets/{AgentsView-Cr4LDGdt.js → AgentsView-XOHHDo4a.js} +4 -4
  7. package/dist/client/assets/ChatView-gH7QX3TI.js +13 -0
  8. package/dist/client/assets/{CommandCenter-DCC90LOP.js → CommandCenter-BsH-R15f.js} +3 -3
  9. package/dist/client/assets/{DevServerView-B5b520w6.js → DevServerView-CKOa-lkc.js} +1 -1
  10. package/dist/client/assets/{DirectoryPicker-1JvRd5mC.js → DirectoryPicker-DHUYTE-j.js} +1 -1
  11. package/dist/client/assets/DocumentsView-BPzrxeP-.js +1 -0
  12. package/dist/client/assets/{EvalsView-a3LhgRSo.js → EvalsView-DojCiv47.js} +1 -1
  13. package/dist/client/assets/{ExperimentalAgentOnboardingModal-vdVa8h7F.js → ExperimentalAgentOnboardingModal-DuurZ8qe.js} +1 -1
  14. package/dist/client/assets/{GoalsView-Dz2o91fd.js → GoalsView-DDWPXcG1.js} +1 -1
  15. package/dist/client/assets/{InsightsView-De3R_46d.js → InsightsView-CgkMOD1A.js} +3 -3
  16. package/dist/client/assets/MemoryView-Cj49_z7O.js +3 -0
  17. package/dist/client/assets/{PiExtensionsManager-C9JABO_4.js → PiExtensionsManager-B_rRJiOd.js} +1 -1
  18. package/dist/client/assets/PluginManager-Dxwi88oY.js +1 -0
  19. package/dist/client/assets/{PullRequestView-DT8vTeVi.js → PullRequestView-z-5v2hQT.js} +2 -2
  20. package/dist/client/assets/ReportModal-DmOPEYWp.js +21 -0
  21. package/dist/client/assets/ReportModal-lzN_xrnM.css +1 -0
  22. package/dist/client/assets/{ResearchView-cNsjYu8F.js → ResearchView-D90Jbzbx.js} +2 -2
  23. package/dist/client/assets/{SecretsView-BAmf7KyS.js → SecretsView-CSyjZl5L.js} +1 -1
  24. package/dist/client/assets/SessionTerminal-Bwb8nGmU.js +2 -0
  25. package/dist/client/assets/SettingsModal-BAzmMjr9.js +21 -0
  26. package/dist/client/assets/SettingsModal-C5ic1ls7.css +1 -0
  27. package/dist/client/assets/{SettingsModal-C_9RiEI7.js → SettingsModal-CJof1Ett.js} +1 -1
  28. package/dist/client/assets/{SettingsTextareaRow-D8RHSj8b.js → SettingsTextareaRow-BYchnHfW.js} +1 -1
  29. package/dist/client/assets/SetupWizardModal-NqV-erVf.js +2 -0
  30. package/dist/client/assets/{SkillsView-DyeCwYit.js → SkillsView-BUrkIJ-p.js} +1 -1
  31. package/dist/client/assets/{WorkflowNodeEditor-C5Jc9w_A.js → WorkflowNodeEditor-DcPk2A1Z.js} +1 -1
  32. package/dist/client/assets/{agent-import-generation-SCPNeF25.js → agent-import-generation-X16OLfrL.js} +1 -1
  33. package/dist/client/assets/{agentsOrgChartLayout-CqKtNCjy.js → agentsOrgChartLayout-BhPIXckU.js} +1 -1
  34. package/dist/client/assets/app-B-TfWH9b.js +5 -0
  35. package/dist/client/assets/app-B2RDV_-t.js +13 -0
  36. package/dist/client/assets/app-CDo0mF2S.js +5 -0
  37. package/dist/client/assets/app-Cc18kAQS.js +13 -0
  38. package/dist/client/assets/app-DFF79EUn.js +13 -0
  39. package/dist/client/assets/app-DSeFHxgj.js +13 -0
  40. package/dist/client/assets/app-Ducr0y6r.js +13 -0
  41. package/dist/client/assets/{architectureDiagram-3BPJPVTR-Cz2HYn0b.js → architectureDiagram-3BPJPVTR-WArMtdqy.js} +1 -1
  42. package/dist/client/assets/{blockDiagram-GPEHLZMM-IimJVscG.js → blockDiagram-GPEHLZMM-emScogdV.js} +1 -1
  43. package/dist/client/assets/{c4Diagram-AAUBKEIU-C-xii7zn.js → c4Diagram-AAUBKEIU-CBY7-E0T.js} +1 -1
  44. package/dist/client/assets/channel-CP2ySYs0.js +1 -0
  45. package/dist/client/assets/{chunk-2J33WTMH-DQ-9Xccu.js → chunk-2J33WTMH-Bcai1sOm.js} +1 -1
  46. package/dist/client/assets/{chunk-4BX2VUAB-DmdAX9Bx.js → chunk-4BX2VUAB-hjiKRusj.js} +1 -1
  47. package/dist/client/assets/{chunk-55IACEB6-IF2bk5IL.js → chunk-55IACEB6-DpO9nIb0.js} +1 -1
  48. package/dist/client/assets/{chunk-727SXJPM-AeYpIzVu.js → chunk-727SXJPM-B9JanA0o.js} +1 -1
  49. package/dist/client/assets/{chunk-AQP2D5EJ-DV942DD9.js → chunk-AQP2D5EJ-D6zdnEUE.js} +1 -1
  50. package/dist/client/assets/{chunk-FMBD7UC4-Bt_riVlZ.js → chunk-FMBD7UC4-CRkrJ51d.js} +1 -1
  51. package/dist/client/assets/{chunk-ND2GUHAM-CbyjNbXR.js → chunk-ND2GUHAM-BLQsKt7a.js} +1 -1
  52. package/dist/client/assets/{chunk-QZHKN3VN-DqiRniYQ.js → chunk-QZHKN3VN-MCOlJ723.js} +1 -1
  53. package/dist/client/assets/classDiagram-4FO5ZUOK-DKkOBtzM.js +1 -0
  54. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DKkOBtzM.js +1 -0
  55. package/dist/client/assets/{cose-bilkent-S5V4N54A-UCvthviL.js → cose-bilkent-S5V4N54A-Cv1XmKKG.js} +1 -1
  56. package/dist/client/assets/{dagre-BM42HDAG-DnMlT1Oi.js → dagre-BM42HDAG-flnNS_RW.js} +1 -1
  57. package/dist/client/assets/{dashboard-view-C9D0aoRW.js → dashboard-view-CC1aH-lp.js} +1 -1
  58. package/dist/client/assets/{dashboard-view-myjM9tr8.js → dashboard-view-CrV-rL9Q.js} +1 -1
  59. package/dist/client/assets/{dashboard-view-JysoyDRX.js → dashboard-view-DEAYb_TZ.js} +1 -1
  60. package/dist/client/assets/{dashboard-view-Cz0sp2Wl.js → dashboard-view-Dz7kqcJc.js} +1 -1
  61. package/dist/client/assets/{diagram-2AECGRRQ-BYFiqXGw.js → diagram-2AECGRRQ-Z3S7b_6_.js} +1 -1
  62. package/dist/client/assets/{diagram-5GNKFQAL-DZU3pSYq.js → diagram-5GNKFQAL-BAZHdMFq.js} +1 -1
  63. package/dist/client/assets/{diagram-KO2AKTUF-0ybdKuMm.js → diagram-KO2AKTUF-C2y3S8F0.js} +1 -1
  64. package/dist/client/assets/{diagram-LMA3HP47-Rxbgnbsp.js → diagram-LMA3HP47-Bfz0_IvT.js} +1 -1
  65. package/dist/client/assets/{diagram-OG6HWLK6-BAU_hTeV.js → diagram-OG6HWLK6-BBmSQsTI.js} +1 -1
  66. package/dist/client/assets/{erDiagram-TEJ5UH35-zr8HrwTt.js → erDiagram-TEJ5UH35-DnpdQi66.js} +1 -1
  67. package/dist/client/assets/{flowDiagram-I6XJVG4X-CrTw0iFw.js → flowDiagram-I6XJVG4X-IybTR_zf.js} +1 -1
  68. package/dist/client/assets/{folder-open-DnAlsXXn.js → folder-open-Dntm63x4.js} +1 -1
  69. package/dist/client/assets/{ganttDiagram-6RSMTGT7-CCORsxxz.js → ganttDiagram-6RSMTGT7-DEQOe2E9.js} +1 -1
  70. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-C07wWSjj.js → gitGraphDiagram-PVQCEYII-BOKc-h63.js} +1 -1
  71. package/dist/client/assets/index-DXpztECA.css +1 -0
  72. package/dist/client/assets/index-I32FijPT.js +2821 -0
  73. package/dist/client/assets/{infoDiagram-5YYISTIA-hAeccD_4.js → infoDiagram-5YYISTIA-LqaYIdbj.js} +1 -1
  74. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-WLCzv-NH.js → ishikawaDiagram-YF4QCWOH-a8qd512s.js} +1 -1
  75. package/dist/client/assets/{journeyDiagram-JHISSGLW-ClnasNhy.js → journeyDiagram-JHISSGLW-BgoNyeiy.js} +1 -1
  76. package/dist/client/assets/{kanban-definition-UN3LZRKU-CAuARhUz.js → kanban-definition-UN3LZRKU-Bqwow7D3.js} +1 -1
  77. package/dist/client/assets/{mermaid.core-Bh02RvfX.js → mermaid.core-B2zD934i.js} +4 -4
  78. package/dist/client/assets/{mindmap-definition-RKZ34NQL-KNTlbW4V.js → mindmap-definition-RKZ34NQL-CCTOigWu.js} +1 -1
  79. package/dist/client/assets/{pieDiagram-4H26LBE5-BouAfBEw.js → pieDiagram-4H26LBE5-Bq5DtXKR.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-CC8Ur3Cy.js → puzzle-VhTPiCit.js} +1 -1
  86. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-wTdkCUJU.js → quadrantDiagram-W4KKPZXB-CGMP3nUx.js} +1 -1
  87. package/dist/client/assets/{requirementDiagram-4Y6WPE33-BnjY4Tc_.js → requirementDiagram-4Y6WPE33-Ckeu_szu.js} +1 -1
  88. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-C-QsS08u.js → sankeyDiagram-5OEKKPKP-SWbBDD4d.js} +1 -1
  89. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-DD36MILE.js → sequenceDiagram-3UESZ5HK-CiJrmL_G.js} +1 -1
  90. package/dist/client/assets/{shield-alert-DcXc56Fy.js → shield-alert-BBDlP6A5.js} +1 -1
  91. package/dist/client/assets/{standing-instructions-template-BF5y1BLz.js → standing-instructions-template-viu_kgDX.js} +2 -2
  92. package/dist/client/assets/{stateDiagram-AJRCARHV-WTq1wQr1.js → stateDiagram-AJRCARHV-DTCzK5Gt.js} +1 -1
  93. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-eILJdjII.js → stateDiagram-v2-BHNVJYJU-BIGAwFTT.js} +1 -1
  94. package/dist/client/assets/{timeline-definition-PNZ67QCA-PRNwI0NR.js → timeline-definition-PNZ67QCA-BQZEFEug.js} +1 -1
  95. package/dist/client/assets/{upload-qH_64O-B.js → upload-D5w3Ehwp.js} +1 -1
  96. package/dist/client/assets/{useDiscoveredSkillsCache-C-GPCNaO.js → useDiscoveredSkillsCache-D6zMSIaS.js} +1 -1
  97. package/dist/client/assets/{users-D2UesRE4.js → users-Bohihi_o.js} +1 -1
  98. package/dist/client/assets/{vennDiagram-CIIHVFJN-CG2Z4T4O.js → vennDiagram-CIIHVFJN-DnHguEv8.js} +1 -1
  99. package/dist/client/assets/{wardley-L42UT6IY-gO_fGvF9.js → wardley-L42UT6IY-BOqYltGN.js} +1 -1
  100. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-BkyNpjUb.js → wardleyDiagram-YWT4CUSO-Re0Ery2M.js} +1 -1
  101. package/dist/client/assets/{xychartDiagram-2RQKCTM6-CMlZsiPq.js → xychartDiagram-2RQKCTM6-CnVq21b2.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 +9275 -6726
  107. package/dist/pi-claude-cli/package.json +1 -1
  108. package/dist/pi-claude-cli/src/__tests__/event-bridge.test.ts +29 -1
  109. package/dist/pi-claude-cli/src/event-bridge.ts +10 -4
  110. package/dist/plugin-sdk/index.d.ts +25 -3
  111. package/dist/plugin-sdk/index.js +10 -1
  112. package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +12 -2
  113. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  114. package/dist/plugins/fusion-plugin-claude-runtime/bundled.js +12 -2
  115. package/dist/plugins/fusion-plugin-claude-runtime/package.json +1 -1
  116. package/dist/plugins/fusion-plugin-cli-printing-press/bundled.js +10 -1
  117. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  118. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +10 -1
  119. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  120. package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +10 -1
  121. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  122. package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +10 -1
  123. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  124. package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +12 -2
  125. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  126. package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +12 -2
  127. package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
  128. package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +10 -1
  129. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  130. package/dist/plugins/fusion-plugin-linear-import/bundled.js +10 -1
  131. package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
  132. package/dist/plugins/fusion-plugin-omp-runtime/bundled.js +12 -2
  133. package/dist/plugins/fusion-plugin-omp-runtime/package.json +1 -1
  134. package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +10 -1
  135. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  136. package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +10 -1
  137. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  138. package/dist/plugins/fusion-plugin-quality/bundled.js +10 -1
  139. package/dist/plugins/fusion-plugin-quality/package.json +1 -1
  140. package/dist/plugins/fusion-plugin-reports/bundled.js +10 -1
  141. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  142. package/dist/plugins/fusion-plugin-roadmap/bundled.js +10 -1
  143. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  144. package/dist/plugins/fusion-plugin-todos/bundled.js +10 -1
  145. package/dist/plugins/fusion-plugin-todos/package.json +1 -1
  146. package/dist/plugins/fusion-plugin-whatsapp-chat/bundled.js +10 -1
  147. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  148. package/package.json +1 -1
  149. package/skill/fusion/SKILL.md +1 -1
  150. package/skill/fusion/references/extension-tools.md +17 -0
  151. package/skill/fusion/references/fusion-capabilities.md +2 -0
  152. package/dist/client/assets/ChatView-cNYtYx05.js +0 -13
  153. package/dist/client/assets/DocumentsView-ksK9f7xt.js +0 -1
  154. package/dist/client/assets/MemoryView-Cagk2wZG.js +0 -3
  155. package/dist/client/assets/PluginManager-D2csmdQa.js +0 -1
  156. package/dist/client/assets/ReportModal-M3uh98sc.css +0 -1
  157. package/dist/client/assets/ReportModal-YMP6V4vu.js +0 -21
  158. package/dist/client/assets/SessionTerminal-BjGcxq22.js +0 -2
  159. package/dist/client/assets/SettingsModal-C0FY8MPW.css +0 -1
  160. package/dist/client/assets/SettingsModal-DLfy2e_5.js +0 -21
  161. package/dist/client/assets/SetupWizardModal-DRJ96pHQ.js +0 -2
  162. package/dist/client/assets/app-BgpuMvTU.js +0 -13
  163. package/dist/client/assets/app-BlexHhbW.js +0 -13
  164. package/dist/client/assets/app-BsuUOR0P.js +0 -13
  165. package/dist/client/assets/app-DQVOujmO.js +0 -13
  166. package/dist/client/assets/app-DjyTRx1N.js +0 -5
  167. package/dist/client/assets/app-Dniggype.js +0 -13
  168. package/dist/client/assets/app-EV-lyZ0T.js +0 -5
  169. package/dist/client/assets/channel-D-UHgx8G.js +0 -1
  170. package/dist/client/assets/classDiagram-4FO5ZUOK-Do-8MdAc.js +0 -1
  171. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Do-8MdAc.js +0 -1
  172. package/dist/client/assets/index-B_z7OKl4.js +0 -2818
  173. package/dist/client/assets/index-DPo-IAb2.css +0 -1
@@ -8742,7 +8742,7 @@ import { randomUUID, randomBytes, createHash as createHash2 } from "node:crypto"
8742
8742
  import { EventEmitter } from "node:events";
8743
8743
 
8744
8744
  // ../core/src/types/board/board.ts
8745
- var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
8745
+ var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
8746
8746
 
8747
8747
  // ../core/src/types/ui/execution-and-ui.ts
8748
8748
  var STALE_HIGH_FANOUT_BLOCKER_AGE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -9180,6 +9180,8 @@ var DEFAULT_GLOBAL_SETTINGS = {
9180
9180
  var DEFAULT_PROJECT_SETTINGS = {
9181
9181
  // FNXC:TaskRecommendations 2026-08-08-05:02: completion follows-ups stay bounded by default; 0 disables writing them.
9182
9182
  maxRecommendationsPerTask: 3,
9183
+ // FNXC:TaskRecommendations 2026-08-19-13:05: explicit recommendation evaluation is opt-in and only applies while the positive cap enables capture; relevance always outranks count.
9184
+ requireTaskRecommendations: false,
9183
9185
  // FNXC:TaskRecommendations 2026-08-13-03:56: surface completed-task proposals by default; operators can suppress the notice without suppressing capture.
9184
9186
  recommendationMailboxNoticeEnabled: true,
9185
9187
  globalPause: false,
@@ -9291,6 +9293,11 @@ var DEFAULT_PROJECT_SETTINGS = {
9291
9293
  */
9292
9294
  showCostBadgeOnCards: false,
9293
9295
  /*
9296
+ FNXC:ChatMessageLayout 2026-08-18-20:27:
9297
+ The project preference applies one reversible layout choice to every standard and task chat surface. Explicitly seed the historical bubbles presentation so upgraded projects preserve their existing UI.
9298
+ */
9299
+ chatMessageLayout: "bubbles",
9300
+ /*
9294
9301
  FNXC:TaskDetailActivityFirst 2026-06-30-23:59:
9295
9302
  Project task-detail defaults are Activity-first unless this opt-in is true. Keeping the default false preserves explicit deep-link ids while making omitted non-done task opens land on Activity → Live.
9296
9303
  */
@@ -9499,6 +9506,8 @@ var DEFAULT_PROJECT_SETTINGS = {
9499
9506
  not variant-detected and unsupported input, including Japanese, remains English.
9500
9507
  */
9501
9508
  taskDefinitionInInputLanguage: false,
9509
+ /* FNXC:TaskOutputLanguage 2026-08-19-14:56: Undefined preserves legacy true compatibility; the resolver supplies English for fresh projects. */
9510
+ taskOutputLanguage: void 0,
9502
9511
  useAiMergeCommitSummary: true,
9503
9512
  // Title-summarizer model lanes stay project-scoped (not moved in U4).
9504
9513
  titleSummarizerProvider: void 0,
@@ -36960,7 +36969,8 @@ function normalizeStreamingDelta(previousText, nextDelta) {
36960
36969
  const previousChar = previousText.slice(-1);
36961
36970
  const nextChar = nextDelta[0] ?? "";
36962
36971
  if (/\s/.test(previousChar) || /\s/.test(nextChar)) return nextDelta;
36963
- if (/[.!?]/.test(previousChar) && /[A-Z0-9"'([]/.test(nextChar)) {
36972
+ const isNumericTokenContinuation = previousChar === "." && /\d/.test(previousText.slice(-2, -1)) && /\d/.test(nextChar);
36973
+ if (!isNumericTokenContinuation && /[.!?]/.test(previousChar) && /[A-Z0-9"'([]/.test(nextChar)) {
36964
36974
  return ` ${nextDelta}`;
36965
36975
  }
36966
36976
  return nextDelta;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/grok-runtime",
3
- "version": "0.2.14-beta.2",
3
+ "version": "0.2.14-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -8745,7 +8745,7 @@ import { randomUUID, randomBytes, createHash as createHash2 } from "node:crypto"
8745
8745
  import { EventEmitter } from "node:events";
8746
8746
 
8747
8747
  // ../core/src/types/board/board.ts
8748
- var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
8748
+ var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
8749
8749
 
8750
8750
  // ../core/src/types/ui/execution-and-ui.ts
8751
8751
  var STALE_HIGH_FANOUT_BLOCKER_AGE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -9183,6 +9183,8 @@ var DEFAULT_GLOBAL_SETTINGS = {
9183
9183
  var DEFAULT_PROJECT_SETTINGS = {
9184
9184
  // FNXC:TaskRecommendations 2026-08-08-05:02: completion follows-ups stay bounded by default; 0 disables writing them.
9185
9185
  maxRecommendationsPerTask: 3,
9186
+ // FNXC:TaskRecommendations 2026-08-19-13:05: explicit recommendation evaluation is opt-in and only applies while the positive cap enables capture; relevance always outranks count.
9187
+ requireTaskRecommendations: false,
9186
9188
  // FNXC:TaskRecommendations 2026-08-13-03:56: surface completed-task proposals by default; operators can suppress the notice without suppressing capture.
9187
9189
  recommendationMailboxNoticeEnabled: true,
9188
9190
  globalPause: false,
@@ -9294,6 +9296,11 @@ var DEFAULT_PROJECT_SETTINGS = {
9294
9296
  */
9295
9297
  showCostBadgeOnCards: false,
9296
9298
  /*
9299
+ FNXC:ChatMessageLayout 2026-08-18-20:27:
9300
+ The project preference applies one reversible layout choice to every standard and task chat surface. Explicitly seed the historical bubbles presentation so upgraded projects preserve their existing UI.
9301
+ */
9302
+ chatMessageLayout: "bubbles",
9303
+ /*
9297
9304
  FNXC:TaskDetailActivityFirst 2026-06-30-23:59:
9298
9305
  Project task-detail defaults are Activity-first unless this opt-in is true. Keeping the default false preserves explicit deep-link ids while making omitted non-done task opens land on Activity → Live.
9299
9306
  */
@@ -9502,6 +9509,8 @@ var DEFAULT_PROJECT_SETTINGS = {
9502
9509
  not variant-detected and unsupported input, including Japanese, remains English.
9503
9510
  */
9504
9511
  taskDefinitionInInputLanguage: false,
9512
+ /* FNXC:TaskOutputLanguage 2026-08-19-14:56: Undefined preserves legacy true compatibility; the resolver supplies English for fresh projects. */
9513
+ taskOutputLanguage: void 0,
9505
9514
  useAiMergeCommitSummary: true,
9506
9515
  // Title-summarizer model lanes stay project-scoped (not moved in U4).
9507
9516
  titleSummarizerProvider: void 0,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/hermes-runtime",
3
- "version": "0.2.86-beta.2",
3
+ "version": "0.2.86-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -8742,7 +8742,7 @@ import { randomUUID, randomBytes, createHash as createHash2 } from "node:crypto"
8742
8742
  import { EventEmitter } from "node:events";
8743
8743
 
8744
8744
  // ../core/src/types/board/board.ts
8745
- var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
8745
+ var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
8746
8746
 
8747
8747
  // ../core/src/types/ui/execution-and-ui.ts
8748
8748
  var STALE_HIGH_FANOUT_BLOCKER_AGE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -9180,6 +9180,8 @@ var DEFAULT_GLOBAL_SETTINGS = {
9180
9180
  var DEFAULT_PROJECT_SETTINGS = {
9181
9181
  // FNXC:TaskRecommendations 2026-08-08-05:02: completion follows-ups stay bounded by default; 0 disables writing them.
9182
9182
  maxRecommendationsPerTask: 3,
9183
+ // FNXC:TaskRecommendations 2026-08-19-13:05: explicit recommendation evaluation is opt-in and only applies while the positive cap enables capture; relevance always outranks count.
9184
+ requireTaskRecommendations: false,
9183
9185
  // FNXC:TaskRecommendations 2026-08-13-03:56: surface completed-task proposals by default; operators can suppress the notice without suppressing capture.
9184
9186
  recommendationMailboxNoticeEnabled: true,
9185
9187
  globalPause: false,
@@ -9291,6 +9293,11 @@ var DEFAULT_PROJECT_SETTINGS = {
9291
9293
  */
9292
9294
  showCostBadgeOnCards: false,
9293
9295
  /*
9296
+ FNXC:ChatMessageLayout 2026-08-18-20:27:
9297
+ The project preference applies one reversible layout choice to every standard and task chat surface. Explicitly seed the historical bubbles presentation so upgraded projects preserve their existing UI.
9298
+ */
9299
+ chatMessageLayout: "bubbles",
9300
+ /*
9294
9301
  FNXC:TaskDetailActivityFirst 2026-06-30-23:59:
9295
9302
  Project task-detail defaults are Activity-first unless this opt-in is true. Keeping the default false preserves explicit deep-link ids while making omitted non-done task opens land on Activity → Live.
9296
9303
  */
@@ -9499,6 +9506,8 @@ var DEFAULT_PROJECT_SETTINGS = {
9499
9506
  not variant-detected and unsupported input, including Japanese, remains English.
9500
9507
  */
9501
9508
  taskDefinitionInInputLanguage: false,
9509
+ /* FNXC:TaskOutputLanguage 2026-08-19-14:56: Undefined preserves legacy true compatibility; the resolver supplies English for fresh projects. */
9510
+ taskOutputLanguage: void 0,
9502
9511
  useAiMergeCommitSummary: true,
9503
9512
  // Title-summarizer model lanes stay project-scoped (not moved in U4).
9504
9513
  titleSummarizerProvider: void 0,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/linear-import",
3
- "version": "0.1.18-beta.2",
3
+ "version": "0.1.18-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -8742,7 +8742,7 @@ import { randomUUID, randomBytes, createHash as createHash2 } from "node:crypto"
8742
8742
  import { EventEmitter } from "node:events";
8743
8743
 
8744
8744
  // ../core/src/types/board/board.ts
8745
- var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
8745
+ var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
8746
8746
 
8747
8747
  // ../core/src/types/ui/execution-and-ui.ts
8748
8748
  var STALE_HIGH_FANOUT_BLOCKER_AGE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -9180,6 +9180,8 @@ var DEFAULT_GLOBAL_SETTINGS = {
9180
9180
  var DEFAULT_PROJECT_SETTINGS = {
9181
9181
  // FNXC:TaskRecommendations 2026-08-08-05:02: completion follows-ups stay bounded by default; 0 disables writing them.
9182
9182
  maxRecommendationsPerTask: 3,
9183
+ // FNXC:TaskRecommendations 2026-08-19-13:05: explicit recommendation evaluation is opt-in and only applies while the positive cap enables capture; relevance always outranks count.
9184
+ requireTaskRecommendations: false,
9183
9185
  // FNXC:TaskRecommendations 2026-08-13-03:56: surface completed-task proposals by default; operators can suppress the notice without suppressing capture.
9184
9186
  recommendationMailboxNoticeEnabled: true,
9185
9187
  globalPause: false,
@@ -9291,6 +9293,11 @@ var DEFAULT_PROJECT_SETTINGS = {
9291
9293
  */
9292
9294
  showCostBadgeOnCards: false,
9293
9295
  /*
9296
+ FNXC:ChatMessageLayout 2026-08-18-20:27:
9297
+ The project preference applies one reversible layout choice to every standard and task chat surface. Explicitly seed the historical bubbles presentation so upgraded projects preserve their existing UI.
9298
+ */
9299
+ chatMessageLayout: "bubbles",
9300
+ /*
9294
9301
  FNXC:TaskDetailActivityFirst 2026-06-30-23:59:
9295
9302
  Project task-detail defaults are Activity-first unless this opt-in is true. Keeping the default false preserves explicit deep-link ids while making omitted non-done task opens land on Activity → Live.
9296
9303
  */
@@ -9499,6 +9506,8 @@ var DEFAULT_PROJECT_SETTINGS = {
9499
9506
  not variant-detected and unsupported input, including Japanese, remains English.
9500
9507
  */
9501
9508
  taskDefinitionInInputLanguage: false,
9509
+ /* FNXC:TaskOutputLanguage 2026-08-19-14:56: Undefined preserves legacy true compatibility; the resolver supplies English for fresh projects. */
9510
+ taskOutputLanguage: void 0,
9502
9511
  useAiMergeCommitSummary: true,
9503
9512
  // Title-summarizer model lanes stay project-scoped (not moved in U4).
9504
9513
  titleSummarizerProvider: void 0,
@@ -36978,7 +36987,8 @@ function normalizeStreamingDelta(previousText, nextDelta) {
36978
36987
  const previousChar = previousText.slice(-1);
36979
36988
  const nextChar = nextDelta[0] ?? "";
36980
36989
  if (/\s/.test(previousChar) || /\s/.test(nextChar)) return nextDelta;
36981
- if (/[.!?]/.test(previousChar) && /[A-Z0-9"'([]/.test(nextChar)) {
36990
+ const isNumericTokenContinuation = previousChar === "." && /\d/.test(previousText.slice(-2, -1)) && /\d/.test(nextChar);
36991
+ if (!isNumericTokenContinuation && /[.!?]/.test(previousChar) && /[A-Z0-9"'([]/.test(nextChar)) {
36982
36992
  return ` ${nextDelta}`;
36983
36993
  }
36984
36994
  return nextDelta;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/omp-runtime",
3
- "version": "0.1.11-beta.2",
3
+ "version": "0.1.11-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -8742,7 +8742,7 @@ import { randomUUID, randomBytes, createHash as createHash2 } from "node:crypto"
8742
8742
  import { EventEmitter } from "node:events";
8743
8743
 
8744
8744
  // ../core/src/types/board/board.ts
8745
- var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
8745
+ var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
8746
8746
 
8747
8747
  // ../core/src/types/ui/execution-and-ui.ts
8748
8748
  var STALE_HIGH_FANOUT_BLOCKER_AGE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -9180,6 +9180,8 @@ var DEFAULT_GLOBAL_SETTINGS = {
9180
9180
  var DEFAULT_PROJECT_SETTINGS = {
9181
9181
  // FNXC:TaskRecommendations 2026-08-08-05:02: completion follows-ups stay bounded by default; 0 disables writing them.
9182
9182
  maxRecommendationsPerTask: 3,
9183
+ // FNXC:TaskRecommendations 2026-08-19-13:05: explicit recommendation evaluation is opt-in and only applies while the positive cap enables capture; relevance always outranks count.
9184
+ requireTaskRecommendations: false,
9183
9185
  // FNXC:TaskRecommendations 2026-08-13-03:56: surface completed-task proposals by default; operators can suppress the notice without suppressing capture.
9184
9186
  recommendationMailboxNoticeEnabled: true,
9185
9187
  globalPause: false,
@@ -9291,6 +9293,11 @@ var DEFAULT_PROJECT_SETTINGS = {
9291
9293
  */
9292
9294
  showCostBadgeOnCards: false,
9293
9295
  /*
9296
+ FNXC:ChatMessageLayout 2026-08-18-20:27:
9297
+ The project preference applies one reversible layout choice to every standard and task chat surface. Explicitly seed the historical bubbles presentation so upgraded projects preserve their existing UI.
9298
+ */
9299
+ chatMessageLayout: "bubbles",
9300
+ /*
9294
9301
  FNXC:TaskDetailActivityFirst 2026-06-30-23:59:
9295
9302
  Project task-detail defaults are Activity-first unless this opt-in is true. Keeping the default false preserves explicit deep-link ids while making omitted non-done task opens land on Activity → Live.
9296
9303
  */
@@ -9499,6 +9506,8 @@ var DEFAULT_PROJECT_SETTINGS = {
9499
9506
  not variant-detected and unsupported input, including Japanese, remains English.
9500
9507
  */
9501
9508
  taskDefinitionInInputLanguage: false,
9509
+ /* FNXC:TaskOutputLanguage 2026-08-19-14:56: Undefined preserves legacy true compatibility; the resolver supplies English for fresh projects. */
9510
+ taskOutputLanguage: void 0,
9502
9511
  useAiMergeCommitSummary: true,
9503
9512
  // Title-summarizer model lanes stay project-scoped (not moved in U4).
9504
9513
  titleSummarizerProvider: void 0,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/openclaw-runtime",
3
- "version": "0.2.86-beta.2",
3
+ "version": "0.2.86-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -8742,7 +8742,7 @@ import { randomUUID, randomBytes, createHash as createHash2 } from "node:crypto"
8742
8742
  import { EventEmitter } from "node:events";
8743
8743
 
8744
8744
  // ../core/src/types/board/board.ts
8745
- var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
8745
+ var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
8746
8746
 
8747
8747
  // ../core/src/types/ui/execution-and-ui.ts
8748
8748
  var STALE_HIGH_FANOUT_BLOCKER_AGE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -9180,6 +9180,8 @@ var DEFAULT_GLOBAL_SETTINGS = {
9180
9180
  var DEFAULT_PROJECT_SETTINGS = {
9181
9181
  // FNXC:TaskRecommendations 2026-08-08-05:02: completion follows-ups stay bounded by default; 0 disables writing them.
9182
9182
  maxRecommendationsPerTask: 3,
9183
+ // FNXC:TaskRecommendations 2026-08-19-13:05: explicit recommendation evaluation is opt-in and only applies while the positive cap enables capture; relevance always outranks count.
9184
+ requireTaskRecommendations: false,
9183
9185
  // FNXC:TaskRecommendations 2026-08-13-03:56: surface completed-task proposals by default; operators can suppress the notice without suppressing capture.
9184
9186
  recommendationMailboxNoticeEnabled: true,
9185
9187
  globalPause: false,
@@ -9291,6 +9293,11 @@ var DEFAULT_PROJECT_SETTINGS = {
9291
9293
  */
9292
9294
  showCostBadgeOnCards: false,
9293
9295
  /*
9296
+ FNXC:ChatMessageLayout 2026-08-18-20:27:
9297
+ The project preference applies one reversible layout choice to every standard and task chat surface. Explicitly seed the historical bubbles presentation so upgraded projects preserve their existing UI.
9298
+ */
9299
+ chatMessageLayout: "bubbles",
9300
+ /*
9294
9301
  FNXC:TaskDetailActivityFirst 2026-06-30-23:59:
9295
9302
  Project task-detail defaults are Activity-first unless this opt-in is true. Keeping the default false preserves explicit deep-link ids while making omitted non-done task opens land on Activity → Live.
9296
9303
  */
@@ -9499,6 +9506,8 @@ var DEFAULT_PROJECT_SETTINGS = {
9499
9506
  not variant-detected and unsupported input, including Japanese, remains English.
9500
9507
  */
9501
9508
  taskDefinitionInInputLanguage: false,
9509
+ /* FNXC:TaskOutputLanguage 2026-08-19-14:56: Undefined preserves legacy true compatibility; the resolver supplies English for fresh projects. */
9510
+ taskOutputLanguage: void 0,
9502
9511
  useAiMergeCommitSummary: true,
9503
9512
  // Title-summarizer model lanes stay project-scoped (not moved in U4).
9504
9513
  titleSummarizerProvider: void 0,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/paperclip-runtime",
3
- "version": "0.2.86-beta.2",
3
+ "version": "0.2.86-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -8745,7 +8745,7 @@ import { randomUUID, randomBytes, createHash as createHash2 } from "node:crypto"
8745
8745
  import { EventEmitter } from "node:events";
8746
8746
 
8747
8747
  // ../core/src/types/board/board.ts
8748
- var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
8748
+ var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
8749
8749
 
8750
8750
  // ../core/src/types/ui/execution-and-ui.ts
8751
8751
  var STALE_HIGH_FANOUT_BLOCKER_AGE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -9183,6 +9183,8 @@ var DEFAULT_GLOBAL_SETTINGS = {
9183
9183
  var DEFAULT_PROJECT_SETTINGS = {
9184
9184
  // FNXC:TaskRecommendations 2026-08-08-05:02: completion follows-ups stay bounded by default; 0 disables writing them.
9185
9185
  maxRecommendationsPerTask: 3,
9186
+ // FNXC:TaskRecommendations 2026-08-19-13:05: explicit recommendation evaluation is opt-in and only applies while the positive cap enables capture; relevance always outranks count.
9187
+ requireTaskRecommendations: false,
9186
9188
  // FNXC:TaskRecommendations 2026-08-13-03:56: surface completed-task proposals by default; operators can suppress the notice without suppressing capture.
9187
9189
  recommendationMailboxNoticeEnabled: true,
9188
9190
  globalPause: false,
@@ -9294,6 +9296,11 @@ var DEFAULT_PROJECT_SETTINGS = {
9294
9296
  */
9295
9297
  showCostBadgeOnCards: false,
9296
9298
  /*
9299
+ FNXC:ChatMessageLayout 2026-08-18-20:27:
9300
+ The project preference applies one reversible layout choice to every standard and task chat surface. Explicitly seed the historical bubbles presentation so upgraded projects preserve their existing UI.
9301
+ */
9302
+ chatMessageLayout: "bubbles",
9303
+ /*
9297
9304
  FNXC:TaskDetailActivityFirst 2026-06-30-23:59:
9298
9305
  Project task-detail defaults are Activity-first unless this opt-in is true. Keeping the default false preserves explicit deep-link ids while making omitted non-done task opens land on Activity → Live.
9299
9306
  */
@@ -9502,6 +9509,8 @@ var DEFAULT_PROJECT_SETTINGS = {
9502
9509
  not variant-detected and unsupported input, including Japanese, remains English.
9503
9510
  */
9504
9511
  taskDefinitionInInputLanguage: false,
9512
+ /* FNXC:TaskOutputLanguage 2026-08-19-14:56: Undefined preserves legacy true compatibility; the resolver supplies English for fresh projects. */
9513
+ taskOutputLanguage: void 0,
9505
9514
  useAiMergeCommitSummary: true,
9506
9515
  // Title-summarizer model lanes stay project-scoped (not moved in U4).
9507
9516
  titleSummarizerProvider: void 0,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/quality",
3
- "version": "0.1.11-beta.2",
3
+ "version": "0.1.11-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -8862,7 +8862,7 @@ import { randomUUID, randomBytes, createHash as createHash2 } from "node:crypto"
8862
8862
  import { EventEmitter } from "node:events";
8863
8863
 
8864
8864
  // ../core/src/types/board/board.ts
8865
- var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
8865
+ var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
8866
8866
 
8867
8867
  // ../core/src/types/ui/execution-and-ui.ts
8868
8868
  var STALE_HIGH_FANOUT_BLOCKER_AGE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -9300,6 +9300,8 @@ var DEFAULT_GLOBAL_SETTINGS = {
9300
9300
  var DEFAULT_PROJECT_SETTINGS = {
9301
9301
  // FNXC:TaskRecommendations 2026-08-08-05:02: completion follows-ups stay bounded by default; 0 disables writing them.
9302
9302
  maxRecommendationsPerTask: 3,
9303
+ // FNXC:TaskRecommendations 2026-08-19-13:05: explicit recommendation evaluation is opt-in and only applies while the positive cap enables capture; relevance always outranks count.
9304
+ requireTaskRecommendations: false,
9303
9305
  // FNXC:TaskRecommendations 2026-08-13-03:56: surface completed-task proposals by default; operators can suppress the notice without suppressing capture.
9304
9306
  recommendationMailboxNoticeEnabled: true,
9305
9307
  globalPause: false,
@@ -9411,6 +9413,11 @@ var DEFAULT_PROJECT_SETTINGS = {
9411
9413
  */
9412
9414
  showCostBadgeOnCards: false,
9413
9415
  /*
9416
+ FNXC:ChatMessageLayout 2026-08-18-20:27:
9417
+ The project preference applies one reversible layout choice to every standard and task chat surface. Explicitly seed the historical bubbles presentation so upgraded projects preserve their existing UI.
9418
+ */
9419
+ chatMessageLayout: "bubbles",
9420
+ /*
9414
9421
  FNXC:TaskDetailActivityFirst 2026-06-30-23:59:
9415
9422
  Project task-detail defaults are Activity-first unless this opt-in is true. Keeping the default false preserves explicit deep-link ids while making omitted non-done task opens land on Activity → Live.
9416
9423
  */
@@ -9619,6 +9626,8 @@ var DEFAULT_PROJECT_SETTINGS = {
9619
9626
  not variant-detected and unsupported input, including Japanese, remains English.
9620
9627
  */
9621
9628
  taskDefinitionInInputLanguage: false,
9629
+ /* FNXC:TaskOutputLanguage 2026-08-19-14:56: Undefined preserves legacy true compatibility; the resolver supplies English for fresh projects. */
9630
+ taskOutputLanguage: void 0,
9622
9631
  useAiMergeCommitSummary: true,
9623
9632
  // Title-summarizer model lanes stay project-scoped (not moved in U4).
9624
9633
  titleSummarizerProvider: void 0,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/reports",
3
- "version": "0.1.55-beta.2",
3
+ "version": "0.1.55-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -8742,7 +8742,7 @@ import { randomUUID, randomBytes, createHash as createHash2 } from "node:crypto"
8742
8742
  import { EventEmitter } from "node:events";
8743
8743
 
8744
8744
  // ../core/src/types/board/board.ts
8745
- var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
8745
+ var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
8746
8746
 
8747
8747
  // ../core/src/types/ui/execution-and-ui.ts
8748
8748
  var STALE_HIGH_FANOUT_BLOCKER_AGE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -9180,6 +9180,8 @@ var DEFAULT_GLOBAL_SETTINGS = {
9180
9180
  var DEFAULT_PROJECT_SETTINGS = {
9181
9181
  // FNXC:TaskRecommendations 2026-08-08-05:02: completion follows-ups stay bounded by default; 0 disables writing them.
9182
9182
  maxRecommendationsPerTask: 3,
9183
+ // FNXC:TaskRecommendations 2026-08-19-13:05: explicit recommendation evaluation is opt-in and only applies while the positive cap enables capture; relevance always outranks count.
9184
+ requireTaskRecommendations: false,
9183
9185
  // FNXC:TaskRecommendations 2026-08-13-03:56: surface completed-task proposals by default; operators can suppress the notice without suppressing capture.
9184
9186
  recommendationMailboxNoticeEnabled: true,
9185
9187
  globalPause: false,
@@ -9291,6 +9293,11 @@ var DEFAULT_PROJECT_SETTINGS = {
9291
9293
  */
9292
9294
  showCostBadgeOnCards: false,
9293
9295
  /*
9296
+ FNXC:ChatMessageLayout 2026-08-18-20:27:
9297
+ The project preference applies one reversible layout choice to every standard and task chat surface. Explicitly seed the historical bubbles presentation so upgraded projects preserve their existing UI.
9298
+ */
9299
+ chatMessageLayout: "bubbles",
9300
+ /*
9294
9301
  FNXC:TaskDetailActivityFirst 2026-06-30-23:59:
9295
9302
  Project task-detail defaults are Activity-first unless this opt-in is true. Keeping the default false preserves explicit deep-link ids while making omitted non-done task opens land on Activity → Live.
9296
9303
  */
@@ -9499,6 +9506,8 @@ var DEFAULT_PROJECT_SETTINGS = {
9499
9506
  not variant-detected and unsupported input, including Japanese, remains English.
9500
9507
  */
9501
9508
  taskDefinitionInInputLanguage: false,
9509
+ /* FNXC:TaskOutputLanguage 2026-08-19-14:56: Undefined preserves legacy true compatibility; the resolver supplies English for fresh projects. */
9510
+ taskOutputLanguage: void 0,
9502
9511
  useAiMergeCommitSummary: true,
9503
9512
  // Title-summarizer model lanes stay project-scoped (not moved in U4).
9504
9513
  titleSummarizerProvider: void 0,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/roadmap",
3
- "version": "0.1.55-beta.2",
3
+ "version": "0.1.55-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -8742,7 +8742,7 @@ import { randomUUID, randomBytes, createHash as createHash2 } from "node:crypto"
8742
8742
  import { EventEmitter } from "node:events";
8743
8743
 
8744
8744
  // ../core/src/types/board/board.ts
8745
- var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
8745
+ var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
8746
8746
 
8747
8747
  // ../core/src/types/ui/execution-and-ui.ts
8748
8748
  var STALE_HIGH_FANOUT_BLOCKER_AGE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -9180,6 +9180,8 @@ var DEFAULT_GLOBAL_SETTINGS = {
9180
9180
  var DEFAULT_PROJECT_SETTINGS = {
9181
9181
  // FNXC:TaskRecommendations 2026-08-08-05:02: completion follows-ups stay bounded by default; 0 disables writing them.
9182
9182
  maxRecommendationsPerTask: 3,
9183
+ // FNXC:TaskRecommendations 2026-08-19-13:05: explicit recommendation evaluation is opt-in and only applies while the positive cap enables capture; relevance always outranks count.
9184
+ requireTaskRecommendations: false,
9183
9185
  // FNXC:TaskRecommendations 2026-08-13-03:56: surface completed-task proposals by default; operators can suppress the notice without suppressing capture.
9184
9186
  recommendationMailboxNoticeEnabled: true,
9185
9187
  globalPause: false,
@@ -9291,6 +9293,11 @@ var DEFAULT_PROJECT_SETTINGS = {
9291
9293
  */
9292
9294
  showCostBadgeOnCards: false,
9293
9295
  /*
9296
+ FNXC:ChatMessageLayout 2026-08-18-20:27:
9297
+ The project preference applies one reversible layout choice to every standard and task chat surface. Explicitly seed the historical bubbles presentation so upgraded projects preserve their existing UI.
9298
+ */
9299
+ chatMessageLayout: "bubbles",
9300
+ /*
9294
9301
  FNXC:TaskDetailActivityFirst 2026-06-30-23:59:
9295
9302
  Project task-detail defaults are Activity-first unless this opt-in is true. Keeping the default false preserves explicit deep-link ids while making omitted non-done task opens land on Activity → Live.
9296
9303
  */
@@ -9499,6 +9506,8 @@ var DEFAULT_PROJECT_SETTINGS = {
9499
9506
  not variant-detected and unsupported input, including Japanese, remains English.
9500
9507
  */
9501
9508
  taskDefinitionInInputLanguage: false,
9509
+ /* FNXC:TaskOutputLanguage 2026-08-19-14:56: Undefined preserves legacy true compatibility; the resolver supplies English for fresh projects. */
9510
+ taskOutputLanguage: void 0,
9502
9511
  useAiMergeCommitSummary: true,
9503
9512
  // Title-summarizer model lanes stay project-scoped (not moved in U4).
9504
9513
  titleSummarizerProvider: void 0,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/todos",
3
- "version": "0.1.4-beta.2",
3
+ "version": "0.1.4-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -166043,7 +166043,7 @@ import { randomUUID, randomBytes, createHash as createHash2 } from "node:crypto"
166043
166043
  import { EventEmitter } from "node:events";
166044
166044
 
166045
166045
  // ../core/src/types/board/board.ts
166046
- var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
166046
+ var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
166047
166047
 
166048
166048
  // ../core/src/types/ui/execution-and-ui.ts
166049
166049
  var STALE_HIGH_FANOUT_BLOCKER_AGE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
@@ -166481,6 +166481,8 @@ var DEFAULT_GLOBAL_SETTINGS = {
166481
166481
  var DEFAULT_PROJECT_SETTINGS = {
166482
166482
  // FNXC:TaskRecommendations 2026-08-08-05:02: completion follows-ups stay bounded by default; 0 disables writing them.
166483
166483
  maxRecommendationsPerTask: 3,
166484
+ // FNXC:TaskRecommendations 2026-08-19-13:05: explicit recommendation evaluation is opt-in and only applies while the positive cap enables capture; relevance always outranks count.
166485
+ requireTaskRecommendations: false,
166484
166486
  // FNXC:TaskRecommendations 2026-08-13-03:56: surface completed-task proposals by default; operators can suppress the notice without suppressing capture.
166485
166487
  recommendationMailboxNoticeEnabled: true,
166486
166488
  globalPause: false,
@@ -166592,6 +166594,11 @@ var DEFAULT_PROJECT_SETTINGS = {
166592
166594
  */
166593
166595
  showCostBadgeOnCards: false,
166594
166596
  /*
166597
+ FNXC:ChatMessageLayout 2026-08-18-20:27:
166598
+ The project preference applies one reversible layout choice to every standard and task chat surface. Explicitly seed the historical bubbles presentation so upgraded projects preserve their existing UI.
166599
+ */
166600
+ chatMessageLayout: "bubbles",
166601
+ /*
166595
166602
  FNXC:TaskDetailActivityFirst 2026-06-30-23:59:
166596
166603
  Project task-detail defaults are Activity-first unless this opt-in is true. Keeping the default false preserves explicit deep-link ids while making omitted non-done task opens land on Activity → Live.
166597
166604
  */
@@ -166800,6 +166807,8 @@ var DEFAULT_PROJECT_SETTINGS = {
166800
166807
  not variant-detected and unsupported input, including Japanese, remains English.
166801
166808
  */
166802
166809
  taskDefinitionInInputLanguage: false,
166810
+ /* FNXC:TaskOutputLanguage 2026-08-19-14:56: Undefined preserves legacy true compatibility; the resolver supplies English for fresh projects. */
166811
+ taskOutputLanguage: void 0,
166803
166812
  useAiMergeCommitSummary: true,
166804
166813
  // Title-summarizer model lanes stay project-scoped (not moved in U4).
166805
166814
  titleSummarizerProvider: void 0,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fusion-plugin-examples/whatsapp-chat",
3
- "version": "0.1.55-beta.2",
3
+ "version": "0.1.55-beta.4",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runfusion/fusion",
3
- "version": "0.77.0-beta.2",
3
+ "version": "0.77.0-beta.4",
4
4
  "license": "MIT",
5
5
  "description": "Fusion CLI: HTTP API server, daemon, dashboard launcher, and task tooling for the Fusion AI coding agent.",
6
6
  "homepage": "https://github.com/Runfusion/Fusion#readme",
@@ -30,7 +30,7 @@ Mission → Milestone → Slice → Feature → Task
30
30
  - **Task tools** — `fn_task_create`, `fn_task_update`, `fn_task_list`, `fn_task_show`, `fn_task_logs_read`, `fn_task_attach`, `fn_task_pause`, `fn_task_unpause`, `fn_task_retry`, `fn_task_bypass_review`, `fn_task_duplicate`, `fn_task_refine`, `fn_task_archive`, `fn_task_unarchive`, `fn_task_delete`, `fn_task_browse_gitlab_project_issues`, `fn_task_import_gitlab_project_issues`, `fn_task_browse_gitlab_group_issues`, `fn_task_import_gitlab_group_issues`, `fn_task_browse_gitlab_merge_requests`, `fn_task_import_gitlab_merge_requests`, `fn_task_plan`
31
31
  - **Workflow tools** — `fn_workflow_list`, `fn_workflow_get`, `fn_workflow_validate`, `fn_workflow_create`, `fn_workflow_update`, `fn_workflow_delete`, `fn_workflow_settings`, `fn_trait_list`, `fn_workflow_select`, `fn_workflow_step_resume`
32
32
  - **GitHub tools** — `fn_task_import_github`, `fn_task_import_github_issue`, `fn_task_browse_github_issues`
33
- - **Mission tools** — `fn_mission_create`, `fn_mission_list`, `fn_mission_show`, `fn_mission_list_goals`, `fn_mission_link_goal`, `fn_mission_unlink_goal`, `fn_mission_backfill_assertions`, `fn_mission_delete`, `fn_mission_set_status`, `fn_mission_clear_blocked`, `fn_mission_update`, `fn_milestone_add`, `fn_slice_add`, `fn_feature_add`, `fn_feature_delete`, `fn_slice_delete`, `fn_milestone_delete`, `fn_slice_activate`, `fn_feature_link_task`, `fn_feature_set_status`, `fn_mission_reconcile`, `fn_feature_repair_validation`, `fn_feature_update`, `fn_milestone_update`
33
+ - **Mission tools** — `fn_mission_create`, `fn_mission_list`, `fn_mission_show`, `fn_mission_list_goals`, `fn_mission_link_goal`, `fn_mission_unlink_goal`, `fn_mission_backfill_assertions`, `fn_mission_delete`, `fn_mission_set_status`, `fn_mission_clear_blocked`, `fn_mission_update`, `fn_milestone_add`, `fn_slice_add`, `fn_feature_add`, `fn_feature_delete`, `fn_slice_delete`, `fn_milestone_delete`, `fn_slice_activate`, `fn_feature_link_task`, `fn_feature_repoint_task`, `fn_feature_unlink_task`, `fn_feature_set_status`, `fn_mission_reconcile`, `fn_feature_repair_validation`, `fn_feature_update`, `fn_milestone_update`
34
34
  - **Goal tools** — `fn_goal_list`, `fn_goal_create`, `fn_goal_archive`, `fn_goal_show`
35
35
  - **Agent tools** — `fn_agent_stop`, `fn_agent_start`, `fn_agent_create`, `fn_agent_update`, `fn_agent_set_instructions`, `fn_agent_read_evaluations`, `fn_agent_evaluation_followup`, `fn_agent_delete`, `fn_list_agents`, `fn_delegate_task`, `fn_agent_show`, `fn_agent_org_chart`
36
36
  - **Skills tools** — `fn_skills_search`, `fn_skills_install`
@@ -526,6 +526,23 @@ Link a feature to a fn task for implementation. Updates the feature status to 't
526
526
  | `featureId` | string | ✓ | Feature ID to link (e.g., F-001) |
527
527
  | `taskId` | string | ✓ | Task ID to link to (e.g., FN-001) |
528
528
 
529
+ ### fn_feature_repoint_task
530
+
531
+ Atomically re-point an already-linked feature's single-valued taskId to a different task. Corrects a feature pinned to the wrong task (for example a shared vision doc) without the status-lossy unlink then link two-step. The target task must be live; same-task re-point is an idempotent no-op.
532
+
533
+ | Parameter | Type | Required | Description |
534
+ |-----------|------|----------|-------------|
535
+ | `featureId` | string | ✓ | Feature ID to re-point (e.g., F-001) |
536
+ | `taskId` | string | ✓ | Task ID to re-point to (e.g., FN-001) |
537
+
538
+ ### fn_feature_unlink_task
539
+
540
+ Detach a feature from its linked task entirely, clearing its single-valued taskId and demoting its status to 'defined'. Use before the documented safe duplicate-cleanup and reconcile-done flow. Returns a clear error if the feature is not currently linked to any task.
541
+
542
+ | Parameter | Type | Required | Description |
543
+ |-----------|------|----------|-------------|
544
+ | `featureId` | string | ✓ | Feature ID to unlink (e.g., F-001) |
545
+
529
546
  ### fn_feature_set_status
530
547
 
531
548
  Set a feature lifecycle status.
@@ -77,6 +77,8 @@ All skill/extension tool invocations in this catalog use the public `fn_*` names
77
77
  | `fn_milestone_delete` | Delete a milestone and all descendant slices/features. Rejects deletion when child features link to live tasks unless force=true. |
78
78
  | `fn_slice_activate` | Activate a pending slice for implementation. Sets status to 'active' and enables task linking for its features. |
79
79
  | `fn_feature_link_task` | Link a feature to a fn task for implementation. Updates the feature status to 'triaged' and associates it with the task. If the target task is not on the active board (for example archived, deleted, or never created), the tool returns a clear validation error indicating that only active tasks can be linked. |
80
+ | `fn_feature_repoint_task` | Atomically re-point an already-linked feature's single-valued taskId to a different task. Corrects a feature pinned to the wrong task (for example a shared vision doc) without the status-lossy unlink then link two-step. The target task must be live; same-task re-point is an idempotent no-op. |
81
+ | `fn_feature_unlink_task` | Detach a feature from its linked task entirely, clearing its single-valued taskId and demoting its status to 'defined'. Use before the documented safe duplicate-cleanup and reconcile-done flow. Returns a clear error if the feature is not currently linked to any task. |
80
82
  | `fn_feature_set_status` | Set a feature lifecycle status. |
81
83
  | `fn_mission_reconcile` | Reconcile mission state against deterministic delivery ground truth. |
82
84
  | `fn_feature_repair_validation` | Clear a stale validation badge or re-run validation. |