Mathias Bergqvist
63c238c650
fix(config): update model names to match LiteLLM host/name format
...
cd / Build and deploy (push) Successful in 6s
CI / Lint / Test / Vet (push) Successful in 9s
CI / Mirror to GitHub (push) Successful in 4s
Replace ollama/ prefix with iguana/ and koala/ prefixes to match
actual model IDs exposed by LiteLLM on this cluster.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-22 16:34:53 +02:00
Mathias Bergqvist
ce45592730
refactor: replace orchestrator/verifier chain with direct LiteLLM calls
...
cd / Build and deploy (push) Successful in 6s
CI / Lint / Test / Vet (push) Successful in 10s
CI / Mirror to GitHub (push) Successful in 3s
Drop the three-layer Claude subprocess orchestration (local model →
Claude verifier → cloud escalation). Skills now call LiteLLM directly
and return plain text to Claude Code, which decides what to do with it.
- Delete executor, orchestrator, verifier, result, attempts packages
- Simplify LiteLLMExecutor: Run(Request)→Result becomes Complete(model,sys,user)→(string,int64,error)
- Replace ExecutorFn with CompleteFunc in all 6 skill configs
- Rewrite all skill handlers to call Complete and return {"text","model","duration_ms"}
- Simplify config/models: remove Verifier/LlamaSwapURL, add ModelFor
- Bump version to v0.5.0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-22 16:19:09 +02:00
Mathias Bergqvist
823de23213
feat(exec): log per-attempt chain verdicts for pass rate visibility
cd / Build and deploy (push) Successful in 6s
CI / Lint / Test / Vet (push) Successful in 1m9s
CI / Mirror to GitHub (push) Successful in 4s
2026-04-22 15:40:15 +02:00
Mathias Bergqvist
78d3939caa
feat(config): wire protocols.md into every worker as shared behavioral contract
2026-04-22 15:39:25 +02:00
Mathias Bergqvist
f2bc39b500
feat(skills): inject brain context into review, debug, spec, tdd before spawning workers
2026-04-22 15:37:56 +02:00
Mathias Bergqvist
3625e1268d
feat(ingestion): simplify brain to knowledge/ — write and search use same dir
2026-04-22 15:36:10 +02:00
Mathias Bergqvist
47df642836
feat(brain): add Query client for skill handler context injection
2026-04-22 15:34:09 +02:00
Mathias Bergqvist
235d70ad0b
docs: document hyperguild scope reset — drop parametric learning, simplify brain
2026-04-22 15:27:52 +02:00
Mathias Bergqvist
7d5289ac54
chore: bump version to v0.4.0
cd / Build and deploy (push) Successful in 6s
CI / Lint / Test / Vet (push) Successful in 1m9s
CI / Mirror to GitHub (push) Successful in 3s
2026-04-22 13:38:23 +02:00
Mathias Bergqvist
3d8fc9dacd
feat(skills): wire session.Append into retrospective and trainer
2026-04-22 13:37:43 +02:00
Mathias Bergqvist
f9f804cd49
feat(skills): wire session.Append and PrependHistory into tdd
2026-04-22 13:37:06 +02:00
Mathias Bergqvist
85f142ade0
feat(skills): wire session.Append and PrependHistory into spec
2026-04-22 13:36:35 +02:00
Mathias Bergqvist
0dfad02513
feat(skills): wire session.Append and PrependHistory into review and debug
2026-04-22 13:36:13 +02:00
Mathias Bergqvist
c44eb680b2
feat(exec): surface AttemptRecord slice on Result for session logging
2026-04-22 13:35:38 +02:00
Mathias Bergqvist
38ada998a2
feat(session): add AttemptsFrom converter for exec.AttemptRecord
2026-04-22 13:35:09 +02:00
Mathias Bergqvist
74547c2bdf
feat(session): export PrependHistory for shared use across skills
2026-04-22 13:34:48 +02:00
Mathias Bergqvist
587c0d3b1c
chore: bump startup log to v0.3.1 — CD pipeline smoke test
cd / Build and deploy (push) Successful in 33s
CI / Lint / Test / Vet (push) Successful in 1m9s
CI / Mirror to GitHub (push) Successful in 3s
2026-04-22 12:18:27 +02:00
Mathias Bergqvist
bb61f2992b
fix(cd): connect to Gitea SSH via localhost:30022 NodePort
...
cd / Build and deploy (push) Successful in 5s
CI / Lint / Test / Vet (push) Successful in 1m8s
CI / Mirror to GitHub (push) Successful in 3s
gitea.d-ma.be:30022 is refused externally — the NodePort is only
reachable on koala locally. Use HostName 127.0.0.1 in SSH config
so git@gitea.d-ma.be connects to localhost:30022 instead.
2026-04-21 19:43:06 +02:00
Mathias Bergqvist
3ba72d9b28
fix(cd): replace heredoc with printf to avoid YAML parse error
...
cd / Build and deploy (push) Failing after 5s
CI / Lint / Test / Vet (push) Successful in 1m9s
CI / Mirror to GitHub (push) Successful in 3s
Unindented heredoc content inside a YAML literal block breaks parsing.
Gitea silently drops workflows with YAML errors, causing the CD job
to never trigger.
2026-04-21 19:41:09 +02:00
Mathias Bergqvist
b4f0fbc3ea
chore: retrigger CD with SSH port fix
CI / Lint / Test / Vet (push) Successful in 1m9s
CI / Mirror to GitHub (push) Successful in 3s
2026-04-21 19:35:30 +02:00
Mathias Bergqvist
12943ee6f4
fix(cd): use NodePort 30022 for Gitea SSH in infra repo update
...
CI / Lint / Test / Vet (push) Successful in 1m9s
CI / Mirror to GitHub (push) Successful in 3s
gitea.d-ma.be port 22 is rejected (NPM only proxies HTTP/HTTPS).
The runner runs on koala where the Gitea SSH NodePort 30022 is
reachable locally. Use SSH config override instead of ssh-keyscan.
2026-04-21 19:28:28 +02:00
Mathias Bergqvist
9af95ebd96
chore: retrigger CD after NPM body size fix
cd / Build and deploy (push) Failing after 14s
CI / Lint / Test / Vet (push) Successful in 1m8s
CI / Mirror to GitHub (push) Successful in 3s
2026-04-21 17:56:47 +02:00
Mathias Bergqvist
f0b567f3e6
chore: retrigger CD after ingress body size fix
cd / Build and deploy (push) Failing after 6s
CI / Lint / Test / Vet (push) Successful in 1m8s
CI / Mirror to GitHub (push) Successful in 3s
2026-04-21 17:43:54 +02:00
Mathias Bergqvist
e3d6cf4cf5
chore: retrigger CD after buildkit dir permissions fix
cd / Build and deploy (push) Failing after 26s
CI / Lint / Test / Vet (push) Successful in 1m8s
CI / Mirror to GitHub (push) Successful in 3s
2026-04-21 17:28:42 +02:00
Mathias Bergqvist
df59bd010c
chore: retrigger CD after act_runner restart
cd / Build and deploy (push) Failing after 1s
CI / Lint / Test / Vet (push) Successful in 1m8s
CI / Mirror to GitHub (push) Successful in 3s
2026-04-21 12:42:56 +02:00
Mathias Bergqvist
e5152151d6
chore: retrigger CD after buildkit group fix
cd / Build and deploy (push) Failing after 0s
CI / Lint / Test / Vet (push) Successful in 1m9s
CI / Mirror to GitHub (push) Successful in 3s
2026-04-21 12:18:25 +02:00
Mathias Bergqvist
aa2d57e619
chore: retrigger CD pipeline
cd / Build and deploy (push) Failing after 1s
CI / Lint / Test / Vet (push) Successful in 1m9s
CI / Mirror to GitHub (push) Successful in 3s
2026-04-21 12:02:30 +02:00
Mathias Bergqvist
6b53706987
fix(cd): remove cross-workflow needs dependency
...
cd / Build and deploy (push) Failing after 1s
CI / Lint / Test / Vet (push) Successful in 1m8s
CI / Mirror to GitHub (push) Successful in 3s
needs: [check] only works within the same workflow file; the check job
lives in ci.yml, causing the deploy job to queue indefinitely.
2026-04-21 11:48:56 +02:00
Mathias Bergqvist
a0cfc866df
feat: add CD pipeline (Dockerfile, .dockerignore, cd.yml)
...
CI / Lint / Test / Vet (push) Successful in 1m9s
CI / Mirror to GitHub (push) Successful in 3s
cd / Build and deploy (push) Has been cancelled
BuildKit → OCI tar → skopeo push to Gitea registry → infra repo
image tag patch → Flux reconciles new pod on koala.
2026-04-21 10:49:38 +02:00
Mathias Bergqvist
7bf19b6a7b
fix: replace buildctl push with skopeo for simpler registry auth
2026-04-21 07:05:44 +02:00
Mathias Bergqvist
19b019a8d8
fix: ensure SSH key cleanup on failure in CD workflow
2026-04-20 21:38:11 +02:00
Mathias Bergqvist
4ef6a22e28
feat: add CD workflow (buildctl → Gitea registry → infra repo update)
2026-04-20 21:36:22 +02:00
Mathias Bergqvist
3796cfca87
fix: add .dockerignore and non-root USER to Dockerfile
2026-04-20 20:27:42 +02:00
Mathias Bergqvist
7ce544a051
feat: add multi-stage Dockerfile with claude CLI runtime
2026-04-20 20:24:20 +02:00
Mathias Bergqvist
391720155e
docs: add CD pipeline implementation plan
2026-04-20 20:17:07 +02:00
Mathias Bergqvist
ae6600b8d2
docs: add CD pipeline design spec (BuildKit + Flux GitOps)
2026-04-20 20:10:16 +02:00
Mathias Bergqvist
6328766c7f
fix(main): re-evaluate chain per call to respect caller model override
...
CI / Lint / Test / Vet (push) Successful in 1m8s
CI / Mirror to GitHub (push) Has been skipped
buildOrch now returns a closure instead of *Orchestrator. Each invocation
calls models.ChainFor(skill, req.Model) so a non-empty caller override
collapses to a single-entry chain (no escalation). The attempts slice is
also allocated fresh per call, preventing unbounded growth across requests.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
v0.3.0
2026-04-20 11:34:09 +02:00
Mathias Bergqvist
f1deedd39d
feat(main): wire per-skill Orchestrators replacing single executor.Run
...
Each skill now gets its own Orchestrator built from its ChainFor entry,
with LiteLLM for local tiers and Claude for cloud tiers. Removes the
defunct models.Resolve calls and single shared executor.Run pattern.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 11:28:10 +02:00
Mathias Bergqvist
5cb272a869
feat(exec): add Orchestrator chain walker with verification and warm-state logging
2026-04-20 11:06:13 +02:00
Mathias Bergqvist
e96b39a812
feat(exec): add Claude verifier for local model output quality gate
2026-04-20 11:02:59 +02:00
Mathias Bergqvist
5db5b33cd7
feat(exec): add LiteLLM HTTP executor for local model dispatch
2026-04-20 10:46:08 +02:00
Mathias Bergqvist
a32457b5bc
feat(exec): pass --model flag to claude subprocess for cloud-tier dispatch
2026-04-20 08:55:03 +02:00
Mathias Bergqvist
e0be5f0f98
feat(config): replace single-model config with chain-based routing
...
Implements escalation chains per skill with three-layer priority:
1. Caller override (model param) — no escalation
2. Per-skill chain from models.yaml
3. default_chain fallback
New APIs:
- Verifier() — fixed verifier for output validation
- LlamaSwapURL() — base URL for warm-state probing
- ChainFor(skill, override) — ordered model list for escalation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-20 08:48:33 +02:00
Mathias Bergqvist
6d410b810b
feat(session): extend Attempt with tier, timing, and verdict fields
2026-04-20 08:35:27 +02:00
Mathias Bergqvist
76f195de2a
docs: model orchestration design spec for Phase 3
CI / Lint / Test / Vet (push) Successful in 1m8s
CI / Mirror to GitHub (push) Successful in 4s
2026-04-20 07:45:32 +02:00
Mathias Bergqvist
f901d4e67d
fix(ci): use --follow-tags instead of --tags to avoid re-pushing existing tags
CI / Lint / Test / Vet (push) Successful in 1m9s
CI / Mirror to GitHub (push) Successful in 3s
2026-04-19 19:16:22 +02:00
Mathias Bergqvist
509c04b6e4
fix(session): use fmt.Fprintf with nolint to satisfy both staticcheck and errcheck
CI / Lint / Test / Vet (push) Successful in 1m7s
CI / Mirror to GitHub (push) Failing after 3s
v0.2.0
2026-04-19 18:56:12 +02:00
Mathias Bergqvist
738275252c
feat: hyperguild phase 2 — review/debug/spec/trainer skills with session history injection
CI / Lint / Test / Vet (push) Failing after 3s
CI / Mirror to GitHub (push) Has been skipped
2026-04-19 14:38:05 +02:00
Mathias Bergqvist
38fcac4cba
feat(trainer): add trainer MCP skill with reader→writer sub-agent chain
...
Reader agent scans session logs for SFT/DPO candidates; writer receives
reader output and formats+writes training pairs to brain/training-data/.
Adds trainer-reader.md and trainer-writer.md discipline prompts.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-19 14:06:00 +02:00
Mathias Bergqvist
7697e901d2
feat(spec): add spec writing MCP skill
...
Adds the spec skill that generates structured implementation specs from
requirements and writes them to a configurable output path in the project.
Follows the same pattern as review/debug skills with session history injection.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-19 11:59:28 +02:00