Deploy Poimen Memory K8s cluster with ArgoCD tracking (M2.2, M3.5-M3.7)
ci / markdown (push) Waiting to run

This commit is contained in:
Story Crater Bot
2026-08-22 23:13:42 -07:00
parent 9c723fe66f
commit d3be7f6fd4
105 changed files with 10973 additions and 113 deletions
+52 -2
View File
@@ -4,7 +4,7 @@
|---|---|
| Phase | M1 — Gated loop at L1 |
| Size | M — 13 days |
| Status | ⬜ Not started |
| Status | ✅ Done |
| Flags | — |
| Spec | inlined below |
| Blocks | M1.6 |
@@ -14,6 +14,56 @@
One command that reads a real project and produces a real log — and reports the
number that says whether the gate works.
## Files
| Action | Path |
|---|---|
| Modify | `crates/mem-cli/src/main.rs` — extend `Commands::Ingest` with `--query` and `--resume` flags; replace stub `cmd_ingest()` body with real pipeline |
| Create | `tests/it_ingest.rs` — integration tests (workspace root, 7 assertions) |
## Dependencies
**None new.** All crates already depend on what they need. This task wires existing
pieces together.
## Existing code to reuse
- `cmd_ingest()` in `main.rs`**replace the stub body**, keep the CLI struct
- `PiSessionSource` from `mem-ingest/src/pi_session.rs` — already works (M0.5)
- `ClaudeTranscriptSource` from `mem-ingest/src/claude_transcript.rs` — already works (M0.6)
- `chunks()` from `mem-chunk/src/chunker.rs` — already works (M0.3)
- `ChunkPolicy` from `mem-chunk/src/chunk_policy.rs` — already works
- `QuerySet::load()` from `mem-core/src/query.rs` — from M1.2
- `run_loop()` from `mem-core/src/gated_loop.rs` — from M1.5
- `LogWriter` from `mem-store/src/event_log.rs` — from M1.6
- `ChatClient` from `mem-llm/src/chat.rs` — from M1.1
## Wiring diagram
```
CLI: mem ingest --project poimen --query tool-failures
├─ QuerySet::load("queries/poimen.yaml") ← M1.2
│ └─ query = set.by_id("tool-failures")
├─ PiSessionSource::new(session_files) ← M0.5 (existing)
│ └─ source.records() → Stream<Record>
├─ chunks(source, policy) ← M0.3 (existing)
│ └─ Stream<Chunk>
├─ ChatClient::new(base_url, api_key, model) ← M1.1
├─ run_loop(L1, query, chunks, client, config) ← M1.5
│ └─ RunOutcome { events, chunks_seen, chunks_used, ... }
├─ LogWriter::open(project, query, run_id) ← M1.6
│ └─ write events to log/poimen/tool-failures/<ulid>.jsonl
└─ Print summary:
chunks 412 used 17 update-rate 4.1% memory 142tok elapsed 6m12s
```
## Facts (inlined — no spec read needed)
```
@@ -79,7 +129,7 @@ chunk costs a model call, so `--resume` is not a nicety.
7. `a7_live_smoke``#[ignore]`; real gateway, `--limit 20` on a real project;
assert `run_end` and **print** the update-rate for a human to read.
**Command:** `cargo test -p mem-cli ingest` (add `-- --ignored` for a7)
**Command:** `cargo test --test it_ingest` (add `-- --ignored` for a7)
**False pass:**
- Asserting only that the command exits 0. A run whose gate always answers `no`