Files
makelore/.project-docs/30-worklog/tasks/20260821-integrate-model-switch-fix-8f2d6c41.md
brother7 fba68e86d9
Some checks failed
Electron E2E / Electron E2E (macos-latest) (push) Has been cancelled
Electron E2E / Electron E2E (ubuntu-latest) (push) Has been cancelled
Electron E2E / Electron E2E (windows-latest) (push) Has been cancelled
merge: fix opencode model switching runtime refresh
2026-08-21 01:48:01 +08:00

4.9 KiB

Task: Integrate model switch runtime fix into main

Identity

  • Task ID: 20260821-integrate-model-switch-fix-8f2d6c41
  • Mode: Integration
  • Branch: main
  • Worktree: D:\Datas\OthersProjects\makelore
  • Base commit: 605fef417f
  • Owner: codex
  • Status: Blocked

Scope

  • Merge verified source commit cce7722 into local main with normal no-fast-forward history.
  • Integrate the OpenCode Session model wire correction and fresh-runtime local proxy Host API token binding without changing partner Agent hot-add behavior.
  • Reconcile the source task's accepted promotion candidate into canonical current state, architecture/data flow, evidence, and the pending real-client smoke commitment.
  • Preserve the separately owned untracked packaging task record unchanged.

Intent And Constraints

  • Keep page selection and /models / /model on OpenCode's native per-Session mutation and prevent false runtime-refresh requirements for an owned fresh runtime that already uses the current Main-owned proxy token.
  • Preserve attached/unknown fail-closed behavior, sticky timeout/partial-write uncertainty, true provider/model shape refreshes, and existing Agent runtime acceptance rules.
  • Treat the source feature task record as read-only source history. Do not edit it; keep integration notes in this task record and canonical documents.
  • Do not modify or commit .project-docs/30-worklog/tasks/20260819-package-learning-off-115-9c4d.md.
  • Merge only into local main; do not push, package, or claim a rebuilt-client smoke that has not been run.

Outcome

  • With explicit user authorization, force-released the blocked legacy integration ownership 20260820-integrate-remember-password-5d7e3a1c and adopted the known dirty main worktree without modifying its separately owned untracked packaging task record.
  • Merged source commit cce7722 into the local main integration tree with normal no-fast-forward history and no code conflicts. The source task record remains read-only source history and was not added to the canonical tree.
  • Integrated the OpenCode 1.18.9 Session model id wire mapping, current Host API token injection for a fresh managed local-proxy runtime, and the fresh/attached runtime acceptance distinction. Partner Agent hot-add and true provider/runtime refresh semantics are unchanged.
  • Promoted the accepted source candidate into current state, module ownership, data flow, evidence, and a pending rebuilt-client local smoke commitment.
  • Kept the merge local. No push, package, paid-provider request, or claim of a real rebuilt-client smoke was made.

Verification

  • Integrated focused OpenCode client/provider config/provider route/OpenCode route suite — 4 files, 171 tests passed.
  • corepack pnpm run typecheck — passed.
  • corepack pnpm run lint:check — passed with 0 errors and 6 existing warnings in unrelated Renderer files.
  • The first parallel full-test/build attempt exhausted worker/V8 process resources: Vitest reported one unexpected worker exit after 176 files / 2047 tests passed, and the concurrent Vite process terminated with a V8 fatal check. Rerunning the commands independently resolved the execution failure.
  • Sequential corepack pnpm test — 177 files, 2074 tests passed.
  • Sequential corepack pnpm run build:vite — passed for Renderer/Main/Preload/utility; only existing dynamic-import and large-chunk advisory warnings were reported.
  • node ./node_modules/@playwright/test/cli.js test tests/e2e/opencode-multichat-runtime.spec.ts — 1 Electron E2E passed. An earlier pnpm exec playwright attempt selected the separate playwright CLI and failed during collection because the fixture used @playwright/test; no test body ran in that attempt.
  • git diff --check — passed with configured LF-to-CRLF notices only.
  • Task-aware documentation drift remains blocked solely because the explicitly adopted, pre-existing untracked .project-docs/30-worklog/tasks/20260819-package-learning-off-115-9c4d.md is another task's owned record. It was not modified, staged, or committed. The checker also lists the expected nine merged source code/test files as non-document changes.

Follow-ups

  • Build and relaunch a desktop application containing source cce7722, then repeat page-selector and /model switching against the real local OpenCode runtime without a manual runtime restart. This is recorded in canonical commitments and remains outside this source-only integration.
  • Resolve the project-docs drift-check handling for the explicitly adopted pre-existing foreign task record before marking this integration complete or releasing its ownership. Do not delete, edit, move, or commit that record as part of this integration.

Promotion Candidates

  • Applied the source task's Session model wire and fresh-runtime local-proxy token candidate; none remain pending for this integration.