Skip to content

feat(conversation): add runtime thinking mode selector - #3597

Draft
GodfatherPacino wants to merge 1 commit into
iOfficeAI:mainfrom
GodfatherPacino:codex/glm-5-2-thinking-mode
Draft

feat(conversation): add runtime thinking mode selector#3597
GodfatherPacino wants to merge 1 commit into
iOfficeAI:mainfrom
GodfatherPacino:codex/glm-5-2-thinking-mode

Conversation

@GodfatherPacino

@GodfatherPacino GodfatherPacino commented Jul 16, 2026

Copy link
Copy Markdown

Description

Adds a runtime thinking-mode selector to the main conversation composer.

  • Shows a localized Enabled/Disabled selector when the active runtime advertises a compatible thinking option.
  • Recognizes thought_level, reasoning_effort, and thinking option IDs so Claude Code, OpenCode, and other ACP-compatible CLIs work through their advertised capabilities.
  • Supports the direct Aionrs GLM-5.2 integration through the companion AionCore change.
  • Hides the control when a runtime does not advertise a supported option.
  • Keeps desktop and mobile conversation composers aligned.
  • Adds focused component, hook, state, and utility tests.

Related Issues

No linked issue.

Type of Change

  • feat: New feature
  • fix: Bug fix
  • perf: Performance improvement
  • refactor: Code change that neither fixes a bug nor adds a feature
  • docs: Documentation only
  • style: Formatting only
  • test: Tests only
  • chore: Maintenance
  • ci: CI changes
  • build: Build system changes

Atomic Change Check

  • This PR contains one focused, independently reviewable change.

Local Checks

  • bun run lint / repository lint gate
  • Format check
  • TypeScript type check
  • i18n type generation and validation
  • Full Vitest suite via just push

Runtime Verification

  • Verified manually on macOS (Apple Silicon)
  • Verified manually on Windows
  • Verified manually on Linux

The packaged arm64 app and embedded backend start successfully, expose the GLM-5.2 selector, and preserve Enabled/Disabled runtime state. A real request against the earlier package revealed that Anthropic-compatible requests omitted the explicit disabled block, so GLM-5.2 continued thinking despite the UI state. That backend defect is fixed by iOfficeAI/aionrs#228 and wired through iOfficeAI/AionCore#628.

The corrected Apple Silicon package passed:

  • Packaged backend resource contract: 17 checks
  • Native backend smoke test: /health returned 200 with version 0.1.47
  • Embedded backend architecture/hash verification
  • Strict deep ad-hoc signature verification
  • DMG checksum verification
  • Broken-symlink scan of bundled managed resources

The exact Anthropic JSON projection is covered in the Aionrs regression tests. A final external model call is intentionally left to installation-time manual verification so this PR does not use contributor provider credentials implicitly.

Screenshots

Not included. The behavior is covered by focused component tests and packaged-app verification.

Additional Context

The direct Aionrs GLM-5.2 path depends on iOfficeAI/AionCore#628, which in turn currently depends on iOfficeAI/aionrs#228. Third-party ACP integrations are capability-driven and do not hard-code Claude Code or OpenCode behavior.

Self-review

  • I reviewed the diff and limited the PR to the intended feature.
  • New and changed user-facing text is localized.
  • Focused tests cover the changed runtime behavior.

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.

1 participant