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

100 lines
4.9 KiB
Markdown

# 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: 605fef417fe2e7a5d23d4994fbd109cdfb38efcb
- 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.