|
| 1 | +# Handover: v1.21.0 Release — KG-Driven Runner, Provider Probe Fixes, Model Roster Update |
| 2 | + |
| 3 | +**Date**: 2026-06-22 10:10 BST (updated 20:30 BST) |
| 4 | +**Session**: ADF PR gate restoration, v1.21.0 release, KG-driven allowlist, provider probe C1 chain (4 PRs), taxonomy model roster update |
| 5 | +**Branch**: `main` (clean, synced to both remotes) |
| 6 | +**Tag**: `v1.21.0` |
| 7 | + |
| 8 | +## Progress Summary |
| 9 | + |
| 10 | +### Tasks Completed |
| 11 | + |
| 12 | +1. **ADF PR gate restored** — Repaired bigbox git repo corruption, restarted orchestrator, verified status checks post correctly. |
| 13 | + |
| 14 | +2. **v1.21.0 released** — 20 PRs merged, 14 duplicates closed, tagged `v1.21.0` on both remotes. KG-driven `TaxonomyPlanner` replaces hardcoded allowlist. Full release notes on Gitea. |
| 15 | + |
| 16 | +3. **Provider probe C1 fix chain** (terraphim-agents PRs #54, #55, #56, #57): |
| 17 | + - **#54**: C1 allow-list check for bare models + provider prefix stripping for CLI substitution |
| 18 | + - **#55**: `split_once` (not `rsplit_once`) for multi-segment model IDs + provider alias C1 fallback |
| 19 | + - **#56**: CLI-aware stripping — only strip prefix when template has `--provider` (pi-rust needs bare, opencode needs full) |
| 20 | + - **#57**: Shared `is_allowed_model(model, provider)` helper in config.rs, used by both probe and spawn-time gate in `pr_handlers_impl.rs` |
| 21 | + - Codex structural review (rounds 1+2), 25 tests, clippy clean |
| 22 | + |
| 23 | +4. **Model roster updated** — GLM-5.2 and MiniMax-M3 added to all 4 ADF taxonomy tiers (planning, decision, implementation, review). Model ID corrected from `MiniMax-3` to `MiniMax-M3`. Old models retained as fallbacks. |
| 24 | + |
| 25 | +5. **Weather report verified** — 24 models available (up from 5 at start of probe work). All pi-rust routes healthy. opencode routes fixed (5 routes went OFFLINE → FAIR). Remaining failures are provider-side (Kimi slow, Claude auth). |
| 26 | + |
| 27 | +6. **pi-rust feature request** filed — github.com/earendil-works/pi/issues/5972 (auto-closed, awaiting triage). Requests acceptance of qualified `provider/model` string to match opencode's convention. |
| 28 | + |
| 29 | +### Current State |
| 30 | + |
| 31 | +- **terraphim-ai**: `87212317f` on main, both remotes converged |
| 32 | +- **terraphim-agents**: `0a093aa` on main |
| 33 | +- **ADF orchestrator**: Active, reconcile 728ms, stale queue 0 |
| 34 | +- **Weather report**: 24 FAIR models across 4 tiers |
| 35 | + |
| 36 | +## Technical Context |
| 37 | + |
| 38 | +```bash |
| 39 | +# terraphim-ai |
| 40 | +87212317f fix(taxonomy): correct model ID MiniMax-3 -> MiniMax-M3 |
| 41 | +d3ff2093e feat(taxonomy): add GLM-5.2 and MiniMax-3 to ADF routing tiers |
| 42 | +61b5e3786 release: bump workspace version to 1.21.0 |
| 43 | + |
| 44 | +# terraphim-agents |
| 45 | +0a093aa fix(spawn): use shared is_allowed_model helper for C1 gate in pr_handlers_impl |
| 46 | +67f1943 fix(probe): CLI-aware model stripping — only strip prefix for --provider CLIs |
| 47 | +500e00c fix(probe): split_once for multi-segment models and provider alias C1 fallback |
| 48 | +a48a8ea fix(probe): strip provider prefix before CLI substitution and use provider for C1 check |
| 49 | + |
| 50 | +# Remotes — converged (empty diff) |
| 51 | +git diff origin/main github/main --stat |
| 52 | +``` |
| 53 | +
|
| 54 | +## Key Files Changed |
| 55 | +
|
| 56 | +| File | Change | |
| 57 | +|------|--------| |
| 58 | +| `crates/terraphim_orchestrator/src/config.rs` | New `is_allowed_model(model, provider)` shared C1 helper | |
| 59 | +| `crates/terraphim_orchestrator/src/provider_probe.rs` | CLI-aware stripping, shared helper, 25 tests | |
| 60 | +| `crates/terraphim_orchestrator/src/pr_handlers_impl.rs:238` | Spawn gate uses `is_allowed_model(routed_model, provider.name)` | |
| 61 | +| `docs/taxonomy/routing_scenarios/adf/*.md` | GLM-5.2 + MiniMax-M3 added to all 4 tiers | |
| 62 | +| `crates/terraphim_gitea_runner/src/taxonomy_policy.rs` | TaxonomyPlanner (KG-driven allowlist, v1.21.0) | |
| 63 | +
|
| 64 | +## Resume Steps |
| 65 | +
|
| 66 | +1. **Weather report path dep hack** — `terraphim_weather_report` depends on `terraphim_orchestrator` v1.20.2 from registry. To run with fixes: temporarily change Cargo.toml to path dep on `/home/alex/projects/terraphim/terraphim-agents/crates/terraphim_orchestrator`. Proper fix: publish `terraphim_orchestrator` 1.20.3+ to registry, or move weather report crate into terraphim-agents. |
| 67 | +
|
| 68 | +2. **Claude CLI auth** — `sonnet`/`opus` OFFLINE on bigbox. Re-auth with `claude` interactive login. |
| 69 | +
|
| 70 | +3. **v1.22.0 backlog** — #2694 (runner reliability), #2783 (RUSTDOC env), #2696 (flaky tests), dependabot majors (axum 0.8, ureq 3.0). |
| 71 | +
|
| 72 | +4. **Kimi models slow** — k2p5/k2p6 STORMY (15s timeout). May need probe timeout increase or provider investigation. |
| 73 | +
|
| 74 | +5. **`floor_char_boundary` in test targets** — `cargo check --workspace --all-targets` fails. Only affects test code, not runtime. |
| 75 | +
|
| 76 | +## Critical Context |
| 77 | +
|
| 78 | +- `terraphim_gitea_runner` is **excluded** from workspace `Cargo.toml`. Temporarily remove from exclude list to build/test locally. |
| 79 | +- The C1 allow-list (`is_allowed_provider` / `is_allowed_model`) is the security boundary: it determines which providers can launch agents. Banned prefixes (`opencode/`, `github-copilot/`, `google/`, `huggingface/`, `minimax/`) take precedence over allowed ones. |
| 80 | +- ADF status checks are **API-posted by ADF agents**, not Gitea Actions. Do NOT create `.gitea/workflows/`. |
| 81 | +- Bigbox repo at `/data/projects/terraphim/terraphim-ai` has `origin` = Gitea. Agent code at `/home/alex/projects/terraphim/terraphim-agents`. |
| 82 | +- Binary: `/usr/local/bin/adf` built from `terraphim-agents` repo. |
0 commit comments