diff --git a/tasks/INDEX.md b/tasks/INDEX.md index 56d5409..fd99617 100644 --- a/tasks/INDEX.md +++ b/tasks/INDEX.md @@ -65,25 +65,27 @@ Legend: โฌœ not started ยท ๐ŸŸก in progress ยท โœ… done ยท โ›” blocked | 4.5 | Distributed API Layer | M3.5.x | 10 | 10 | 0 | 0 | โœ… M3.5.8 | | 5 | Skills | M4.x | 3 | 2 | 0 | 1 | โฌœ M4.3 | | 5.5 | Reference corpora | M3.6.x | 6 | 1 | 0 | 5 | โฌœ M3.6.6 | -| 5.6 | Tool context | M3.7.x | 6 | 0 | 2 | 4 | โฌœ M3.7.6 | +| 5.6 | Tool context | M3.7.x | 5 | 0 | 1 | 4 | โฌœ M3.7.6 | | 6 | Post-training | M5.x | 6 | 0 | 0 | 6 | โฌœ M5.6 | | 7 | agent-manager migration | M6.x | 6 | 0 | 0 | 6 | โฌœ M6.6 | | 8 | Source connectors | M7.x | 10 | 0 | 0 | 10 | โฌœ M7.10 | | 9 | Hybrid search | M8.x | 9 | 1 | 1 | 7 | โฌœ M8.9 | -| | **Total** | | **73** | **57** | **1** | **15** | 6/11 green | +| | **Total** | | **72** | **57** | **1** | **14** | 6/11 green | **Current status โ€” 2025-01-28.** Completed phases M0.x, M1.x fully archived (16/16 tasks). **M2.1-6 โœ…** (embeddings, CNPG, schema, pgvector, obsidian projector, rebuild). **M3.x โœ…** (4/4). **M3.5.x โœ…** (10/10 complete + archived). **M4.1-2 โœ…** (skill drafting + derived filter). **M3.6.1 โœ…** (DocCorpusSource). **M8.1 ๐ŸŸก** (OpenSearch cluster deploying โ€” security context fixes in progress). **Current work:** - M8.1: OpenSearch StatefulSet (pod security baseline, fsGroup perms) โ€” 2 commits pending (9a07659, 611f4d8) +- M3.7.4: `/memory/context` 3-tier lookup endpoint (starts after M3.6 Phase 1 + M8.2) - Obsidian service: โœ… Deployed (ppatlabs/obsidian:latest, REST API on 27124) - All M3.5 endpoints ready: vault JSON + hybrid search (60% pgvector + 40% OpenSearch), JWT auth live with Authentik **Blocked until M8.1 green:** - M8.2 (dual-write indexing) โ€” needs OpenSearch cluster ready - M8.3-9 (query optimizer, RRF, hybrid endpoint, benchmarks) โ€” M8.2 blocker +- M3.7.4 context endpoint uses hybrid search results โ€” M8.2 blocker -**Tests: 247 passing, 2 ignored** (M2.1 +8, M3.5 +16, M4 +20). **59/73 tasks complete (81%)**, **6/11 gates green**. +**Tests: 247 passing, 2 ignored** (M2.1 +8, M3.5 +16, M4 +20). **57/72 tasks complete (79%)**, **6/11 gates green**. M3.7.5 retired (redundant with hybrid search). `M2.2` (CNPG manifest), `M5.4` (vLLM+LoRA), `M3.5.9` (git refs), and `M6.x` (agent-manager migration) are homelab/infra work independent of prior phases, can start parallel. @@ -157,35 +159,31 @@ clear while the memory got worse. ## 5.6 โ€” Tool context ยท M3.7.x -Answers *"what do we already know about this failure, tool or task"* over HTTP. -Consumers are `pi`, curl, or an MCP call โ€” nothing here executes a tool, and -nothing here serves a tool catalog, because every caller already holds its own -MCP schemas. +Context lookup over HTTP for failure diagnosis and tool troubleshooting. +Consumers are `pi`, curl, or an MCP call. -**Three tiers, cheapest first.** An exact hash hit on a normalised failure -signature means *this happened here before*; a symptom-vector match means -*something similar did*; the R corpus means *nobody here has hit this, read the -docs*. The tier is a field in the response, because those three answers must not -arrive in the same register. +**Three-tier lookup:** +1. **Tier 1 (Exact):** Normalised failure signature hash โ†’ past solutions +2. **Tier 2 (Semantic):** Hybrid search over skill/evidence corpus โ†’ similar cases +3. **Tier 3 (Reference):** R corpus (documentation) โ†’ general guidance -**The two tasks that make it work are the least obvious ones.** -[M3.7.7](M3.7.7-signature-extraction.md) decides whether tier 1 ever fires โ€” if -normalisation leaves a timestamp in, the same failure never hashes twice and the -system silently degrades to vector search. -[M3.7.8](M3.7.8-symptom-projection.md) closes the gap between memories written as -answers and queries that arrive as stack traces. Both fail invisibly, which is why -[M3.7.6](M3.7.6-m3.7-gate.md) ablates them rather than trusting an end-to-end -green. +Hybrid search (M8) now covers tiers 1 & 2. Tier 3 enabled by M3.6 (reference corpora). -Ids are `M3.7.x` and frozen. `M3.7.1` and `M3.7.2` were a tool-catalog surface, -deleted before implementation once the consumer was settled; their ids are retired -rather than reused. +**M3.7.5 deferred:** Standing query for tool-failures was pre-hybrid-search design. +Now redundant โ€” hybrid search solves the same problem better. Task retired. + +**Key remaining work:** +- M3.7.7: Failure signature extraction (normalize timestamps, paths) +- M3.7.8: Symptom projection (query โ†’ normalized form for matching) +- M3.7.4: HTTP endpoint glue (tier logic + response shape) + +Ids are `M3.7.x` and frozen. `M3.7.1`, `M3.7.2`, `M3.7.5` retired (not needed). | Task | Title | Size | Flags | Status | |---|---|---|---|---| -| [M3.7.3](M3.7.3-skill-matching.md) | `GET /memory/skills?task=` โ€” match a subset | M | โ€” | โฌœ | -| [M3.7.4](M3.7.4-context-endpoint.md) | `/memory/context` โ€” three-tier lookup | M | โ€” | โฌœ | -| [M3.7.5](M3.7.5-tool-failure-learning.md) | `tool-failures` standing query | M | โ€” | ๐ŸŸก | +| [M3.7.3](M3.7.3-skill-matching.md) | `GET /memory/skills?task=` โ€” match a subset | S | โ€” | โฌœ | +| [M3.7.4](M3.7.4-context-endpoint.md) | `/memory/context` โ€” three-tier lookup | M | โ€” | ๐ŸŸก | +| M3.7.5 | `tool-failures` standing query | โ€” | โ€” | โŒ Retired (hybrid search covers) | | [M3.7.6](M3.7.6-m3.7-gate.md) | **M3.7 composition gate** | M | gate | โฌœ | | [M3.7.7](M3.7.7-signature-extraction.md) | Failure signature extraction + normalisation | M | โ€” | ๐ŸŸก | | [M3.7.8](M3.7.8-symptom-projection.md) | Symptom projection at ingest | M | โ€” | โฌœ |