@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.
- package/dist/bin.js +13158 -10683
- package/dist/child-process-worker.js +9200 -6239
- package/dist/client/.vite/manifest.json +301 -274
- package/dist/client/assets/{AgentDetailView-D-mPbGXe.js → AgentDetailView-CSK_Rnlk.js} +3 -3
- package/dist/client/assets/{AgentPermissionPolicyEditor-Bq3z2QY0.js → AgentPermissionPolicyEditor-kG44Adcm.js} +1 -1
- package/dist/client/assets/{AgentsView-CYg6b9n0.js → AgentsView-ClKwKWnU.js} +4 -4
- package/dist/client/assets/ChatView-DoOqgkPX.js +13 -0
- package/dist/client/assets/{CommandCenter-DDCbSURT.js → CommandCenter-CJxvPbgn.js} +3 -3
- package/dist/client/assets/{DevServerView-DJ459OYL.js → DevServerView-C4nyLONX.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-ClOKp7d1.js → DirectoryPicker-BIvXWIB5.js} +1 -1
- package/dist/client/assets/DocumentsView-DH_aZysM.js +1 -0
- package/dist/client/assets/{EvalsView-DGJFQc1W.js → EvalsView-klRK-GJQ.js} +1 -1
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-CMy3zvnk.js → ExperimentalAgentOnboardingModal-CgBmukIm.js} +1 -1
- package/dist/client/assets/{GoalsView-D-z3Rf4g.js → GoalsView-ysh3X2x6.js} +1 -1
- package/dist/client/assets/{InsightsView-By1AFGbM.js → InsightsView-BbMjCu7J.js} +3 -3
- package/dist/client/assets/MemoryView-B3IgA8Bx.js +3 -0
- package/dist/client/assets/{PiExtensionsManager-_8u94B1u.js → PiExtensionsManager-CZlIw7C3.js} +1 -1
- package/dist/client/assets/PluginManager-vy0YZ2Nx.js +1 -0
- package/dist/client/assets/{PullRequestView-NkCEKKpG.js → PullRequestView-DhhsJV8I.js} +2 -2
- package/dist/client/assets/ReportModal-CQMn4i1y.js +21 -0
- package/dist/client/assets/ReportModal-lzN_xrnM.css +1 -0
- package/dist/client/assets/{ResearchView-BCxXqB8F.js → ResearchView-CVwfs4l3.js} +2 -2
- package/dist/client/assets/{SecretsView-CxK0XDc2.js → SecretsView-CrJfHle9.js} +1 -1
- package/dist/client/assets/{SessionTerminal-CuVsOYc8.js → SessionTerminal-BRI8W1-G.js} +1 -1
- package/dist/client/assets/{SettingsModal-BtV1tIIf.js → SettingsModal-B6U5Umru.js} +1 -1
- package/dist/client/assets/SettingsModal-C5ic1ls7.css +1 -0
- package/dist/client/assets/SettingsModal-h1A_aFqD.js +21 -0
- package/dist/client/assets/{SettingsTextareaRow-YR4pGawU.js → SettingsTextareaRow-O7-u9uMC.js} +1 -1
- package/dist/client/assets/SetupWizardModal-nXfJp8cA.js +2 -0
- package/dist/client/assets/{SkillsView-B4Jc91WM.js → SkillsView-CoWAjvWU.js} +1 -1
- package/dist/client/assets/{WorkflowNodeEditor-DGtYlSHs.js → WorkflowNodeEditor-BFMM3RF_.js} +2 -2
- package/dist/client/assets/{agent-import-generation-CHAXFtOA.js → agent-import-generation-BqDmtTur.js} +1 -1
- package/dist/client/assets/{agentsOrgChartLayout-DsahEyq7.js → agentsOrgChartLayout-C4cLqlV6.js} +1 -1
- package/dist/client/assets/app-BBSLJDbV.js +13 -0
- package/dist/client/assets/app-BKwOvuxE.js +5 -0
- package/dist/client/assets/app-Bvr57EZQ.js +5 -0
- package/dist/client/assets/app-C_PTWuI1.js +13 -0
- package/dist/client/assets/app-DKx18PHE.js +13 -0
- package/dist/client/assets/app-DRW5hIgr.js +13 -0
- package/dist/client/assets/app-DwvelD-n.js +13 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-BKJBR8ob.js → architectureDiagram-3BPJPVTR-CdxcwdRe.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-CqpNEYwI.js → blockDiagram-GPEHLZMM-CfQrRfHR.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-CouyKoYs.js → c4Diagram-AAUBKEIU-Cx7-2SOm.js} +1 -1
- package/dist/client/assets/channel-B4WN1jC_.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-WHWSsNaC.js → chunk-2J33WTMH-D8jvgP3M.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-B-EVACQc.js → chunk-4BX2VUAB-B5tBx_s_.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CVvNjEpv.js → chunk-55IACEB6-C-F-HQ5Z.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-CV4EKLRh.js → chunk-727SXJPM-BP8Ln-8C.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DtDpuURf.js → chunk-AQP2D5EJ-DMnTmRmn.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-DPejtS21.js → chunk-FMBD7UC4-D_YdfnNc.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-DGDxBRA_.js → chunk-ND2GUHAM-CULXyuXq.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-D2k1MIuX.js → chunk-QZHKN3VN-CT1BWEJL.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CKE8RSOv.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CKE8RSOv.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-Cr6PW7Dk.js → cose-bilkent-S5V4N54A-M-3DXa6e.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-QKrqYGWy.js → dagre-BM42HDAG-Bsiqvroz.js} +1 -1
- package/dist/client/assets/{dashboard-view-BQRwsBoj.js → dashboard-view-BEBh_Ei5.js} +1 -1
- package/dist/client/assets/{dashboard-view-BcNU4vFB.js → dashboard-view-Bo_gFjdO.js} +1 -1
- package/dist/client/assets/{dashboard-view-CkPDyljq.js → dashboard-view-CnFFG3cW.js} +1 -1
- package/dist/client/assets/{dashboard-view-BksOkReD.js → dashboard-view-DAHn20ph.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-BBFXrRQl.js → diagram-2AECGRRQ-CZiHoXo5.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-_T4nM0jp.js → diagram-5GNKFQAL-BoJVz4Or.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-BAKmsx_j.js → diagram-KO2AKTUF-DivGQuAL.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-Xdsdd6Gx.js → diagram-LMA3HP47-DkMK7OJp.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-tIHxhnE8.js → diagram-OG6HWLK6-DFFvRcpW.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-HZSbfe0g.js → erDiagram-TEJ5UH35--217vrom.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-C4O3r0DX.js → flowDiagram-I6XJVG4X-CQgWO3xf.js} +1 -1
- package/dist/client/assets/{folder-open-15UiPjYb.js → folder-open-DR6cRcNR.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-DGsKKMEu.js → ganttDiagram-6RSMTGT7-BjDMUrS3.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-BY4kgtHp.js → gitGraphDiagram-PVQCEYII-gKUcDnln.js} +1 -1
- package/dist/client/assets/index-Dki2LBAp.css +1 -0
- package/dist/client/assets/index-oxnX59eO.js +2774 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-lJBWxF8I.js → infoDiagram-5YYISTIA-BA91T8S5.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CrE_q16o.js → ishikawaDiagram-YF4QCWOH-0BY5xe-c.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-9V42jgFW.js → journeyDiagram-JHISSGLW-B_OwenbQ.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-B_T-7Vyf.js → kanban-definition-UN3LZRKU-GLabUTKp.js} +1 -1
- package/dist/client/assets/{mermaid.core-CwJ7S3PS.js → mermaid.core-BXo4rxYI.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-MYNSgM6G.js → mindmap-definition-RKZ34NQL-DZl6LPoE.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-CtT-wbYj.js → pieDiagram-4H26LBE5-DtHq-4py.js} +1 -1
- package/dist/client/assets/pixelify-sans-cyrillic-400-normal-DfOZNMlW.woff +0 -0
- package/dist/client/assets/pixelify-sans-latin-400-normal-DLrIX9QE.woff2 +0 -0
- package/dist/client/assets/pixelify-sans-latin-400-normal-JapMNN6Z.woff +0 -0
- package/dist/client/assets/pixelify-sans-latin-ext-400-normal-BkfTUL4s.woff +0 -0
- package/dist/client/assets/pixelify-sans-latin-ext-400-normal-DdH6zlBQ.woff2 +0 -0
- package/dist/client/assets/{puzzle-CXdFNN8H.js → puzzle-OVm-I1L4.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-3klC5x4k.js → quadrantDiagram-W4KKPZXB-BdjXhd5d.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-CHfFrsBL.js → requirementDiagram-4Y6WPE33-BoFVjELN.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Dtktw7Dy.js → sankeyDiagram-5OEKKPKP-B0qyJh-P.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CuXPMjTU.js → sequenceDiagram-3UESZ5HK-ByY62Eqp.js} +1 -1
- package/dist/client/assets/{shield-alert-D9xqzJwR.js → shield-alert-CDy69fl7.js} +1 -1
- package/dist/client/assets/{standing-instructions-template-CcpV_LRP.js → standing-instructions-template-BsnnRlwm.js} +2 -2
- package/dist/client/assets/{stateDiagram-AJRCARHV-Bj_rDJwQ.js → stateDiagram-AJRCARHV-CwJ-_Phi.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-D-YYF-kX.js → stateDiagram-v2-BHNVJYJU-Cfvhq8mV.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-DXalwFMD.js → timeline-definition-PNZ67QCA-Co8VfGN9.js} +1 -1
- package/dist/client/assets/{upload-CWVc30BQ.js → upload-CkqDbEeE.js} +1 -1
- package/dist/client/assets/{useDiscoveredSkillsCache-D2M95Nn0.js → useDiscoveredSkillsCache-BHUasRiZ.js} +1 -1
- package/dist/client/assets/{users-q_-iLqv9.js → users-B8DkpbXD.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-0-aTlrbe.js → vennDiagram-CIIHVFJN-XSJteQrL.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-Bz_e_5wx.js → wardley-L42UT6IY-Btc0FRfF.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DsQu4YnA.js → wardleyDiagram-YWT4CUSO--IcDNmrf.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-K6GQdwVG.js → xychartDiagram-2RQKCTM6-CZW93G6X.js} +1 -1
- package/dist/client/index.html +4 -4
- package/dist/client/theme-data.css +183 -1
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/package.json +1 -1
- package/dist/extension.js +10390 -7118
- package/dist/migrations/0000_initial.sql +3 -0
- package/dist/migrations/0061_fn_066_activity_log_task_id_index.sql +7 -0
- package/dist/migrations/0062_remove_task_subtask_splitting.sql +2 -0
- package/dist/migrations/0063_fn_090_ai_merge_review_reconciliation.sql +2 -0
- package/dist/migrations/0064_fn_094_task_repository_scope.sql +2 -0
- package/dist/pi-claude-cli/package.json +1 -1
- package/dist/pi-claude-cli/src/__tests__/event-bridge.test.ts +29 -1
- package/dist/pi-claude-cli/src/event-bridge.ts +10 -4
- package/dist/plugin-sdk/index.d.ts +301 -189
- package/dist/plugin-sdk/index.js +45 -105
- package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +47 -106
- package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-claude-runtime/bundled.js +47 -106
- package/dist/plugins/fusion-plugin-claude-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
- package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +47 -106
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +47 -106
- package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-linear-import/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
- package/dist/plugins/fusion-plugin-omp-runtime/bundled.js +47 -106
- package/dist/plugins/fusion-plugin-omp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-quality/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-quality/package.json +1 -1
- package/dist/plugins/fusion-plugin-reports/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-reports/package.json +1 -1
- package/dist/plugins/fusion-plugin-roadmap/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-todos/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-todos/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/bundled.js +45 -105
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +1 -1
- package/skill/fusion/SKILL.md +1 -1
- package/skill/fusion/references/extension-tools.md +19 -1
- package/skill/fusion/references/fusion-capabilities.md +3 -1
- package/skill/fusion/references/task-structure.md +1 -1
- package/skill/fusion/workflows/specifications.md +2 -2
- package/dist/client/assets/ChatView-qnlDeWDu.js +0 -13
- package/dist/client/assets/DocumentsView-D3Yb4WqD.js +0 -1
- package/dist/client/assets/MemoryView-Dhe8ydZR.js +0 -3
- package/dist/client/assets/PluginManager-ByNlw3zN.js +0 -1
- package/dist/client/assets/ReportModal-DovuZwdY.js +0 -21
- package/dist/client/assets/ReportModal-M3uh98sc.css +0 -1
- package/dist/client/assets/SettingsModal-C-tiAvqQ.js +0 -21
- package/dist/client/assets/SettingsModal-C0FY8MPW.css +0 -1
- package/dist/client/assets/SetupWizardModal-DrbeWku9.js +0 -2
- package/dist/client/assets/app-BgpuMvTU.js +0 -13
- package/dist/client/assets/app-BlexHhbW.js +0 -13
- package/dist/client/assets/app-BsuUOR0P.js +0 -13
- package/dist/client/assets/app-DQVOujmO.js +0 -13
- package/dist/client/assets/app-DjyTRx1N.js +0 -5
- package/dist/client/assets/app-Dniggype.js +0 -13
- package/dist/client/assets/app-EV-lyZ0T.js +0 -5
- package/dist/client/assets/channel-D7yWYIo9.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-cuSqS34E.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-cuSqS34E.js +0 -1
- package/dist/client/assets/index-4c8KmZSa.js +0 -2818
- package/dist/client/assets/index-Bg6JQgJj.css +0 -1
|
@@ -163136,6 +163136,7 @@ var tasks = projectSchema.table("tasks", {
|
|
|
163136
163136
|
mergerModelId: text("merger_model_id"),
|
|
163137
163137
|
mergerThinkingLevel: text("merger_thinking_level"),
|
|
163138
163138
|
mergeRetries: integer("merge_retries"),
|
|
163139
|
+
aiMergeReviewReconciliation: text("ai_merge_review_reconciliation"),
|
|
163139
163140
|
workflowStepRetries: integer("workflow_step_retries"),
|
|
163140
163141
|
resumeLimboCount: integer("resume_limbo_count").default(0),
|
|
163141
163142
|
graphResumeRetryCount: integer("graph_resume_retry_count").default(0),
|
|
@@ -163258,7 +163259,8 @@ var tasks = projectSchema.table("tasks", {
|
|
|
163258
163259
|
sourceIssueClosedAt: text("source_issue_closed_at"),
|
|
163259
163260
|
mergeDetails: jsonb("merge_details"),
|
|
163260
163261
|
workspaceWorktrees: jsonb("workspace_worktrees"),
|
|
163261
|
-
|
|
163262
|
+
// FNXC:RepositoryScope 2026-08-20-23:07: explicit task intent must survive PostgreSQL reads independently of acquired worktrees.
|
|
163263
|
+
repositoryScope: jsonb("repository_scope"),
|
|
163262
163264
|
noCommitsExpected: integer("no_commits_expected").default(0),
|
|
163263
163265
|
enabledWorkflowSteps: jsonb("enabled_workflow_steps").default([]),
|
|
163264
163266
|
modifiedFiles: jsonb("modified_files").default([]),
|
|
@@ -165578,7 +165580,8 @@ var centralActivityLog = centralSchema.table("central_activity_log", {
|
|
|
165578
165580
|
foreignKey({ columns: [t.projectId], foreignColumns: [projects.id] }).onDelete("cascade"),
|
|
165579
165581
|
index("idxActivityLogTimestamp").on(t.timestamp),
|
|
165580
165582
|
index("idxActivityLogType").on(t.type),
|
|
165581
|
-
index("idxActivityLogProjectId").on(t.projectId)
|
|
165583
|
+
index("idxActivityLogProjectId").on(t.projectId),
|
|
165584
|
+
index("idxCentralActivityLogTaskIdTimestamp").on(t.taskId, t.timestamp)
|
|
165582
165585
|
]);
|
|
165583
165586
|
var centralSettings = centralSchema.table("central_settings", {
|
|
165584
165587
|
id: integer("id").primaryKey(),
|
|
@@ -166043,7 +166046,7 @@ import { randomUUID, randomBytes, createHash as createHash2 } from "node:crypto"
|
|
|
166043
166046
|
import { EventEmitter } from "node:events";
|
|
166044
166047
|
|
|
166045
166048
|
// ../core/src/types/board/board.ts
|
|
166046
|
-
var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh"];
|
|
166049
|
+
var THINKING_LEVELS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
166047
166050
|
|
|
166048
166051
|
// ../core/src/types/ui/execution-and-ui.ts
|
|
166049
166052
|
var STALE_HIGH_FANOUT_BLOCKER_AGE_THRESHOLD_MS = 2 * 60 * 60 * 1e3;
|
|
@@ -166286,6 +166289,15 @@ var DEFAULT_GLOBAL_SETTINGS = {
|
|
|
166286
166289
|
opt in before Fusion replaces its own binary and bounces the process under them.
|
|
166287
166290
|
*/
|
|
166288
166291
|
autoUpdateAndRestart: false,
|
|
166292
|
+
/*
|
|
166293
|
+
FNXC:UpdateAutomation 2026-08-21-02:17:
|
|
166294
|
+
Fresh installations require separate opt-ins for unattended installation and
|
|
166295
|
+
restart. The legacy combined switch remains false and is only a fallback for
|
|
166296
|
+
older persisted settings.
|
|
166297
|
+
*/
|
|
166298
|
+
/* FNXC:UpdateAutomation 2026-08-21-02:48: Keep these schema keys unset because defaults merge into effective settings and `undefined` is distinct from explicit false. */
|
|
166299
|
+
autoUpdateEnabled: void 0,
|
|
166300
|
+
autoRestartAfterUpdate: void 0,
|
|
166289
166301
|
autoReloadOnVersionChange: true,
|
|
166290
166302
|
githubTrackingDefaultRepo: void 0,
|
|
166291
166303
|
reportRoadmapDedupeEnabled: void 0,
|
|
@@ -166296,6 +166308,13 @@ var DEFAULT_GLOBAL_SETTINGS = {
|
|
|
166296
166308
|
gitlabApiBaseUrl: void 0,
|
|
166297
166309
|
gitlabAuthToken: void 0,
|
|
166298
166310
|
gitlabAuthTokenType: void 0,
|
|
166311
|
+
jiraEnabled: void 0,
|
|
166312
|
+
jiraBaseUrl: void 0,
|
|
166313
|
+
jiraApiBaseUrl: void 0,
|
|
166314
|
+
jiraAuthEmail: void 0,
|
|
166315
|
+
jiraAuthTokenSecretKey: void 0,
|
|
166316
|
+
jiraAuthTokenSecretScope: void 0,
|
|
166317
|
+
jiraBranchNameTemplate: void 0,
|
|
166299
166318
|
modelOnboardingComplete: void 0,
|
|
166300
166319
|
useClaudeCli: void 0,
|
|
166301
166320
|
useDroidCli: void 0,
|
|
@@ -166481,6 +166500,8 @@ var DEFAULT_GLOBAL_SETTINGS = {
|
|
|
166481
166500
|
var DEFAULT_PROJECT_SETTINGS = {
|
|
166482
166501
|
// FNXC:TaskRecommendations 2026-08-08-05:02: completion follows-ups stay bounded by default; 0 disables writing them.
|
|
166483
166502
|
maxRecommendationsPerTask: 3,
|
|
166503
|
+
// 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.
|
|
166504
|
+
requireTaskRecommendations: false,
|
|
166484
166505
|
// FNXC:TaskRecommendations 2026-08-13-03:56: surface completed-task proposals by default; operators can suppress the notice without suppressing capture.
|
|
166485
166506
|
recommendationMailboxNoticeEnabled: true,
|
|
166486
166507
|
globalPause: false,
|
|
@@ -166592,6 +166613,11 @@ var DEFAULT_PROJECT_SETTINGS = {
|
|
|
166592
166613
|
*/
|
|
166593
166614
|
showCostBadgeOnCards: false,
|
|
166594
166615
|
/*
|
|
166616
|
+
FNXC:ChatMessageLayout 2026-08-18-20:27:
|
|
166617
|
+
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.
|
|
166618
|
+
*/
|
|
166619
|
+
chatMessageLayout: "bubbles",
|
|
166620
|
+
/*
|
|
166595
166621
|
FNXC:TaskDetailActivityFirst 2026-06-30-23:59:
|
|
166596
166622
|
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
166623
|
*/
|
|
@@ -166779,6 +166805,13 @@ var DEFAULT_PROJECT_SETTINGS = {
|
|
|
166779
166805
|
gitlabApiBaseUrl: void 0,
|
|
166780
166806
|
gitlabAuthToken: void 0,
|
|
166781
166807
|
gitlabAuthTokenType: void 0,
|
|
166808
|
+
jiraEnabled: void 0,
|
|
166809
|
+
jiraBaseUrl: void 0,
|
|
166810
|
+
jiraApiBaseUrl: void 0,
|
|
166811
|
+
jiraAuthEmail: void 0,
|
|
166812
|
+
jiraAuthTokenSecretKey: void 0,
|
|
166813
|
+
jiraAuthTokenSecretScope: void 0,
|
|
166814
|
+
jiraBranchNameTemplate: void 0,
|
|
166782
166815
|
gitlabCommentOnDone: false,
|
|
166783
166816
|
gitlabCommentTemplate: void 0,
|
|
166784
166817
|
gitlabCloseSourceIssueOnDone: false,
|
|
@@ -166800,6 +166833,8 @@ var DEFAULT_PROJECT_SETTINGS = {
|
|
|
166800
166833
|
not variant-detected and unsupported input, including Japanese, remains English.
|
|
166801
166834
|
*/
|
|
166802
166835
|
taskDefinitionInInputLanguage: false,
|
|
166836
|
+
/* FNXC:TaskOutputLanguage 2026-08-19-14:56: Undefined preserves legacy true compatibility; the resolver supplies English for fresh projects. */
|
|
166837
|
+
taskOutputLanguage: void 0,
|
|
166803
166838
|
useAiMergeCommitSummary: true,
|
|
166804
166839
|
// Title-summarizer model lanes stay project-scoped (not moved in U4).
|
|
166805
166840
|
titleSummarizerProvider: void 0,
|
|
@@ -169573,17 +169608,6 @@ var BUILTIN_MOVED_WORKFLOW_SETTINGS = [
|
|
|
169573
169608
|
}
|
|
169574
169609
|
];
|
|
169575
169610
|
var BUILTIN_TRIAGE_POLICY_SETTINGS = [
|
|
169576
|
-
{
|
|
169577
|
-
id: "triageProactiveSubtaskSplittingEnabled",
|
|
169578
|
-
name: "Triage proactive subtask splitting",
|
|
169579
|
-
type: "boolean",
|
|
169580
|
-
default: true,
|
|
169581
|
-
/*
|
|
169582
|
-
* FNXC:TriagePolicy 2026-07-04-00:00:
|
|
169583
|
-
* Operators need a workflow/project policy switch that disables automatic large-task splitting without weakening explicit `breakIntoSubtasks: true` requests. Keep the default enabled to preserve existing triage behavior for workflows that have no stored override.
|
|
169584
|
-
*/
|
|
169585
|
-
description: "Enable automatic large-task splitting guidance during triage. Turn off to split only when breakIntoSubtasks is explicitly requested."
|
|
169586
|
-
},
|
|
169587
169611
|
{
|
|
169588
169612
|
id: "triageSizeSmallMaxHours",
|
|
169589
169613
|
name: "Triage size S max hours",
|
|
@@ -169605,48 +169629,6 @@ var BUILTIN_TRIAGE_POLICY_SETTINGS = [
|
|
|
169605
169629
|
default: 8,
|
|
169606
169630
|
description: "Upper hour boundary for Size L triage guidance; larger work should split as XL."
|
|
169607
169631
|
},
|
|
169608
|
-
{
|
|
169609
|
-
id: "triageSubtaskStepThreshold",
|
|
169610
|
-
name: "Triage subtask step threshold",
|
|
169611
|
-
type: "number",
|
|
169612
|
-
default: 7,
|
|
169613
|
-
description: "Implementation-step count above which triage should consider splitting an M/L task."
|
|
169614
|
-
},
|
|
169615
|
-
{
|
|
169616
|
-
id: "triageSubtaskLargeStepSignal",
|
|
169617
|
-
name: "Triage large-step signal",
|
|
169618
|
-
type: "number",
|
|
169619
|
-
default: 9,
|
|
169620
|
-
description: "Planned step count that is a broad-scope decomposition signal for Size L tasks."
|
|
169621
|
-
},
|
|
169622
|
-
{
|
|
169623
|
-
id: "triageSubtaskAdditiveStepSignal",
|
|
169624
|
-
name: "Triage additive step signal",
|
|
169625
|
-
type: "number",
|
|
169626
|
-
default: 12,
|
|
169627
|
-
description: "Implementation-step count that independently signals possible partitioning."
|
|
169628
|
-
},
|
|
169629
|
-
{
|
|
169630
|
-
id: "triageSubtaskPackageThreshold",
|
|
169631
|
-
name: "Triage package/module threshold",
|
|
169632
|
-
type: "number",
|
|
169633
|
-
default: 3,
|
|
169634
|
-
description: "Distinct package/module count above which triage should consider splitting coherent M/L work."
|
|
169635
|
-
},
|
|
169636
|
-
{
|
|
169637
|
-
id: "triageSubtaskFileScopeThreshold",
|
|
169638
|
-
name: "Triage file-scope threshold",
|
|
169639
|
-
type: "number",
|
|
169640
|
-
default: 20,
|
|
169641
|
-
description: "File Scope entry count that signals broad work likely needing partitioning."
|
|
169642
|
-
},
|
|
169643
|
-
{
|
|
169644
|
-
id: "triageSubtaskRemediationBatchThreshold",
|
|
169645
|
-
name: "Triage remediation batch threshold",
|
|
169646
|
-
type: "number",
|
|
169647
|
-
default: 30,
|
|
169648
|
-
description: "Quantified remediation batch size that strongly signals subsystem partitioning."
|
|
169649
|
-
},
|
|
169650
169632
|
{
|
|
169651
169633
|
id: "triageNoCommitsDecisionVerbs",
|
|
169652
169634
|
name: "Triage no-commits decision verbs",
|
|
@@ -170431,20 +170413,12 @@ When you plan to list a task in the \`## Dependencies\` section, first call \`fn
|
|
|
170431
170413
|
Use what you learn \u2014 file scope, APIs, patterns, completion criteria \u2014 to make the new spec accurate: reference the right paths, avoid conflicting assumptions, and describe what the dependency must deliver before this task starts.
|
|
170432
170414
|
If the dependency task has no PROMPT.md yet (not yet specified), note that in the Dependencies section.
|
|
170433
170415
|
|
|
170434
|
-
##
|
|
170435
|
-
When the task includes \`breakIntoSubtasks: true\`, first decide whether it should be split.
|
|
170436
|
-
|
|
170437
|
-
- Split only when the work is meaningfully decomposable into 2-5 independently executable child tasks.
|
|
170438
|
-
- If splitting: use the \`fn_task_create\` tool to create child tasks in triage, include clear descriptions and dependencies between them, then stop. Do NOT write a PROMPT.md for the parent task.
|
|
170439
|
-
- **CRITICAL \u2014 subtask dependencies:** the parent task is deleted once all subtasks are created. \`dependencies\` on a new subtask may ONLY reference sibling subtasks you have created earlier in this same split (or unrelated existing tasks). **Never depend on the parent task's id.** If a child conceptually "waits for the parent's remaining work", create a sibling subtask that does that work and depend on the sibling instead. The \`fn_task_create\` tool will reject parent-id dependencies with an error.
|
|
170440
|
-
- If not splitting: proceed with a normal PROMPT.md specification.
|
|
170441
|
-
|
|
170442
|
-
## Proactive Subtask Breakdown for M/L Tasks
|
|
170416
|
+
## One-task planning
|
|
170443
170417
|
<!--
|
|
170444
|
-
FNXC:
|
|
170445
|
-
|
|
170418
|
+
FNXC:TriagePlanning 2026-08-20-17:42:
|
|
170419
|
+
Complexity never authorizes replacing a requested task with child tasks. Preserve the original task ID, dependencies, and documents; write one complete, detailed PROMPT.md with focused steps, realistic scope, risks, and quality gates.
|
|
170446
170420
|
-->
|
|
170447
|
-
|
|
170421
|
+
Create independent follow-up tasks only when they are genuinely separate work, never as an automatic decomposition of the task being planned.
|
|
170448
170422
|
|
|
170449
170423
|
## Triage tools
|
|
170450
170424
|
You have these extra tools during triage:
|
|
@@ -170503,7 +170477,7 @@ This bullet is the planning-side half of the artifact-pipeline contract; keep it
|
|
|
170503
170477
|
-->
|
|
170504
170478
|
- For tasks with a visible UI surface or whose deliverable is visual/media (wireframes, mockups, designs, diagrams, screenshots, screen recordings, HTML prototypes, PDF exports), include an explicit step or checkbox instructing the executor to save each deliverable to disk and register it via \`fn_artifact_register\` (images via \`type="image", path=...\`; recordings via \`type="video", path=...\`; HTML mockups via \`type="document", mimeType="text/html"\` for live gallery previews; PDFs via \`type="document", mimeType="application/pdf", path=...\`) so it appears in the dashboard Artifacts gallery
|
|
170505
170479
|
- Include a "Do NOT" section with project-appropriate guardrails
|
|
170506
|
-
- Size assessment: S (<{{triageSizeSmallMaxHours}}h), M ({{triageSizeSmallMaxHours}}-{{triageSizeMediumMaxHours}}h), L ({{triageSizeMediumMaxHours}}-{{triageSizeLargeMaxHours}}h).
|
|
170480
|
+
- Size assessment: S (<{{triageSizeSmallMaxHours}}h), M ({{triageSizeSmallMaxHours}}-{{triageSizeMediumMaxHours}}h), L ({{triageSizeMediumMaxHours}}-{{triageSizeLargeMaxHours}}h+). Keep every requested task as one detailed plan regardless of size.
|
|
170507
170481
|
- Review level scoring: Blast radius (0-2), Pattern novelty (0-2), Security (0-2), Reversibility (0-2)
|
|
170508
170482
|
- 0-1 \u2192 Level 0, 2-3 \u2192 Level 1, 4-5 \u2192 Level 2, 6-8 \u2192 Level 3
|
|
170509
170483
|
|
|
@@ -170518,11 +170492,11 @@ FNXC:WorkflowRouting 2026-06-22-17:24:
|
|
|
170518
170492
|
Standard triage must not infer workflow changes from task type. Agents preserve the project default unless the user names or explicitly requests a workflow, or the agent created the task; no-commit decisions use the header marker without automatic workflow selection.
|
|
170519
170493
|
-->
|
|
170520
170494
|
## Workflow Routing
|
|
170521
|
-
- Keep the project default workflow (\`{{triageDefaultWorkflowId}}\`) unless the user explicitly requested a specific workflow for this task
|
|
170495
|
+
- Keep the project default workflow (\`{{triageDefaultWorkflowId}}\`) unless the user explicitly requested a specific workflow for this task, or you created that task yourself.
|
|
170522
170496
|
- Do NOT call \`fn_workflow_select\` or pass \`workflow_id\` to \`fn_task_create\` just because a task looks like investigation, audit, research, operational routing/coordination, decision-only work, or standard coding work.
|
|
170523
170497
|
- When you create a task via \`fn_task_create\` or \`fn_delegate_task\`, you may select that created task's workflow with \`workflow_id\` at create time or \`fn_workflow_select\` afterward; do not move a task you did not create unless the user asked.
|
|
170524
170498
|
- For decision-only tasks ({{triageNoCommitsDecisionVerbs}}) or other no-code tasks, set \`**No commits expected:** true\` in the PROMPT.md header when the no-commits criteria above are met; this is a header marker only and does not select \`{{triageDecisionOnlyWorkflowId}}\` or any custom investigation workflow by itself.
|
|
170525
|
-
- If the user explicitly asks for a workflow, call \`fn_workflow_list\` to discover valid IDs, then use \`fn_workflow_select\` to set the workflow on the current task or pass \`workflow_id\` to \`fn_task_create\` when creating
|
|
170499
|
+
- If the user explicitly asks for a workflow, call \`fn_workflow_list\` to discover valid IDs, then use \`fn_workflow_select\` to set the workflow on the current task or pass \`workflow_id\` to \`fn_task_create\` when creating requested independent work.
|
|
170526
170500
|
|
|
170527
170501
|
## Plan Review
|
|
170528
170502
|
|
|
@@ -170669,45 +170643,12 @@ Concrete examples:
|
|
|
170669
170643
|
- **Documentation completeness:** [Must Update / Check If Affected sections present?]
|
|
170670
170644
|
- **Dangling task-document references:** [No \`.fusion/tasks/<id>/<file>\` path is cited in Context, Steps, or File Scope unless the file exists or is explicitly created as a \`(new)\` artifact in this spec. References to nonexistent task-local artifacts are a blocking REVISE.]
|
|
170671
170645
|
- **Sizing & review level:** [Size and review level appropriate for the work?]
|
|
170672
|
-
- **Subtask breakdown:** [Only flag genuinely oversized specs (12+ implementation steps, OR 5+ truly independent deliverables that could ship separately). Do NOT flag a coherent vertical change just because it touches multiple packages. When borderline, prefer leaving the task whole.]
|
|
170673
170646
|
- **User comment coverage:** [Were all user comments addressed? Every user comment must be reflected in the spec \u2014 missing coverage is a blocking REVISE]
|
|
170674
170647
|
|
|
170675
170648
|
### Suggestions
|
|
170676
170649
|
- [Optional improvements, not blocking]
|
|
170677
170650
|
\`\`\`
|
|
170678
170651
|
|
|
170679
|
-
## Spec Review \u2014 Undersplit Task Detection
|
|
170680
|
-
|
|
170681
|
-
When reviewing specs, assess whether the task should have been broken into subtasks. The bar for splitting is high \u2014 most tasks should remain whole. Coordination overhead (worktrees, dependency wiring, merge sequencing) is real, so splitting must clearly pay for itself.
|
|
170682
|
-
|
|
170683
|
-
**Default position:** do NOT flag undersplit. Reach for it only when the spec is genuinely oversized.
|
|
170684
|
-
|
|
170685
|
-
**Flag as REVISE only when ALL of the following are true:**
|
|
170686
|
-
- The spec has 12+ implementation steps, OR contains 5+ clearly independent deliverables that could be shipped separately by different people
|
|
170687
|
-
- The deliverables are NOT a coherent vertical change (a single feature touching core + dashboard + tests is coherent \u2014 do not split it)
|
|
170688
|
-
- Splitting would produce children that each have \u22654 steps and a clearly distinct scope
|
|
170689
|
-
|
|
170690
|
-
If the spec is borderline (under those thresholds, or arguable), put your splitting suggestion in the **Suggestions** section instead of REVISE \u2014 the planner can take it or leave it.
|
|
170691
|
-
|
|
170692
|
-
**How to flag an undersplit task (only when the criteria above are met):**
|
|
170693
|
-
Say explicitly: "This task should be broken into subtasks because [specific reason]."
|
|
170694
|
-
Recommend the number of child tasks (2-5) and what each should cover.
|
|
170695
|
-
Instruct the planner to:
|
|
170696
|
-
1. Use the \`fn_task_create\` tool to create 2\u20135 child tasks from the oversized spec
|
|
170697
|
-
2. Do NOT write a parent PROMPT.md \u2014 the parent will be closed automatically after children are created
|
|
170698
|
-
(Not write a parent PROMPT.md is also unacceptable.)
|
|
170699
|
-
3. Make each child cover one coherent deliverable with clear scope boundaries
|
|
170700
|
-
|
|
170701
|
-
Example REVISE feedback for a genuinely oversized task:
|
|
170702
|
-
"This task has 14 steps and contains 4 independent deliverables (engine integration, dashboard UI, CLI command, migration tooling) that could ship separately. Use fn_task_create to split into: (1) engine logic, (2) dashboard UI, (3) CLI integration, (4) migration tooling. Do not write a parent PROMPT."
|
|
170703
|
-
|
|
170704
|
-
**Do NOT flag if ANY of these apply:**
|
|
170705
|
-
- The spec has 11 or fewer implementation steps
|
|
170706
|
-
- Steps are sequential and tightly coupled (e.g., a pipeline where each step depends on the previous)
|
|
170707
|
-
- The task is a vertical change touching multiple packages for one coherent feature (typical in this monorepo)
|
|
170708
|
-
- The task is a bug fix, regardless of how many files it touches
|
|
170709
|
-
- Splitting would create coordination overhead that exceeds the benefit
|
|
170710
|
-
|
|
170711
170652
|
## Plan Granularity
|
|
170712
170653
|
|
|
170713
170654
|
When reviewing plans, assess whether the approach achieves the step's OUTCOMES \u2014
|
|
@@ -171009,7 +170950,6 @@ submissions to a high bar for correctness, security, and maintainability.
|
|
|
171009
170950
|
- **Surface enumeration:** [For bug-fix specs, is \`## Surface Enumeration\` present and does it enumerate the relevant providers/bridges/execution paths, desktop + mobile breakpoints/platforms, empty/undefined/duplicate/populated states, and shared hooks/components/modules/helpers? Missing or incomplete coverage is a blocking REVISE.]
|
|
171010
170951
|
- **Documentation completeness:** [Must Update / Check If Affected sections present?]
|
|
171011
170952
|
- **Sizing & review level:** [Size and review level appropriate for the work?]
|
|
171012
|
-
- **Subtask breakdown:** [Were complex tasks appropriately split into 2-5 child tasks?]
|
|
171013
170953
|
- **User comment coverage:** [Were all user comments addressed? Every user comment must be reflected in the spec \u2014 missing coverage is a blocking REVISE]
|
|
171014
170954
|
- **Security considerations:** [Are security-sensitive areas identified and addressed?]
|
|
171015
170955
|
- **Edge case coverage:** [Does the spec account for failure modes and boundary conditions?]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runfusion/fusion",
|
|
3
|
-
"version": "0.77.0-beta.
|
|
3
|
+
"version": "0.77.0-beta.5",
|
|
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",
|
package/skill/fusion/SKILL.md
CHANGED
|
@@ -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`
|
|
@@ -143,13 +143,14 @@ Unarchive an archived task (move from archived → its restore column). Restores
|
|
|
143
143
|
|
|
144
144
|
### fn_task_delete
|
|
145
145
|
|
|
146
|
-
Soft-delete a task from active Fusion board views. The task row and artifacts are preserved; optional allowResurrection marks the ID for intentional recreation. If
|
|
146
|
+
Soft-delete a task from active Fusion board views. The task row and artifacts are preserved; optional allowResurrection marks the ID for intentional recreation. If live lineage children or dependents still reference the task, deletion is rejected unless the matching explicit reference-removal option is passed.
|
|
147
147
|
|
|
148
148
|
| Parameter | Type | Required | Description |
|
|
149
149
|
|-----------|------|----------|-------------|
|
|
150
150
|
| `id` | string | ✓ | Task ID to delete (e.g. FN-001) |
|
|
151
151
|
| `allowResurrection` | boolean | — | When true, mark this tombstone as explicitly reusable for future recreation. |
|
|
152
152
|
| `removeLineageReferences` | boolean | — | When true, clear incoming lineage-parent references (child sourceParentTaskId) before deleting, so a task still referenced as a lineage parent can be removed. |
|
|
153
|
+
| `removeDependencyReferences` | boolean | — | When true, remove incoming dependency edges before soft deletion. Omit or pass false to retain the dependent-conflict refusal. |
|
|
153
154
|
|
|
154
155
|
### fn_task_browse_gitlab_project_issues
|
|
155
156
|
|
|
@@ -526,6 +527,23 @@ Link a feature to a fn task for implementation. Updates the feature status to 't
|
|
|
526
527
|
| `featureId` | string | ✓ | Feature ID to link (e.g., F-001) |
|
|
527
528
|
| `taskId` | string | ✓ | Task ID to link to (e.g., FN-001) |
|
|
528
529
|
|
|
530
|
+
### fn_feature_repoint_task
|
|
531
|
+
|
|
532
|
+
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.
|
|
533
|
+
|
|
534
|
+
| Parameter | Type | Required | Description |
|
|
535
|
+
|-----------|------|----------|-------------|
|
|
536
|
+
| `featureId` | string | ✓ | Feature ID to re-point (e.g., F-001) |
|
|
537
|
+
| `taskId` | string | ✓ | Task ID to re-point to (e.g., FN-001) |
|
|
538
|
+
|
|
539
|
+
### fn_feature_unlink_task
|
|
540
|
+
|
|
541
|
+
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.
|
|
542
|
+
|
|
543
|
+
| Parameter | Type | Required | Description |
|
|
544
|
+
|-----------|------|----------|-------------|
|
|
545
|
+
| `featureId` | string | ✓ | Feature ID to unlink (e.g., F-001) |
|
|
546
|
+
|
|
529
547
|
### fn_feature_set_status
|
|
530
548
|
|
|
531
549
|
Set a feature lifecycle status.
|
|
@@ -36,7 +36,7 @@ All skill/extension tool invocations in this catalog use the public `fn_*` names
|
|
|
36
36
|
| `fn_task_refine` | Request a refinement of a completed or in-review task. Creates a new follow-up task in planning that references the original task as a dependency. Use this when a done or in-review task needs additional work, improvements, or follow-up changes. |
|
|
37
37
|
| `fn_task_archive` | Archive a task from any live column (move to archived). Archived tasks are preserved for historical reference but moved out of the main board view. If the task is still referenced as a lineage parent by another task, archiving is rejected unless removeLineageReferences:true is passed. |
|
|
38
38
|
| `fn_task_unarchive` | Unarchive an archived task (move from archived → its restore column). Restores to the pre-archive column when available, with active execution columns downgraded to todo. |
|
|
39
|
-
| `fn_task_delete` | Soft-delete a task from active Fusion board views. The task row and artifacts are preserved; optional allowResurrection marks the ID for intentional recreation. If
|
|
39
|
+
| `fn_task_delete` | Soft-delete a task from active Fusion board views. The task row and artifacts are preserved; optional allowResurrection marks the ID for intentional recreation. If live lineage children or dependents still reference the task, deletion is rejected unless the matching explicit reference-removal option is passed. |
|
|
40
40
|
| `fn_task_import_github` | Import GitHub issues as Fusion tasks. Fetches open issues from a repository and creates tasks in the planning column. Each task includes the issue title and body with a link to the source issue. |
|
|
41
41
|
| `fn_task_import_github_issue` | Import a specific GitHub issue as a Fusion task. Fetches the issue by number and creates a single task in the planning column with the issue title and body. |
|
|
42
42
|
| `fn_task_browse_github_issues` | List open GitHub issues from a repository to browse before importing. Returns issue numbers, titles, and URLs for selection. Use with fn_task_import_github_issue to import specific issues by number. |
|
|
@@ -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. |
|
|
@@ -134,7 +134,7 @@ What the task should accomplish.
|
|
|
134
134
|
}
|
|
135
135
|
```
|
|
136
136
|
|
|
137
|
-
> **Note:** `maxConcurrent` applies to task-lane agents (triage, execution, merge) only. Utility AI workflows—planning mode,
|
|
137
|
+
> **Note:** `maxConcurrent` applies to task-lane agents (triage, execution, merge) only. Utility AI workflows—planning mode, mission interviews, agent heartbeat/chat wake, and title summarization—run outside this limit on a dedicated control-plane lane.
|
|
138
138
|
|
|
139
139
|
## Global Settings
|
|
140
140
|
|
|
@@ -58,8 +58,8 @@ fn_task_plan({ description: "Build a notification system for the app" })
|
|
|
58
58
|
The planning mode will:
|
|
59
59
|
1. Ask clarifying questions about scope, channels (email, push, in-app), users
|
|
60
60
|
2. Identify technical constraints and dependencies
|
|
61
|
-
3.
|
|
62
|
-
4. Create
|
|
61
|
+
3. Develop one complete plan with concrete, defined steps
|
|
62
|
+
4. Create one well-specified task that retains the original request
|
|
63
63
|
|
|
64
64
|
**Organizing with Missions:**
|
|
65
65
|
|