Files
OpenQode/bin/goose-ultra-final/implementation_plan.md

2.5 KiB

Implementation Plan: Goose Ultra Architecture Refinement

1. Mem0 Source Map & Architecture Reuse

Goal: Map Goose Ultra's local memory features to Mem0 concepts.

Feature Mem0 Concept Goose Ultra Implementation (Local)
Project-Scoped Memory Multi-Level Memory (User/Session/Agent) apps/mem0/memory.jsonl (Project Level)
Memory Extraction Fact Extraction (LLM-based) extractMemoriesFromText (Qwen Code Prompt)
Top-K Retrieval Vector Retrieval / Hybrid Search retrieveRelevantMemories (Keyword + Recency Scoring)
Deduplication Adaptive Learning / Dynamic Updates addMemory with existing key check & confidence update
Storage Vector DB (Chroma/Qdrant) + SQL/NoSQL JSONL file (Simpler, local-only constraint)

Mem0 Source Locations (Inferred):

  • Memory Logic: mem0/memory/main.py
  • Utils/Formatting: mem0/memory/utils.py
  • Prompts: mem0/configs/prompts.py
  • Vector Store Interfaces: mem0/vector_stores/*

2. Quality Gates (UI Enhancements)

Goal: Prevent "Plan Text" or "Unstyled" apps from reaching the user. Current Status: Partially implemented in automationService.ts. Refinements Needed:

  • Ensure compilePlanToCode calls runQualityGates. (It does)
  • Ensure writeArtifacts (or equivalent) respects the gate result. (It does in generateMockFiles).
  • Missing: We need to ensure compilePlanToCode actually uses the repair loop properly. Currently compilePlanToCode calls runQualityGates but seemingly just warns related to retries (logic at line 191-203). It needs to use generateRepairPrompt.

3. Patch-Based Modification (P0 Bugfix)

Goal: Stop full-file rewrites. Use deterministic JSON patches. Current Status: applyPlanToExistingHtml requests full HTML. Plan:

  1. Create applyPatchToHtml: A function that takes JSON patches and applies them.
  2. Update applyPlanToExistingHtml:
    • Change prompt to PATCH_PROMPT.
    • Expect JSON output.
    • Call applyPatchToHtml.
    • Fallback to Full Rewrite only if Redesign is requested/approved.

Execution Steps

  1. Refine Quality Gates: Fix the retry loop in compilePlanToCode to use generateRepairPrompt instead of just re-running with a slightly stricter prompt.
  2. Implement Patch Engine: Add applyPatches and the new PATCH_PROMPT.
  3. Wire Memory: Inject memory into compilePlanToCode and applyPlanToExistingHtml prompts. Hook up extraction.