Files
makelore/.project-docs/30-worklog/tasks/20260901-server-model-capabilities-9e31b6c4.md

4.1 KiB

Task: Consume server model reasoning capabilities

Identity

  • Task ID: 20260901-server-model-capabilities-9e31b6c4
  • Mode: Feature
  • Branch: codex/20260901-server-model-capabilities-9e31b6c4-server-model-capabilities
  • Worktree: D:\w\makelore-model-capabilities-9e31b6c4
  • Base commit: 850947c092
  • Owner: codex
  • Status: Ready for integration

Scope

  • Consume per-model reasoning capabilities from Works Square model config and persist them on the imported Main-owned Provider account.
  • Make server metadata override the local Pi reasoning map for server-provisioned models while retaining the local verified profile as an old-server/direct-provider fallback.
  • Add native max to the product-neutral thinking-level contract and composer menu so DeepSeek exposes off/low/high/max without relabeling provider values.
  • Keep one-api and Pi 0.84.2 unchanged.

Intent And Constraints

  • Electron Main remains the sole Works/model-config, Provider, credential, and Pi-wire owner. Renderer receives only safe product-neutral levels.
  • Strictly normalize the trusted response shape; a missing capability field means an older server and falls back to the local profile.
  • Preserve persisted user choices and all non-Works Provider behavior.
  • Do not restore OpenCode, add a second runtime, or expose Provider credentials or raw response data.
  • Feature mode may update only product code, focused tests, and this task record.

Plan

  1. Add failing tests for Works capability import, Provider metadata persistence, server-over-local Pi mapping, and native max menu/contract acceptance.
  2. Implement the typed response parser, Provider metadata projection, capability-map precedence, local DeepSeek fallback, and minimal max propagation through existing product validators/UI.
  3. Run focused unit tests, typecheck, scoped lint, Vite/Main build, and the project-docs completion gate.

Outcome

  • Parsed and normalized Works Square model_capabilities, stored the safe result on the managed Provider account, removed stale overrides when the optional server field disappears, and included the metadata in Provider runtime-shape invalidation.
  • Server-provided efforts now override the local Pi reasoning/thinking-level map while preserving verified local modalities, token limits, and wire-format compatibility. A capability for a future model without a local profile enables standard reasoning_effort serialization automatically.
  • Updated the verified DeepSeek fallback to expose only off/low/high/max. Pi sends thinking.type=disabled with no reasoning_effort for off, and sends the exact low/high/max effort for enabled requests.
  • Added native max to the product contract, snapshot validation, project persistence, Host route, Pi runtime, and composer UI where it is labelled 最高.
  • Kept Pi at 0.84.2 and made no one-api, dependency, README, or second-runtime change.

Verification

  • Focused final Vitest combination: 8 files and 102/102 tests passed, including actual Pi streamSimple payload checks for off and each of low/high/max.
  • pnpm run typecheck: passed.
  • pnpm run lint:check: passed with the repository's existing five warnings and no errors; a separate scoped ESLint run over every changed TypeScript/TSX file passed.
  • pnpm run build:vite: passed; only existing Browserslist, dynamic-import, and chunk size warnings were emitted.
  • git diff --check: passed.

Follow-ups

  • Integrate with the paired Works Square API change. Deployment order is tolerant: a client talking to an older server uses the corrected local DeepSeek profile, and older clients ignore the new server response member.
  • Verify future server model entries against their provider's exact effort vocabulary before publishing them; no one-api change is required while it remains transparent.

Promotion Candidates

  • Promote the Main-owned capability normalization/precedence rule and the safe server-to-Provider metadata contract into canonical architecture documentation after the paired server and client branches are integrated.