feat(FN-2087): finalize canonical memory path migration

- Remove legacy .fusion/memory.md fallback references and normalize prompts/docs to .fusion/memory/MEMORY.md
- Stop legacy mirror writes and fallback reads in core memory backend and project memory flows
- Update engine worktree boundary checks and tests for canonical memory file handling
- Align dashboard memory/settings surfaces and route tests with canonical memory behavior
- Add model-favorites persistence test coverage for mission interview and new agent dialogs
This commit is contained in:
Fusion
2026-04-18 22:47:17 -07:00
committed by gsxdsm
parent 63ecb21c39
commit d642af311d
32 changed files with 503 additions and 307 deletions

View File

@@ -8689,7 +8689,7 @@ describe("Planning Mode Routes", () => {
* UTILITY PATH contract: These routes are on the heartbeat control-plane lane
* and must NOT be gated on task-lane saturation (maxConcurrent, semaphore, queue depth).
*
* See .fusion/memory.md "Heartbeat Control-Plane Lane (FN-1487)"
* See .fusion/memory/MEMORY.md "Heartbeat Control-Plane Lane (FN-1487)"
*/
describe("Saturated-slot regression: utility AI routes", () => {
/**
@@ -9035,7 +9035,7 @@ describe("Saturated-slot regression: utility AI routes", () => {
* UTILITY PATH contract: Wake delegation (heartbeatMonitor.executeHeartbeat) is on
* the heartbeat control-plane lane and must NOT be gated on task-lane saturation.
*
* See .fusion/memory.md "Heartbeat Control-Plane Lane (FN-1487)"
* See .fusion/memory/MEMORY.md "Heartbeat Control-Plane Lane (FN-1487)"
*/
describe("Saturated-slot regression: heartbeat wake routes", () => {
/**
@@ -12954,8 +12954,9 @@ describe("POST /api/memory/extract", () => {
});
it("returns 200 with extraction result on success", async () => {
// Working memory is at .fusion/memory.md
writeFileSync(join(rootDir, ".fusion", "memory.md"), "Working memory content for extraction that is long enough.");
// Working memory is at .fusion/memory/MEMORY.md
mkdirSync(join(rootDir, ".fusion", "memory"), { recursive: true });
writeFileSync(join(rootDir, ".fusion", "memory", "MEMORY.md"), "Working memory content for extraction that is long enough.");
const res = await REQUEST(
buildApp(),