refactor(daemon): single-source model config + bump Scholar to Opus 4.8#17
Merged
Conversation
The model names were duplicated across llm.py, scholar.py, librarian.py (and the advisor) — a bump risked landing half-applied. Extract the model identities + shared daemon timeouts into agent_mem_daemon/config.py as the single source; scholar.py / librarian.py import from it (the dead copies in llm.py are removed). Role-specific OUTPUT_RETRIES (Scholar 4 vs Librarian 3) and the advisor's interactive 300s timeouts stay where they're tuned — only the genuinely shared model identity is centralised. Bump SCHOLAR_MODEL claude-opus-4-7 -> claude-opus-4-8 (one place now). The advisor is a separate package coupled only via a runtime sys.path shim, so it keeps its own copy with a "keep in sync" note (also bumped to opus-4-8). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #16 — this commit was made just after #16 merged (at
b3a9fc8), so it missed that merge.What
daemon/agent_mem_daemon/config.pyas the single source of truth for the curator's model identities (LIBRARIAN_MODEL,SCHOLAR_MODEL) + the daemon's shared timeouts. The names were previously duplicated acrossllm.py,scholar.py,librarian.py(and the advisor) — a bump risked landing half-applied.scholar.py/librarian.pynow import the model + timeout fromconfig; the dead copies inllm.pyare removed. Role-specificOUTPUT_RETRIES(Scholar 4 vs Librarian 3) and the advisor's interactive 300s timeouts stay where they're tuned.SCHOLAR_MODELclaude-opus-4-7→claude-opus-4-8(one place now). The advisor (tools/ultan, separate package coupled only via a runtimesys.pathshim) keeps its own copy with a "keep in sync" note, also bumped.Verification
opus-4-7left anywhere;scholar.SCHOLAR_MODELresolves toclaude-opus-4-8.Note: the running daemon picks up Opus 4.8 on its next restart (editable install imports modules at startup).
🤖 Generated with Claude Code