From 171602f302566c9591abc63ad0b5828ae7816eb4 Mon Sep 17 00:00:00 2001 From: brother7 <7brother7@gmail.com> Date: Mon, 7 Sep 2026 18:10:08 +0800 Subject: [PATCH] docs: record context menu integration --- .project-docs/30-worklog/current-state.md | 15 ++++ ...0260907-integrate-context-menu-5a9e3c71.md | 88 +++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 .project-docs/30-worklog/tasks/20260907-integrate-context-menu-5a9e3c71.md diff --git a/.project-docs/30-worklog/current-state.md b/.project-docs/30-worklog/current-state.md index e810ecd..6aaf1f5 100644 --- a/.project-docs/30-worklog/current-state.md +++ b/.project-docs/30-worklog/current-state.md @@ -4,6 +4,21 @@ This file is the integrated default-branch snapshot. Feature tasks record progre ## Integrated Through +- Native text context-menu source frontier + `6fbb9c077ecda23e2ee6472631fe374527c49cb7` from task + `20260907-input-context-menu-a7c31e` is fast-forwarded onto local `main` by + task `20260907-integrate-context-menu-5a9e3c71`. The primary Renderer window + now receives one Electron Main-owned native menu for editable controls or an + existing text selection, exposing Chinese Cut, Copy, Paste, and Select All + roles according to Chromium edit capabilities. The same window-level listener + covers both Code and AI Design textareas without Renderer clipboard IPC or a + duplicate Canvas listener; ordinary non-editable content remains unaffected. + Verification passed the 5 focused unit cases, typecheck, full lint with 0 + errors and 5 existing warnings, all Vite targets, and an Electron E2E that + observed one popup for each Composer. The full unit run passed 1,938 tests with + 2 skips; its only failure was the unchanged Pi real-process two-second timing + assertion, which passed all 6 tests in isolation. No push, package, deployment, + publication, Provider call, or user-data mutation was performed. - Local AI Design activity frontier `4b894c7e320cdf829888f63f501d176f051be7d7` and fetched remote frontier `918f8f80dca61b0f561f96b168e4ef541734d414` are reconciled by the ordinary diff --git a/.project-docs/30-worklog/tasks/20260907-integrate-context-menu-5a9e3c71.md b/.project-docs/30-worklog/tasks/20260907-integrate-context-menu-5a9e3c71.md new file mode 100644 index 0000000..8200d01 --- /dev/null +++ b/.project-docs/30-worklog/tasks/20260907-integrate-context-menu-5a9e3c71.md @@ -0,0 +1,88 @@ +# Task: Integrate native text context menu + +## Identity + +- Task ID: 20260907-integrate-context-menu-5a9e3c71 +- Mode: Integration +- Branch: main +- Worktree: D:\Datas\OthersProjects\makelore +- Base commit: 6fbb9c077ecda23e2ee6472631fe374527c49cb7 +- Owner: codex-root +- Status: Ready for Integration + +## Scope + +- Integrate the reviewed source branch + `codex/20260907-input-context-menu-a7c31e-input-context-menu@6fbb9c0` onto + local `main`. +- Integrate the Main-owned native text context menu for editable controls and + selected text, including explicit Code and AI Design textarea coverage. +- Re-run focused verification on merged `main`, update the canonical integrated + snapshot, and retain the source task record in source history unchanged. + +## Intent And Constraints + +- Preserve the source task's Electron Main ownership boundary: no Renderer, + Preload, IPC, Host API, or direct clipboard surface is added. +- Preserve the three explicitly adopted untracked task records byte-for-byte; + do not add, edit, delete, move, or commit them. +- Do not merge the superseded August implementation branch separately; the + current source already revalidates that behavior against the latest window + lifecycle and covers both Code and Design textareas. +- Do not change unrelated Pi timing code or thresholds, package, deploy, + publish, push to `origin`, or alter user data as part of this integration. + +## Outcome + +- After the user's explicit confirmation, released the completed prior + Integration ownership and claimed `main` while adopting the three known + untracked task records by fingerprint. Their files remain byte-for-byte + untouched and outside this integration commit. +- Verified that local `main@8c13ae7` was an ancestor of the reviewed source tip + `6fbb9c0`, then fast-forwarded `main` without conflicts or history rewriting. +- Re-established this Integration task's comparison base at the accepted source + tip using the bundled ownership scripts, so the source task record remains + read-only source history rather than being attributed to this task. +- Integrated one Electron Main-owned native text menu for editable controls and + selected text. Code and AI Design textarea controls share the same primary + Renderer listener; no duplicate Canvas listener or Renderer clipboard surface + was introduced. +- Retained the source task record and README update, and recorded the source tip + under `Current State / Integrated Through`. No additional ADR or architecture + change was required. + +## Verification + +- Before fast-forward, the source tip matched the reviewed + `6fbb9c077ecda23e2ee6472631fe374527c49cb7`, `git merge-base --is-ancestor` + passed, and `git diff --check` reported no source whitespace errors. +- `corepack pnpm --version` — exact pinned `10.33.4`. +- `corepack pnpm exec vitest run tests/unit/context-menu.test.ts` — 5 passed. +- `corepack pnpm run typecheck` — passed. +- Focused ESLint for the Main module, window registration, unit test, and E2E — + passed with no output. +- `corepack pnpm run build:vite` — Renderer, Main, Preload, and release utility + bundles passed; only existing Browserslist, mixed-import, and chunk-size + warnings were emitted. +- `corepack pnpm exec playwright test tests/e2e/context-menu.spec.ts` — 1 passed, + observing two native popups across the Code and AI Design textarea controls. +- `corepack pnpm run lint:check` — passed with 0 errors and 5 existing warnings + in untouched files. +- `corepack pnpm test` — 226 files / 1,938 tests passed with 2 skipped; the only + failure was the unchanged Pi real-process two-second timing assertion (2112ms + against 2000ms in the final report). Its isolated rerun with one worker passed + all 6 tests, so no unrelated Pi code or threshold was changed. +- Task-aware documentation drift and adopted-record fingerprint checks passed; + `git diff --check` also passed. + +## Follow-ups + +- A rebuilt or development client is required to observe the newly integrated + Main bundle; this task does not package or publish an installer. +- Push `main` to `origin` only if the user separately requests publication. + +## Promotion Candidates + +- Applied in this integration: `current-state.md` records the source frontier, + Main ownership boundary, shared Code/Design behavior, and verification result. + No further promotion is pending.