Skip to content

feat(cron): configure reasoning per job - #65679

Closed
the3asic wants to merge 1 commit into
NousResearch:mainfrom
the3asic:upstream/cron-reasoning-20260716T100849Z
Closed

feat(cron): configure reasoning per job#65679
the3asic wants to merge 1 commit into
NousResearch:mainfrom
the3asic:upstream/cron-reasoning-20260716T100849Z

Conversation

@the3asic

Copy link
Copy Markdown
Contributor

Summary

Adds an optional reasoning_effort override to each cron job, so scheduled work can choose its own quality/latency tradeoff without mutating global agent configuration.

Runtime precedence is:

  1. valid per-job override
  2. per-model reasoning policy for the model that actually survives provider-auth fallback
  3. global reasoning policy
  4. provider/model default

Behavior

  • Missing or null inherits the configured policy.
  • false / none explicitly disables reasoning.
  • Supported levels come from the canonical parser: minimal, low, medium, high, xhigh, max, ultra.
  • Invalid new writes are rejected with a clear error.
  • Malformed hand-edited/legacy stored values warn and inherit instead of crashing the scheduler.
  • hermes cron edit <job_id> --reasoning-effort inherit clears an override.
  • Script-only (no_agent) jobs preserve the field but never construct an agent, so it has no runtime effect.
  • Each run receives its own reasoning_config; no job can leak its override into another job or global config.

Surfaces

The field round-trips through cron storage, scheduler execution, the cronjob tool, standalone CLI, authenticated dashboard API, web UI, desktop UI/types/translations, and cron documentation.

Existing jobs require no migration and retain their current behavior.

Current-main compatibility

This is rebased onto current main and preserves the newer auth-fallback ordering: reasoning is resolved only after the actual fallback model is known. It also covers the gaps called out on earlier proposals: all current effort levels, raw YAML/JSON false, malformed-record fallback, standalone CLI set/clear, and both web and desktop surfaces.

Related: #7382, #63327, #23524.

Validation

  • 829 Python tests collected and passed across tests/cron, cron tool, CLI parser/lifecycle, and dashboard profile API suites

  • Web + desktop cron model Vitest: 16 passed

  • Web TypeScript typecheck: passed

  • Desktop renderer + Electron TypeScript typechecks: passed

  • ESLint on every changed frontend file: passed

  • Ruff on changed Python files: passed

  • py_compile: passed

  • git diff --check: passed

  • Added-line private identifier, IP, credential-literal, and control-character scans: zero hits

  • Tested on Ubuntu 26.04 (x86_64)

@alt-glitch alt-glitch added type/feature New feature or request comp/cron Cron scheduler and job management comp/cli CLI entry point, hermes_cli/, setup wizard comp/tools Tool registry, model_tools, toolsets comp/dashboard Web dashboard / control panel UI (dashboard/, landing) comp/desktop Electron desktop app (apps/desktop/*) area/config Config system, migrations, profiles sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades P3 Low — cosmetic, nice to have duplicate This issue or pull request already exists labels Jul 16, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

This was generated by AI during triage.

Duplicate of #7382 — this implements the same per-job reasoning_effort storage and scheduler precedence. The additional UI and validation coverage matches the existing cluster rather than a separate mechanism.

@tonydwb tonydwb left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review Summary

Verdict: Comment

Overview

  • Cron feature: configure reasoning per job
  • 732 additions, 20 deletions — moderate size

Assessment

  • Per-job reasoning configuration is useful for resource management
  • No obvious security concerns

Note

  • Given the moderate size, recommend verification that the reasoning configuration is properly validated

Reviewed by Hermes Agent

@teknium1 teknium1 added the sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform label Jul 18, 2026
@the3asic

Copy link
Copy Markdown
Contributor Author

Closing in favor of #7382, which covers the same per-job reasoning-effort mechanism and remains the active implementation. Thanks for the triage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/config Config system, migrations, profiles comp/cli CLI entry point, hermes_cli/, setup wizard comp/cron Cron scheduler and job management comp/dashboard Web dashboard / control panel UI (dashboard/, landing) comp/desktop Electron desktop app (apps/desktop/*) comp/tools Tool registry, model_tools, toolsets duplicate This issue or pull request already exists P3 Low — cosmetic, nice to have sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants