文档:集成首次会话延迟修复契约

This commit is contained in:
2026-08-12 23:47:29 +08:00
parent 0ee52547ad
commit 89d024a200
6 changed files with 98 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
# Task: Integrate first conversation latency fix
## Identity
- Task ID: 20260812-integrate-first-chat-fix-c31e
- Mode: Integration
- Branch: codex/20260812-integrate-first-chat-fix-c31e-integrate-first-chat-fix
- Worktree: D:\Datas\OthersProjects\makelore-integrate-first-chat-fix-c31e
- Base commit: a7340a20a1183550be3f70067611b6fa0ef5bef8
- Owner: codex
- Status: Completed
## Scope
- Merge source commit `08da976` into the latest clean `main` baseline `a7340a2` through this isolated integration branch.
- Preserve the first-send known-empty session fast path, the narrow upstream-saturation terminal projection, and their focused unit/Electron E2E coverage.
- Promote the durable session-cache and Host AI proxy contracts into canonical project memory, then advance `main` only after verification and independent review.
## Intent And Constraints
- Treat source task `20260812-first-chat-fix-b84fd29c` as read-only evidence; do not rewrite its record during integration.
- Preserve the existing Renderer -> Host API -> Electron Main -> OpenCode ownership boundary and generic `429` behavior.
- Do not claim that every source of cold-start latency is eliminated: this integration removes the redundant known-empty history wait and stops indefinite retries only for explicitly classified upstream saturation.
- Preserve `main` commit `a7340a2` and all unrelated in-flight task work; no remote push is authorized by this task.
- Revalidate the status projection whenever the bundled OpenCode retry contract changes.
## Project Context Loaded
- `.project-docs/05-agent-entry/memory-index.md`
- `.project-docs/30-worklog/current-state.md`
- `.project-docs/00-brief/project-positioning.md`
- `.project-docs/10-decisions/decision-index.md`
- `.project-docs/20-architecture/system-overview.md`
- `.project-docs/20-architecture/module-map.md`
- `.project-docs/20-architecture/data-flow.md`
- `.project-docs/40-domain/business-rules.md`
- `.project-docs/00-brief/success-criteria.md`
- `.project-docs/50-evidence/evidence-index.md`
- `.project-docs/60-reflection/reflection-index.md`
- `.project-docs/80-commitments/commitments.md`
- `.project-docs/90-maintenance/stale-items.md`
- `.project-docs/05-agent-entry/integration-gate.md`
- Source task record `20260812-first-chat-fix-b84fd29c`
- Active peer task Scope / Intent And Constraints / Promotion Candidates sections required by the planning gate.
## Plan
1. Merge `08da976` without rewriting source history and inspect the combined diff against `a7340a2`.
2. Record the durable OpenCode session-cache and Host AI proxy contracts in canonical memory.
3. Run focused unit tests, typecheck, scoped lint, Vite build, Electron E2E, full-suite baseline comparison, and documentation checks.
4. Obtain an independent read-only PASS/FAIL review, complete integration documentation, and fast-forward `main` through a clean promotion task.
## Outcome
- Merged source commit `08da976` into the latest `main` baseline with integration merge `0ee5254`, preserving both parents while keeping the source task record read-only on its source branch.
- Integrated the known-empty session fast path: first prompt submission no longer waits for a redundant empty-history request, while unknown and ordinary historical sessions retain defensive loading/refresh behavior.
- Integrated the narrow Host AI proxy saturation projection: quota exhaustion remains `402`, explicit upstream-group saturation becomes terminal `400` for bundled OpenCode 1.18.9, and generic rate limits remain `429`.
- Promoted the session-cache own-key contract, proxy retry boundary, verification evidence, and OpenCode-upgrade revalidation commitment into canonical project memory.
## Verification
- Focused unit tests: 4 files / 228 tests passed.
- `pnpm run typecheck`: passed.
- ESLint over all changed product, unit, and Electron E2E files: passed.
- `pnpm run build:vite`: passed for Renderer, Electron Main, and Preload.
- `pnpm exec playwright test tests/e2e/opencode-first-chat.spec.ts`: passed, 1/1 in 4.7 seconds on the stable build output. An earlier attempt ran concurrently with `build:vite` and timed out during Electron launch before test logic; the serial rerun passed.
- `pnpm test`: 1548/1551 tests passed. The same three failures were independently reproduced on pre-integration `main`: two timing/generation cases in `opencode-manager.test.ts` and the missing repository `.opencode/agent` fixture in `youth-plain-language-skill.test.ts`.
- `check_project_docs.py`: passed.
- `check_doc_drift.py --task-id 20260812-integrate-first-chat-fix-c31e`: passed after the integration merge was amended so the source task record remains only in source history.
- `git diff --check`: passed with only the repository's normal LF/CRLF checkout warnings.
- Independent final read-only Sol review: PASS with no blocking findings; it independently reran all 228 related unit tests and confirmed merge ancestry, source-tree equality, cache/error semantics, and canonical documentation accuracy.
## Follow-ups
- Revalidate or remove the internal saturation status projection when bundled OpenCode or the upstream error contract changes.
- Treat duplicate cold bootstrap work and coarse global loading state as separate optimization candidates; this integration does not claim that all runtime cold-start latency is eliminated.
## Promotion Candidates
- None recorded.