fix(missions): clear terminal fix task links

This commit is contained in:
Phil Larson
2026-07-11 12:57:44 -07:00
committed by gsxdsm
parent 6ee86c5db7
commit 7f418b7d10
2 changed files with 6 additions and 3 deletions

View File

@@ -1762,14 +1762,17 @@ describe("MissionStore", () => {
const staleFix = store.createGeneratedFixFeature(source.id, failedRun.id, ["CA-source"]);
createTaskInDb(db, "FN-own-passed-fix", "Own passed stale fix task", undefined, { column: "todo" });
store.updateFeature(staleFix.id, {
status: "blocked",
status: "done",
loopState: "passed",
lastValidatorStatus: "passed",
taskId: "FN-own-passed-fix",
});
db.prepare("UPDATE tasks SET missionId = ?, sliceId = ? WHERE id = ?").run(mission.id, slice.id, "FN-own-passed-fix");
expect(store.computeSliceStatus(slice.id)).not.toBe("complete");
expect(db.prepare("SELECT missionId, sliceId FROM tasks WHERE id = ?").get("FN-own-passed-fix")).toEqual({
missionId: mission.id,
sliceId: slice.id,
});
const report = store.reconcileSupersededGeneratedFixFeatures(slice.id);

View File

@@ -3215,7 +3215,7 @@ export class MissionStore extends EventEmitter<MissionStoreEvents> {
const supersededFeatureIds = features
.filter((feature) => feature.generatedFromFeatureId && (featureHasPassed(feature) || hasPassedAncestor(feature)))
.filter((feature) => feature.status !== "done" || feature.loopState !== "passed" || feature.lastValidatorStatus !== "passed")
.filter((feature) => feature.status !== "done" || feature.loopState !== "passed" || feature.lastValidatorStatus !== "passed" || feature.taskId)
.map((feature) => feature.id);
if (supersededFeatureIds.length > 0) {