7.7 KiB
7.7 KiB
Task: Align Canvas workspace with Agents and integrate coordinated trial update
Identity
- Task ID: 20261013-canvas-workspace-b6d9e2a4
- Mode: Feature
- Branch: codex/20261013-canvas-workspace-b6d9e2a4-canvas-workspace
- Worktree: /Users/chillishark/Makelore 麦洛/.codex-worktrees/makelore/20261013-canvas-workspace-b6d9e2a4
- Base commit:
70166d22b3 - Owner: codex-root
- Status: Ready for Integration
Scope
- Align Canvas navigation, header, chat/Markdown/composer and production sections with Agents; add a resizable current-work/history workspace with compact panel switching. Preserve cloud V2 generation and existing edit/quote/confirm/recovery semantics.
- Wait for the two user-selected Code/navigation and Agent/channel chats, integrate their finished work, update the temporary application, merge/push main, and retire this task's clean managed worktree. Preserve unrelated work and the live profile/runtime.
Intent And Constraints
- The user explicitly authorized implementation, coordinated trial update, merge/push and cleanup. Ownership/check/start/status and the Planning Gate passed in this task's linked worktree. Same-task resumes retained its ownership. Peer Scope/Intent/Promotion sections were read only; no canonical project memory was changed.
- Project Context Loaded: task/feature/branch/worktree/base/owner above; entry/memory/positioning/decisions/architecture/domain/evidence/reflection/commitment references read. Main owns media/auth/commands; Workspace owns the sole Living Form and Session. Use the established light UI and existing tokens.
- Required dependencies were Code-navigation task35fad017 and channel-adapter task9a7c32e1. Both selected chats completed before integration. The rejected broad Code visual variant was not restored; no Yuxi server files were changed.
- Primary main checkout belongs to another task and retains a pre-existing dirty teacher-consensus task record. It was not reset, stashed, adopted, committed or removed. Cleanup covers only this task's managed source worktree; preserve its branch/commits, original shell, runtime/fallback snapshots, stable origin symlink, primary dependencies and profile.
Outcome
- Canvas shipped: Agents-style navigation/composer/Markdown, 64px project/version/status header, remembered resizable42/58 split, current output previews and historical selection, one persistent editable production card, <=899px compact tabs. Hidden videos pause; modal Escape respects focus; compact create opens one dialog.
- Combined accepted source includes Canvas2ca6e31, effective Code/sidebar/advanced fixes
d287d5ac(handoff15848cd), and channel979596f. Their non-project-doc deltas were applied through Git three-way merge before ancestry mergea106dc1 recorded both histories without modifying foreign/canonical task docs. Verified product source592ff38f was pushed normally to main; later commits record evidence only. - Unified full temporary runtime is active-verified at /Users/chillishark/Makelore 麦洛/.trial-runtime/canvas-combined-20261014-b6d9e2a4-v2, compiled from clean4eb3efa. Original Combined Trial shell, existing profile, stable file Renderer origin and port58003 remain in use. Actual Main25170 owns that port. current.json and the compatibility link now reference this verified runtime. Immutable runtime files are independent of this source worktree.
- Code and Canvas product scope is complete. Normal final record push and official managed-worktree retirement follow this committed Ready record; the runtime and recoverable branch/commits are retained.
Verification
- Pinned corepack pnpm10.33.4; typecheck, scoped ESLint, whitespace/doc drift passed. Combined23files/443selected units passed. Eighteen unique combined Electron/browser cases passed: Canvas/channels4, community9, Code/navigation5. Inherited test-only expectations were updated while preserving draft/attachment/geometry/first-submit/navigation checks.
- Explicit retained-feature evidence additionally passed220focused unit cases and2knowledge-layout E2Es at375/1440; these overlap earlier coverage and are not claimed as additional unique product cases. Exact executed commands, source equivalence, limitations and hashed logs are in v2/evidence/retained-feature-provenance.json and retained-feature-mapping.json. All13feature IDs are mapped; live/provider/payment/real speech/real WeChat mutation outcomes are not inferred from fixtures.
- Full default Renderer/Main/Preload/utility build passed from clean4eb3efa; renderer-only preview flags are false. Old Main020b3667 and effective Code Rendererd287 predecessor pair, all old/new immutable hashes, resources Git tree equality, primary dependency reuse, required Main markers and exact product deltas passed. Helper/launcher syntax and16auth-state combinations passed. v2 prepare/finalize/verify passed; root independently reviewed the authentication correction.
- Root native CUA acceptance: new runtime rendered its home/login gate. User completed normal product login. Correctly bound AX then verified alice, original Canvas project list/version/content, new42split, assistant Markdown lists, current existing output controls and2-item history list; current/history navigation and return to Canvas were observed. Code initially showed a loading empty state, then originalTest222/alicegame projects and deepseek-flash/model default loaded and matched the pre-update state. No generation, payment or configuration save was triggered.
- Native screenshot tool returned stale module-home pixels while AX correctly tracked routes/content. Those images are retained as diagnostic evidence, not claimed as Canvas visual acceptance or native expand/resizing proof. Native acceptance uses actual AX; controlled screenshot/layout/keyboard/pointer/compact/expand regressions provide visual/interaction evidence. All actual receipts/logs remain in v2/evidence.
Follow-ups
- Earlier screen locks and stale AX/screenshot mismatch delayed safe restart. A fresh root quit guard was created only after normal native Cmd+Q exited oldMain12660; activate-files selected the new immutable runtime, and its exact native launcher was opened through CUA. Authentication before is unknown; after user login it is authenticated. The finalizer correctly records current login success without falsely claiming automatic restoration. No credential or profile-file contents were read.
- Current release has no outstanding product/update verification. Retire only this clean managed linked worktree through the bundled task_context.py after its final record is committed/pushed. Never delete the stable Renderer origin as an obsolete worktree, or remove unrelated worktrees/primary dirty documentation. Keep both immutable prepared stages, original shell and effective old Main/Renderer fallbacks.
Promotion Candidates
- Target: Canvas presentation summary in current-state / ADR-007. Proposal: retain the sole cloud-owned Living Form/generation contract while showing its editable card in the works pane with remembered split/compact tabs and output preview. Evidence: implementation, focused/combined regressions, controlled screenshots and native AX. Future impact: keep drafts mounted and avoid fixed narrow result rails. No authority conflict; presentation was user approved. Canonical promotion remains serialized integration work.
- Target: runtime release verification guidance. Proposal: distinguish observed account identity from valid authentication, derive before/after login metadata from native evidence, and keep immutable runtime artifacts independent of source worktrees. Evidence: explicit login expiry/manual login and v2 finalizer state matrix. Future impact: avoid false restored-login receipts and unsafe source cleanup. No canonical/skill change is made by this feature task.