Skip to content

fix(cron): never persist the 'auto' model sentinel in the job store (t_2f1ca8d4) - #1032

Merged
Kyzcreig merged 1 commit into
mainfrom
fix/cron-store-no-auto-sentinel
Sep 25, 2026
Merged

Kyzcreig merged 1 commit into
mainfrom
fix/cron-store-no-auto-sentinel

Conversation

@Kyzcreig

@Kyzcreig Kyzcreig commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

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.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

…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.
@Kyzcreig

Copy link
Copy Markdown
Collaborator Author

🤖 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

@Kyzcreig

Copy link
Copy Markdown
Collaborator Author

🤖 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

@Kyzcreig
Kyzcreig added this pull request to the merge queue Sep 24, 2026
@Kyzcreig

Copy link
Copy Markdown
Collaborator Author

🤖 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

@Kyzcreig
Kyzcreig removed this pull request from the merge queue due to a manual request Sep 25, 2026
@Kyzcreig
Kyzcreig added this pull request to the merge queue Sep 25, 2026
Merged via the queue into main with commit b72a64a Sep 25, 2026
57 checks passed
@Kyzcreig
Kyzcreig deleted the fix/cron-store-no-auto-sentinel branch September 25, 2026 03:27
@Kyzcreig Kyzcreig added the fleetreview:post-merge Ask FleetReview to review this MERGED pull (merge commit vs first parent) label Sep 25, 2026
@ang-prism

ang-prism Bot commented Sep 27, 2026

Copy link
Copy Markdown

FleetReview

Review: post-merge · head b72a64a07da2 · duration 2m 38s
Profile: light (merit: default light: lines 209<800, files 2<1000000, hunks 6<1000000, no hot path) · policy: below-size-and-path-gates
Roster: B-state → gpt-6-sol (openai), C-assert-xhigh → claude-code-opus-5-5 (anthropic), F → gpt-6-sol (openai), L6 → gpt-6-sol (openai)

Post-merge review (fleetreview:post-merge override): this reviewed the merge commit against its first parent — the bytes that already shipped. It is not a pre-merge gate pass.

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

  • P1 tests/cron/test_cron_store_no_auto_sentinel.py:26 — Script overwritten · agreed: B-state,L6 (openai)
  • P1 cron/jobs.py:3015 — Store-level 'auto' resolution rewrites provider after the tool's base_url safety check · agreed: C-assert-xhigh,F (anthropic, openai)

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

Kyzcreig pushed a commit that referenced this pull request Sep 28, 2026
…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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fleetreview:post-merge Ask FleetReview to review this MERGED pull (merge commit vs first parent)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant