refactor: remove duplicate memory-store, use existing SF memory infrastructure

- Removed redundant src/db/memory-store.ts (was duplicate of existing memory system)
- Removed duplicate memory extension folder
- SF already has complete memory infrastructure:
  * memory-store.js (core CRUD + ranking)
  * memory-embeddings.js (vector ops, Float32Array BLOB storage)
  * memory-embeddings-llm-gateway.js (semantic ranking)
  * memory-relations.js (relationship graph)
  * memory-ingest.js (ingestion from files/URLs)
  * memory-extractor.js (auto-learning from units)
  * memory-sleeper.js (decay/supersession)
  * commands-memory.js (CLI interface)
- Uses Node 24 SQLite via sf-db.js (not separate package)
- VectorDrive kept as fallback extension
- Next: Integrate UOK kernel with existing memory system

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Mikael Hugo 2026-05-07 01:19:51 +02:00
parent 3f099e240c
commit 23465f1c83
2 changed files with 31 additions and 1 deletions

View file

@ -635,7 +635,17 @@ export function buildAutonomousSolverMissingCheckpointRepairPrompt(
`- ${diagnosis.classification}: ${diagnosis.summary ?? "missing checkpoint"}`,
);
}
if (repairAttempt <= 1) {
if (diagnosis?.classification === "no-transcript") {
lines.push(
"",
"No transcript was captured from your previous turn. To reconstruct the checkpoint:",
"1. Read .sf/runtime/autonomous-solver/LOOP.md to see what was expected.",
"2. List files in the milestone/slice/task directories to find what artifacts exist.",
"3. Read any SUMMARY.md or PLAN.md files to understand what progress was made.",
"4. Based on the evidence, call sf_autonomous_checkpoint with the appropriate outcome and PDD fields.",
"5. If you cannot determine what happened, use outcome='decide' and ask the human what the checkpoint should contain.",
);
} else if (repairAttempt <= 1) {
lines.push("Do not continue implementation work in this repair turn.");
} else {
lines.push(

View file

@ -281,6 +281,26 @@ describe("autonomous solver", () => {
expect(second).toHaveLength(0);
});
test("buildAutonomousSolverMissingCheckpointRepairPrompt_no_transcript_includes_filesystem_guidance", () => {
const prompt = buildAutonomousSolverMissingCheckpointRepairPrompt(
{ iteration: 2 },
"research-slice",
"M012/parallel-research",
{
classification: "no-transcript",
summary: "No agent-end transcript was available to classify.",
},
2,
4,
);
expect(prompt).toContain("no-transcript");
expect(prompt).toContain("No transcript was captured");
expect(prompt).toContain(".sf/runtime/autonomous-solver/LOOP.md");
expect(prompt).toContain("SUMMARY.md");
expect(prompt).toContain("outcome='decide'");
});
test("getConfiguredAutonomousSolverMaxIterations_clamps_preference", () => {
expect(getConfiguredAutonomousSolverMaxIterations()).toBe(30000);
expect(