From 5aabaaf530a453e1459541fb7389d3afad221abf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=B2=A8=E9=B1=BC=E8=BE=A3=E6=A4=92?= Date: Tue, 29 Sep 2026 20:04:20 +0800 Subject: [PATCH] docs: record window close merge into main --- .../tasks/20260929-window-close-58c6a9de.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.project-docs/30-worklog/tasks/20260929-window-close-58c6a9de.md b/.project-docs/30-worklog/tasks/20260929-window-close-58c6a9de.md index b79e3ac9..35c3fbac 100644 --- a/.project-docs/30-worklog/tasks/20260929-window-close-58c6a9de.md +++ b/.project-docs/30-worklog/tasks/20260929-window-close-58c6a9de.md @@ -16,14 +16,14 @@ ## Intent And Constraints -- User explicitly approved changing code after red-close left a black fullscreen Space; manually exiting fullscreen cleared it. Do not replace the installed or running trial app, merge main, publish, or alter concurrent teacher-composer work. Preserve active Main-owned tasks, authentication, project data and persisted drafts. +- User explicitly approved changing code after red-close left a black fullscreen Space; manually exiting fullscreen cleared it. The follow-up explicitly authorizes merging this completed fix into local main. Do not replace the installed or running trial app, push, publish, or alter concurrent teacher-composer work. Preserve active Main-owned tasks, authentication, project data and persisted drafts. ## Outcome - macOS red close now destroys the window. Fullscreen close waits for native leave-full-screen before closing; repeated close requests are coalesced and Cmd+Q retains the existing quit lifecycle. Yellow minimize and green native zoom/fullscreen behavior are preserved. Windows/Linux retain close-to-tray. - Main-owned Host API, coding runtime, authentication and task leases remain alive without a window. Dock activation, tray and menu recreate the window with current IPC/dialog owners, updater notifications and browser presentation callbacks; renderer leases are isolated by WebContents and released on destruction. - The shared browser module survives window replacement, while each native view retains its original owner. Reopening waits for old preview cleanup; an already cancelled open cannot create a late view or clear its successor. Missing host-window mount failures clean up their view. -- README describes the native control behavior. Changes are isolated on the task branch; the primary checkout, installed app and running trial app were not modified or updated. +- README describes the native control behavior. Code commit b5e6c66 was fast-forwarded into local main on the user's follow-up request. Installed and running trial apps were not updated; nothing was pushed. ## Verification @@ -35,7 +35,7 @@ ## Follow-ups -- Integrate the committed task branch when requested, then rebuild/update the intended app. This task intentionally delivers code only; live app replacement and main-branch integration were not authorized by the latest request. +- Local main code merge is complete. Rebuild/update the intended app or push only when requested. Post-merge worktree cleanup was offered separately; retain the checkout unless explicitly approved. - Expanded Main TypeScript baseline errors remain outside this task. ## Promotion Candidates @@ -58,3 +58,13 @@ 1. Separate process services from recreatable window bindings; implement safe fullscreen close. 2. Cover repeat close, reopen, leases, dialogs and preview attachment; run focused unit tests, typecheck/lint/build and isolated Electron tests. 3. Review diff, record verified results and prepare a commit/patch for integration. + +## Main Merge Follow-up + +- Authorization: user explicitly requested merging the code into main. Same-task resume uses the existing feature worktree/branch/base in Identity; start and matching status passed. +- Context: entry and task record re-read; canonical context previously loaded is unchanged from base f443f3b. Independently re-read all peer Scope/Intent/Promotion sections. Teacher-prompt-buttons is isolated UI work and explicitly excludes main merge; child-language has unspecified scope but no concrete dependency. No native-close semantic conflict. +- Main and source were clean; main f443f3b is the direct parent of b5e6c66 (0/1 divergence). Product code is exactly the already-verified source, so tests need not be rerun for this fast-forward. +- Canonical integration remains reserved by historical task 20260923-classroom-integration-8b4f1e62. Preserve that ownership, branch and checkout. This follow-up lands feature code and updates only its own task record; canonical promotions remain pending. +- Gate: Passed for the user-authorized feature landing, without canonical reconciliation. +- Plan: fast-forward clean main to b5e6c66, record the actual merge result, commit this task record and fast-forward its documentation; verify clean main and source ancestry, then complete the task registry. +- Result: main fast-forwarded f443f3b → b5e6c66 without conflicts. No unrelated feature commits, canonical documents or peer records were imported. Source product code remains exactly the tested b5e6c66 tree. This final task-record update is the only subsequent change.