6.2 KiB
6.2 KiB
Task: Persist and restore existing project work without a model
Identity
- Task ID: 20261014-work-entry-restore-91c7e6a2
- Mode: Feature
- Branch: codex/20261014-work-entry-restore-91c7e6a2-work-entry-restore
- Worktree: /Users/chillishark/Makelore 麦洛/.codex-worktrees/makelore/20261014-work-entry-restore-91c7e6a2
- Base commit:
4eb3efa3d1 - Owner: codex
- Status: Implementing
Scope
- Implement the approved project-owned work entry: persist verified address/launch method, reuse healthy services after Main restart, restart recognizable existing Vite/static work without a model, and show specific recovery choices without implicit new conversations. Validate and update the exact current temporary application.
Intent And Constraints
- User explicitly authorized the preceding product proposal and asks to communicate in product language throughout this chat.
- Project Context Loaded / Concurrent and Planning Gates Passed: identity/start/status match feature mode, branch/worktree/base
4eb3efa(the exact current Canvas combined runtime). Official project-docs check passed. Read entry/planning/memory indexes, own task, positioning, integrated state, decisions, architecture/module/data-flow, domain rules, success criteria and evidence/reflection/commitment indexes. All 60 peer task records were read-only reviewed for Scope/Intent/Promotion; diagnosis/empty-work/Canvas/trial/sidebar peers have no unresolved semantic conflict. Primary and other worktrees remain untouched. - Project goal: project-scoped creative client; Main owns file/runtime/browser/network authority. Preserve
.makelore/project.json, login, existing projects/conversations/drafts, Canvas/Agents and combined Renderer features. - Active task scope: preview persistence, deterministic existing Vite/static launch, explicit helper fallback, product-facing failure recovery, tests and reversible exact-baseline trial update. Source modules: work-preview, agent-browser route, a project work-entry store/launcher, use-work-preview/recovery contracts.
- Relevant decision: truly empty projects stay local and never create conversations or send model requests. Known page restore must remain project-bound, loopback-only, bounded, validated and serialized. Unknown launch methods use explicit assistant help rather than arbitrary command execution. No remote publish/deploy/merge/push or unrelated cleanup.
- Unknown: existing projects have no stored entry until this update discovers or confirms their first page; infer only bounded unambiguous local Vite/static candidates. Exact runtime source commit is newer than main, so this isolated implementation starts from that runtime commit.
Outcome
- Implemented project work-entry persistence, deterministic Vite/static startup, content/project matching before address reuse, bounded legacy browser-receipt recovery without Pi startup, and explicit assistant opt-in with domain-specific error copy.
- Preserve manual opens across slow health probes/local startup; serialize project checks and metadata writes; retain successful newly started server addresses when project selection changes; stop only unused app-owned children superseded by another server.
- Imported only currently activated product deltas from sidebar sources 8cd7b597/14fcea389/cca23df7 and the later active Renderer
d0451e9a, preserving footer placement, WeChat status copy and default expanded module sidebar. A three-line ModuleSelection edit appeared concurrently in this owned checkout; its bytes were independently confirmed identical to the current activatedd0451e9asource before inclusion, and were never reset/stashed or guessed. Peer source records stay read-only. This is preservation of the latest trial baseline, not an additional sidebar redesign. - Exact production build and isolated real Electron full-restart/stopped-service/native-render acceptance passed. Current temporary-app activation and actual Alice acceptance pending.
Verification
- 134 focused tests in 6 files passed after root integration; includes real Vite/static launch, resolved base configuration, fresh store reload, imported-folder metadata creation, content/port ownership, explicit helper selection, project switching and slow manual supersession.
- Standard typecheck, changed-file ESLint, git diff --check passed. Independent review reproduced races and a Vite base issue before correction; final root tests cover those corrections.
- Final exact production build from product commit
0f26b6dpassed. Isolated Electron acceptance 1/1 passed: real Main quit/relaunch, persisted URL reuse, controlled original service stop, real app-owned static restart and native HTML rendering, with unchanged conversation list and no model session. Fixture guest account uses actual native presentation route rather than fabricating cloud login; actual guarded Code UI is verified on the existing trial below. - Full normal unit suite: 297 files passed, 3333 tests passed/3 skipped; 8 failures in 3 unrelated existing setup/cloud-knowledge/design-image-preview files. Exact previous-renderer baseline
14fcea389reproduced all same 8 failures; none was introduced by this task. Separate pressure test passed 1/1 because the normal script stops at failed first phase. - Early isolated Electron attempts exposed imported metadata creation and fixture activity/viewport setup gaps, which were corrected. No real account, model, game source or cloud state was mutated by tests.
Follow-ups
- Activate and verify the exact tested candidate in the current temporary app, with fresh predecessor pointer/link and saved/idle checks.
Promotion Candidates
- Target: integrated Code work-preview architecture/domain and current-state at serialized integration. Proposal: project-owned persisted confirmed entry and constrained launch recipes; healthy local restore/start independent of selected model, no implicit conversation, explicit helper fallback. Evidence: user-approved product proposal and this implementation/tests. Future impact: app quit/update restart and stopped local services restore existing works without model dependency. Semantic conflicts: supersedes old automatic model action on missing URL; preserves the accepted empty-project local state. Human confirmation: already supplied by user; no additional product approval required.