@runfusion/fusion 0.70.0 → 0.70.1
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 +68 -41
- package/dist/client/.vite/manifest.json +249 -249
- package/dist/client/assets/{AgentDetailView-UcyGK_vC.js → AgentDetailView-BHnJqo2r.js} +1 -1
- package/dist/client/assets/{AgentPermissionPolicyEditor-DVcgvRjw.js → AgentPermissionPolicyEditor-CLnVN1V8.js} +1 -1
- package/dist/client/assets/{AgentsView-BE-HTsa2.js → AgentsView-C2mpl-F-.js} +3 -3
- package/dist/client/assets/{ChatView-ChA7lPMm.js → ChatView-DO5uqh7X.js} +1 -1
- package/dist/client/assets/{CommandCenter-B_6bfWsl.js → CommandCenter-D4_mJL1B.js} +1 -1
- package/dist/client/assets/{DevServerView-B9D8g_ut.js → DevServerView-Cmwv4QOO.js} +1 -1
- package/dist/client/assets/{DirectoryPicker-D6EbSzd1.js → DirectoryPicker-DLuDx_eK.js} +1 -1
- package/dist/client/assets/{DocumentsView-DRfEB1Lf.js → DocumentsView-CBifAhxj.js} +1 -1
- package/dist/client/assets/{EvalsView-BlMBpGr-.js → EvalsView-BjlDIWu3.js} +1 -1
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-DB_bRWMS.js → ExperimentalAgentOnboardingModal-CrTPfgfP.js} +1 -1
- package/dist/client/assets/{GoalsView-C5s1QHy6.js → GoalsView-udCtfe8K.js} +1 -1
- package/dist/client/assets/{InsightsView-0Gyc7f0s.js → InsightsView-6kIswvAp.js} +1 -1
- package/dist/client/assets/{MemoryView-iCNmMJJS.js → MemoryView-BVHIG2Cw.js} +1 -1
- package/dist/client/assets/{PiExtensionsManager-DeOI2FkF.js → PiExtensionsManager-Q88P1dg_.js} +1 -1
- package/dist/client/assets/{PluginManager-DhPlSlzY.js → PluginManager-lE99At6D.js} +1 -1
- package/dist/client/assets/{PullRequestView-DUvemdMr.js → PullRequestView-BOKSbrgG.js} +1 -1
- package/dist/client/assets/{ResearchView-B0VUmdp-.js → ResearchView-X8nkEU65.js} +1 -1
- package/dist/client/assets/{SecretsView-JSCYGBv7.js → SecretsView-BDj6wR01.js} +1 -1
- package/dist/client/assets/{SessionTerminal-DHyiQAjY.js → SessionTerminal-CoePyx-a.js} +1 -1
- package/dist/client/assets/{SettingsModal-DBmFSHcS.js → SettingsModal-BoQyi1uT.js} +3 -3
- package/dist/client/assets/{SettingsModal-CAAE8x4y.js → SettingsModal-CECrEryw.js} +1 -1
- package/dist/client/assets/{SettingsTextareaRow-Bepf8u_T.js → SettingsTextareaRow-DV_0_v_J.js} +1 -1
- package/dist/client/assets/{SetupWizardModal-DBougliS.js → SetupWizardModal-B482Mabf.js} +2 -2
- package/dist/client/assets/{SkillsView-Do_RCxwg.js → SkillsView-Cp7jNXEV.js} +1 -1
- package/dist/client/assets/{ThemeDropdown-BZL3YFeV.js → ThemeDropdown-ChrT7lhT.js} +1 -1
- package/dist/client/assets/{TodoView-DUttsF_y.js → TodoView-HZw9-AQI.js} +1 -1
- package/dist/client/assets/{WorkflowNodeEditor-5V-ag8di.js → WorkflowNodeEditor-DeV9dfn3.js} +1 -1
- package/dist/client/assets/app-BLTqCjPk.js +13 -0
- package/dist/client/assets/app-BwKqEIVs.js +13 -0
- package/dist/client/assets/app-Bx4Tg9WL.js +13 -0
- package/dist/client/assets/app-bX7Aarj6.js +13 -0
- package/dist/client/assets/app-gasJpw6T.js +13 -0
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-Btn4zvDG.js → architectureDiagram-3BPJPVTR-tnFguX8z.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-BD9pvlM8.js → blockDiagram-GPEHLZMM-BKPZ6LQx.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-DoKUglr6.js → c4Diagram-AAUBKEIU-DSObk7BW.js} +1 -1
- package/dist/client/assets/channel-BU3NN8kT.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-CcrYik1W.js → chunk-2J33WTMH-CnJlEes6.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-DPBkmhox.js → chunk-4BX2VUAB-s6CMovw_.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-BKgW-ZME.js → chunk-55IACEB6-NEIqJT7j.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-BwHZ89kV.js → chunk-727SXJPM-C1CQZVzb.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-D9u2wbjN.js → chunk-AQP2D5EJ-6gMoMdGb.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-CnCKrO3d.js → chunk-FMBD7UC4-DmPr6Fr6.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-C9U4i51P.js → chunk-ND2GUHAM-DdT6_Vir.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-CfPCe-_9.js → chunk-QZHKN3VN-X6wAiHwG.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CCnXAfXJ.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CCnXAfXJ.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-DtwCEQs8.js → cose-bilkent-S5V4N54A-DiYJ_SGs.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-7af6SNqt.js → dagre-BM42HDAG-DbK9iSU6.js} +1 -1
- package/dist/client/assets/{dashboard-view-BedVE0Ih.js → dashboard-view-BuYhP1Cp.js} +1 -1
- package/dist/client/assets/{dashboard-view-DxJ37rW2.js → dashboard-view-C3f_CnQ1.js} +1 -1
- package/dist/client/assets/{dashboard-view-CVo9Y-Mr.js → dashboard-view-CUyQsgCx.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-POCtmGz8.js → diagram-2AECGRRQ-DzRxhbFR.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-i5K8mqYD.js → diagram-5GNKFQAL-CTMHqhQS.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-Sn06yZUj.js → diagram-KO2AKTUF-BuzYjBIv.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-C2fWgirp.js → diagram-LMA3HP47-DNo7IO4h.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-Bt2bFUl9.js → diagram-OG6HWLK6-BDCorOru.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-BghBGlaT.js → erDiagram-TEJ5UH35-Cz0hE7uE.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-wSa-kKJr.js → flowDiagram-I6XJVG4X-Kb2I0MOg.js} +1 -1
- package/dist/client/assets/{folder-open-DNSbtgHO.js → folder-open-LzyyHcib.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-DWBQrRfD.js → ganttDiagram-6RSMTGT7--M8kpndX.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DF3OeXPN.js → gitGraphDiagram-PVQCEYII-BvyviZo2.js} +1 -1
- package/dist/client/assets/{index-E8N-nvEr.js → index-BH5aIwaM.js} +285 -285
- package/dist/client/assets/index-Co20nJU4.css +1 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA--C0rwWUk.js → infoDiagram-5YYISTIA-Bgm5nKut.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-DbOOTJuV.js → ishikawaDiagram-YF4QCWOH-DWW_Prtm.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-B-9JjpPp.js → journeyDiagram-JHISSGLW-BOfifstC.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-qZZGQNnO.js → kanban-definition-UN3LZRKU-V8JEMLyb.js} +1 -1
- package/dist/client/assets/{mermaid.core-CeXW1p4f.js → mermaid.core-DDpO_pvZ.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-BXRCpP2x.js → mindmap-definition-RKZ34NQL-BLI9JHhu.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-47zFHuRm.js → pieDiagram-4H26LBE5-BL5eUgb4.js} +1 -1
- package/dist/client/assets/{puzzle-BNhvAyID.js → puzzle-BOqqcjsU.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DUKmccO0.js → quadrantDiagram-W4KKPZXB-CtvzPtau.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-BOJ_6eOW.js → requirementDiagram-4Y6WPE33-Co2--lq9.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-BHUv0akC.js → sankeyDiagram-5OEKKPKP-DaAXgU9Y.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-1EV1Z4wU.js → sequenceDiagram-3UESZ5HK-zdmQqra5.js} +1 -1
- package/dist/client/assets/{shield-alert-fp6442hB.js → shield-alert-DfIgeeR0.js} +1 -1
- package/dist/client/assets/{standing-instructions-template-BuvHfp3C.js → standing-instructions-template-B5GKUe8V.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-gl5trnu3.js → stateDiagram-AJRCARHV-CXK0Nj1C.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-BZTcdF3O.js → stateDiagram-v2-BHNVJYJU-BDtUdqu0.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-tWTH8fak.js → timeline-definition-PNZ67QCA-C2VA4hrS.js} +1 -1
- package/dist/client/assets/{upload-Qz1855iO.js → upload-DVSzPAp1.js} +1 -1
- package/dist/client/assets/{users-BQK7rz20.js → users-Bi9t1Jl7.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CFYaMPIr.js → vennDiagram-CIIHVFJN-3r5bGzbL.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-L-s3D5go.js → wardley-L42UT6IY-B8CM4294.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-Bnr2mimd.js → wardleyDiagram-YWT4CUSO-nzJ6haZ4.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-Bkx54Q3q.js → xychartDiagram-2RQKCTM6-CWUTnMyY.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/version.json +1 -1
- package/dist/extension.js +38 -32
- package/package.json +1 -1
- package/dist/client/assets/app-B3aUA71e.js +0 -13
- package/dist/client/assets/app-CKMMlwBM.js +0 -13
- package/dist/client/assets/app-CM_EbIz5.js +0 -13
- package/dist/client/assets/app-D5nFfAtx.js +0 -13
- package/dist/client/assets/app-DSo_fHWv.js +0 -13
- package/dist/client/assets/channel-DgUBVYLb.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-zHoYgXgS.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-zHoYgXgS.js +0 -1
- package/dist/client/assets/index-Bxrp0IKg.css +0 -1
package/dist/extension.js
CHANGED
|
@@ -173283,7 +173283,6 @@ async function resolveActivePrEntity(store, task) {
|
|
|
173283
173283
|
return store.getActivePrEntityBySource("branch-group", groupId);
|
|
173284
173284
|
}
|
|
173285
173285
|
function buildRespondCallback(getStore2, ops, audit, pluginRunner) {
|
|
173286
|
-
const gitOps = makePrResponseGitOps(ops.getCwd);
|
|
173287
173286
|
return async ({ entity }) => {
|
|
173288
173287
|
const store = getStore2();
|
|
173289
173288
|
const fullStore = store;
|
|
@@ -173296,8 +173295,17 @@ function buildRespondCallback(getStore2, ops, audit, pluginRunner) {
|
|
|
173296
173295
|
return { value: "disagreed-only" };
|
|
173297
173296
|
}
|
|
173298
173297
|
const taskId = ops.getTaskId(entity);
|
|
173299
|
-
const
|
|
173300
|
-
const
|
|
173298
|
+
const hasGetTask = typeof fullStore.getTask === "function";
|
|
173299
|
+
const respondTask = hasGetTask ? await fullStore.getTask(taskId) : null;
|
|
173300
|
+
const cwd = respondTask?.worktree || ops.getCwd(entity);
|
|
173301
|
+
const gitOps = makePrResponseGitOps(() => cwd);
|
|
173302
|
+
const runAgent = makePrResponseAgentRunner(
|
|
173303
|
+
settings,
|
|
173304
|
+
taskId,
|
|
173305
|
+
cwd,
|
|
173306
|
+
hasGetTask ? fullStore : void 0,
|
|
173307
|
+
pluginRunner
|
|
173308
|
+
);
|
|
173301
173309
|
const result = await runPrResponseRun({
|
|
173302
173310
|
entity,
|
|
173303
173311
|
store,
|
|
@@ -190603,18 +190611,14 @@ var init_unlinked_missions_advisory_reporter = __esm({
|
|
|
190603
190611
|
}
|
|
190604
190612
|
async report() {
|
|
190605
190613
|
try {
|
|
190606
|
-
const
|
|
190607
|
-
|
|
190608
|
-
return { alerted: false, reason: "mission-store-async-unsupported" };
|
|
190609
|
-
}
|
|
190610
|
-
const missionStore = resolvedMissionStore;
|
|
190611
|
-
const missions2 = missionStore.listMissions();
|
|
190614
|
+
const missionStore = this.store.getMissionStore();
|
|
190615
|
+
const missions2 = await missionStore.listMissions();
|
|
190612
190616
|
const unlinkedActiveMissions = [];
|
|
190613
190617
|
for (const mission of missions2) {
|
|
190614
190618
|
if (mission.status !== "active") {
|
|
190615
190619
|
continue;
|
|
190616
190620
|
}
|
|
190617
|
-
if (missionStore.listGoalIdsForMission(mission.id).length > 0) {
|
|
190621
|
+
if ((await missionStore.listGoalIdsForMission(mission.id)).length > 0) {
|
|
190618
190622
|
continue;
|
|
190619
190623
|
}
|
|
190620
190624
|
unlinkedActiveMissions.push(mission);
|
|
@@ -241993,13 +241997,17 @@ var init_mission_execution_loop = __esm({
|
|
|
241993
241997
|
* dispatch of the validation result.
|
|
241994
241998
|
*/
|
|
241995
241999
|
async runFeatureValidation(feature) {
|
|
241996
|
-
let assertions = await this.missionStore.listAssertionsForFeature(feature.id);
|
|
241997
|
-
if (assertions.length === 0) {
|
|
241998
|
-
loopLog.log(`Feature ${feature.id} has no linked assertions; lazily ensuring store-managed assertion linkage`);
|
|
241999
|
-
assertions = await this.missionStore.ensureFeatureAssertionLinked(feature.id);
|
|
242000
|
-
}
|
|
242001
242000
|
this.activeValidations.add(feature.id);
|
|
242002
242001
|
try {
|
|
242002
|
+
let assertions = await this.missionStore.listAssertionsForFeature(feature.id);
|
|
242003
|
+
if (assertions.length === 0) {
|
|
242004
|
+
loopLog.log(`Feature ${feature.id} has no linked assertions; lazily ensuring store-managed assertion linkage`);
|
|
242005
|
+
assertions = await this.missionStore.ensureFeatureAssertionLinked(feature.id);
|
|
242006
|
+
}
|
|
242007
|
+
if (assertions.length === 0) {
|
|
242008
|
+
await this.handleValidationPass(feature.id, void 0, "No assertions linked to feature");
|
|
242009
|
+
return;
|
|
242010
|
+
}
|
|
242003
242011
|
loopLog.log(`Running internal validation for feature ${feature.id} \u2014 no board task created (policy: docs/missions.md)`);
|
|
242004
242012
|
const run = feature.taskId ? await this.missionStore.startValidatorRun(feature.id, "task_completion", feature.taskId) : await this.missionStore.startValidatorRun(feature.id, "task_completion");
|
|
242005
242013
|
loopLog.log(`Started validator run ${run.id} for feature ${feature.id}`);
|
|
@@ -260449,6 +260457,7 @@ var init_project_engine = __esm({
|
|
|
260449
260457
|
if (this.started) {
|
|
260450
260458
|
return;
|
|
260451
260459
|
}
|
|
260460
|
+
this.shuttingDown = false;
|
|
260452
260461
|
await this.runtime.start();
|
|
260453
260462
|
await deliverPostgresMigrationNoticeIfNeeded({
|
|
260454
260463
|
messageStore: this.runtime.getMessageStore(),
|
|
@@ -260510,9 +260519,7 @@ var init_project_engine = __esm({
|
|
|
260510
260519
|
// through the FN-7520 façade for each real observation the monitor
|
|
260511
260520
|
// records, using the real TaskStore. Best-effort — never throws (the
|
|
260512
260521
|
// monitor already swallows callback errors around `onObservation`).
|
|
260513
|
-
onObservation: (observation) =>
|
|
260514
|
-
this.emitOverseerObservationDeduped(store, observation);
|
|
260515
|
-
}
|
|
260522
|
+
onObservation: (observation) => this.emitOverseerObservationDeduped(store, observation)
|
|
260516
260523
|
});
|
|
260517
260524
|
this.plannerRecoveryController = new PlannerRecoveryController({
|
|
260518
260525
|
snapshotProvider: this.plannerOverseer,
|
|
@@ -260883,7 +260890,6 @@ ${detail}`);
|
|
|
260883
260890
|
}
|
|
260884
260891
|
await this.runtime.stop();
|
|
260885
260892
|
this.started = false;
|
|
260886
|
-
this.shuttingDown = false;
|
|
260887
260893
|
runtimeLog.log(`ProjectEngine stopped for ${this.config.projectId}`);
|
|
260888
260894
|
}
|
|
260889
260895
|
// ── Public accessors ──
|
|
@@ -261122,9 +261128,9 @@ ${detail}`);
|
|
|
261122
261128
|
* try/catch-degrade-to-no-op contract every FN-7512/FN-7513/FN-7514
|
|
261123
261129
|
* handler already follows).
|
|
261124
261130
|
*/
|
|
261125
|
-
emitOverseerInterventionSafe(fn2) {
|
|
261131
|
+
async emitOverseerInterventionSafe(fn2) {
|
|
261126
261132
|
try {
|
|
261127
|
-
fn2();
|
|
261133
|
+
await fn2();
|
|
261128
261134
|
} catch (err) {
|
|
261129
261135
|
runtimeLog.warn(`Failed to emit overseer intervention: ${err instanceof Error ? err.message : String(err)}`);
|
|
261130
261136
|
}
|
|
@@ -261138,7 +261144,7 @@ ${detail}`);
|
|
|
261138
261144
|
* `(stage, signal)` pair emits. Best-effort: any store/façade failure is
|
|
261139
261145
|
* swallowed so it never breaks `PlannerOverseerMonitor#observeTask`/the poll.
|
|
261140
261146
|
*/
|
|
261141
|
-
emitOverseerObservationDeduped(store, observation) {
|
|
261147
|
+
async emitOverseerObservationDeduped(store, observation) {
|
|
261142
261148
|
try {
|
|
261143
261149
|
const dedupKey = `${observation.stage}:${observation.signal}`;
|
|
261144
261150
|
const last = this.plannerObservationEmitDedup.get(observation.taskId);
|
|
@@ -261146,7 +261152,7 @@ ${detail}`);
|
|
|
261146
261152
|
return;
|
|
261147
261153
|
}
|
|
261148
261154
|
this.plannerObservationEmitDedup.set(observation.taskId, dedupKey);
|
|
261149
|
-
emitOverseerObservation({
|
|
261155
|
+
await emitOverseerObservation({
|
|
261150
261156
|
store,
|
|
261151
261157
|
taskId: observation.taskId,
|
|
261152
261158
|
stage: observation.stage,
|
|
@@ -261169,14 +261175,14 @@ ${detail}`);
|
|
|
261169
261175
|
* clears the dedup entry and may escalate again in a future exhaustion).
|
|
261170
261176
|
* Best-effort; never throws out of the poll.
|
|
261171
261177
|
*/
|
|
261172
|
-
emitOverseerEscalationDeduped(store, taskId, decision) {
|
|
261178
|
+
async emitOverseerEscalationDeduped(store, taskId, decision) {
|
|
261173
261179
|
if (!decision.watchedStage) return;
|
|
261174
261180
|
const dedupKey = `${taskId}::${decision.watchedStage}`;
|
|
261175
261181
|
if (this.plannerEscalationEmitDedup.has(dedupKey)) {
|
|
261176
261182
|
return;
|
|
261177
261183
|
}
|
|
261178
261184
|
this.plannerEscalationEmitDedup.add(dedupKey);
|
|
261179
|
-
this.emitOverseerInterventionSafe(
|
|
261185
|
+
await this.emitOverseerInterventionSafe(
|
|
261180
261186
|
() => emitOverseerEscalation({
|
|
261181
261187
|
store,
|
|
261182
261188
|
taskId,
|
|
@@ -261213,7 +261219,7 @@ ${detail}`);
|
|
|
261213
261219
|
injectGuidance: async (task, decision) => {
|
|
261214
261220
|
const text2 = `[planner-oversight] ${decision.reason}`;
|
|
261215
261221
|
await store.addSteeringComment(task.id, text2, "agent");
|
|
261216
|
-
this.emitOverseerInterventionSafe(
|
|
261222
|
+
await this.emitOverseerInterventionSafe(
|
|
261217
261223
|
() => emitOverseerSteering({
|
|
261218
261224
|
store,
|
|
261219
261225
|
taskId: task.id,
|
|
@@ -261226,7 +261232,7 @@ ${detail}`);
|
|
|
261226
261232
|
},
|
|
261227
261233
|
retryStep: async (task, decision) => {
|
|
261228
261234
|
await store.moveTask(task.id, "todo", { preserveProgress: true, moveSource: "engine" });
|
|
261229
|
-
this.emitOverseerInterventionSafe(
|
|
261235
|
+
await this.emitOverseerInterventionSafe(
|
|
261230
261236
|
() => emitOverseerRetry({
|
|
261231
261237
|
store,
|
|
261232
261238
|
taskId: task.id,
|
|
@@ -261242,7 +261248,7 @@ ${detail}`);
|
|
|
261242
261248
|
const sourceRef = decision.sourceLinks[0]?.ref;
|
|
261243
261249
|
const text2 = sourceRef ? `[planner-oversight] targeted-fix requested: ${decision.reason} (source: ${sourceRef})` : `[planner-oversight] targeted-fix requested: ${decision.reason}`;
|
|
261244
261250
|
await store.addSteeringComment(task.id, text2, "agent");
|
|
261245
|
-
this.emitOverseerInterventionSafe(
|
|
261251
|
+
await this.emitOverseerInterventionSafe(
|
|
261246
261252
|
() => emitOverseerRecoveryAttempt({
|
|
261247
261253
|
store,
|
|
261248
261254
|
taskId: task.id,
|
|
@@ -261275,7 +261281,7 @@ ${detail}`);
|
|
|
261275
261281
|
requestConfirmation: async (task, request2) => {
|
|
261276
261282
|
const text2 = `[planner-oversight] merge checkpoint (${request2.sideEffectClass}): ${request2.reason}`;
|
|
261277
261283
|
await store.addSteeringComment(task.id, text2, "agent");
|
|
261278
|
-
this.emitOverseerInterventionSafe(
|
|
261284
|
+
await this.emitOverseerInterventionSafe(
|
|
261279
261285
|
() => emitOverseerConfirmation({
|
|
261280
261286
|
store,
|
|
261281
261287
|
taskId: task.id,
|
|
@@ -261292,7 +261298,7 @@ ${detail}`);
|
|
|
261292
261298
|
// the timeline shows both the request and its resolution. Never touches
|
|
261293
261299
|
// the approve/deny execution path itself.
|
|
261294
261300
|
onConfirmationResolved: async (taskId, request2, resolution) => {
|
|
261295
|
-
this.emitOverseerInterventionSafe(
|
|
261301
|
+
await this.emitOverseerInterventionSafe(
|
|
261296
261302
|
() => emitOverseerConfirmation({
|
|
261297
261303
|
store,
|
|
261298
261304
|
taskId,
|
|
@@ -261939,7 +261945,7 @@ ${detail}`);
|
|
|
261939
261945
|
});
|
|
261940
261946
|
}
|
|
261941
261947
|
internalEnqueueMerge(taskId) {
|
|
261942
|
-
if (this.shuttingDown) return false;
|
|
261948
|
+
if (this.shuttingDown || !this.started) return false;
|
|
261943
261949
|
if (this.mergeActive.has(taskId)) {
|
|
261944
261950
|
const isActuallyLive = this.mergeQueue.includes(taskId) || this.activeMergeTaskId === taskId;
|
|
261945
261951
|
if (!isActuallyLive) {
|
|
@@ -262111,7 +262117,7 @@ ${detail}`);
|
|
|
262111
262117
|
if (level === "autonomous" && this.plannerRecoveryController) {
|
|
262112
262118
|
const decision = await this.plannerRecoveryController.tick(task, { settings: engineSettings });
|
|
262113
262119
|
if (decision?.exhausted && decision.watchedStage) {
|
|
262114
|
-
this.emitOverseerEscalationDeduped(store, task.id, decision);
|
|
262120
|
+
await this.emitOverseerEscalationDeduped(store, task.id, decision);
|
|
262115
262121
|
}
|
|
262116
262122
|
}
|
|
262117
262123
|
if (task.column === "in-progress" && this.sessionAdvisor) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runfusion/fusion",
|
|
3
|
-
"version": "0.70.
|
|
3
|
+
"version": "0.70.1",
|
|
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",
|