fix(cron,kanban): effort edit reaches fallback entries; complete refusals name the reason (t_ef1ba08b) - #1185
Conversation
…sals name the reason (t_ef1ba08b) - cron/jobs.update_job: setting reasoning_effort rewrites every job fallback entry that carries its own explicit reasoning_effort (list or single-dict form); entries without one already inherit. Clearing the pin leaves entries. - cron edit --reasoning-effort prints each fallback entry: changed a -> b, inherits, or NOT touched (keeps its own value). - kanban_db.explain_complete_refusal: 'already done by <profile> at <time>, outcome <o>' / 'unknown id' / stale run / status / parents; used by hermes kanban complete and the kanban_complete tool instead of 'unknown id or terminal state'. Verified: tests/cron/test_per_job_reasoning_effort.py 19 passed (2 new fallback tests red with jobs.py reverted); test_kanban_complete_refusal.py 3 passed; CLI e2e on a temp home.
ccb0bc8 to
c10ff08
Compare
|
🤖 merged-by: apollo · lane: review · gate: BYPASS: FleetReview advisory (Ace 2026-09-27 05:39), not a merge gate · why: Apollo drain review APPROVE (t_ef1ba08b): cron edit --reasoning-effort rewrites explicit fallback efforts; kanban complete refusals name the reason. Matches card |
FleetReviewReview: post-merge · head Post-merge review ( Confidence: 3/5 Findings
FleetReview provenance · models: B=gpt-6-sol, C=claude-code-opus-5-5, D=grok-4.6, F=gpt-6-sol · cost: $2.14 · duration: 9m 57s · rounds: 1 · files examined: 7 |
Card: t_ef1ba08b (papercuts #4, items 2 and 3).
Cron effort vs fallbacks. A job fallback entry with its own
reasoning_effortoverrides the job pin on the fallback turn (agent/chat_completion_helpers.py, NousResearch#21256). Sohermes cron edit --reasoning-effort lowleft xhigh fallbacks running xhigh. On 09-25 two crons kept xhigh this way.cron/jobs.update_job: setting the pin also rewrites every fallback entry that has an explicit effort (list or single-dict form). Entries without one already inherit the pin. Clearing the pin ("") leaves entries alone. An update that suppliesfallbackitself wins.cron editnow prints one line per fallback entry:a -> b,inherits the job effort, orNOT touched, keeps its own reasoning_effort 'x'.kanban complete refusal. New
kanban_db.explain_complete_refusal()returns one of:already done by <profile> at <local time>, outcome <o>unknown idhermes kanban completeand thekanban_completetool use it in place ofunknown id or terminal state.Verified
tests/cron/test_per_job_reasoning_effort.py: 19 passed. The 2 new rewrite tests fail with thejobs.pychange stashed.tests/hermes_cli/test_kanban_complete_refusal.py: 3 passed.cron editprintedFallback[0] openai-codex/gpt-x: reasoning_effort xhigh -> low/Fallback[1] ...: inherits the job effort.kanban completeprintedcannot complete t_c8ef215d: already done by daedalus at 2026-09-25 18:28:55 PDT, outcome completed.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.