Files
makelore/.project-docs/30-worklog/tasks/20260928-merge-reply-cleanup-eb8d39b3.md
T
鲨鱼辣椒 f6944c46eb
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 latest main and preserve teacher upgrade safeguards
2026-09-28 18:42:04 +08:00

58 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Task: Merge teacher reply cleanup and approved UI changes into main
## Identity
- Task ID: 20260928-merge-reply-cleanup-eb8d39b3
- Mode: Feature
- Branch: codex/20260928-merge-reply-cleanup-eb8d39b3-merge-reply-cleanup
- Worktree: /Users/chillishark/Makelore 麦洛/.codex-worktrees/makelore/20260928-merge-reply-cleanup-eb8d39b3
- Base commit: a21a1f077cc11976213290a6b843bb74be97ab44
- Owner: codex
- Status: In progress
## Scope
- Merge committed teacher/UI cleanup source 40c247a into latest origin/main and push normally; preserve existing continuous-chat and per-turn project/version behavior.
## Intent And Constraints
- User explicitly authorizes main integration and repository push; packaging belongs to their colleague. No packaging, native app restart, cloud publication, real model calls or focus changes. Preserve all foreign worktrees and source records.
## Outcome
- Source cleanup `40c247a` merged with the current account/Agent continuous-chat behavior in `581ebc8`, then incorporated complete remote main `077184a` before publication. Preserve its reply recovery, cloud-owned teaching policy, 0–3 new shortcuts, welcome dismissal, pagination and per-turn source/version behavior.
- Additional merge safeguards: old component mutation route removed from the continuous API; no new per-project component state is created or imported; existing malformed legacy component archives are retained verbatim. Old component instructions cannot persist through a reused pre-upgrade cloud checkpoint: first reply-protocol turn rotates the internal thread and carries bounded public reply history, without changing the visible chat.
- Unconfirmed legacy hint requests retain their old text, ID and original project/source. Migrated per-project drafts keep that original scope; cross-project or cross-source hint retry waits for the original scope instead of issuing another charge. Existing send-in-flight and incomplete-reply retry safeguards remain intact.
- No package, app restart/update, cloud configuration publication, paid model call or desktop focus change. Source/live-trial and all foreign worktrees remain intact. Publication verification is recorded below after the normal push.
## Verification
- Final `corepack pnpm run typecheck`, `corepack pnpm run lint:check` and `corepack pnpm run build:vite` passed. Lint has 8 existing unrelated warnings; build has existing chunk-size/dynamic-import warnings. No dependencies or build outputs committed.
- Final backend focused validation: 7 suites / 261 tests passed; UI/companion/chat: 4 suites / 144 tests passed; continuous storage/retired routes: 2 suites / 17 tests passed. These runs overlap and are not an additive unique-test count.
- Headless Chrome: all 28 teacher reply/preview layout cases verified. First run passed 27; one initial Vite scan observed an in-progress shared-type merge marker, then passed when rerun after resolution. Native Pi Electron E2E fixture parses and lists 19 tests; not launched because it opens a foreground app.
- Full `corepack pnpm test`: 261 files / 2639 tests passed, 3 tests skipped; 3 failures in 2 unrelated Pi files. Independently reproduced exactly those same 3 failures on a disposable archive of original remote `077184a` (12 passed / 3 failed in the selected two files): two event-projector old error-message assertions and the managed-worker opener runtime-v6/v7 assertion. Baseline log: `/tmp/makelore-baseline-077184a-21n6od02/baseline-tests.log`. The script's separately gated pressure suite was then run manually and passed 1/1.
- `git diff --check`, required project-document structure and semantic comparison against latest remote passed. Task drift checker reports 5 imported source-task documents as foreign relative to the original base; byte comparison against `077184a` confirms every imported document unchanged. Only this task's own record is authored here; no canonical writes, ownership override, baseline alteration or source-document edits were used to suppress the inherited diagnostic.
## Follow-ups
- Push the verified merge normally to remote main and record exact publication identity. Packaging and installation belong to the user's colleague.
- The 3 pre-existing Pi test assertions remain outside this teacher merge scope. Native Electron foreground interactions and signed package verification are not claimed.
## Promotion Candidates
- A later canonical-memory integration should reflect current text/quick-reply-only teacher behavior and first-upgrade cloud-thread rotation. Evidence is the merged implementation, focused regressions and baseline comparison; existing cloud-defined policy and continuous-chat decisions remain unchanged. This feature task does not own the canonical integration lock.
## Project Context Loaded
- Identity verified by official start/status: feature task `20260928-merge-reply-cleanup-eb8d39b3`, this managed worktree/branch, base `a21a1f077cc11976213290a6b843bb74be97ab44`. Source checkout is owned by the completed cleanup task and still hosts the temporary app, so it remains read-only.
- Read entry/memory index, own record, project positioning, latest integrated state, decisions, architecture, success criteria and all registered peer scope/intent/promotion sections. Reuse previously loaded teacher domain/evidence/reflection/commitment context; changed continuous-chat rules checked against current main/source task records.
- Goal: student-owned creation with cloud-defined teachers, Main-owned request/history/version boundaries, prose and quick replies only. Preserve main's unique account/Agent chat and per-turn project/source/version; remove retired component UI/protocol/state and retain approved empty-composer hint/retry/preview-header styling.
- Other tasks: a broader latest-main integration is also registered planning; prepare this requested source in isolation, check remote again before push and never overwrite a concurrent remote advance. Prompt-boundary, truncation repair and welcome changes are separately owned and not added speculatively. Child-language task is unfinished. Canonical integration lock is held elsewhere; keep all canonical/source records read-only.
- New integrated single-chat behavior is compatible with component cleanup; overlaps require combined code/tests rather than choosing an entire side. No new product decision needed. Gate Passed.
## Plan
1. Merge source 40c247a into fetched main in this isolated branch; preserve source history and resolve overlaps with the current continuous-chat contract.
2. Verify backend/context/parser/history and UI/preview/refresh paths, typecheck, lint, production compile and headless layout; independently review the merge.
3. Recheck origin/main, integrate any concurrent advance, push normally to main and verify remote ancestry/hash. Keep the live trial checkout; packaging and app updates are outside this request.