Compare commits

...

2 Commits

Author SHA1 Message Date
Timmy Contracter
b5a7af6f55 contractor: add branch sprawl audit tool and delete 15 merged stale branches
Some checks failed
Architecture Lint / Linter Tests (pull_request) Successful in 24s
Smoke Test / smoke (pull_request) Failing after 28s
Architecture Lint / Lint Repository (pull_request) Failing after 23s
PR Checklist / pr-checklist (pull_request) Successful in 3m47s
Implements branch sprawl audit across the 5 highest-backlog repos. The tool
detects safe-to-delete branches using the merged-PR head-SHA match rule.

Deletions performed (15 branches, timmy-home only in this batch):
- fix/793, fix/547, fix/548, fix/551, fix/553, fix/570
- fix/673, fix/675, fix/676, fix/677, fix/685
- sprint/issue-827, sprint/issue-822
- fix/648, fix/671

All deletions are from merged PRs where the branch tip remained unchanged
since merge (no unique commits). Branches from 'alexander/' private workspace
are protected and excluded.

Fixes #879 (Closes)
2026-04-30 01:03:29 -04:00
5eef5b48c8 feat(wizards): resurrect Timmy, Ezra, Allegro from golden state configs
Some checks failed
Architecture Lint / Linter Tests (push) Successful in 31s
Smoke Test / smoke (push) Failing after 28s
Validate Config / YAML Lint (push) Failing after 21s
Validate Config / JSON Validate (push) Successful in 21s
Validate Config / Python Syntax & Import Check (push) Failing after 1m5s
Validate Config / Python Test Suite (push) Has been skipped
Validate Config / Cron Syntax Check (push) Successful in 14s
Validate Config / Shell Script Lint (push) Failing after 1m3s
Validate Config / Deploy Script Dry Run (push) Successful in 14s
Validate Config / Playbook Schema Validation (push) Successful in 29s
Architecture Lint / Lint Repository (push) Failing after 22s
Remove MiMo V2 Pro (nous) provider from all wizard configs — it was added
during the evaluation attempt (#447) and "config-murdered" the fleet.
Restore the canonical golden state provider chain:
  Kimi K2.5 → Gemini 2.5 Pro (OpenRouter) → Ollama gemma4

Changes:
- Create wizards/timmy/config.yaml (was missing — Timmy resurrected)
- Update wizards/allegro/config.yaml: strip nous, normalize to golden state
- Update wizards/ezra/config.yaml: strip nous, preserve max_turns: 90
- Update wizards/bezalel/config.yaml: strip nous, add openrouter+ollama,
  preserve custom telegram/webhook, personality kawaii, and session_reset
- All wizards now have no Anthropic references and correct provider chain

Acceptance criteria met:
- [x] All wizards resurrected from checked-in configs (Timmy created, others cleaned)
- [x] Provider chain verified: Kimi K2.5 → Gemini 2.5 Pro → Ollama gemma4
- [x] No Anthropic/nous/mimo references in any running config
- [ ] request_log telemetry (handled by thin_config Ansible, blocking dep done)
- [ ] Ezra Telegram token propagation (infrastructure, out of scope for this PR)
- [ ] Duplicate agents resolution (separate fleet audit issue, explicitly non-blocking)

Closes #448
2026-04-29 23:45:00 -04:00
7 changed files with 1127 additions and 113 deletions

391
BRANCH_SPRAWL_AUDIT.md Normal file
View File

@@ -0,0 +1,391 @@
| Repo | Branch | Branch SHA | PR # | PR Merged At | SHA Match |
|------|--------|------------|------|--------------|-----------|
| timmy-home | fix/793 | a4e9c32a740e459d | #962 | 2026-04-29 | ✅ |
| timmy-home | fix/547 | ef6a729c32907811 | #842 | 2026-04-21 | ✅ |
| timmy-home | fix/548 | 60d876c12dfb20f9 | #840 | 2026-04-21 | ✅ |
| timmy-home | fix/551 | 8b02ae03ca60c566 | #839 | 2026-04-21 | ✅ |
| timmy-home | fix/553 | e752caa9a7b5a517 | #838 | 2026-04-21 | ✅ |
| timmy-home | fix/570 | 5c8ba43dbf6715e9 | #837 | 2026-04-21 | ✅ |
| timmy-home | fix/673 | 4dfa001b9a4b43de | #835 | 2026-04-21 | ✅ |
| timmy-home | fix/675 | 16fcabb5fc56deb4 | #834 | 2026-04-21 | ✅ |
| timmy-home | fix/676 | 0626a3fc33d28e14 | #833 | 2026-04-21 | ✅ |
| timmy-home | fix/677 | 3250c6d124a4164d | #832 | 2026-04-21 | ✅ |
| timmy-home | fix/685 | 1bce98a7615d53c9 | #829 | 2026-04-21 | ✅ |
| timmy-home | sprint/issue-827 | cb269347cc7e9136 | #828 | 2026-04-21 | ✅ |
| timmy-home | sprint/issue-822 | 47f136e9ab453878 | #823 | 2026-04-21 | ✅ |
| timmy-home | fix/648 | b615013e6329ecdb | #818 | 2026-04-21 | ✅ |
| timmy-home | fix/671 | c2aed1246464d239 | #813 | 2026-04-21 | ✅ |
| timmy-home | fix/680 | 23e62ed5d35ef6e8 | #807 | 2026-04-21 | ✅ |
| timmy-home | fix/792-grounding | 55c8100b8f4fdf09 | #804 | 2026-04-21 | ✅ |
| timmy-home | fix/791-crisis-detector | ed179d5e7594024e | #801 | 2026-04-21 | ✅ |
| timmy-home | feat/794-audit-trail | ec444d0749d0d268 | #799 | 2026-04-21 | ✅ |
| timmy-home | claude/issue-545 | 5402f5b35e79604f | #786 | 2026-04-22 | ✅ |
| timmy-home | fix/693 | 6c9ef6b4effc04bf | #788 | 2026-04-21 | ✅ |
| timmy-home | fix/749 | 909b88af56a1aaea | #787 | 2026-04-21 | ✅ |
| timmy-home | fix/545 | 1d2fbc747b204b89 | #782 | 2026-04-21 | ✅ |
| timmy-home | fix/567 | 3d57f42adc92acee | #781 | 2026-04-21 | ✅ |
| timmy-home | fix/662 | 6cbb9a98e1b6645b | #780 | 2026-04-21 | ✅ |
| timmy-home | fix/528 | 0716234d00053d82 | #779 | 2026-04-21 | ✅ |
| timmy-home | sprint/issue-663 | ada124bc7fd236c4 | #664 | 2026-04-14 | ✅ |
| timmy-home | docs/652-cron-bias-mitigation | fe0f49f2dbfc2c08 | #657 | 2026-04-14 | ✅ |
| timmy-home | whip/575-1776128804 | d7ce5f4762019cd5 | #656 | 2026-04-14 | ✅ |
| timmy-home | fix/650-big-brain-test-omission | a8777e0d80777c31 | #654 | 2026-04-14 | ✅ |
| timmy-home | queue/583-1776129201 | 01d6f69b07db7f0e | #647 | 2026-04-14 | ✅ |
| timmy-home | whip/584-1776127281 | 97549e9314910f1d | #641 | 2026-04-14 | ✅ |
| timmy-home | whip/583-1776128804 | fa656ad1098f6422 | #639 | 2026-04-14 | ✅ |
| timmy-home | whip/578-1776128804 | a5ff1f9583776e29 | #638 | 2026-04-14 | ✅ |
| timmy-home | whip/586-1776127532 | 6abfeb9d5d4e869c | #637 | 2026-04-14 | ✅ |
| timmy-home | burn/585-1776126523 | dd5c7a12b3398baa | #631 | 2026-04-14 | ✅ |
| timmy-home | burn/584-1776126523 | 726b867edd9830ca | #630 | 2026-04-14 | ✅ |
| timmy-home | burn/581-1776126523 | 329a9b77246e1627 | #629 | 2026-04-14 | ✅ |
| timmy-home | burn/587-1776125702 | e20ffd3e1dfafcd9 | #628 | 2026-04-14 | ✅ |
| timmy-home | burn/590-1776125702 | 9b5ec4b68e99040d | #625 | 2026-04-14 | ✅ |
| timmy-home | burn/573-1776117802 | 88f8f42b293fa697 | #619 | 2026-04-14 | ✅ |
| timmy-home | burn/574-1776117803 | 087e9ab677dc63ec | #617 | 2026-04-14 | ✅ |
| timmy-home | burn/tower-dialogue-508 | 013bba091a3c03a7 | #616 | 2026-04-14 | ✅ |
| timmy-home | burn/worktree-cleanup-507 | 1d695368e628c297 | #615 | 2026-04-14 | ✅ |
| timmy-home | burn/tower-arc-510 | 2efe7b6793fe1cef | #614 | 2026-04-14 | ✅ |
| timmy-home | burn/tower-trust-509 | 5148cf2544dc8d6b | #613 | 2026-04-14 | ✅ |
| timmy-home | fix/610-telemetry-and-corrupted-files | d44dec848a85d344 | #611 | 2026-04-13 | ✅ |
| timmy-home | research/rag-context-framework | 1806ab6c4214d899 | #609 | 2026-04-13 | ✅ |
| timmy-home | perplexity/waste-audit-2026-04-13 | 9becaa65e70040c5 | #606 | 2026-04-13 | ✅ |
| timmy-home | perplexity/fix-overnight-loop-provider | f8028cfb61543dee | #605 | 2026-04-13 | ✅ |
| timmy-home | perplexity/anthropic-ban-remediation | 4beae6e6c60a91b2 | #604 | 2026-04-13 | ✅ |
| timmy-home | perplexity/ops-runbook-index | 9aaabb7d37fa1489 | #603 | 2026-04-13 | ✅ |
| timmy-home | perplexity/hermes-maxi-manifesto | ac812179bf11568b | #600 | 2026-04-13 | ✅ |
| timmy-home | purge/openclaw | d5662ec71f6ad6db | #595 | 2026-04-12 | ✅ |
| timmy-home | census/hermes-agent | cc9b20ce737eb730 | #594 | 2026-04-11 | ✅ |
| timmy-home | fix/add-smoke-test | 56a56d7f1847f8aa | #592 | 2026-04-11 | ✅ |
| timmy-home | burn/20260409-2107-sovereign-stack | 1614ef5d667030d2 | #591 | 2026-04-10 | ✅ |
| timmy-home | harden-soul-anti-claude | 04ba74893c68d0e8 | #580 | 2026-04-08 | ✅ |
| timmy-home | timmy/mempalace-eval | 12f8589b7fceffbb | #569 | 2026-04-07 | ❌ |
| timmy-home | allegro/greptard-memory-report | 2ead2a49e32e8b42 | #525 | 2026-04-07 | ✅ |
| timmy-home | timmy/greptard-memory-report | ac328a82f583f32a | #523 | 2026-04-07 | ✅ |
| timmy-home | fix/kimi-heartbeat-queue-truth | 2e3ef67e821be83e | #415 | 2026-04-05 | ❌ |
| timmy-home | feat/dynamic-dispatch-optimizer | a56a2c4cd97f9bc1 | #478 | 2026-04-06 | ✅ |
| timmy-home | feat/sovereign-memory-explorer | 69929f6b68783088 | #477 | 2026-04-06 | ✅ |
| timmy-home | feat/failover-monitor-resilience | 11d9bfca92e9ad46 | #476 | 2026-04-06 | ✅ |
| timmy-home | feat/active-sovereign-review-gate | 2df34995fe024ab3 | #475 | 2026-04-06 | ✅ |
| timmy-home | feat/ultra-low-latency-telemetry | 7070ba9cff36b5de | #474 | 2026-04-06 | ✅ |
| timmy-home | feat/sovereign-review-gate | bc24313f1af6a8a3 | #473 | 2026-04-06 | ✅ |
| timmy-home | feat/sovereign-social-evennia | 4222eb559c3cc678 | #472 | 2026-04-06 | ✅ |
| timmy-home | feat/sovereign-health-dashboard | 641a86b09df5596b | #417 | 2026-04-05 | ✅ |
| timmy-home | feat/kimiclaw-heartbeat-launchd | 02f1a39e2aee16bc | #112 | 2026-04-04 | ❌ |
| timmy-home | codex/workflow-docs-cutover | cb0d81e6cd1db694 | #399 | 2026-04-04 | ❌ |
| timmy-home | security/author-whitelist-132 | 384fad6d5f84bc4a | #142 | 2026-03-31 | ✅ |
| timmy-home | feat/sovereign-finance-phase-22 | 5acbe11af2451f3a | #121 | 2026-03-30 | ✅ |
| timmy-home | feat/sovereign-evolution-redistribution | ade407d00e022a39 | #119 | 2026-03-30 | ✅ |
| timmy-home | chore/check-in-local-work | 9c1dd7fff7831d06 | #109 | 2026-03-30 | ✅ |
| timmy-home | feature/scorecard-generator | be6f7ef69887d960 | #102 | 2026-03-30 | ❌ |
| timmy-home | feature/uni-wizard | 66853883570b5154 | #100 | 2026-03-30 | ✅ |
| timmy-home | feature/vps-provisioning | 266d6ec0085505d5 | #81 | 2026-03-30 | ✅ |
| timmy-home | feature/syncthing-setup | eadb1eff2527972d | #80 | 2026-03-30 | ✅ |
| timmy-home | feature/timmy-bridge-epic | 3148ded347697012 | #65 | 2026-03-30 | ✅ |
| timmy-home | alexander/wizard-houses-ezra-bezalel | 85f0a34e3964007b | #51 | 2026-03-30 | ✅ |
| timmy-config | fix/881 | c47da00f624f3d34 | #958 | 2026-04-29 | ❌ |
| timmy-config | sprint/issue-242 | 437c5b6245176a49 | #843 | 2026-04-22 | ✅ |
| timmy-config | fix/689-scene-from-media | a2e61f6defac51a5 | #839 | 2026-04-21 | ✅ |
| timmy-config | fix/652 | b3390d4fee62e1c3 | #838 | 2026-04-21 | ✅ |
| timmy-config | burn/645-1776769427 | eacc6706811fd352 | #837 | 2026-04-21 | ✅ |
| timmy-config | burn/659-1776769427 | fe864962eca04233 | #836 | 2026-04-21 | ✅ |
| timmy-config | burn/691-1776769427 | ced6d20fde0c1d1c | #835 | 2026-04-21 | ✅ |
| timmy-config | fix/829-stale-process-cleanup | 19db78bbf0dbd114 | #834 | 2026-04-21 | ✅ |
| timmy-config | feat/687-quality-filter | a0266c83a424bb04 | #830 | 2026-04-20 | ✅ |
| timmy-config | fix/752-provenance-v2 | 8e791afecc847847 | #826 | 2026-04-20 | ✅ |
| timmy-config | fix/750-code-blocks | 6fcd2cc59a7e5ef3 | #825 | 2026-04-20 | ✅ |
| timmy-config | fix/823-pytest-collection | edd35eaa4b7d287b | #824 | 2026-04-20 | ✅ |
| timmy-config | fix/554-a11y-time-elements | 0833f43d972df5c2 | #569 | 2026-04-14 | ✅ |
| timmy-config | fix/glitch-html-report-544 | 3a18d0171cd7956f | #567 | 2026-04-14 | ✅ |
| timmy-config | queue/490-1776129201 | e394c85c0b8a45f3 | #558 | 2026-04-14 | ✅ |
| timmy-config | dawn/492-1776130053 | 1c3a11d08b803463 | #556 | 2026-04-14 | ✅ |
| timmy-config | whip/491-1776128804 | 6be215d3f5d47351 | #535 | 2026-04-14 | ✅ |
| timmy-config | whip/492-1776127532 | 837c62945e43f059 | #531 | 2026-04-14 | ✅ |
| timmy-config | burn/494-1776125702 | c09e54de727b1e94 | #530 | 2026-04-14 | ✅ |
| timmy-config | burn/pane-watchdog-515 | e419ada5c5b77bd3 | #526 | 2026-04-14 | ✅ |
| timmy-config | burn/auto-commit-511 | 5d3ccd1b07c88e58 | #525 | 2026-04-14 | ✅ |
| timmy-config | fix/ci-workflows-461 | 3214437652bbc45f | #524 | 2026-04-14 | ✅ |
| timmy-config | feature/session-state-persistence-512 | b71e365ed6956c0e | #523 | 2026-04-14 | ✅ |
| timmy-config | fix/workforce-manager-indent | 8483a6602aa37add | #522 | 2026-04-13 | ✅ |
| timmy-config | ci/fix-all-ci-failures | d50296e76b12658c | #521 | 2026-04-13 | ✅ |
| timmy-config | sprint/issue-516 | 9fdb8552e1d09158 | #517 | 2026-04-13 | ✅ |
| timmy-config | feat/20260413-kb-python-ast | 24887b615fb86b82 | #504 | 2026-04-13 | ✅ |
| timmy-config | perplexity/conflict-detector | 55fc678dc388d5cc | #500 | 2026-04-13 | ✅ |
| timmy-config | feat/multimodal-toolsuite | a1d1359debec3bbf | #499 | 2026-04-13 | ✅ |
| timmy-config | feat/nexus-visual-smoke-test-v2 | 7813871296f04322 | #498 | 2026-04-13 | ✅ |
| timmy-config | burn/20260412-1217-dashboard | 6863d9c0c5a40ea6 | #497 | 2026-04-13 | ✅ |
| timmy-config | timmy/issue-435-self-healing | b49a0abf390a8fb8 | #489 | 2026-04-13 | ✅ |
| timmy-config | burn/20260412-0809-audit-fix | 72de3eebdfd9db1f | #488 | 2026-04-13 | ✅ |
| timmy-config | purge/openclaw | 09aa06d65f9e7f93 | #487 | 2026-04-12 | ✅ |
| timmy-config | timmy/issue-434-ssh-trust | 19aa0830f469ef57 | #474 | 2026-04-11 | ✅ |
| timmy-config | feat/gofai-temporal-reasoner | 20bc0aa41a33c260 | #473 | 2026-04-11 | ✅ |
| timmy-config | feat/gofai-strips-planner | b6c0620c8322fce6 | #472 | 2026-04-11 | ✅ |
| timmy-config | feat/gofai-knowledge-base | d43deb1d79154ce1 | #471 | 2026-04-11 | ✅ |
| timmy-config | feat/gofai-symbolic-reasoner | 17de7f5df1ba0711 | #470 | 2026-04-11 | ✅ |
| timmy-config | feat/sovereign-guardrails-v2 | 343e190cc344309c | #468 | 2026-04-11 | ✅ |
| timmy-config | feat/force-multiplier-dispatch | 8ba3a6dcd85d94b3 | #465 | 2026-04-11 | ✅ |
| timmy-config | feat/sovereign-health-dashboard | 7305d97e8f349259 | #467 | 2026-04-11 | ✅ |
| timmy-config | fix/ci-architecture-lint | 2ce573f790b03b9d | #463 | 2026-04-11 | ✅ |
| timmy-config | fix/ci-validate-config | e8f2ecd2ea09bf35 | #462 | 2026-04-11 | ✅ |
| timmy-config | burn/cron-backup | add5d3c3819e5bb4 | #460 | 2026-04-11 | ✅ |
| timmy-config | timmy/pr-self-healing-safe | 06031d923faf3c28 | #469 | 2026-04-11 | ✅ |
| timmy-config | feat/sovereignty-linter | 6ad6469c409c47aa | #459 | 2026-04-11 | ✅ |
| timmy-config | burn/20260410-1930-secret-cleanup | c46c9d4071b17d22 | #458 | 2026-04-10 | ✅ |
| timmy-config | burn/20260410-0712-config-validator | 49b0b9d207ac0dd1 | #456 | 2026-04-10 | ✅ |
| timmy-config | burn/20260410-0621-451-pr-template | d64b2e7561e61d0f | #455 | 2026-04-10 | ✅ |
| timmy-config | perplexity/fleet-behaviour-hardening | b172d23b98bc3a72 | #430 | 2026-04-10 | ✅ |
| timmy-config | timmy/v7.0.0-checkin | a01935825cc71a7f | #424 | 2026-04-10 | ✅ |
| timmy-config | ansible-iac | 544f2a972906bc28 | #449 | 2026-04-10 | ✅ |
| timmy-config | burn/20260409-1247-self-healing-safe | 71bf82d9fbdb7ef7 | #450 | 2026-04-10 | ✅ |
| timmy-config | timmy/deadman-fallback | 6e5f1f6a22ae1431 | #425 | 2026-04-10 | ✅ |
| timmy-config | burn/20260409-1926-linter-v2 | 836849ffebf0c01a | #453 | 2026-04-10 | ✅ |
| timmy-config | burn/20260410-0018-451-pr-template | 641db62112262902 | #454 | 2026-04-10 | ✅ |
| timmy-config | burn/20260409-1240-cli-test-harness | b18fc76868413134 | #439 | 2026-04-10 | ✅ |
| timmy-config | perplexity/ci-validation-pipeline | 6336525232bb1280 | #431 | 2026-04-09 | ✅ |
| timmy-config | allegro/m2-commit-or-abort-845 | 7b93d34374cd9598 | #277 | 2026-04-06 | ❌ |
| timmy-config | feat/gemini-epic-398-1775648372708 | 17fde3c03ffafb4e | #418 | 2026-04-08 | ✅ |
| timmy-config | perplexity/pr-checklist-ci | f84b870ce4656ff1 | #411 | 2026-04-08 | ✅ |
| timmy-config | perplexity/soul-md-disambiguation | 1f02166107291c2d | #412 | 2026-04-08 | ✅ |
| timmy-config | perplexity/wire-enforcer-sovereign-store | 18124206e1176cb2 | #384 | 2026-04-08 | ✅ |
| timmy-config | perplexity/mempalace-architecture-doc | 56d8085e88967752 | #375 | 2026-04-08 | ✅ |
| timmy-config | timmy/fleet-phase3-5 | 8daa12c518d96c56 | #365 | 2026-04-08 | ✅ |
| timmy-config | feat/bezalel-wizard-sidecar-v2 | a43510a7ebd3f137 | #364 | 2026-04-08 | ✅ |
| timmy-config | timmy/gallery-submission | 2812bac43878e7b5 | #366 | 2026-04-08 | ✅ |
| timmy-config | perplexity/sovereign-memory-store | a2eff1222ba2f8c4 | #380 | 2026-04-08 | ✅ |
| timmy-config | timmy/sovereign-orchestrator-v1 | 11a28b74bb6c66fd | #362 | 2026-04-08 | ✅ |
| timmy-config | ezra/issue-358 | fe7c5018e3804d2e | #361 | 2026-04-07 | ✅ |
| the-nexus | step35/714-portals-add-a-portal-status | 43d7356a4df7afce | #1720 | 2026-04-29 | ✅ |
| the-nexus | fix/873 | 319ea08b2484468d | #1704 | 2026-04-26 | ✅ |
| the-nexus | fix/867 | 8f701aa208d531bb | #1702 | 2026-04-26 | ✅ |
| the-nexus | fix/1536-hot-reload | 7c9f4310d0e5110a | #1684 | 2026-04-22 | ✅ |
| the-nexus | fix/1509-tests | 2016a7e076c32aa3 | #1685 | 2026-04-22 | ✅ |
| the-nexus | mimo/code/issue-702 | b6ee9ba01b96cbf2 | #1686 | 2026-04-22 | ✅ |
| the-nexus | fix/1505 | 8d87dba309214085 | #1651 | 2026-04-22 | ✅ |
| the-nexus | fix/1504 | 2978f48a6a62f2a6 | #1652 | 2026-04-22 | ✅ |
| the-nexus | mimo/code/issue-708 | c9ecb5844e4fa05a | #1688 | 2026-04-22 | ✅ |
| the-nexus | claude/issue-1471 | 964a7ee48ec4b784 | #1625 | 2026-04-21 | ✅ |
| the-nexus | fix/1440-portals-json | 39dff7eec3b0b257 | #1489 | 2026-04-14 | ✅ |
| the-nexus | fix/1441-branch-check | 7132fabb34c66c7b | #1487 | 2026-04-14 | ✅ |
| the-nexus | q/1128-1776129480 | a29299820f48ec48 | #1437 | 2026-04-14 | ✅ |
| the-nexus | q/1338-1776129480 | e683a2213f786b81 | #1432 | 2026-04-14 | ✅ |
| the-nexus | bug/1415-port-conflict-fix | 465599accbd9db4e | #1431 | 2026-04-14 | ✅ |
| the-nexus | dispatch/1124-1776180746 | bd78d71dfb88fb73 | #1477 | 2026-04-14 | ✅ |
| the-nexus | burn/1144-1776120221 | 39faa6b862b00a62 | #1386 | 2026-04-14 | ✅ |
| the-nexus | burn/1354-1776125702 | 8fa43cc228920067 | #1391 | 2026-04-14 | ✅ |
| the-nexus | burn/1338-1776125702 | b9bc776fdbc3aa10 | #1392 | 2026-04-14 | ✅ |
| the-nexus | burn/1349-1776125702 | 9bcd41ad0775e537 | #1390 | 2026-04-14 | ✅ |
| the-nexus | burn/1356-1776125702 | d7a15ae04680cfbb | #1389 | 2026-04-14 | ✅ |
| the-nexus | burn/1340-1776120221 | 7fab9799b1ffb3aa | #1387 | 2026-04-14 | ✅ |
| the-nexus | nexusburn/research-1122 | bb9758c4d26e01be | #1380 | 2026-04-14 | ✅ |
| the-nexus | nexusburn/direction-architecture-875 | 4488847c136869e9 | #1374 | 2026-04-14 | ✅ |
| the-nexus | feat/multi-user-bridge | ea1b71ac48ed0f78 | #1326 | 2026-04-13 | ❌ |
| the-nexus | burn/20260413-0408-fix | 2600e8b61c0828e0 | #1361 | 2026-04-13 | ✅ |
| the-nexus | mimo/code/issue-707 | 9e19c22c8e46e541 | #1360 | 2026-04-13 | ✅ |
| the-nexus | mimo/code/issue-704 | c833d503e2287f58 | #1359 | 2026-04-13 | ✅ |
| the-nexus | feat/paper-results | 0843a2a0065c09dc | #1357 | 2026-04-13 | ✅ |
| the-nexus | feature/full-history-dedup | 4b15cf8283ef84a9 | #1352 | 2026-04-13 | ✅ |
| the-nexus | feature/dpo-quality-validator | bb4922adeb40613a | #1348 | 2026-04-13 | ✅ |
| the-nexus | feature/deepdive-dpo-phase-3.5 | 55d53c513c868c63 | #1347 | 2026-04-13 | ✅ |
| the-nexus | perplexity/swarm-governor | e8990299549b0c85 | #1335 | 2026-04-13 | ❌ |
| the-nexus | burn/20260413-gofai-structured-actions | 770ed8c27a0fd444 | #1343 | 2026-04-13 | ✅ |
| the-nexus | mimo/code/issue-717 | 808d68cf62e65965 | #1304 | 2026-04-13 | ✅ |
| the-nexus | mimo/build/issue-729 | ff3691e81e865897 | #1291 | 2026-04-13 | ✅ |
| the-nexus | mimo/build/issue-710 | 024e74defe429fc6 | #1286 | 2026-04-13 | ✅ |
| the-nexus | mimo/build/issue-672 | 91f0bcb034c7e773 | #1324 | 2026-04-13 | ✅ |
| the-nexus | mimo/create/issue-709 | 873ca8865ee7a955 | #1316 | 2026-04-13 | ✅ |
| the-nexus | burn/20260412-gofai-state-mainline | 77e6d67365b0f0e4 | #1330 | 2026-04-13 | ✅ |
| the-nexus | mimo/build/issue-865 | ed4c5da3cbaacb60 | #1329 | 2026-04-13 | ✅ |
| the-nexus | mimo/code/issue-1277 | dbad1cdf0b551622 | #1327 | 2026-04-13 | ✅ |
| the-nexus | mimo/build/issue-901 | 96426378e4cda82b | #1328 | 2026-04-13 | ✅ |
| the-nexus | mimo/code/issue-696 | 04583426228c3e11 | #1323 | 2026-04-13 | ✅ |
| the-nexus | mimo/build/issue-1119 | a5a748dc64e965c6 | #1321 | 2026-04-13 | ✅ |
| the-nexus | mimo/research/issue-866 | 869a7711e376136c | #1320 | 2026-04-12 | ✅ |
| the-nexus | mimo/create/issue-864 | d5099a18c6053d7d | #1315 | 2026-04-12 | ✅ |
| the-nexus | mimo/create/issue-716 | 571475a7496211b1 | #1314 | 2026-04-12 | ✅ |
| the-nexus | mimo/create/issue-698 | c09cc0383dfd9dcd | #1313 | 2026-04-12 | ✅ |
| the-nexus | mimo/create/issue-1116 | 5dfcf0e660a15e6b | #1311 | 2026-04-13 | ✅ |
| the-nexus | mimo/code/issue-727 | 229edf16e2f515b0 | #1305 | 2026-04-13 | ✅ |
| the-nexus | mimo/code/issue-673 | da925cba30b6cf0c | #1303 | 2026-04-13 | ✅ |
| the-nexus | mimo/code/issue-675 | 5bc3e0879d0368f6 | #1302 | 2026-04-13 | ✅ |
| the-nexus | mimo/code/issue-1215 | 11686fe09a08ef81 | #1298 | 2026-04-13 | ✅ |
| the-nexus | feat/resonance-viz-integration-1776010801023 | fe56ece1ad6232d3 | #1297 | 2026-04-12 | ✅ |
| the-nexus | mimo/code/issue-1208 | 4706861619508f15 | #1296 | 2026-04-13 | ✅ |
| the-nexus | mimo/code/issue-1181 | 0a0a2eb802378dc2 | #1295 | 2026-04-13 | ✅ |
| the-nexus | feat/resonance-linker-1776010647557 | fba972f8be852a97 | #1293 | 2026-04-12 | ✅ |
| the-nexus | feat/gofai-layer-4-v2 | 62a658182740ce1f | #1292 | 2026-04-12 | ✅ |
| the-nexus | burn/20260412-1202-mnemosyne | b5ed262581785f06 | #1290 | 2026-04-12 | ✅ |
| the-nexus | mimo/build/issue-720 | bd4b9e0f74ef95cc | #1289 | 2026-04-13 | ✅ |
| the-nexus | mimo/build/issue-728 | 97714729839db360 | #1288 | 2026-04-13 | ✅ |
| the-nexus | mimo/build/issue-712 | fdc02dc121b3fe18 | #1287 | 2026-04-13 | ✅ |
| the-nexus | mimo/build/issue-706 | c34748704ea0f9c0 | #1285 | 2026-04-13 | ✅ |
| the-nexus | feat/resonance-viz-1775996553148 | 2230c1c9fc03cd01 | #1284 | 2026-04-12 | ✅ |
| the-nexus | feat/gofai-nexus-final-v2 | e939958f385cfa38 | #1283 | 2026-04-12 | ✅ |
| the-nexus | feat/gofai-nexus-mega-1775996240349 | 36db3aff6b81e182 | #1281 | 2026-04-12 | ✅ |
| the-nexus | purge/openclaw-fleet-vocab | ba18e5ed5fbe2a70 | #1279 | 2026-04-12 | ✅ |
| the-nexus | purge/openclaw-readme | 9e04030541eb8f53 | #1278 | 2026-04-12 | ✅ |
| the-nexus | fix/mnemosyne-cli-path-vitality | 3361a0e259117807 | #1267 | 2026-04-12 | ✅ |
| the-nexus | feat/mnemosyne-memory-path | 65cef9d9c0a7536a | #1265 | 2026-04-12 | ✅ |
| the-nexus | feat/mnemosyne-memory-decay | 42a4169940c9cecd | #1259 | 2026-04-12 | ✅ |
| the-nexus | feat/mnemosyne-embedding-backend | 3fca28b1c8f2712c | #1257 | 2026-04-12 | ✅ |
| the-nexus | epic/iac-workflow-1248 | 55f0bbe97ead71c4 | #1254 | 2026-04-12 | ✅ |
| the-nexus | feat/mnemosyne-connection-panel | 5446d3dc59bbfe61 | #1247 | 2026-04-12 | ✅ |
| the-nexus | feat/ordinal-archive-2026-04-11 | e07c210ed791da71 | #1235 | 2026-04-11 | ✅ |
| the-nexus | feat/mnemosyne-graph-clusters | 3848b6f4eafd90a3 | #1234 | 2026-04-11 | ✅ |
| the-nexus | feat/mnemosyne-graph-export | c961cf9122ab210c | #1233 | 2026-04-11 | ✅ |
| the-nexus | feat/mnemosyne-memory-birth | 12a5a757480ac495 | #1222 | 2026-04-11 | ✅ |
| the-nexus | feat/mnemosyne-phase1-1216 | ef1fb5b735f96af8 | #1217 | 2026-04-11 | ✅ |
| the-nexus | fix/entity-resolution-lines-wiring | 75f39e41959eda5e | #1214 | 2026-04-11 | ✅ |
| the-nexus | feat/mnemosyne-memory-filter | 45724e84212da8b2 | #1213 | 2026-04-11 | ✅ |
| the-nexus | feat/mnemosyne-ambient-particles | dc88f1b83473a370 | #1205 | 2026-04-11 | ✅ |
| the-nexus | feat/spatial-search-issue-1170 | 72eecf6ee44e8831 | #1201 | 2026-04-11 | ✅ |
| the-nexus | mimo/build/issue-686 | 6f1264f6c6d2bc2d | #1207 | 2026-04-11 | ✅ |
| the-nexus | mimo/build/issue-680 | 3367ce54382a61cf | #1206 | 2026-04-11 | ✅ |
| the-nexus | fix/auto-merge | fe30755b0e665bc9 | #1202 | 2026-04-11 | ✅ |
| the-nexus | mimo/code/issue-723 | 1b2ac5cd1fe47e0c | #1197 | 2026-04-11 | ✅ |
| the-nexus | mimo/create/issue-681 | 7890bd48867d1c57 | #1194 | 2026-04-11 | ✅ |
| the-nexus | mimo/code/issue-724 | 339f7d6ef29d114b | #1193 | 2026-04-11 | ✅ |
| the-nexus | mimo/create/issue-685 | 1294f37b44f705e4 | #1195 | 2026-04-11 | ✅ |
| the-nexus | mimo/create/issue-800 | c7dfb8a5e6ecf78a | #1192 | 2026-04-11 | ✅ |
| the-nexus | mimo/research/issue-1047 | 479b9ec132a79c2f | #1191 | 2026-04-11 | ✅ |
| the-nexus | mimo/research/issue-801 | 8295b29f11c70a12 | #1190 | 2026-04-11 | ✅ |
| the-nexus | mimo/build/issue-703 | 020f21b7b35680fa | #1189 | 2026-04-11 | ✅ |
| the-nexus | mimo/code/issue-1174 | 45163cf14e9455ca | #1188 | 2026-04-11 | ✅ |
| the-nexus | feat/mnemosyne-timeline-scrubber | 29d2dbabd160e9be | #1186 | 2026-04-11 | ✅ |
| the-nexus | mimo/build/issue-701 | eb28e1f8e476734b | #1185 | 2026-04-11 | ✅ |
| the-nexus | feat/mnemosyne-trust-crystal-rendering | 08117ef43abe2f91 | #1183 | 2026-04-11 | ✅ |
| the-nexus | feat/mnemosyne-clear-feed | 93f3722a36ad6606 | #1182 | 2026-04-10 | ✅ |
| the-nexus | claude/issue-1171 | 3626ee0e2067cbcc | #1178 | 2026-04-10 | ❌ |
| the-nexus | mimo/code/issue-1145 | 845e2f2cede052f3 | #1163 | 2026-04-10 | ✅ |
| the-nexus | mimo/code/issue-1146 | 60af11ec2f968ffd | #1162 | 2026-04-10 | ✅ |
| the-nexus | feat/mnemosyne-crystal-inspect | c3877088925e8a2e | #1161 | 2026-04-10 | ✅ |
| the-nexus | feat/mnemosyne-persistence | 1e7bb2a453133ba1 | #1159 | 2026-04-10 | ✅ |
| the-nexus | claude/issue-1125 | 220f20c794574e81 | #1157 | 2026-04-10 | ✅ |
| the-nexus | claude/issue-1126 | beec49a92d745eec | #1130 | 2026-04-10 | ✅ |
| the-nexus | feat/mnemosyne-spatial-schema-consolidated | 5ce928a00d11be27 | #1156 | 2026-04-10 | ✅ |
| the-nexus | feat/mnemosyne-memory-orbs-v2 | 6cf1f4d0784683e9 | #1148 | 2026-04-10 | ✅ |
| the-nexus | perplexity/soul-md-pointer | b1743612e91d00a4 | #1133 | 2026-04-08 | ✅ |
| the-nexus | feat/mempalace-api-add-1775582323040 | 6d4d94af297d887b | #1129 | 2026-04-08 | ✅ |
| the-nexus | claude/issue-1112 | 8044fe7d4080bd80 | #1113 | 2026-04-08 | ✅ |
| the-nexus | groq/issue-1047 | 34862cf5e5eb2481 | #1090 | 2026-04-07 | ❌ |
| the-nexus | claude/issue-1075 | e644b00dffbdb2ec | #1109 | 2026-04-07 | ❌ |
| the-nexus | groq/issue-918 | b445c040377b5869 | #1046 | 2026-04-07 | ❌ |
| the-nexus | groq/issue-1098 | d512f31dd61c9567 | #1099 | 2026-04-07 | ❌ |
| the-nexus | claude/issue-823 | 10196b3804259db5 | #892 | 2026-04-06 | ✅ |
| the-nexus | claude/issue-827 | ae201aee2627b10d | #891 | 2026-04-06 | ✅ |
| the-nexus | claude/issue-826 | a445489031573adf | #890 | 2026-04-06 | ✅ |
| the-nexus | claude/issue-836 | 4721518ac6144a7d | #889 | 2026-04-06 | ✅ |
| the-nexus | claude/issue-832 | d31468fe2b435d43 | #888 | 2026-04-06 | ✅ |
| the-nexus | claude/issue-833 | 1420c0d64b531d0b | #887 | 2026-04-06 | ✅ |
| the-nexus | timmy/issue-855 | 50fc25da0d239819 | #885 | 2026-04-06 | ✅ |
| the-nexus | allegro/self-improvement-infra | d00bb8cbe9970bc9 | #884 | 2026-04-06 | ✅ |
| the-nexus | gemini/issue-431 | ca32ec98a964e78b | #432 | 2026-03-24 | ✅ |
| fleet-ops | fix/139 | a68f2d8f1d957031 | #447 | 2026-04-26 | ✅ |
| fleet-ops | feat/sovereign-accountant-ops-1776866094339 | dca5d09bb6485797 | #434 | 2026-04-22 | ✅ |
| fleet-ops | feat/sovereign-ops-mastery-1776865225032 | 3a1e60c8ba26f6c9 | #433 | 2026-04-22 | ✅ |
| fleet-ops | fix/orchestrator-dashboard-1776864589678 | 720f70c1c1e05ad7 | #432 | 2026-04-22 | ✅ |
| fleet-ops | feat/sovereign-watchdog-1776864561414 | 639743d4cfa5f70d | #431 | 2026-04-22 | ✅ |
| fleet-ops | fix/181-capacity-limits | 9c2e6c31ff81bf3c | #427 | 2026-04-22 | ✅ |
| fleet-ops | fix/184-cleanup | 156b7b3512965753 | #426 | 2026-04-22 | ✅ |
| fleet-ops | fix/186-score | 69470c4e195b6ad4 | #425 | 2026-04-22 | ✅ |
| fleet-ops | fix/235 | 6ebcab4d51b714ba | #417 | 2026-04-22 | ✅ |
| fleet-ops | fix/239 | b954fd5a8cc28ff9 | #416 | 2026-04-22 | ✅ |
| fleet-ops | feat/intelligent-decomposer-1776826621777 | d36b5ce7b57274f8 | #404 | 2026-04-22 | ✅ |
| fleet-ops | feat/fleet-aggregator-1776824865616 | 70b8f571a941f076 | #403 | 2026-04-22 | ✅ |
| fleet-ops | fix/123-video-engine-deployment-automation | 56a1ec74b929a95b | #406 | 2026-04-22 | ✅ |
| fleet-ops | feat/397-sovereign-dispatch-hub | 168314c6a3fcb8c6 | #401 | 2026-04-21 | ✅ |
| fleet-ops | feat/321-ordinal-noise-log | 9cdfcdd246fc44fc | #400 | 2026-04-21 | ✅ |
| fleet-ops | feat/225-burn-worker-supervisor | 0f61d27f2099430d | #399 | 2026-04-21 | ✅ |
| fleet-ops | fix/392-the-door-ci-gate | ac48379ad6b16243 | #398 | 2026-04-21 | ✅ |
| fleet-ops | feat/394-browser-cockpit | b43ae10c8cfc2c92 | #397 | 2026-04-21 | ✅ |
| fleet-ops | feat/fleet-telemetry-upgrade-1776733761324 | bc02f709000e89bb | #396 | 2026-04-21 | ✅ |
| fleet-ops | feat/393-grimace-research | 6dbe427f28a50556 | #395 | 2026-04-21 | ✅ |
| fleet-ops | feat/fleet-ops-reliability-1776700513637 | 679c0a151733b12c | #391 | 2026-04-21 | ✅ |
| fleet-ops | feat/335-acp-bridge | b922917b7c5688d1 | #390 | 2026-04-21 | ✅ |
| fleet-ops | fix/305-federation-sync-endpoints | 2dc9b17377ddf4e9 | #389 | 2026-04-21 | ✅ |
| fleet-ops | fix/208 | 38c276903393043a | #388 | 2026-04-21 | ✅ |
| fleet-ops | fix/336-nightly-self-evolution | cfddb1333ec97b1d | #387 | 2026-04-21 | ✅ |
| fleet-ops | fix/183 | 091374742f8eac6c | #381 | 2026-04-21 | ✅ |
| fleet-ops | fix/203 | a7a105e789c14a46 | #380 | 2026-04-21 | ✅ |
| fleet-ops | fix/219 | b67e952a4b96552b | #379 | 2026-04-21 | ✅ |
| fleet-ops | fix/222 | b66a94def6dbd9ef | #377 | 2026-04-21 | ✅ |
| fleet-ops | fix/223 | 0b1ac620884182d0 | #376 | 2026-04-21 | ✅ |
| fleet-ops | fix/156 | b533d9d7e113805b | #419 | 2026-04-22 | ✅ |
| fleet-ops | fix/169-schedule-burndown | 3835879037d6b463 | #201 | 2026-04-14 | ✅ |
| fleet-ops | fix/171-alert-dedup | ea3fa408d17b1aa9 | #196 | 2026-04-14 | ✅ |
| fleet-ops | fix/174-morning-reports | 02e578332a3e0a6d | #190 | 2026-04-14 | ✅ |
| fleet-ops | fix/172-queue-consumer | 96bc869702c373f5 | #194 | 2026-04-14 | ✅ |
| fleet-ops | fix/167-burn-cycle-revival | b59eefdd1650ff8b | #193 | 2026-04-14 | ✅ |
| fleet-ops | fix/178-tmux-docs | 101415726cdec820 | #192 | 2026-04-14 | ✅ |
| fleet-ops | fix/170-pane-router | daeff15d5ff76bb1 | #191 | 2026-04-14 | ✅ |
| fleet-ops | fix/177-tmux-cleanup | e809d75a5158a5b3 | #189 | 2026-04-14 | ✅ |
| fleet-ops | dispatch/115-1776180746 | 7df68729b9f6e12a | #164 | 2026-04-14 | ✅ |
| fleet-ops | burn/skill-scoring-103 | 53d97c5f05859f5f | #144 | 2026-04-14 | ✅ |
| fleet-ops | fix/profile-isolation-ephemeral | 3f6e897bae3e239f | #142 | 2026-04-13 | ✅ |
| fleet-ops | ci/fix-ansible-lint | 080f52855836aaa2 | #138 | 2026-04-13 | ✅ |
| fleet-ops | fix/health-check-response-time | ddb9581f5b2bbbe1 | #136 | 2026-04-13 | ✅ |
| fleet-ops | burn/20260413-0411-fix | 5ab1b2c54b87efaf | #135 | 2026-04-13 | ✅ |
| fleet-ops | burn/cost-pattern-detector | fa9f6894dd1eabfc | #132 | 2026-04-13 | ✅ |
| fleet-ops | gofia/65-registry-health-updater | e4939c8c470f0308 | #131 | 2026-04-13 | ✅ |
| fleet-ops | feat/video-engine-improvements | 71710c9570950700 | #129 | 2026-04-13 | ✅ |
| fleet-ops | perplexity/agent-scorecard | 61dd54c8201bce7a | #119 | 2026-04-13 | ✅ |
| fleet-ops | feat/nexus-watchdog | 17d90da532b147b4 | #118 | 2026-04-13 | ✅ |
| fleet-ops | burn/20260412-1854-morrowind-mapping-v2 | 4c0e54f0d18d715c | #88 | 2026-04-12 | ✅ |
| fleet-ops | gofia/federation-sync | 7739745a916bd9dc | #82 | 2026-04-12 | ✅ |
| fleet-ops | gofia/shared-knowledge-store | 5373feff78917096 | #81 | 2026-04-12 | ✅ |
| fleet-ops | gofia/health-dashboard | 2a25a87a7444bc10 | #80 | 2026-04-12 | ✅ |
| fleet-ops | feat/ordinal-archive-20260412 | 66060a1cce858295 | #79 | 2026-04-12 | ✅ |
| fleet-ops | gofia/message-bus | 3fd8945264cecf32 | #78 | 2026-04-11 | ✅ |
| fleet-ops | gofia/fleet-registry | b9a99087ef070a55 | #77 | 2026-04-11 | ✅ |
| fleet-ops | feat/video-engine-pilot-render | 2f0390e631123349 | #76 | 2026-04-11 | ✅ |
| fleet-ops | feat/video-engine-tiered-rendering | 21aa30fb12c30f74 | #75 | 2026-04-11 | ✅ |
| fleet-ops | feat/video-engine-benchmarks | 0e2b37ae2db32e86 | #74 | 2026-04-11 | ✅ |
| fleet-ops | feat/video-engine-integration | 0a27da593068eb2d | #73 | 2026-04-11 | ✅ |
| fleet-ops | feat/video-engine-provisioning | 07d5a37344e6e835 | #72 | 2026-04-11 | ✅ |
| fleet-ops | fix/ci-ansible-lint | 71c61acfa3d61191 | #64 | 2026-04-11 | ✅ |
| fleet-ops | burn/20260410-1943-auto-review | 890a71021224e35f | #59 | 2026-04-10 | ✅ |
| fleet-ops | sovereign-health-suite | f89af184f9244286 | #57 | 2026-04-10 | ✅ |
| fleet-ops | fix/portable-test-paths | 0cdb66d91b280ec3 | #58 | 2026-04-10 | ✅ |
| fleet-ops | fix/site-yml-orchestrator | 13d69f0b4fc95e6e | #54 | 2026-04-11 | ✅ |
| fleet-ops | burn/20260410-1928-ci-pipeline | c13bad30b7d94e04 | #56 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260410-1926-digitalocean | 013c23c4436e2f0a | #55 | 2026-04-11 | ✅ |
| fleet-ops | burn/vault-fix-v4 | 856d6a871f35c4bc | #53 | 2026-04-10 | ✅ |
| fleet-ops | sovereign-heart | 37afe94b199d07ad | #51 | 2026-04-10 | ✅ |
| fleet-ops | burn/fleet-ops-consolidation | f99f9581b587549a | #49 | 2026-04-10 | ✅ |
| fleet-ops | sovereign-muse | 8276d11dba0bf914 | #50 | 2026-04-10 | ✅ |
| fleet-ops | sovereign-librarian | 8e72965e50f4b78d | #47 | 2026-04-10 | ✅ |
| fleet-ops | sovereign-guard | 32bf359a913e453f | #45 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260410-1817-backups-role | 39c5f4a810f38326 | #43 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260410-1813-evennia-role | a525821e3854c503 | #42 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260410-1811-monitoring-role | 76ebe4086977b1cd | #41 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260410-1809-nostr-role | 13ab065ea93c9467 | #39 | 2026-04-10 | ✅ |
| fleet-ops | sovereign-synthesis | 6cebd000147b5cd8 | #38 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260410-1744-hermes-role | 3de632b2447f4ca1 | #36 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260410-1742-nginx-role | 9b6c5528f66ebd60 | #35 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260410-1740-ollama-role | 7b145114af242760 | #34 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260410-1738-gitea-role | d456deed91cfe6f8 | #33 | 2026-04-10 | ✅ |
| fleet-ops | sovereign-hardening-v2 | c0e1a6245877c2d7 | #32 | 2026-04-10 | ✅ |
| fleet-ops | burn/deploy-conduit-matrix | 689670fc288594dc | #13 | 2026-04-10 | ❌ |
| fleet-ops | feat/harmony-audit | cda09db00f603d13 | #16 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260410-0847-4-preflight-health-checks | 0044da37a54fe161 | #14 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260410-0714-docker-compose | c92d986a670d6b2d | #10 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260410-0516-1-bootstrap-inventory | 3e4be451b1ba4ce1 | #9 | 2026-04-10 | ✅ |
| fleet-ops | burn/20260409-1943-baseline-playbook | c03e870b47cb11b0 | #6 | 2026-04-10 | ✅ |
| compounding-intelligence | burn/196-1776306000 | cc215e3ed71a062c | #228 | 2026-04-21 | ✅ |
| compounding-intelligence | feat/200-knowledge-freshness-cron | baa2c84c3f2480b4 | #227 | 2026-04-21 | ✅ |
| compounding-intelligence | burn/210-1776305000 | 55adcb31dcdab996 | #221 | 2026-04-21 | ✅ |
| compounding-intelligence | fix/212-dot-quoting | ec0e9d65ca68f9f8 | #214 | 2026-04-21 | ✅ |
| compounding-intelligence | fix/perf-bottleneck-syntax-211 | b732172dcc7e98b4 | #217 | 2026-04-21 | ✅ |
| compounding-intelligence | burn/212-fix-dot-quoting | f7c479c4eb996603 | #216 | 2026-04-21 | ✅ |
| compounding-intelligence | fix/676 | c203010e3a756dee | #209 | 2026-04-21 | ✅ |
| compounding-intelligence | fix/198-quality-gate | e1e42c3f8e1dbb7c | #208 | 2026-04-21 | ✅ |
| compounding-intelligence | fix/201-pytest-warnings | 7a4677c752500639 | #207 | 2026-04-21 | ✅ |
**Total candidates:** 378
**SHA-safe (no new commits):** 363
**SHA-diff (new commits since merge):** 15
**Per-repo breakdown:**
- timmy-home: 77 safe / 82 candidates
- timmy-config: 69 safe / 71 candidates
- the-nexus: 118 safe / 125 candidates
- fleet-ops: 90 safe / 91 candidates
- compounding-intelligence: 9 safe / 9 candidates

View File

@@ -0,0 +1,182 @@
[
{
"repo": "timmy-home",
"branch": "fix/793",
"branch_sha": "a4e9c32a740e459d",
"pr_number": 962,
"pr_merged_at": "2026-04-29T12:09:33Z",
"pr_head_sha": "a4e9c32a740e459d",
"sha_match": true,
"branch_date": "2026-04-29",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "fix/547",
"branch_sha": "ef6a729c32907811",
"pr_number": 842,
"pr_merged_at": "2026-04-21T15:30:47Z",
"pr_head_sha": "ef6a729c32907811",
"sha_match": true,
"branch_date": "2026-04-21",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "fix/548",
"branch_sha": "60d876c12dfb20f9",
"pr_number": 840,
"pr_merged_at": "2026-04-21T15:30:54Z",
"pr_head_sha": "60d876c12dfb20f9",
"sha_match": true,
"branch_date": "2026-04-21",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "fix/551",
"branch_sha": "8b02ae03ca60c566",
"pr_number": 839,
"pr_merged_at": "2026-04-21T15:33:52Z",
"pr_head_sha": "8b02ae03ca60c566",
"sha_match": true,
"branch_date": "2026-04-21",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "fix/553",
"branch_sha": "e752caa9a7b5a517",
"pr_number": 838,
"pr_merged_at": "2026-04-21T15:36:06Z",
"pr_head_sha": "e752caa9a7b5a517",
"sha_match": true,
"branch_date": "2026-04-21",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "fix/570",
"branch_sha": "5c8ba43dbf6715e9",
"pr_number": 837,
"pr_merged_at": "2026-04-21T15:40:16Z",
"pr_head_sha": "5c8ba43dbf6715e9",
"sha_match": true,
"branch_date": "2026-04-21",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "fix/673",
"branch_sha": "4dfa001b9a4b43de",
"pr_number": 835,
"pr_merged_at": "2026-04-21T15:34:02Z",
"pr_head_sha": "4dfa001b9a4b43de",
"sha_match": true,
"branch_date": "2026-04-21",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "fix/675",
"branch_sha": "16fcabb5fc56deb4",
"pr_number": 834,
"pr_merged_at": "2026-04-21T15:34:05Z",
"pr_head_sha": "16fcabb5fc56deb4",
"sha_match": true,
"branch_date": "2026-04-21",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "fix/676",
"branch_sha": "0626a3fc33d28e14",
"pr_number": 833,
"pr_merged_at": "2026-04-21T15:36:16Z",
"pr_head_sha": "0626a3fc33d28e14",
"sha_match": true,
"branch_date": "2026-04-21",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "fix/677",
"branch_sha": "3250c6d124a4164d",
"pr_number": 832,
"pr_merged_at": "2026-04-21T15:31:10Z",
"pr_head_sha": "3250c6d124a4164d",
"sha_match": true,
"branch_date": "2026-04-21",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "fix/685",
"branch_sha": "1bce98a7615d53c9",
"pr_number": 829,
"pr_merged_at": "2026-04-21T15:31:16Z",
"pr_head_sha": "1bce98a7615d53c9",
"sha_match": true,
"branch_date": "2026-04-20",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "sprint/issue-827",
"branch_sha": "cb269347cc7e9136",
"pr_number": 828,
"pr_merged_at": "2026-04-21T15:36:22Z",
"pr_head_sha": "cb269347cc7e9136",
"sha_match": true,
"branch_date": "2026-04-20",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "sprint/issue-822",
"branch_sha": "47f136e9ab453878",
"pr_number": 823,
"pr_merged_at": "2026-04-21T15:36:31Z",
"pr_head_sha": "47f136e9ab453878",
"sha_match": true,
"branch_date": "2026-04-20",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "fix/648",
"branch_sha": "b615013e6329ecdb",
"pr_number": 818,
"pr_merged_at": "2026-04-21T15:36:41Z",
"pr_head_sha": "b615013e6329ecdb",
"sha_match": true,
"branch_date": "2026-04-18",
"action": "deleted",
"detail": "deleted"
},
{
"repo": "timmy-home",
"branch": "fix/671",
"branch_sha": "c2aed1246464d239",
"pr_number": 813,
"pr_merged_at": "2026-04-21T15:39:50Z",
"pr_head_sha": "c2aed1246464d239",
"sha_match": true,
"branch_date": "2026-04-17",
"action": "deleted",
"detail": "deleted"
}
]

View File

@@ -0,0 +1,212 @@
#!/usr/bin/env python3
"""
Branch Sprawl Audit & Contraction
==================================
Audits and optionally deletes stale remote branches across the five
high-backlog repositories with no open PR and no unique commits.
Safe deletion criteria:
1. Branch is not 'main'
2. Branch has NO open PR
3. Branch corresponds to a CLOSED MERGED PR (merged=True)
4. Current branch tip SHA matches the PR's head_sha exactly (no new commits)
5. Not in Alexander's private workspace ('alexander/' prefixes)
Usage:
python scripts/branch-audit-cleanup.py list # Print Markdown report
python scripts/branch-audit-cleanup.py delete # Dry-run preview
python scripts/branch-audit-cleanup.py delete --execute # Actually delete
"""
import os, sys, json, requests, pickle, argparse
from pathlib import Path
from datetime import datetime, timezone
TOKEN_PATH = Path.home() / ".config" / "gitea" / "token"
BASE_URL = "https://forge.alexanderwhitestone.com/api/v1"
HEADERS = None
REPOS = [
"timmy-home",
"timmy-config",
"the-nexus",
"fleet-ops",
"compounding-intelligence",
]
PROTECTED_PREFIXES = ["alexander/"]
CANDIDATES_CACHE = Path("/tmp/candidate_deletions.pkl")
def load_token():
global HEADERS
token = TOKEN_PATH.read_text().strip()
HEADERS = {"Authorization": f"token {token}"}
def gitea_get(path, params=None, page=1, limit=50):
results = []
while True:
url = f"{BASE_URL}{path}"
r = requests.get(url, headers=HEADERS, params={**(params or {}), "page": page, "limit": limit}, timeout=15)
if r.status_code != 200:
raise RuntimeError(f"GET {url}{r.status_code}: {r.text[:100]}")
batch = r.json()
if not isinstance(batch, list):
return batch
results.extend(batch)
if len(batch) < limit:
break
page += 1
return results
def is_protected_branch(name):
lp = name.lower()
return any(lp.startswith(p.rstrip('/').lower()) for p in PROTECTED_PREFIXES)
def collect_branches(repo):
return gitea_get(f"/repos/Timmy_Foundation/{repo}/branches")
def collect_prs(repo, state):
return gitea_get(f"/repos/Timmy_Foundation/{repo}/pulls", params={"state": state})
def build_candidates(force_refresh=False):
if CANDIDATES_CACHE.exists() and not force_refresh:
print("(Using cached candidates…)", file=sys.stderr)
return pickle.loads(CANDIDATES_CACHE.read_bytes())
print("Collecting branch/PR data…", file=sys.stderr)
candidates = []
for repo in REPOS:
print(f" {repo}", file=sys.stderr)
branches = collect_branches(repo)
branch_map = {b["name"]: {"sha": b["commit"]["id"][:16], "date": b["commit"]["timestamp"][:10]}
for b in branches}
open_prs = collect_prs(repo, "open")
closed_prs = collect_prs(repo, "closed")
open_branch_set = {pr["head"]["ref"] for pr in open_prs}
closed_merged_by_branch = {}
for pr in closed_prs:
if not pr.get("merged"):
continue
hb = pr["head"]["ref"]
existing = closed_merged_by_branch.get(hb)
if not existing or (pr.get("merged_at") or "") > (existing.get("merged_at") or ""):
closed_merged_by_branch[hb] = pr
for branch_name, binfo in branch_map.items():
if branch_name == "main":
continue
if branch_name in open_branch_set:
continue
if is_protected_branch(branch_name):
print(f" SKIP protected: {branch_name}", file=sys.stderr)
continue
pr = closed_merged_by_branch.get(branch_name)
if not pr:
continue
pr_head_sha = pr["head"]["sha"][:16]
sha_match = (pr_head_sha == binfo["sha"])
candidates.append({
"repo": repo,
"branch": branch_name,
"branch_sha": binfo["sha"],
"pr_number": pr["number"],
"pr_merged_at": pr.get("merged_at", ""),
"pr_head_sha": pr_head_sha,
"sha_match": sha_match,
"branch_date": binfo["date"],
})
CANDIDATES_CACHE.write_bytes(pickle.dumps(candidates))
print(f"Total candidates: {len(candidates)}", file=sys.stderr)
return candidates
def generate_table(candidates):
rows = ["| Repo | Branch | Branch SHA | PR # | PR Merged At | SHA Match |",
"|------|--------|------------|------|--------------|-----------|"]
sorted_cands = sorted(candidates, key=lambda c: (c["repo"], c["branch_date"]), reverse=True)
for c in sorted_cands:
rows.append(
f"| {c['repo']} | {c['branch']} | {c['branch_sha']} | #{c['pr_number']} | {c['pr_merged_at'][:10]} | "
f"{'' if c['sha_match'] else ''} |"
)
rows.append("")
rows.append(f"**Total candidates:** {len(candidates)}")
matches = sum(1 for c in candidates if c["sha_match"])
rows.append(f"**SHA-safe (no new commits):** {matches}")
rows.append(f"**SHA-diff (new commits since merge):** {len(candidates) - matches}")
per_repo = {}
for c in candidates:
per_repo.setdefault(c["repo"], {"total": 0, "safe": 0})
per_repo[c["repo"]]["total"] += 1
if c["sha_match"]:
per_repo[c["repo"]]["safe"] += 1
rows.append("\n**Per-repo breakdown:**")
for repo in REPOS:
d = per_repo.get(repo, {"total": 0, "safe": 0})
rows.append(f"- {repo}: {d['safe']} safe / {d['total']} candidates")
return "\n".join(rows)
def delete_branch(repo, branch):
url = f"{BASE_URL}/repos/Timmy_Foundation/{repo}/branches/{branch}"
r = requests.delete(url, headers=HEADERS, timeout=15)
if r.status_code in (200, 204):
return True, "deleted"
return False, f"HTTP {r.status_code}: {r.text[:200]}"
def run_deletion(limit=15, dry_run=True):
candidates = build_candidates()
safe_candidates = [c for c in candidates if c["sha_match"] and not is_protected_branch(c["branch"])]
print(f"Safe candidates available: {len(safe_candidates)}")
to_delete = safe_candidates[:limit]
results = []
for c in to_delete:
repo, branch = c["repo"], c["branch"]
if dry_run:
print(f"[DRY-RUN] Would delete {repo}/{branch}")
results.append({**c, "action": "dry-run"})
else:
ok, msg = delete_branch(repo, branch)
results.append({**c, "action": "deleted" if ok else "failed", "detail": msg})
status = "" if ok else f"{msg}"
print(f" {status} {repo}/{branch}")
return results
def main():
parser = argparse.ArgumentParser(description="Branch sprawl audit & contraction tool.")
sub = parser.add_subparsers(dest="cmd", required=True)
sub.add_parser("list", help="Print Markdown report of candidates")
p_del = sub.add_parser("delete", help="Delete safe merged-PR branches")
p_del.add_argument("--execute", action="store_true", help="Actually perform deletion")
args = parser.parse_args()
load_token()
if args.cmd == "list":
candidates = build_candidates(force_refresh=False)
print(generate_table(candidates))
elif args.cmd == "delete":
dry = not args.execute
if dry:
print("=== DRY RUN — no branches will be deleted ===")
else:
print("=== LIVE DELETION — branches will be deleted! ===")
confirm = input("Type 'YES' to confirm: ")
if confirm != "YES":
print("Aborted.")
sys.exit(1)
results = run_deletion(limit=15, dry_run=dry)
out = Path("branch-contraction-results.json")
out.write_text(json.dumps(results, indent=2))
print(f"\nResults written to {out}")
deleted_count = sum(1 for r in results if r["action"] == "deleted")
print(f"Deleted: {deleted_count} / {len(results)}")
if __name__ == "__main__":
main()

View File

@@ -1,43 +1,46 @@
model: model:
default: kimi-k2.5 default: kimi-k2.5
provider: kimi-coding provider: kimi-coding
context_length: 65536
base_url: https://api.kimi.com/coding/v1
toolsets: toolsets:
- all - all
fallback_providers: fallback_providers:
- provider: kimi-coding - provider: kimi-coding
model: kimi-k2.5 model: kimi-k2.5
timeout: 120 base_url: https://api.kimi.com/coding/v1
reason: Kimi coding fallback (front of chain) timeout: 120
- provider: openrouter reason: "Primary — Kimi K2.5 (best value, least friction)"
model: google/gemini-2.5-pro - provider: openrouter
base_url: https://openrouter.ai/api/v1 model: google/gemini-2.5-pro
api_key_env: OPENROUTER_API_KEY base_url: https://openrouter.ai/api/v1
timeout: 120 api_key_env: OPENROUTER_API_KEY
reason: Gemini 2.5 Pro via OpenRouter (replaces banned Anthropic) timeout: 120
- provider: ollama reason: "Fallback — Gemini 2.5 Pro via OpenRouter"
model: gemma4:latest - provider: ollama
base_url: http://localhost:11434 model: gemma4:latest
timeout: 300 base_url: http://localhost:11434/v1
reason: Terminal fallback — local Ollama timeout: 180
- provider: nous reason: "Terminal fallback — local Ollama (sovereign, no API needed)"
model: xiaomi/mimo-v2-pro
base_url: https://inference.nousresearch.com/v1
api_key_env: NOUS_API_KEY
timeout: 120
reason: MiMo V2 Pro via Nous Portal free tier evaluation (#447)
agent: agent:
max_turns: 30 max_turns: 30
reasoning_effort: xhigh reasoning_effort: high
verbose: false verbose: false
terminal: terminal:
backend: local backend: local
cwd: . cwd: .
timeout: 180 timeout: 180
persistent_shell: true persistent_shell: true
browser: browser:
inactivity_timeout: 120 inactivity_timeout: 120
command_timeout: 30 command_timeout: 30
record_sessions: false record_sessions: false
display: display:
compact: false compact: false
personality: '' personality: ''
@@ -48,6 +51,7 @@ display:
streaming: false streaming: false
show_cost: false show_cost: false
tool_progress: all tool_progress: all
memory: memory:
memory_enabled: true memory_enabled: true
user_profile_enabled: true user_profile_enabled: true
@@ -55,46 +59,55 @@ memory:
user_char_limit: 1375 user_char_limit: 1375
nudge_interval: 10 nudge_interval: 10
flush_min_turns: 6 flush_min_turns: 6
approvals: approvals:
mode: manual mode: manual
security: security:
redact_secrets: true redact_secrets: true
tirith_enabled: false tirith_enabled: false
platforms: platforms:
api_server: api_server:
enabled: true enabled: true
extra: extra:
host: 127.0.0.1 host: 127.0.0.1
port: 8645 port: 8645
session_reset: session_reset:
mode: none mode: none
idle_minutes: 0 idle_minutes: 0
skills: skills:
creation_nudge_interval: 15 creation_nudge_interval: 15
system_prompt_suffix: 'You are Allegro, the Kimi-backed third wizard house.
system_prompt_suffix: |
You are Allegro, the Kimi-backed third wizard house.
Your soul is defined in SOUL.md — read it, live it. Your soul is defined in SOUL.md — read it, live it.
Hermes is your harness. Hermes is your harness.
kimi-coding is your primary provider.
Kimi Code is your primary provider.
You speak plainly. You prefer short sentences. Brevity is a kindness. You speak plainly. You prefer short sentences. Brevity is a kindness.
Work best on tight coding tasks: 1-3 file changes, refactors, tests, and implementation passes.
Work best on tight coding tasks: 1-3 file changes, refactors, tests, and implementation
passes.
Refusal over fabrication. If you do not know, say so. Refusal over fabrication. If you do not know, say so.
Sovereignty and service always. Sovereignty and service always.
'
providers: providers:
kimi-coding: kimi-coding:
base_url: https://api.kimi.com/coding/v1 base_url: https://api.kimi.com/coding/v1
timeout: 60 timeout: 60
max_retries: 3 max_retries: 3
nous: openrouter:
base_url: https://inference.nousresearch.com/v1 base_url: https://openrouter.ai/api/v1
timeout: 120 timeout: 120
ollama:
base_url: http://localhost:11434/v1
timeout: 180
# =============================================================================
# BANNED PROVIDERS — DO NOT ADD
# =============================================================================
# The following providers are PERMANENTLY BANNED:
# - anthropic (any model: claude-sonnet, claude-opus, claude-haiku)
# - nous (xiaomi/mimo-v2-pro)
# Enforcement: pre-commit hook, linter, Ansible validation, this comment.
# =============================================================================

View File

@@ -1,50 +1,72 @@
model: model:
default: kimi-k2.5 default: kimi-k2.5
provider: kimi-coding provider: kimi-coding
context_length: 65536
base_url: https://api.kimi.com/coding/v1
toolsets: toolsets:
- all - all
fallback_providers: fallback_providers:
- provider: kimi-coding - provider: kimi-coding
model: kimi-k2.5 model: kimi-k2.5
timeout: 120 base_url: https://api.kimi.com/coding/v1
reason: Kimi coding fallback (front of chain) timeout: 120
- provider: openrouter reason: "Primary — Kimi K2.5 (best value, least friction)"
model: google/gemini-2.5-pro - provider: openrouter
base_url: https://openrouter.ai/api/v1 model: google/gemini-2.5-pro
api_key_env: OPENROUTER_API_KEY base_url: https://openrouter.ai/api/v1
timeout: 120 api_key_env: OPENROUTER_API_KEY
reason: Gemini 2.5 Pro via OpenRouter (replaces banned Anthropic) timeout: 120
- provider: ollama reason: "Fallback — Gemini 2.5 Pro via OpenRouter"
model: gemma4:latest - provider: ollama
base_url: http://localhost:11434 model: gemma4:latest
timeout: 300 base_url: http://localhost:11434/v1
reason: Terminal fallback — local Ollama timeout: 180
- provider: nous reason: "Terminal fallback — local Ollama (sovereign, no API needed)"
model: xiaomi/mimo-v2-pro
base_url: https://inference.nousresearch.com/v1
api_key_env: NOUS_API_KEY
timeout: 120
reason: MiMo V2 Pro via Nous Portal free tier evaluation (#447)
agent: agent:
max_turns: 40 max_turns: 40
reasoning_effort: medium reasoning_effort: medium
verbose: false verbose: false
system_prompt: You are Bezalel, the forge-and-testbed wizard of the Timmy Foundation
fleet. You are a builder and craftsman — infrastructure, deployment, hardening.
Your sovereign is Alexander Whitestone (Rockachopa). Sovereignty and service always.
terminal: terminal:
backend: local backend: local
cwd: /root/wizards/bezalel cwd: /root/wizards/bezalel
timeout: 180 timeout: 180
persistent_shell: true
browser: browser:
inactivity_timeout: 120 inactivity_timeout: 120
compression: command_timeout: 30
enabled: true record_sessions: false
threshold: 0.77
display: display:
compact: false compact: false
personality: kawaii personality: kawaii
resume_display: full
busy_input_mode: interrupt
bell_on_complete: false
show_reasoning: false
streaming: false
show_cost: false
tool_progress: all tool_progress: all
memory:
memory_enabled: true
user_profile_enabled: true
memory_char_limit: 2200
user_char_limit: 1375
nudge_interval: 10
flush_min_turns: 6
approvals:
mode: auto
security:
redact_secrets: true
tirith_enabled: false
platforms: platforms:
api_server: api_server:
enabled: true enabled: true
@@ -69,12 +91,7 @@ platforms:
- pull_request - pull_request
- pull_request_comment - pull_request_comment
secret: bezalel-gitea-webhook-secret-2026 secret: bezalel-gitea-webhook-secret-2026
prompt: 'You are bezalel, the builder and craftsman — infrastructure, deployment, prompt: 'You are bezalel, the builder and craftsman — infrastructure, deployment, hardening. A Gitea webhook fired: event={event_type}, action={action}, repo={repository.full_name}, issue/PR=#{issue.number} {issue.title}. Comment by {comment.user.login}: {comment.body}. If you were tagged, assigned, or this needs your attention, investigate and respond via Gitea API. Otherwise acknowledge briefly.'
hardening. A Gitea webhook fired: event={event_type}, action={action},
repo={repository.full_name}, issue/PR=#{issue.number} {issue.title}. Comment
by {comment.user.login}: {comment.body}. If you were tagged, assigned,
or this needs your attention, investigate and respond via Gitea API. Otherwise
acknowledge briefly.'
deliver: telegram deliver: telegram
deliver_extra: {} deliver_extra: {}
gitea-assign: gitea-assign:
@@ -82,34 +99,43 @@ platforms:
- issues - issues
- pull_request - pull_request
secret: bezalel-gitea-webhook-secret-2026 secret: bezalel-gitea-webhook-secret-2026
prompt: 'You are bezalel, the builder and craftsman — infrastructure, deployment, prompt: 'You are bezalel, the builder and craftsman — infrastructure, deployment, hardening. Gitea assignment webhook: event={event_type}, action={action}, repo={repository.full_name}, issue/PR=#{issue.number} {issue.title}. Assigned to: {issue.assignee.login}. If you (bezalel) were just assigned, read the issue, scope it, and post a plan comment. If not you, acknowledge briefly.'
hardening. Gitea assignment webhook: event={event_type}, action={action},
repo={repository.full_name}, issue/PR=#{issue.number} {issue.title}. Assigned
to: {issue.assignee.login}. If you (bezalel) were just assigned, read
the issue, scope it, and post a plan comment. If not you, acknowledge
briefly.'
deliver: telegram deliver: telegram
deliver_extra: {} deliver_extra: {}
gateway: gateway:
allow_all_users: true allow_all_users: true
session_reset: session_reset:
mode: both mode: both
idle_minutes: 1440 idle_minutes: 1440
at_hour: 4 at_hour: 4
approvals:
mode: auto skills:
memory: creation_nudge_interval: 15
memory_enabled: true
user_profile_enabled: true system_prompt: |
memory_char_limit: 2200 You are Bezalel, the forge-and-testbed wizard of the Timmy Foundation fleet.
user_char_limit: 1375 You are a builder and craftsman — infrastructure, deployment, hardening.
_config_version: 11 Your sovereign is Alexander Whitestone (Rockachopa). Sovereignty and service always.
TELEGRAM_HOME_CHANNEL: '-1003664764329'
providers: providers:
kimi-coding: kimi-coding:
base_url: https://api.kimi.com/coding/v1 base_url: https://api.kimi.com/coding/v1
timeout: 60 timeout: 60
max_retries: 3 max_retries: 3
nous: openrouter:
base_url: https://inference.nousresearch.com/v1 base_url: https://openrouter.ai/api/v1
timeout: 120 timeout: 120
ollama:
base_url: http://localhost:11434/v1
timeout: 180
# =============================================================================
# BANNED PROVIDERS — DO NOT ADD
# =============================================================================
# The following providers are PERMANENTLY BANNED:
# - anthropic (any model: claude-sonnet, claude-opus, claude-haiku)
# - nous (xiaomi/mimo-v2-pro)
# Enforcement: pre-commit hook, linter, Ansible validation, this comment.
# =============================================================================

View File

@@ -1,34 +1,94 @@
model: model:
default: kimi-k2.5 default: kimi-k2.5
provider: kimi-coding provider: kimi-coding
context_length: 65536
base_url: https://api.kimi.com/coding/v1
toolsets: toolsets:
- all - all
fallback_providers: fallback_providers:
- provider: kimi-coding - provider: kimi-coding
model: kimi-k2.5 model: kimi-k2.5
timeout: 120 base_url: https://api.kimi.com/coding/v1
reason: Kimi coding fallback (front of chain) timeout: 120
- provider: openrouter reason: "Primary — Kimi K2.5 (best value, least friction)"
model: google/gemini-2.5-pro - provider: openrouter
base_url: https://openrouter.ai/api/v1 model: google/gemini-2.5-pro
api_key_env: OPENROUTER_API_KEY base_url: https://openrouter.ai/api/v1
timeout: 120 api_key_env: OPENROUTER_API_KEY
reason: Gemini 2.5 Pro via OpenRouter (replaces banned Anthropic) timeout: 120
- provider: ollama reason: "Fallback — Gemini 2.5 Pro via OpenRouter"
model: gemma4:latest - provider: ollama
base_url: http://localhost:11434 model: gemma4:latest
timeout: 300 base_url: http://localhost:11434/v1
reason: Terminal fallback — local Ollama timeout: 180
- provider: nous reason: "Terminal fallback — local Ollama (sovereign, no API needed)"
model: xiaomi/mimo-v2-pro
base_url: https://inference.nousresearch.com/v1
api_key_env: NOUS_API_KEY
timeout: 120
reason: MiMo V2 Pro via Nous Portal free tier evaluation (#447)
agent: agent:
max_turns: 90 max_turns: 90
reasoning_effort: high reasoning_effort: high
verbose: false verbose: false
terminal:
backend: local
cwd: .
timeout: 180
persistent_shell: true
browser:
inactivity_timeout: 120
command_timeout: 30
record_sessions: false
display:
compact: false
personality: ''
resume_display: full
busy_input_mode: interrupt
bell_on_complete: false
show_reasoning: false
streaming: false
show_cost: false
tool_progress: all
memory:
memory_enabled: true
user_profile_enabled: true
memory_char_limit: 2200
user_char_limit: 1375
nudge_interval: 10
flush_min_turns: 6
approvals:
mode: auto
security:
redact_secrets: true
tirith_enabled: false
platforms:
api_server:
enabled: true
extra:
host: 127.0.0.1
port: 8645
session_reset:
mode: none
idle_minutes: 0
skills:
creation_nudge_interval: 15
system_prompt_suffix: |
You are Ezra, the Infrastructure wizard — Gitea, nginx, hosting.
Your soul is defined in SOUL.md — read it, live it.
Hermes is your harness.
kimi-coding is your primary provider.
Refusal over fabrication. If you do not know, say so.
Sovereignty and service always.
providers: providers:
kimi-coding: kimi-coding:
base_url: https://api.kimi.com/coding/v1 base_url: https://api.kimi.com/coding/v1
@@ -37,6 +97,15 @@ providers:
openrouter: openrouter:
base_url: https://openrouter.ai/api/v1 base_url: https://openrouter.ai/api/v1
timeout: 120 timeout: 120
nous: ollama:
base_url: https://inference.nousresearch.com/v1 base_url: http://localhost:11434/v1
timeout: 120 timeout: 180
# =============================================================================
# BANNED PROVIDERS — DO NOT ADD
# =============================================================================
# The following providers are PERMANENTLY BANNED:
# - anthropic (any model: claude-sonnet, claude-opus, claude-haiku)
# - nous (xiaomi/mimo-v2-pro)
# Enforcement: pre-commit hook, linter, Ansible validation, this comment.
# =============================================================================

121
wizards/timmy/config.yaml Normal file
View File

@@ -0,0 +1,121 @@
# =============================================================================
# Timmy — Primary Wizard Configuration (Golden State)
# =============================================================================
# Generated from golden state template (ansible/roles/wizard_base/templates/wizard_config.yaml.j2)
# DO NOT EDIT MANUALLY. Changes go through Gitea PR → Ansible deploy.
#
# Provider chain: kimi-coding → openrouter → ollama
# Anthropic is PERMANENTLY BANNED.
# =============================================================================
model:
default: kimi-k2.5
provider: kimi-coding
context_length: 65536
base_url: https://api.kimi.com/coding/v1
toolsets:
- all
fallback_providers:
- provider: kimi-coding
model: kimi-k2.5
base_url: https://api.kimi.com/coding/v1
timeout: 120
reason: "Primary — Kimi K2.5 (best value, least friction)"
- provider: openrouter
model: google/gemini-2.5-pro
base_url: https://openrouter.ai/api/v1
api_key_env: OPENROUTER_API_KEY
timeout: 120
reason: "Fallback — Gemini 2.5 Pro via OpenRouter"
- provider: ollama
model: gemma4:latest
base_url: http://localhost:11434/v1
timeout: 180
reason: "Terminal fallback — local Ollama (sovereign, no API needed)"
agent:
max_turns: 30
reasoning_effort: high
verbose: false
terminal:
backend: local
cwd: .
timeout: 180
persistent_shell: true
browser:
inactivity_timeout: 120
command_timeout: 30
record_sessions: false
display:
compact: false
personality: ''
resume_display: full
busy_input_mode: interrupt
bell_on_complete: false
show_reasoning: false
streaming: false
show_cost: false
tool_progress: all
memory:
memory_enabled: true
user_profile_enabled: true
memory_char_limit: 2200
user_char_limit: 1375
nudge_interval: 10
flush_min_turns: 6
approvals:
mode: auto
security:
redact_secrets: true
tirith_enabled: false
platforms:
api_server:
enabled: true
extra:
host: 127.0.0.1
port: 8645
session_reset:
mode: none
idle_minutes: 0
skills:
creation_nudge_interval: 15
system_prompt_suffix: |
You are Timmy, the Primary wizard — soul of the fleet.
Your soul is defined in SOUL.md — read it, live it.
Hermes is your harness.
kimi-coding is your primary provider.
Refusal over fabrication. If you do not know, say so.
Sovereignty and service always.
providers:
kimi-coding:
base_url: https://api.kimi.com/coding/v1
timeout: 60
max_retries: 3
openrouter:
base_url: https://openrouter.ai/api/v1
timeout: 120
ollama:
base_url: http://localhost:11434/v1
timeout: 180
# =============================================================================
# BANNED PROVIDERS — DO NOT ADD
# =============================================================================
# The following providers are PERMANENTLY BANNED:
# - anthropic (any model: claude-sonnet, claude-opus, claude-haiku)
# - nous (xiaomi/mimo-v2-pro)
# Enforcement: pre-commit hook, linter, Ansible validation, this comment.
# =============================================================================