43 lines
2.5 KiB
Markdown
43 lines
2.5 KiB
Markdown
# 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.
|