@runfusion/fusion 0.76.0-beta.3 → 0.77.0-beta.0
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 +13802 -9587
- package/dist/child-process-worker.js +6472 -4028
- package/dist/client/.vite/manifest.json +280 -269
- package/dist/client/assets/AgentDetailView-0G9qFd4j.js +13 -0
- package/dist/client/assets/{AgentDetailView-Cc3ATg8a.css → AgentDetailView-jzgy1BAS.css} +1 -1
- package/dist/client/assets/{AgentPermissionPolicyEditor--u9jyUf2.js → AgentPermissionPolicyEditor-BM68g7wo.js} +1 -1
- package/dist/client/assets/AgentsView-DkOUZWw4.js +24 -0
- package/dist/client/assets/ChatView-BPSm2JIH.js +13 -0
- package/dist/client/assets/{CommandCenter-CSRYoveB.js → CommandCenter-DxRSFWNc.js} +26 -26
- package/dist/client/assets/CommandCenter-ilm-DbtI.css +1 -0
- package/dist/client/assets/{DevServerView-B9So_oYx.js → DevServerView-DO-bqJFE.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-BhyDL_2m.js → DirectoryPicker-Cp2gddTE.js} +1 -1
- package/dist/client/assets/DocumentsView-D0E-3G96.js +1 -0
- package/dist/client/assets/EvalsView-BoFVq5hw.js +1 -0
- package/dist/client/assets/ExperimentalAgentOnboardingModal-CS1Sdogm.js +1 -0
- package/dist/client/assets/{GoalsView-B6X5_0Ve.js → GoalsView-sybf7JY4.js} +1 -1
- package/dist/client/assets/InsightsView-nHa7aShn.js +11 -0
- package/dist/client/assets/{MemoryView-DN_3IFmA.css → MemoryView-CdpQqPJJ.css} +1 -1
- package/dist/client/assets/MemoryView-D0IG44za.js +3 -0
- package/dist/client/assets/{PiExtensionsManager-B8At6fO8.js → PiExtensionsManager-CU76weJe.js} +2 -2
- package/dist/client/assets/PluginManager-DyT8XbcG.js +1 -0
- package/dist/client/assets/{PullRequestView-B1hZFrWo.js → PullRequestView-CnxWUSen.js} +2 -2
- package/dist/client/assets/{ReportModal-C46V_zEa.js → ReportModal-CMrmMQjD.js} +5 -5
- package/dist/client/assets/{ResearchView-D8G85BYN.js → ResearchView-BTytQSgy.js} +2 -2
- package/dist/client/assets/{SecretsView-CTri9LRK.js → SecretsView-BuSH5J87.js} +1 -1
- package/dist/client/assets/SessionTerminal-D04kYRrT.js +2 -0
- package/dist/client/assets/SettingsModal-C0FY8MPW.css +1 -0
- package/dist/client/assets/{SettingsModal-rUQcSTJp.js → SettingsModal-Dm-ngbRr.js} +1 -1
- package/dist/client/assets/{SettingsModal-DmfMotcd.css → SettingsModal-Ds0Yj47X.css} +1 -1
- package/dist/client/assets/SettingsModal-xSLhH7Tr.js +21 -0
- package/dist/client/assets/{SettingsTextareaRow-BirlBcem.js → SettingsTextareaRow-CHPgocEp.js} +1 -1
- package/dist/client/assets/{SetupWizardModal-xnCBM9EL.js → SetupWizardModal-y88aXNIQ.js} +2 -2
- package/dist/client/assets/{SkillsView-O5U0ep50.js → SkillsView-CYyQW1Hv.js} +1 -1
- package/dist/client/assets/{WorkflowNodeEditor-BX4d2qqF.js → WorkflowNodeEditor-hYeoz1X8.js} +3 -3
- package/dist/client/assets/{agent-import-generation-DnqVkPkz.js → agent-import-generation-CjiYXzCr.js} +1 -1
- package/dist/client/assets/agentsOrgChartLayout-C0UP_X3z.js +1 -0
- package/dist/client/assets/app-BgpuMvTU.js +13 -0
- package/dist/client/assets/app-BlexHhbW.js +13 -0
- package/dist/client/assets/app-BsuUOR0P.js +13 -0
- package/dist/client/assets/app-DQVOujmO.js +13 -0
- package/dist/client/assets/app-DjyTRx1N.js +5 -0
- package/dist/client/assets/app-Dniggype.js +13 -0
- package/dist/client/assets/app-EV-lyZ0T.js +5 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-gi467xY0.js → architectureDiagram-3BPJPVTR-Dd6GPcqM.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-B_gpcYiR.js → blockDiagram-GPEHLZMM-CC6pLxlz.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-DeylEYsQ.js → c4Diagram-AAUBKEIU-DxMP_l6y.js} +1 -1
- package/dist/client/assets/channel-DlCEMoEf.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-BL2WY0HN.js → chunk-2J33WTMH-BKYToL43.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-BkLExGMe.js → chunk-4BX2VUAB-Bg6rjQb3.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CSTvCF5T.js → chunk-55IACEB6-CPUwbbGa.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-9J8pKk4x.js → chunk-727SXJPM-DScQBCvv.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-DXC1vPWr.js → chunk-AQP2D5EJ-DbX7uaXK.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-CFRUb-zD.js → chunk-FMBD7UC4-DvYKea1c.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-B87HFYS8.js → chunk-ND2GUHAM-CH-Tvw7w.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-CTjHiGbd.js → chunk-QZHKN3VN-CbyEvOoM.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-Bc92O8Ks.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Bc92O8Ks.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-D3Edq3L9.js → cose-bilkent-S5V4N54A-BPB5fV3A.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-CwwbeQfN.js → dagre-BM42HDAG-CilYJ3rR.js} +1 -1
- package/dist/client/assets/{dashboard-view-QxQwJFLz.js → dashboard-view-BnGe8cWo.js} +1 -1
- package/dist/client/assets/{dashboard-view-BLAoW3D4.js → dashboard-view-DnVf3tmI.js} +1 -1
- package/dist/client/assets/{dashboard-view-DAlJxqiJ.js → dashboard-view-DoLU6FxZ.js} +1 -1
- package/dist/client/assets/{dashboard-view-aPzfv99T.js → dashboard-view-dChSM_So.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-koJWWXE4.js → diagram-2AECGRRQ-m9u1Qhyx.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-Yob5cOKT.js → diagram-5GNKFQAL-DVr7Kf0N.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-DelvFSkK.js → diagram-KO2AKTUF-D7sgJDFx.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-CMput2h2.js → diagram-LMA3HP47-DNKNDS6r.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-04VXDl79.js → diagram-OG6HWLK6-1Bff4FWn.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-C9iP8Uyp.js → erDiagram-TEJ5UH35-DGua1UHN.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-DENQvu_t.js → flowDiagram-I6XJVG4X-UDfDtwsE.js} +1 -1
- package/dist/client/assets/{folder-open-D-554oji.js → folder-open-CteOypVk.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-BqOttZAT.js → ganttDiagram-6RSMTGT7-COdmD328.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CDcydi-5.js → gitGraphDiagram-PVQCEYII-SUSls7Kw.js} +1 -1
- package/dist/client/assets/index-0ovTXt3t.css +1 -0
- package/dist/client/assets/index-DpCHwyiD.js +2818 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-B5LQQnxt.js → infoDiagram-5YYISTIA-e_DloXj7.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-DpFEt7D2.js → ishikawaDiagram-YF4QCWOH-DVWqihXg.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-MELtgu22.js → journeyDiagram-JHISSGLW-BcPY-XP0.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-h33PLATd.js → kanban-definition-UN3LZRKU-BCFG2Jle.js} +1 -1
- package/dist/client/assets/{mermaid.core-Dk2mUPOq.js → mermaid.core-5yPje9Bi.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-B_T4O2-B.js → mindmap-definition-RKZ34NQL-DDApeT3K.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-B1YIFkRl.js → pieDiagram-4H26LBE5-N61_jyeP.js} +1 -1
- package/dist/client/assets/{puzzle-hvecxlpJ.js → puzzle-BkaCP30D.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-BoGQR_hO.js → quadrantDiagram-W4KKPZXB-C5qHiApF.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-BSDmUBIx.js → requirementDiagram-4Y6WPE33-C71okgzt.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Dz_GqOa5.js → sankeyDiagram-5OEKKPKP-B2iKyLjB.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-B6twjYUH.js → sequenceDiagram-3UESZ5HK-DfdoYKKk.js} +1 -1
- package/dist/client/assets/{shield-alert-BX4WRJOv.js → shield-alert-BNSeDB8l.js} +1 -1
- package/dist/client/assets/standing-instructions-template-pZtzo1lK.js +20 -0
- package/dist/client/assets/standing-instructions-template-w7Ouw_37.css +1 -0
- package/dist/client/assets/{stateDiagram-AJRCARHV-DuwqWLx-.js → stateDiagram-AJRCARHV-lS-sUi12.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-Bu8Sk187.js → stateDiagram-v2-BHNVJYJU-DXJNDrV9.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-BS6VnqSI.js → timeline-definition-PNZ67QCA-CCwvX81K.js} +1 -1
- package/dist/client/assets/{upload-CaDoyaMW.js → upload-CDovVbu2.js} +1 -1
- package/dist/client/assets/useDiscoveredSkillsCache-BYqP-afh.js +1 -0
- package/dist/client/assets/{users-C5uCLwVM.js → users-CTqECGLo.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CUbzqT5Y.js → vennDiagram-CIIHVFJN-DaiR5nv9.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-Mv-NotFS.js → wardley-L42UT6IY-hA5IHyPW.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DuYpvLZX.js → wardleyDiagram-YWT4CUSO-CILUNESc.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-24_7QXdw.js → xychartDiagram-2RQKCTM6-72eNMmjz.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/package.json +1 -1
- package/dist/extension.js +10671 -6904
- package/dist/migrations/0059_fn_9037_tasks_source_agent_index.sql +3 -0
- package/dist/migrations/0060_fn_9059_workspace_coordination_leases.sql +10 -0
- package/dist/pi-claude-cli/package.json +1 -1
- package/dist/plugin-sdk/index.d.ts +190 -9
- package/dist/plugin-sdk/index.js +74 -28
- package/dist/plugins/fusion-plugin-acp-runtime/bundled.js +83 -29
- package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-claude-runtime/bundled.js +83 -29
- package/dist/plugins/fusion-plugin-claude-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
- package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/bundled.js +1096 -73
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-grok-runtime/bundled.js +83 -29
- package/dist/plugins/fusion-plugin-grok-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/bundled.js +302 -71
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-linear-import/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-linear-import/package.json +1 -1
- package/dist/plugins/fusion-plugin-omp-runtime/bundled.js +83 -29
- package/dist/plugins/fusion-plugin-omp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-quality/bundled.js +176 -46
- package/dist/plugins/fusion-plugin-quality/package.json +1 -1
- package/dist/plugins/fusion-plugin-reports/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-reports/package.json +1 -1
- package/dist/plugins/fusion-plugin-roadmap/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-todos/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-todos/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/bundled.js +74 -28
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +1 -1
- package/skill/fusion/references/extension-tools.md +2 -0
- package/dist/client/assets/AgentDetailView-T767kKTg.js +0 -13
- package/dist/client/assets/AgentsView-6Ifu7qDr.js +0 -24
- package/dist/client/assets/ChatView-BV3lixQi.js +0 -13
- package/dist/client/assets/CommandCenter-CE4rYjHn.css +0 -1
- package/dist/client/assets/DocumentsView-pbERA7O-.js +0 -1
- package/dist/client/assets/EvalsView-DJQ4ltCg.js +0 -1
- package/dist/client/assets/ExperimentalAgentOnboardingModal-BwJuzkzB.js +0 -1
- package/dist/client/assets/InsightsView-CJgI0J7S.js +0 -11
- package/dist/client/assets/MemoryView-BHq1AHPu.js +0 -3
- package/dist/client/assets/PluginManager-k7hV7_9e.js +0 -1
- package/dist/client/assets/SessionTerminal-BRf6r4Vp.js +0 -2
- package/dist/client/assets/SettingsModal-B30rPfYC.css +0 -1
- package/dist/client/assets/SettingsModal-D0RBeZik.js +0 -21
- package/dist/client/assets/agentsOrgChartLayout-CKuzbhFf.js +0 -1
- package/dist/client/assets/app-B2FwULu2.js +0 -5
- package/dist/client/assets/app-B6nJaqAl.js +0 -13
- package/dist/client/assets/app-CGXZeIRc.js +0 -13
- package/dist/client/assets/app-CGtkeBF5.js +0 -13
- package/dist/client/assets/app-CNzN1Plu.js +0 -13
- package/dist/client/assets/app-DLs-f5yM.js +0 -13
- package/dist/client/assets/app-DsvtcRUG.js +0 -5
- package/dist/client/assets/channel-BoE8DeM4.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-qnbLX_9_.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-qnbLX_9_.js +0 -1
- package/dist/client/assets/index-CXTd3LAB.css +0 -1
- package/dist/client/assets/index-CtYRoouR.js +0 -2818
- package/dist/client/assets/standing-instructions-template-BJY317CC.js +0 -20
- package/dist/client/assets/standing-instructions-template-Ddi_4TIk.css +0 -1
|
@@ -163077,7 +163077,9 @@ __export(project_exports, {
|
|
|
163077
163077
|
workflowSettings: () => workflowSettings,
|
|
163078
163078
|
workflowSteps: () => workflowSteps,
|
|
163079
163079
|
workflowWorkItems: () => workflowWorkItems,
|
|
163080
|
-
workflows: () => workflows
|
|
163080
|
+
workflows: () => workflows,
|
|
163081
|
+
workspaceCoordinationLeases: () => workspaceCoordinationLeases,
|
|
163082
|
+
workspaceLandIntents: () => workspaceLandIntents
|
|
163081
163083
|
});
|
|
163082
163084
|
var projectSchema = pgSchema(PROJECT_SCHEMA);
|
|
163083
163085
|
var tasks = projectSchema.table("tasks", {
|
|
@@ -163344,6 +163346,9 @@ var tasks = projectSchema.table("tasks", {
|
|
|
163344
163346
|
the gate is a full tasks-table scan. Sparse: most rows have NULL parent.
|
|
163345
163347
|
*/
|
|
163346
163348
|
index("idxTasksSourceParentTaskId").on(t.sourceParentTaskId),
|
|
163349
|
+
/* FNXC:TaskRecommendations 2026-08-13-22:23: duplicate intake filters source
|
|
163350
|
+
* lineage on recommendation/agent creates; this sparse index avoids a task-table scan. */
|
|
163351
|
+
index("idxTasksProjectSourceAgentId").on(t.projectId, t.sourceAgentId).where(sql`${t.sourceAgentId} IS NOT NULL`),
|
|
163347
163352
|
// FNXC:EphemeralAgentTaskCreation 2026-07-30-12:00: proposal retries share one stable key, so the database—not a read-before-create race—enforces at-most-once materialization.
|
|
163348
163353
|
uniqueIndex("uqTasksProjectProposalClaimId").on(t.projectId, t.proposalClaimId).where(sql`${t.proposalClaimId} IS NOT NULL`),
|
|
163349
163354
|
/*
|
|
@@ -163578,6 +163583,52 @@ var distributedTaskIdReservations = projectSchema.table("distributed_task_id_res
|
|
|
163578
163583
|
index("idxDistributedTaskIdReservationsPrefixStatus").on(t.prefix, t.status),
|
|
163579
163584
|
index("idxDistributedTaskIdReservationsExpiry").on(t.status, t.expiresAt)
|
|
163580
163585
|
]);
|
|
163586
|
+
var workspaceCoordinationLeases = projectSchema.table("workspace_coordination_leases", {
|
|
163587
|
+
projectId: text("project_id").notNull().default(sql`current_setting('fusion.project_id', true)`),
|
|
163588
|
+
leaseKey: text("lease_key").notNull(),
|
|
163589
|
+
kind: text("kind").notNull(),
|
|
163590
|
+
ownerTaskId: text("owner_task_id").notNull(),
|
|
163591
|
+
ownerNodeId: text("owner_node_id").notNull(),
|
|
163592
|
+
ownerIncarnationId: text("owner_incarnation_id").notNull(),
|
|
163593
|
+
ownerRunId: text("owner_run_id"),
|
|
163594
|
+
fenceToken: bigint("fence_token", { mode: "bigint" }).notNull().default(sql`0`),
|
|
163595
|
+
fenceRefName: text("fence_ref_name"),
|
|
163596
|
+
fenceRefSha: text("fence_ref_sha"),
|
|
163597
|
+
status: text("status").notNull(),
|
|
163598
|
+
acquiredAt: text("acquired_at").notNull(),
|
|
163599
|
+
renewedAt: text("renewed_at").notNull(),
|
|
163600
|
+
expiresAt: text("expires_at").notNull(),
|
|
163601
|
+
createdAt: text("created_at").notNull(),
|
|
163602
|
+
updatedAt: text("updated_at").notNull()
|
|
163603
|
+
}, (t) => [
|
|
163604
|
+
primaryKey({ columns: [t.projectId, t.leaseKey] }),
|
|
163605
|
+
check("workspace_coordination_leases_kind_check", sql`${t.kind} IN ('acquire', 'land', 'merge-dispatch')`),
|
|
163606
|
+
check("workspace_coordination_leases_status_check", sql`${t.status} IN ('held', 'released', 'expired')`),
|
|
163607
|
+
index("idxWorkspaceCoordinationLeasesOwnerTask").on(t.projectId, t.ownerTaskId),
|
|
163608
|
+
index("idxWorkspaceCoordinationLeasesOwnerNode").on(t.projectId, t.ownerNodeId),
|
|
163609
|
+
index("idxWorkspaceCoordinationLeasesExpiry").on(t.status, t.expiresAt)
|
|
163610
|
+
]);
|
|
163611
|
+
var workspaceLandIntents = projectSchema.table("workspace_land_intents", {
|
|
163612
|
+
projectId: text("project_id").notNull().default(sql`current_setting('fusion.project_id', true)`),
|
|
163613
|
+
taskId: text("task_id").notNull(),
|
|
163614
|
+
repoRelPath: text("repo_rel_path").notNull(),
|
|
163615
|
+
remoteUrl: text("remote_url").notNull(),
|
|
163616
|
+
integrationRef: text("integration_ref").notNull(),
|
|
163617
|
+
intendedSha: text("intended_sha").notNull(),
|
|
163618
|
+
expectedTip: text("expected_tip").notNull(),
|
|
163619
|
+
fenceRefName: text("fence_ref_name").notNull(),
|
|
163620
|
+
fenceRefSha: text("fence_ref_sha").notNull(),
|
|
163621
|
+
ownerTaskId: text("owner_task_id").notNull(),
|
|
163622
|
+
ownerNodeId: text("owner_node_id").notNull(),
|
|
163623
|
+
ownerIncarnationId: text("owner_incarnation_id").notNull(),
|
|
163624
|
+
fenceToken: bigint("fence_token", { mode: "bigint" }).notNull(),
|
|
163625
|
+
status: text("status").notNull(),
|
|
163626
|
+
resolvedSha: text("resolved_sha"),
|
|
163627
|
+
resolution: text("resolution"),
|
|
163628
|
+
createdAt: text("created_at").notNull(),
|
|
163629
|
+
updatedAt: text("updated_at").notNull(),
|
|
163630
|
+
resolvedAt: text("resolved_at")
|
|
163631
|
+
}, (t) => [primaryKey({ columns: [t.projectId, t.taskId, t.repoRelPath] }), check("workspace_land_intents_status_check", sql`${t.status} IN ('pending', 'recorded', 'abandoned')`), check("workspace_land_intents_resolution_check", sql`${t.resolution} IS NULL OR ${t.resolution} IN ('landed', 'not-landed')`), index("idxWorkspaceLandIntentsStatus").on(t.projectId, t.status)]);
|
|
163581
163632
|
var symbolLocks = projectSchema.table("symbol_locks", {
|
|
163582
163633
|
projectId: text("project_id").notNull().default(sql`current_setting('fusion.project_id', true)`),
|
|
163583
163634
|
symbolKey: text("symbol_key").notNull(),
|
|
@@ -166152,6 +166203,11 @@ var DEFAULT_GLOBAL_SETTINGS = {
|
|
|
166152
166203
|
Critical-action confirmation dialogs stay enabled by default. This global-only preference may opt an operator into primary/default auto-approval, but project settings cannot enable it for collaborators.
|
|
166153
166204
|
*/
|
|
166154
166205
|
skipConfirmationDialogs: false,
|
|
166206
|
+
/*
|
|
166207
|
+
FNXC:QuickEntry 2026-08-16-03:15:
|
|
166208
|
+
Quick Add keeps its historical Enter-to-submit behavior by default; only an operator's global preference may opt into newline-first entry.
|
|
166209
|
+
*/
|
|
166210
|
+
quickAddSubmitOnEnter: true,
|
|
166155
166211
|
language: void 0,
|
|
166156
166212
|
defaultProvider: void 0,
|
|
166157
166213
|
defaultCredentialInstanceId: void 0,
|
|
@@ -166614,9 +166670,6 @@ var DEFAULT_PROJECT_SETTINGS = {
|
|
|
166614
166670
|
* New and unconfigured projects default AI merge to sync a dirty checked-out integration branch, restoring the legacy stash → fast-forward → restore landing behavior. Explicit persisted merger.allowDirtyLocalCheckoutSync values still win, and no existing-project migration stamps this default into storage.
|
|
166615
166671
|
*/
|
|
166616
166672
|
merger: { mode: "ai", maxReviewPasses: 3, allowDirtyLocalCheckoutSync: true },
|
|
166617
|
-
mergeDiffVolumeMinLines: void 0,
|
|
166618
|
-
mergeDiffVolumeThreshold: void 0,
|
|
166619
|
-
mergeDiffVolumeAllowlist: void 0,
|
|
166620
166673
|
requiredChecks: void 0,
|
|
166621
166674
|
mergeStrategyOverlapBehavior: "flip-to-prefer-branch",
|
|
166622
166675
|
postMergeAuditMode: "warn",
|
|
@@ -175267,10 +175320,6 @@ var AgentStore = class _AgentStore extends EventEmitter {
|
|
|
175267
175320
|
};
|
|
175268
175321
|
await this.writeAgent(updated);
|
|
175269
175322
|
this.emit("agent:stateChanged", agentId, currentState, newState);
|
|
175270
|
-
if (this.asyncLayer) try {
|
|
175271
|
-
await appendAgentActivityEvent(this.asyncLayer, { type: "agent:state-changed", attributionClaim: resolveAgentActivityAttribution([{ id: agentId, provenance: "roster" }], "executor"), taskId: updated.taskId, occurredAt: updated.updatedAt, discriminator: updated.updatedAt, metadata: { fromState: currentState, toState: newState, source: "update" } });
|
|
175272
|
-
} catch {
|
|
175273
|
-
}
|
|
175274
175323
|
this.emit("agent:updated", updated, currentState);
|
|
175275
175324
|
return updated;
|
|
175276
175325
|
});
|
|
@@ -175762,10 +175811,10 @@ var AgentStore = class _AgentStore extends EventEmitter {
|
|
|
175762
175811
|
return agents2;
|
|
175763
175812
|
}
|
|
175764
175813
|
/*
|
|
175765
|
-
FNXC:MemoryAgent 2026-08-
|
|
175766
|
-
Memory Keeper is custom because it is not a workflow-stage principal.
|
|
175767
|
-
|
|
175768
|
-
|
|
175814
|
+
FNXC:MemoryAgent 2026-08-16-02:31:
|
|
175815
|
+
Memory Keeper is custom because it is not a workflow-stage principal. Its heartbeat defaults off
|
|
175816
|
+
until an operator opts in, while auto-claim remains off because it only maintains memory. This
|
|
175817
|
+
runs during init, where createAgent name collisions would abort startup; preflight probes,
|
|
175769
175818
|
a fallback name, a null degraded result, and the init-side catch keep an operator's same-named
|
|
175770
175819
|
agent untouched and the project runnable.
|
|
175771
175820
|
*/
|
|
@@ -175791,7 +175840,13 @@ var AgentStore = class _AgentStore extends EventEmitter {
|
|
|
175791
175840
|
roles: [...BUILTIN_MEMORY_AGENT_DEFAULT.roles],
|
|
175792
175841
|
title: BUILTIN_MEMORY_AGENT_DEFAULT.title,
|
|
175793
175842
|
metadata: { [BUILTIN_MEMORY_AGENT_PROVENANCE_KEY]: true },
|
|
175794
|
-
|
|
175843
|
+
/*
|
|
175844
|
+
FNXC:MemoryAgent 2026-08-16-02:31:
|
|
175845
|
+
Memory consolidation is opt-in: newly provisioned Memory Keepers must not begin
|
|
175846
|
+
hourly autonomous heartbeats until an operator enables the existing heartbeat toggle.
|
|
175847
|
+
Keep auto-claim off and the one-hour interval ready for that later opt-in.
|
|
175848
|
+
*/
|
|
175849
|
+
runtimeConfig: { enabled: false, autoClaimRelevantTasks: false, heartbeatIntervalMs: 36e5 },
|
|
175795
175850
|
instructionsText: BUILTIN_MEMORY_AGENT_DEFAULT.instructionsText,
|
|
175796
175851
|
soul: BUILTIN_MEMORY_AGENT_DEFAULT.soul,
|
|
175797
175852
|
bundleConfig: { ...BUILTIN_MEMORY_AGENT_DEFAULT.bundleConfig, files: [...BUILTIN_MEMORY_AGENT_DEFAULT.bundleConfig.files] }
|
|
@@ -175806,7 +175861,9 @@ var AgentStore = class _AgentStore extends EventEmitter {
|
|
|
175806
175861
|
return owner;
|
|
175807
175862
|
}
|
|
175808
175863
|
const metadata = { ...owner.metadata ?? {}, [BUILTIN_MEMORY_AGENT_PROVENANCE_KEY]: true };
|
|
175809
|
-
const
|
|
175864
|
+
const currentRuntimeConfig = owner.runtimeConfig ?? {};
|
|
175865
|
+
const enabled = typeof currentRuntimeConfig.enabled === "boolean" ? currentRuntimeConfig.enabled : false;
|
|
175866
|
+
const runtimeConfig = currentRuntimeConfig.enabled === enabled && currentRuntimeConfig.autoClaimRelevantTasks === false && currentRuntimeConfig.heartbeatIntervalMs === DEFAULT_AGENT_HEARTBEAT_INTERVAL_MS ? currentRuntimeConfig : { ...currentRuntimeConfig, enabled, autoClaimRelevantTasks: false, heartbeatIntervalMs: DEFAULT_AGENT_HEARTBEAT_INTERVAL_MS };
|
|
175810
175867
|
const updates = {
|
|
175811
175868
|
roles: [...BUILTIN_MEMORY_AGENT_DEFAULT.roles],
|
|
175812
175869
|
role: "custom",
|
|
@@ -175816,7 +175873,9 @@ var AgentStore = class _AgentStore extends EventEmitter {
|
|
|
175816
175873
|
instructionsText: owner.instructionsText?.trim() ? owner.instructionsText : BUILTIN_MEMORY_AGENT_DEFAULT.instructionsText,
|
|
175817
175874
|
soul: owner.soul?.trim() ? owner.soul : BUILTIN_MEMORY_AGENT_DEFAULT.soul
|
|
175818
175875
|
};
|
|
175819
|
-
|
|
175876
|
+
const nextOwner = { ...owner, ...updates };
|
|
175877
|
+
if (JSON.stringify(nextOwner) === JSON.stringify(owner)) return owner;
|
|
175878
|
+
owner = { ...nextOwner, updatedAt: (/* @__PURE__ */ new Date()).toISOString() };
|
|
175820
175879
|
await this.writeAgent(owner, executor);
|
|
175821
175880
|
return owner;
|
|
175822
175881
|
};
|
|
@@ -176688,19 +176747,6 @@ var AgentStore = class _AgentStore extends EventEmitter {
|
|
|
176688
176747
|
this.agentSnapshotCache.set(agent.id, this.watchSnapshotOf(agent));
|
|
176689
176748
|
if (stateChanged) {
|
|
176690
176749
|
this.emit("agent:stateChanged", agent.id, previousState, agent.state);
|
|
176691
|
-
if (this.asyncLayer) {
|
|
176692
|
-
try {
|
|
176693
|
-
await appendAgentActivityEvent(this.asyncLayer, {
|
|
176694
|
-
type: "agent:state-changed",
|
|
176695
|
-
attributionClaim: resolveAgentActivityAttribution([{ id: agent.id, provenance: "roster" }], "executor"),
|
|
176696
|
-
taskId: agent.taskId,
|
|
176697
|
-
occurredAt: agent.updatedAt,
|
|
176698
|
-
discriminator: agent.updatedAt,
|
|
176699
|
-
metadata: { fromState: previousState, toState: agent.state, source: "reconciliation" }
|
|
176700
|
-
});
|
|
176701
|
-
} catch {
|
|
176702
|
-
}
|
|
176703
|
-
}
|
|
176704
176750
|
this.emit("agent:updated", agent, previousState);
|
|
176705
176751
|
} else {
|
|
176706
176752
|
this.emit("agent:updated", agent);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runfusion/fusion",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.77.0-beta.0",
|
|
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",
|
|
@@ -19,6 +19,8 @@ Create a new task on the Fusion task board. The task enters the planning column
|
|
|
19
19
|
| `agentId` | string | — | Agent ID to assign this task to (e.g. 'agent-abc123') |
|
|
20
20
|
| `priority` | string(enum) | — | Task priority (low, normal, high, urgent) |
|
|
21
21
|
| `workflow_id` | string | — | Workflow ID to select for the new task (e.g. 'WF-003' or 'builtin:coding'). Omit to inherit the project default workflow. Use fn_workflow_list to discover valid IDs. |
|
|
22
|
+
| `github_tracking` | boolean | — | Per-task GitHub issue tracking override. true links a tracking issue to this task; false disables tracking even when the project/global default enables it. Omit to inherit the project/global default. |
|
|
23
|
+
| `github_repo` | string | — | "owner/repo" override for the GitHub tracking issue's repository. Omit to use the project/global default repo. |
|
|
22
24
|
|
|
23
25
|
### fn_task_update
|
|
24
26
|
|