Branch: main (clean, up to date with origin at 0cae8f77f)
Previous Handover: 2026-04-16 - Sprint Planning + 4 Feature PRs Merged + Issue Housekeeping
Full handover: .docs/handover-2026-04-17.md
Full sprint planning, research, design, implementation, verification, validation, and merge cycle. Closed 33 stale issues, migrated 8 Odilo issues to dedicated repo, implemented 4 features across independent workstreams, verified with right-side-of-V agents, and updated documentation on both mdbook and terraphim.ai website.
- Evaluated all open issues across GitHub (82) and Gitea (30+)
- Cross-checked against Odilo project at
~/projects/zestic-ai/odilo/-- discovered duplicate issue tracking - Created sprint plan:
plans/sprint-2026-04-16-terraphim-ai-design.md - Created listener dispatch design:
plans/design-listener-shell-dispatch.md - User decisions captured via AskUserQuestion: Odilo = active client work, TinyClaw = rethink as Gitea listener, sprint focus = all workstreams equally
| PR | Commit | Feature | Tests |
|---|---|---|---|
| #814 | 993e4e0 |
Parser upstream: MatchStrategy, iterative normalize, configurable SectionConfig | 26 |
| #815 | 9396e35 |
Learn compile: corrections-to-thesaurus feedback loop | 9 |
| #816 | 9fd985d |
Automata evaluation framework: precision/recall/F1 | 14 |
| #817 | 9196d1f |
Listener shell dispatch: execute subcommands from @adf mentions | 31 |
| #811 | d607a82 |
Dependabot: actions/github-script 7->9 | -- |
| #812 | 574ff84 |
Dependabot: docker/build-push-action 5->7 | -- |
| #813 | 4aff773 |
Dependabot: docker/metadata-action 5->6 | -- |
| Category | Count | Issues |
|---|---|---|
| GitHub (implemented) | 12 | #694, #695, #703, #599, #692, #697, #784-787, #730, #638 |
| GitHub (wontfix) | 2 | #562, #585 |
| Gitea (Odilo migrated) | 8 | #561, #565-571 |
| Gitea (ADF remediation) | 10 | #461-463, #468, #490, #494, #497, #499, #501, #504, #506, #507 |
| Gitea (desktop repo) | 1 | #490 |
| # | Title |
|---|---|
| #575 | feat(markdown-parser): upstream MatchStrategy, iterative normalize, configurable SectionConfig |
| #576 | feat(automata): ground-truth evaluation framework |
| #577 | feat(listener): shell dispatch bridge |
| Gitea only | 8 issues migrated to zestic-ai/odilo (#23-30) |
cfee683--cargo fmtfix for terraphim-markdown-parser (Rust 2024 edition import ordering)db0809f-- Removed desktop npm from dependabot config (desktop is separate repo)
docs/src/evaluation-framework.md-- Automata evaluation API docsdocs/src/listener-dispatch.md-- Gitea dispatch security + config docsdocs/src/learning-compile.md-- Corrections feedback loop docsdocs/src/SUMMARY.md-- Added Agent Capabilities sectionterraphim.ai/content/capabilities/evaluation.md-- Website capability pageterraphim.ai/content/capabilities/listener-dispatch.md-- Website capability pageterraphim.ai/content/capabilities/terraphim-agent.md-- Updated with new features
All 4 PRs went through right-side-of-V:
- Verification: 3 parallel agents verified implementation against design specs
- Validation: 1 agent validated against user requirements
- Result: GO for all 4 PRs. 80 new tests, 0 regressions, 0 clippy warnings on new code
- Minor defects (all Low): D1 (textbook_default deviation), D817-1 (missing wiremock integration tests), D-1 (export_corrections_as_kg deferred), D-2 (cache invalidation deferred), D-3 (evaluate CLI deferred)
crates/terraphim_agent/src/learnings/compile.rs-- corrections-to-thesaurus compiler (384 lines, 9 tests)crates/terraphim_agent/src/shell_dispatch.rs-- shell dispatch bridge (666 lines, 31 tests)crates/terraphim_automata/src/evaluation.rs-- evaluation framework (613 lines, 14 tests)
crates/terraphim-markdown-parser/src/heading.rs-- MatchStrategy enum, pattern/match_strategy fieldscrates/terraphim-markdown-parser/src/lib.rs-- iterative normalize_markdown, pub(crate) collect_text_contentcrates/terraphim_agent/src/listener.rs-- DispatchConfig, shell dispatch wiring in process_commentcrates/terraphim_agent/src/main.rs-- LearnSub::Compile variant, mod shell_dispatch
plans/sprint-2026-04-16-terraphim-ai-design.md-- 2-week sprint planplans/design-listener-shell-dispatch.md-- shell dispatch design
terraphim-agent learn compile --output FILE [--merge-with FILE]
// Evaluation framework
terraphim_automata::evaluation::evaluate(ground_truth, thesaurus) -> EvaluationResult
terraphim_automata::evaluation::load_ground_truth(path) -> Vec<GroundTruthDocument>
// Learning compile
learnings::compile::compile_corrections_to_thesaurus(dir) -> Thesaurus
learnings::compile::merge_thesauruses(curated, compiled) -> Thesaurus
learnings::compile::write_thesaurus_json(thesaurus, path)
// Shell dispatch (internal to listener)
shell_dispatch::parse_dispatch_command(context, extra_allowed)
shell_dispatch::execute_dispatch(config, subcommand, args)
shell_dispatch::format_dispatch_result(result, agent, session, event)- All 80 new tests pass across 4 features
- Workspace tests green
- Both remotes (origin + gitea) in sync
- terraphim.ai website updated with new capabilities
- Listener dispatch has 3-layer security: allowlist + metachar rejection + CommandGuard
export_corrections_as_kg()-- Logseq markdown export from corrections- Cache invalidation for SQLite thesaurus when corrections change
evaluateCLI subcommand (library API exists, no CLI wrapper yet)- Wiremock integration tests for dispatch-through-listener path
- W5b (#727): Wire agent_evolution into orchestrator -- not started this sprint
- W4 (#553/#608): Community content -- not started this sprint
8 issues moved from terraphim/terraphim-ai to zestic-ai/odilo:
- Epic (#561 -> odilo#23), Stages 3-6, Stage 0b, Multi-language, ADR-040
- Also moved: Stage 0b -> terraphim-ai#576 (reframed as generic eval framework)
- Also moved: Stage 1 parser work -> terraphim-ai#575 (upstream to canonical crate)
- Review comment posted on odilo#26 (quality gate -- may belong in terraphim-ai)
procedure.rshas 4 pre-existing dead_code warnings (TRIVIAL_COMMANDS, is_trivial_command, from_session_commands, save_with_dedup) -- blocked byclippy -D warningsin CI but only when running withoutrepl-sessionsfeature- Gitea has many stale task branches from ADF bot agents -- cleanup opportunity
cross_mode_consistency_teststill has known pre-existing failures (server vs CLI)
# Sprint features
cargo test -p terraphim-markdown-parser # 26 tests
cargo test -p terraphim_agent --bin terraphim-agent -- compile # 9 tests
cargo test -p terraphim_automata -- evaluation # 14 tests
cargo test -p terraphim_agent --bin terraphim-agent -- shell_dispatch # 31 tests
# Full workspace
cargo test --workspace --lib
cargo clippy --workspace --all-targetsPer plans/sprint-2026-04-16-terraphim-ai-design.md:
| Day | Task | Status |
|---|---|---|
| Day 7 | Deploy Gitea listener, reframe TinyClaw | Not started |
| Day 8-9 | Wire agent_evolution into orchestrator (#727) | Not started |
| Day 10 | Community content (#553/#608), sprint retro | Not started |