Skip to content

feat(conversation): add Auto planner/worker foundation for aionrs - #4144

Closed
JeffC0628 wants to merge 2 commits into
iOfficeAI:mainfrom
JeffC0628:feat/auto-planner-worker-routing
Closed

feat(conversation): add Auto planner/worker foundation for aionrs#4144
JeffC0628 wants to merge 2 commits into
iOfficeAI:mainfrom
JeffC0628:feat/auto-planner-worker-routing

Conversation

@JeffC0628

Copy link
Copy Markdown

Summary

  • Add product-level Auto for aionrs: planner / worker / utility slot settings, sticky Auto in selectors (desktop + mobile + Guid), and conversation.extra.auto_model.
  • Phase 1 resolves a concrete worker-slot model into conversation.model (never sends the Auto sentinel to Core). Full long-run cost savings need Phase 2 (switch model without agent rebuild).
  • Includes PRD, i18n (13 locales), and unit tests for resolve heuristics.

Closes #4143

Scope / non-goals

  • Does not change assistant mode: auto (Remember last used).
  • Does not force Auto as the default model.
  • ACP platforms unchanged.

Test plan

  • Configure Auto slots under Settings → Model; verify persistence across restart
  • In aionrs chat, pick Auto → pill shows Auto · {model}; extra.auto_model.enabled true
  • Pick a concrete model → Auto flag clears
  • Guid new chat with Auto → create stores auto_model on the conversation
  • Mobile action sheet shows Auto and selects correctly
  • bun run test -- tests/unit/renderer/autoModel/resolveAutoModel.test.ts
  • bun run i18n:types + node scripts/check-i18n.js

Closes iOfficeAI#4143

Co-authored-by: Cursor <cursoragent@cursor.com>
Closes iOfficeAI#4143

Co-authored-by: Cursor <cursoragent@cursor.com>
@IceyLiu

IceyLiu commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

Reviewed together with #4146 — the feat/auto-phase2-routing branch already contains all commits from this PR, so the full review is posted there: #4146 (comment)

Local gate on the Phase 2 branch is green (tsc 0 errors, 9/9 unit tests, i18n in sync across all 13 locales, lint 0 errors), and the Phase 1 foundation here looks clean.

Two items in that review land on Phase 1 code specifically, so flagging them here as well:

  1. requireVision is never passed. handleSelectAuto in useAionrsModelSelection.ts calls resolveAutoModel without it, so the vision filter inside resolveAutoModel is dead code and Auto can resolve a text-only model for an image send.
  2. The tier heuristics rank the wrong models and the cost/balance/quality preference has no observable effect. Over a realistic catalogue, gemini-3-pro-preview always wins planner (ahead of Opus and GPT-5, via double-scoring on /pro-preview/i + /gemini.*pro/i), qwen3-coder-plus always wins worker (double-scoring /qwen.*plus/i + /coder/i), and all three preferences select identical winners. tierHeuristics.ts:41 is also an identity expression — Math.max(utility, planner > 6 ? 0 : utility) === utility — so the intended utility zeroing never takes effect.

Also: the utility slot is configurable in Settings but not consumed by any resolve path yet, and AutoModelSettingsBlock renders above the "no configured models" empty state in ModelModalContent.tsx.

Suggest consolidating onto #4146 and closing this one once the merge order is settled.

@JeffC0628

Copy link
Copy Markdown
Author

Superseded by #4146 (includes Phase 1 + Phase 2).

@JeffC0628 JeffC0628 closed this Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Auto planner/worker model routing for long-running aionrs agents

2 participants