Skip to content

feat: grid override file — .codedb/model_grid.toml (#269)#422

Open
yxlyx wants to merge 1 commit intomainfrom
feat/269-grid-override-file
Open

feat: grid override file — .codedb/model_grid.toml (#269)#422
yxlyx wants to merge 1 commit intomainfrom
feat/269-grid-override-file

Conversation

@yxlyx
Copy link
Copy Markdown
Collaborator

@yxlyx yxlyx commented Apr 10, 2026

Summary

  • parseOverrides(): Parses minimal TOML format with [role] sections, model = "tier" and rationale = "reason" keys
  • loadOverrides(): Lazy-loads from .codedb/model_grid.toml, caches after first read
  • overrideTierForRole(): Lookup override tier by role name
  • resolveModel(): Updated resolution chain: override file -> grid -> mode -> fallback
  • resetOverrides(): Clears cache for testing

Example .codedb/model_grid.toml:

[orchestrator]
model = "sonnet"
rationale = "Haiku failed to decompose complex monorepo tasks correctly."

[mutator]
model = "opus"
rationale = "Opus produces 40% higher fitness organisms on this codebase."

Test plan

  • zig test src/runtime/grid.zig — 14/14 tests pass
  • parseOverrides: basic TOML with 2 roles
  • parseOverrides: skips invalid tier names
  • parseOverrides: handles empty content
  • parseOverrides: rationale before model key
  • parseOverrides: strips surrounding quotes
  • parseOverrides: works without quotes
  • resolveModel: existing behavior preserved after override reset

Closes #269

Made with Cursor

…ides (#269)

Adds TOML-based model override system to runtime/grid.zig:
- parseOverrides(): parses minimal TOML format with [role] sections,
  model = "tier" and rationale = "reason" keys. Strips quotes, skips
  comments, validates tier names.
- loadOverrides(): lazy-loads from .codedb/model_grid.toml with caching
- overrideTierForRole(): looks up override tier for a role
- resolveModel() updated: override file → grid → mode → fallback

Override files can be hand-written or generated by evolve_agent.
Supports up to 32 role overrides.

7 new tests covering: basic TOML parsing, invalid tier skipping,
empty content, rationale ordering, quote stripping, unquoted values,
and existing resolveModel behavior preservation.
All 14 grid tests pass (4 existing + 3 types + 7 new).

Made-with: Cursor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: grid override file — .codedb/model_grid.toml for per-role overrides

1 participant