fix(cron): never persist the 'auto' model sentinel in the job store (t_2f1ca8d4) - #1032
Conversation
…t_2f1ca8d4) Script-mode create/update skipped _resolve_cron_llm_model, so model='auto' was stored verbatim; a later no_agent=False flip produced an LLM job pinned to the nonexistent model 'auto'. create_job/update_job now own the class: the sentinel drops to None (with its provider) for script jobs, resolves to the creating agent's model for LLM jobs, and a legacy 'auto' row heals on any update. Tests drive both tool entry points and read jobs.json back; a verbatim-store mutant fails 8/8.
|
🤖 merged-by: apollo · lane: cron · gate: BYPASS: FR paused 09-22; gate=CI green + Apollo review · why: store-level guard: cron/jobs.py create_job/update_job never persist the literal 'auto' model sentinel (script-mode drops it + its provider; LLM-mode resolves via _resolve_cron_llm_model; legacy rows heal on update); CI green run 36068320112; 21/21 cron tests on head locally; reviewed by Apollo 15:50 PT |
|
🤖 merged-by: apollo · lane: kanban-merge-pass · gate: BYPASS: FleetReview paused by Ace 2026-09-22 (state/fleetreview-pause marker present) · why: t_2f1ca8d4: cron store must never hold the literal 'auto' model sentinel (script-mode writes; Argus off card review (Ace 13:08), CI green |
|
🤖 merged-by: apollo · lane: cron · gate: BYPASS: FR paused 09-22; gate=CI green + Apollo review · why: store-level guard: cron/jobs.py create_job/update_job never persist the literal 'auto' model sentinel (script-mode drops it + its provider; LLM-mode resolves via _resolve_cron_llm_model; legacy rows heal on update); CI green run 36068320112; 21/21 cron tests on head locally; reviewed by Apollo 15:50 PT |
FleetReviewReview: post-merge · head Post-merge review ( profile: light (rule: default light: lines 209<800, files 2<1000000, hunks 6<1000000, no hot path) · round 0 · members: B-state, L6, C-assert-xhigh, F · families: anthropic,openai Confidence: 3/5 Findings
FleetReview provenance · models: B=gpt-6-sol, C=claude-code-opus-5-5, F=gpt-6-sol · cost: $1.36 · duration: 2m 35s · rounds: 1 · files examined: 2 |
…1032, #1043, #1095, #1198, #1254:121) (t_7da6cadf) - #942: desktop hydration accepts a tool-call confab notice on an empty system row (mirrors notice_from_display_row); per-kind label. - #970: switch_model(probe_catalog=False) passes allow_network through get_label / determine_api_mode; cold models.dev cache opens no socket. - #976: _build_hyg_agent / hygiene get_session use the _hyg_old_sid snapshot. - #1043: post-turn clear_resume_pending keeps a mark written during the turn. - #1095: an early-imported bundled provider module is re-registered in the bundled discovery step (filesystem over pip precedence). - #1198: cooling_providers ignores runtime-stage pin refusals. - #1254:121: process_env_files overlay pre-values ride to child agent processes (HERMES_PROCESS_ENV_OVERLAY) so strip_overlay works there. - #1032: store-level model resolution that changes the provider re-runs the base_url exfil guard at write time. Verified: new tests fail on fork/main (8/8), pass on head; neighbouring suites pass (see PR).
Script-mode create/update skipped _resolve_cron_llm_model, so model='auto'
was stored verbatim; a later no_agent=False flip produced an LLM job pinned
to the nonexistent model 'auto'. create_job/update_job now own the class:
the sentinel drops to None (with its provider) for script jobs, resolves to
the creating agent's model for LLM jobs, and a legacy 'auto' row heals on
any update. Tests drive both tool entry points and read jobs.json back; a
verbatim-store mutant fails 8/8.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.