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
+43 -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.3 |
@@ -14,6 +14,47 @@
Turn the model's tagged output into `(U_t, M̂_t, E_t)`, strictly — because a
lenient parser silently fabricates gate decisions.
## Files
| Action | Path |
|---|---|
| Create | `crates/mem-core/src/gate_parser.rs``parse_gate_response()`, `GateResponse`, `ParseError` |
| Modify | `crates/mem-core/src/lib.rs` — add `pub mod gate_parser;` and re-exports |
| Create | `fixtures/gate-response-valid.txt` — well-formed model output |
| Create | `fixtures/gate-response-nested-think.txt` — nested `<think>` tags |
| Create | `tests/it_gate_parser.rs` — integration tests (workspace root) |
## Dependencies
**None new.** Use `str::find()` and `str::rfind()` for tag extraction. No regex
crate needed — the tags are simple XML-like delimiters, not a grammar.
## Existing code to reuse
- Pattern reference: `lesson.rs` uses similar string scanning for error markers
(`markers()`, `GENERIC_MARKERS`). Same technique, different tags.
- `thiserror` already in `mem-core` deps for error enum derivation.
## Expected input/output
```
Input:
<think>
This chunk shows a kubectl error. The user fixed it by adding --namespace.
</think>
<check>yes</check>
<update>kubectl get pods fails without --namespace; fixed by adding --namespace=kube-system</update>
<next>continue</next>
Output:
GateResponse {
think: "This chunk shows a kubectl error. The user fixed it by adding --namespace.",
update_gate: true,
candidate: "kubectl get pods fails without --namespace; fixed by adding --namespace=kube-system",
exit_gate: false,
}
```
## Facts (inlined — no spec read needed)
Expected response shape:
@@ -88,7 +129,7 @@ cases. Capture real ones with `MEM_LLM_RECORD` from M1.1.
silently-defaulted `GateResponse`.
9. `a9_real_responses` — every recorded real response parses.
**Command:** `cargo test -p mem-core gate_parser`
**Command:** `cargo test --test it_gate_parser`
**False pass:**
- A regex that finds the first `<check>` and stops. It passes 12 and silently