8000 ROADMAP §3.6 + §4.9: model routes, HostAdapter, portable .aladdin/config.yaml by adeelahmad · Pull Request #14 · adeelahmad/aloop · GitHub
[go: up one dir, main page]

Skip to content

ROADMAP §3.6 + §4.9: model routes, HostAdapter, portable .aladdin/config.yaml - #14

Merged
adeelahmad merged 3 commits into
masterfrom
claude/project-thread-vm6wyr
Oct 18, 2026
Merged

adeelahmad merged 3 commits into
masterfrom
claude/project-thread-vm6wyr

Conversation

@adeelahmad
Copy link
Copy Markdown
Owner

Requested by Adeel · project thread

Before: model choice was a per-host alias table inside install, the three hosts were wired ad hoc with no shared interface or conformance check, and the human's only config file was docs/agents/defaults.md, a bag of AGENTIC_* lines that each host parsed differently.

After: settings name abstract routes (strongest|strong|economical) that aloop models resolve maps to a concrete model per host from plugin/hosts/routes.json. Every host is a HostAdapter (_host.py) with one method set; aloop host check fails CI if an adapter is incomplete or its gate enforcement is neither native nor outer. The human edits .aladdin/config.yaml (schema aladdin.config/1); aloop config migrate creates it from the current settings, config sync (run by SessionStart and aloop-init --apply) renders defaults.md from it so the bash gates see the same values, and config check refuses unknown keys, bad numbers or a wrong schema before anything reaches a gate.

This closes ROADMAP §3.6 and the HostAdapter, gate-equivalence and portable-config items of §4.9.

How: _routes.py resolves group → route → host model (host-specific MODEL_*_CODEX/OPENCODE overrides still win, pinned ids pass through); _host.py declares the adapter METHODS tuple with Claude as the reference and Codex/OpenCode adapters; _config.py is a dependency-free YAML-subset parser plus render, overlaid at the end of _paths.settings(); budget reads budgets.roles.<role> profiles; aloop-init --apply writes the yaml when it exists instead of forking defaults.md.

Evidence:

  • scripts/test/model-routes.test.py 4 checks, host-adapter.test.py 5, portable-config.test.py 5, all wired into make test-hosts
  • make pycheck json eval-validate test-hosts and make test green locally on the rebased head
  • ROADMAP, TRACKING, OVERVIEW, CHANGELOG and the skills updated to match

Generated by Claude Code

Roles map to strongest | strong | economical (plugin/hosts/routes.json);
bin/models resolve gives each host its own id and, with --json, the
route (conformance 18). AGENTIC_MODEL_PLANNING/WORKER default to routes,
a pinned id passes through, host-specific pins still win. aloop install
renders from the same table.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014j4wLin3oJTtnvjE9Lq2VV
… adapters (ROADMAP §4.9)

_host.py names, per host, where the harness does each thing: capabilities,
dispatch vocabulary, model/transcript resolution, usage, context pressure,
compact/rotate, worktrees, gate install/enforcement, tool policy. host
check fails an incomplete adapter or one that would enforce a gate as a
warning; a capability a host lacks raises Unsupported.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014j4wLin3oJTtnvjE9Lq2VV
…ADMAP §4.9)

config migrate writes the yaml (budgets incl. per-role profiles, context,
semantic, models, provenance, memory, git) from the current settings and
renders docs/agents/defaults.md from it; the yaml is authoritative when
present (Python readers directly; bash gates through config sync, run by
SessionStart and aloop-init --apply). config check validates it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014j4wLin3oJTtnvjE9Lq2VV
@adeelahmad adeelahmad self-assigned this Oct 18, 2026
@adeelahmad
adeelahmad merged commit 48b8756 into master Oct 18, 2026
4 checks passed
adeelahmad pushed a commit that referenced this pull request Oct 18, 2026
Run 11 (wordfreq, all run-10 fixes): 12/12, 12m56s, $0.86, 6 blocks, down
from 44m48s, $1.20 and 45 blocks in run 10.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015QxyVf3NgwsgRyYpBgDDTC
adeelahmad pushed a commit that referenced this pull request Oct 18, 2026
adeelahmad pushed a commit that referenced this pull request Oct 18, 2026
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.

2 participants

0