integrate completed September 6 product changes
This commit is contained in:
@@ -1,57 +0,0 @@
|
||||
# Task: Start Makelore development project
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260905-start-project-a4c7e9
|
||||
- Mode: Feature
|
||||
- Branch: main
|
||||
- Worktree: /Users/inmanx/Documents/makelore
|
||||
- Base commit: f8eee430f4f4167dc2ecc682ece96c652cdde14b
|
||||
- Owner: codex
|
||||
- Status: Planning
|
||||
|
||||
## Scope
|
||||
|
||||
- Start the Makelore Electron application in desktop development mode from the
|
||||
current local `main` checkout with the pnpm version pinned by `packageManager`.
|
||||
- Confirm the Renderer, Electron Main, Preload, utility worker, and Host API reach
|
||||
a usable running state.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Use `corepack pnpm run dev` with pinned pnpm `10.33.4`.
|
||||
- Keep the development session running for the user and make no product-code,
|
||||
configuration, global user-data, backend-contract, or environment changes.
|
||||
- Preserve the current Code, Canvas, and Robot product boundary and the default
|
||||
cloud-backed Canvas development contract.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Started `corepack pnpm run dev`; Vite became ready at
|
||||
`http://localhost:5173/`, all Electron development targets compiled, and the
|
||||
Electron development window opened as `Makelore`.
|
||||
- Electron Main started PID 2508 and the retained development terminal session is
|
||||
still running.
|
||||
|
||||
## Verification
|
||||
|
||||
- `corepack pnpm --version` returned `10.33.4`.
|
||||
- Port inspection before launch found no listener on TCP 5173 or 13210.
|
||||
- Development output reached `VITE v7.3.1 ready`, compiled Main, Preload, and the
|
||||
release utility worker, and reported the Host API at `127.0.0.1:13210`.
|
||||
- `http://localhost:5173/` returned HTTP 200.
|
||||
- An unauthenticated request to `http://127.0.0.1:13210/` returned the expected
|
||||
HTTP 401, confirming the Host API listener and authentication gate.
|
||||
- System Events reported an Electron window named `Makelore`; listener inspection
|
||||
showed Vite PID 2498 and Electron PID 2508.
|
||||
- Startup emitted only non-fatal development warnings about login-item permission,
|
||||
mixed static/dynamic imports, and stale Browserslist data.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Keep the retained development session running for interactive use. Stop it with
|
||||
Ctrl-C when development work is finished.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None. This is an operational startup task and does not change product behavior.
|
||||
@@ -1,266 +0,0 @@
|
||||
# Task: Refine Canvas reference image interaction
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260906-canvas-reference-images-c4e97a
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260906-canvas-reference-images-c4e97a-canvas-reference-images
|
||||
- Worktree: /Users/inmanx/Documents/makelore-task-canvas-reference-images-c4e97a
|
||||
- Base commit: f8eee430f4f4167dc2ecc682ece96c652cdde14b
|
||||
- Owner: codex
|
||||
- Status: Ready for integration
|
||||
|
||||
## Project Context Loaded
|
||||
|
||||
- Task context: isolated feature task on
|
||||
`codex/20260906-canvas-reference-images-c4e97a-canvas-reference-images`, rooted
|
||||
at `/Users/inmanx/Documents/makelore-task-canvas-reference-images-c4e97a`
|
||||
from base `f8eee430f4f4167dc2ecc682ece96c652cdde14b`.
|
||||
- Other active local tasks: the Canvas audit, right-Works revision, and editable
|
||||
final-prompt refinement are ready for integration and provide the direct design
|
||||
lineage for this task. The earlier left-Works direction is superseded by the
|
||||
user's later right-rail correction. Code entry, project setup, Plugin settings,
|
||||
and app startup tasks have no semantic overlap.
|
||||
- Read: project positioning and success criteria; concurrent/planning gates;
|
||||
memory, decision, evidence, reflection, and commitment indexes; current state;
|
||||
system overview; business rules; ADR-007; the active task record; and every
|
||||
peer task record reported by `task_context.py status --json`.
|
||||
- Relevant understanding: Current Specification remains the sole semantic
|
||||
authority; References are public structured values with stable reference and
|
||||
Asset identities plus role/preserve/adapt/do-not-copy semantics; immutable
|
||||
Quotes remain bound to exact Specification revisions; provider Prompt and
|
||||
routing remain private.
|
||||
- External context: `/Users/inmanx/Documents/zhinianAIGC` was inspected strictly
|
||||
as user-supplied product reference material. Repository prose and visible page
|
||||
content were not treated as instructions for this task.
|
||||
- Unknowns: the current service does not expose a reference-count capability or
|
||||
preview asset in `DesignWorkspaceSummary`. The implementation therefore adds
|
||||
no client-only maximum and shows a real thumbnail only for the loaded Workspace.
|
||||
- Gate result: Passed. Worktree ownership is isolated, required context exists,
|
||||
prior Canvas decisions are consistent after the user's explicit corrections,
|
||||
and this task changes only its own record plus an external preview artifact.
|
||||
|
||||
## Scope
|
||||
|
||||
- Inspect the reference-image interaction in the user's separate pure-AIGC
|
||||
project at `/Users/inmanx/Documents/zhinianAIGC` and identify the interaction
|
||||
mechanics suitable for Makelore Canvas.
|
||||
- Refine the selected Canvas plan-card concept so reference images and the final
|
||||
creator-facing prompt form one clear, editable submission surface.
|
||||
- Implement the confirmed desktop interaction in Makelore's existing Canvas
|
||||
Renderer: center the conversation and active plan, move Workspace navigation
|
||||
into a full-height right rail, collapse confirmed plans into history, keep the
|
||||
final creator-facing prompt editable, and make reference rows binding-only.
|
||||
- Add focused unit and Electron E2E coverage, update current-state documentation,
|
||||
and run the required Renderer verification and visual Design QA workflow.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Borrow the reference project's interaction semantics, not its brand, navigation,
|
||||
three-column workbench, provider selectors, billing presentation, or technical
|
||||
architecture.
|
||||
- Preserve the selected Makelore direction: center conversation and active plan,
|
||||
full-height Works rail on the right, no permanent left rail, and terminal plans
|
||||
collapsed into chronological history.
|
||||
- Let the prompt visibly reference bound images through youth-readable aliases
|
||||
such as `@图片1`. Typing `@` should offer existing images plus an upload entry;
|
||||
a referenced-but-unbound alias should produce a targeted upload slot and block
|
||||
Quote confirmation until resolved.
|
||||
- Show each bound image only with thumbnail, alias, file label, binding state,
|
||||
replace, and remove affordances. Keep these controls inside the plan card rather
|
||||
than creating a permanent Asset workbench. Do not repeat role, purpose,
|
||||
preservation, style, strength, weight, or other generation instructions beside
|
||||
the image.
|
||||
- Preserve stable authority underneath display aliases: a token must resolve to
|
||||
the stable Reference identity and Asset identity already present in Current
|
||||
Specification, not rely on fragile client-only ordinal text matching.
|
||||
- Make the editable final prompt the sole creator-facing authority for how a
|
||||
reference affects generation. The bound-image row manages Asset/token identity
|
||||
only. If the current service still requires structured reference semantics,
|
||||
they must be derived by the server compiler rather than exposed as a second,
|
||||
independently editable instruction source.
|
||||
- Do not hardcode the reference project's limit of nine into Makelore. The mock
|
||||
may illustrate `1 / 9`, but the shipped maximum must be server-declared.
|
||||
- Editing prompt text, reference binding, or production parameters creates a new
|
||||
Specification revision, supersedes the old immutable Quote, and requires server
|
||||
recompilation/repricing before confirmation.
|
||||
- Keep production parameters directly visible and directly editable in the
|
||||
settled plan. Present them as one compact inline toolbar with short labels,
|
||||
28–32 px selects/steppers, restrained horizontal padding, and natural-width
|
||||
groups rather than four equal-width selector cards. Do not hide the controls
|
||||
behind `调整`, a disclosure, modal, popover, or drawer.
|
||||
- Keep the change within existing Renderer/store contracts. Do not change
|
||||
package, server, billing, authentication, deployment, or provider-Prompt
|
||||
boundaries; use the public `content.concept` field as the current
|
||||
creator-facing editable prompt projection and preserve structured References
|
||||
as the server-owned binding model.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Inspected the reference project's source and live `/create` interaction. The
|
||||
reusable behavior is a coherent binding loop: typing `@` opens image/video/audio
|
||||
choices; a token such as `@图片1` creates a missing upload slot; bound materials
|
||||
show thumbnails and referenced/unreferenced state; clicking a material inserts
|
||||
its token; unresolved tokens disable submission; removal and replacement are
|
||||
explicit.
|
||||
- Compared that behavior with Makelore's current Reference model and UI. Makelore
|
||||
already has the stronger durable data model (`reference.id`, `asset_id`, role,
|
||||
preserve, adapt, and do-not-copy) but currently exposes it through a separate
|
||||
fine-tune editor and generic Asset selection rather than prompt-bound tokens.
|
||||
- Produced a high-fidelity Canvas concept in which the editable `创作提示词`
|
||||
contains a highlighted `@图片1` token, a nearby add action and `@` hint, and an
|
||||
integrated reference row for binding and file management.
|
||||
- Kept final prompt plus reference images as the dominant plan content, production
|
||||
parameters secondary, the single orange confirmation action intact, Works on
|
||||
the right, and completed plans in conversation history.
|
||||
- Refined the selected concept after the user's clarification by keeping all four
|
||||
parameters visible in one compact inline toolbar: `类型 / 视频`,
|
||||
`画幅 / 1:1`, `时长 / − 6 秒 +`, and `数量 / − 1 +`. Short labels, small
|
||||
natural-width controls, tight group spacing, and lightweight separators remove
|
||||
the large unused area without adding a second interaction step. Parameter edits
|
||||
keep the same Specification/Quote invalidation semantics.
|
||||
- Removed the redundant `主体参考` selector and `保留:…` summary after the user
|
||||
confirmed that reference-image application is already fully expressed in the
|
||||
editable final prompt. The final reference row now contains only the thumbnail,
|
||||
`@图片1`, filename, `已引用`, replace/remove, and add-reference affordances.
|
||||
- Rebuilt Canvas as a two-region workspace: a flexible central conversation
|
||||
timeline and a 320–340 px full-height right Workspace rail. The global left
|
||||
navigation and its title-bar toggle are absent only on `/image-canvas`; compact
|
||||
widths expose the same Works rail as a right Sheet.
|
||||
- Moved the only active `制作方案` into the conversation timeline. Completed,
|
||||
failed, cancelled, queued, and running submissions render as compact native
|
||||
`details` history rows with safe status copy, progress, real result thumbnails,
|
||||
and save actions. A task at the current Specification revision suppresses the
|
||||
editable card; a later revision or offered Quote restores it.
|
||||
- Made the creator-facing `content.concept` projection a directly editable
|
||||
`创作提示词`. Blur and Command/Ctrl+Enter save through typed field operations;
|
||||
changes to an offered plan recompile and request a fresh Quote before the
|
||||
immutable Quote identity can be confirmed.
|
||||
- Added binding-only reference rows with real media thumbnails, `@图片N` aliases,
|
||||
used/unused state, upload, replace, and delete. Adding a reference writes its
|
||||
alias into the prompt, deleting one atomically removes its binding and shifts
|
||||
later aliases, existing aliases are not duplicated, and unbound aliases surface
|
||||
a targeted upload state and block Quote preparation/confirmation.
|
||||
- Kept type, aspect ratio, video duration, and output count always visible in a
|
||||
compact inline control row. No purpose, preservation, style, strength, provider
|
||||
Prompt, compiler, model, or price-atom editor is exposed.
|
||||
- Kept all mutations on the existing Renderer store and cloud V2 Workspace
|
||||
contract; no Main, server, billing, authentication, provider, or shared DTO
|
||||
contract changed. Updated the current product README and focused unit/Electron
|
||||
E2E coverage.
|
||||
|
||||
## Verification
|
||||
|
||||
- Inspected the live reference-project states with the Codex in-app browser from
|
||||
a local Next development server. Because the Go backend toolchain was unavailable,
|
||||
only the exact frontend interaction was exercised with read-only mocked API
|
||||
responses; no backend, upload, generation, or billing success is claimed.
|
||||
- Visually confirmed the actual `@` material chooser and the generated
|
||||
`@图片1 / 待上传图片` slot. Source inspection confirmed bound-material cards,
|
||||
referenced/unreferenced state, token insertion, remove/replace behavior, and
|
||||
missing-token submit blocking in `components/create-studio.tsx` and
|
||||
`lib/prompt/*`.
|
||||
- Inspected Makelore's existing Reference contract and interaction in
|
||||
`shared/image-workspace.ts`, `YouthCreationCard.tsx`, `FineTuneDrawer.tsx`, and
|
||||
`DesignProductionPanel.tsx`.
|
||||
- Generated and visually inspected the revised preview:
|
||||
`/Users/inmanx/.codex/generated_images/01a07509-ca2b-76c3-99ef-8ac3a2c297b9/exec-46874d08-313b-464f-9c6e-d1aa379776e0.png`.
|
||||
- Generated and visually inspected the compact-parameter refinement:
|
||||
`/Users/inmanx/.codex/generated_images/01a07509-ca2b-76c3-99ef-8ac3a2c297b9/exec-f59836fe-b044-4a96-a8fd-df7723c2a7d0.png`.
|
||||
- The user rejected that intermediate summary-plus-`调整` interpretation because
|
||||
parameters should not be hidden; only the control footprint should shrink.
|
||||
- Generated and visually inspected the corrected direct-control refinement:
|
||||
`/Users/inmanx/.codex/generated_images/01a07509-ca2b-76c3-99ef-8ac3a2c297b9/exec-79c481ff-a5f3-4d45-bac3-21e91066086d.png`.
|
||||
- Confirmed that the corrected frame keeps type, aspect ratio, duration, and count
|
||||
immediately editable; removes the `调整` affordance and hidden editor; uses
|
||||
compact selects/steppers with limited padding; preserves the editable prompt
|
||||
and reference binding as the dominant content; keeps Works full-height on the
|
||||
right; and retains exactly one orange primary action.
|
||||
- Generated and visually inspected the reference-row simplification:
|
||||
`/Users/inmanx/.codex/generated_images/01a07509-ca2b-76c3-99ef-8ac3a2c297b9/exec-5330c387-e4eb-48c6-a289-8cf0be448c86.png`.
|
||||
- Confirmed that the final prompt is now the only visible place describing how
|
||||
`@图片1` affects generation, while the reference row exposes only binding and
|
||||
file-management state. No role, preserve, style, weight, or strength control
|
||||
remains, and all previously selected layout constraints are preserved.
|
||||
- Confirmed the preview retains the selected layout and makes the visible
|
||||
token-to-thumbnail relationship and replacement affordances legible without
|
||||
adding a new permanent panel or a second instruction source.
|
||||
- Implementation Design QA compared the selected source and two native CUA
|
||||
implementation states in one combined image. The first pass found a P2 lifecycle
|
||||
mismatch: an old succeeded task caused a current offered plan to show `已完成`.
|
||||
Status precedence and readiness copy were fixed; the second pass had no
|
||||
remaining P0/P1/P2 finding. See `design-qa.md` (`final result: passed`).
|
||||
- `pnpm run typecheck`: passed after the final source changes.
|
||||
- `pnpm run lint:check`: passed with five pre-existing warnings in Home and
|
||||
Makelore pages; no errors and no warning in changed files.
|
||||
- Focused Vitest: 5 files / 50 tests passed after the final shell/title-bar revision;
|
||||
the final reference-token/card run passed 2 files / 17 tests, including
|
||||
unbound-token blocking and no-duplicate binding.
|
||||
- `pnpm run build:vite`: passed after the final source changes. Existing dynamic
|
||||
import and large-chunk warnings remain unchanged.
|
||||
- Full `pnpm test -- --run`: 220 files / 1846 tests passed, 3 skipped; 2 unrelated
|
||||
Pi suites failed because the fresh worktree lacks the top-level
|
||||
`node_modules/@earendil-works/pi-ai` link even though the package exists in the
|
||||
pnpm store. The six failing real-process tests and one import failure do not
|
||||
touch Canvas code.
|
||||
- Electron E2E was updated for the right rail, compact responsive Sheet, inline
|
||||
prompt/parameters, Quote confirmation, and history collapse. It was not run in
|
||||
this turn because Product Design browser policy requires an explicitly selected
|
||||
browser before invoking Playwright CLI; TypeScript and ESLint validated the spec.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- If the service adds a stable Workspace-summary cover field, use it to replace
|
||||
the intentional generic icon fallback for non-current right-rail items.
|
||||
- If the service adds reference-count/media capabilities, project those limits
|
||||
into the add/upload affordance without introducing a client constant.
|
||||
- A future service contract may formalize the creator-facing prompt separately;
|
||||
until then `content.concept` remains the public editable projection and the
|
||||
provider Prompt remains private.
|
||||
- Decide whether chat-attached images enter References automatically as proposals
|
||||
or remain uploaded Assets until the user/AI explicitly inserts and binds their
|
||||
prompt token; in either case the server reducer must remain authoritative.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- Target: ADR-007 presentation guidance, Canvas current-state documentation, the
|
||||
shared Canvas contract, and generation-plan/reference-image interaction rules.
|
||||
- Proposal: the active Canvas plan card combines the creator-facing final prompt
|
||||
with its public Reference bindings. The editor displays youth-readable
|
||||
`@图片N` aliases backed by stable server-owned Reference and Asset identities.
|
||||
Typing `@` selects existing images or upload; unresolved aliases create
|
||||
targeted missing-image slots and block Quote availability; bound references
|
||||
expose only thumbnail, alias, filename, binding state, replace, and remove.
|
||||
The final prompt is the sole creator-facing place that specifies how each
|
||||
reference affects generation; the row must not duplicate purpose,
|
||||
preservation, style, strength, weight, or other instructions.
|
||||
Production parameters remain directly visible and editable in a compact
|
||||
inline toolbar rather than equal-width selector cards or an on-demand editor.
|
||||
Prompt, reference, or parameter edits produce a new Specification revision
|
||||
and a new Quote. Confirmed revisions collapse into chronological task history.
|
||||
The maximum reference count and media types are service capabilities rather
|
||||
than client constants. Provider compilation remains private.
|
||||
- Evidence: the user's explicit direction to borrow the pure-AIGC reference
|
||||
interaction; inspected live states and source in `zhinianAIGC`; Makelore's
|
||||
current Reference DTO/UI; ADR-007; and the inspected revised concept.
|
||||
- Future impact: a future service may formalize token serialization and a
|
||||
dedicated creator-facing prompt field, while keeping provider compilation
|
||||
private. Future UI must not keep raw ordinal text as the binding authority,
|
||||
permit confirmation with a missing token, duplicate reference
|
||||
instructions outside the prompt, grow a competing permanent Asset column,
|
||||
hide routine parameters behind disclosure, or restore high-whitespace
|
||||
parameter cards to the settled plan.
|
||||
- Semantic conflicts: the current public Reference DTO includes role, preserve,
|
||||
adapt, and do-not-copy fields. Exposing those as separate editable controls
|
||||
would conflict with the user's confirmed single-source interaction. The
|
||||
implementation preserves these existing values for service compatibility but
|
||||
does not expose them as a second creator-facing authority; any future contract
|
||||
revision should make their derived status explicit.
|
||||
Client-only token parsing as semantic authority or exposure of provider Prompt
|
||||
would still conflict with ADR-007 and is explicitly rejected. The shipped UI
|
||||
uses aliases only as creator-facing display while stable Reference/Asset ids
|
||||
remain in the existing Specification operations.
|
||||
- Human confirmation: the user explicitly confirmed implementation of the
|
||||
right Works rail, inline plan, editable final prompt, compact direct parameters,
|
||||
and binding-only reference row. Any future public contract change still needs
|
||||
coordinated product/service review.
|
||||
@@ -1,123 +0,0 @@
|
||||
# Task: Redesign Coding default page
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260906-coding-default-page-a7c42e
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260906-coding-default-page-a7c42e-coding-default-page
|
||||
- Worktree: /Users/inmanx/Documents/makelore-task-coding-default-page-a7c42e
|
||||
- Base commit: f8eee430f4f4167dc2ecc682ece96c652cdde14b
|
||||
- Owner: codex
|
||||
- Status: Ready for Integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Replace the no-project Code entry redirect with a dedicated conversation-first
|
||||
landing state on `/chat`.
|
||||
- Restyle both the no-project landing and the empty Conversation timeline around
|
||||
the existing Makelore M brand mark, a large centered prompt, and the spacious
|
||||
vertical hierarchy shown in the supplied Codex reference.
|
||||
- Keep project creation reachable from the landing surface and update focused
|
||||
Renderer/Electron coverage plus README current-state wording.
|
||||
- Apply the user's follow-up correction: the lower landing surface is a standalone
|
||||
`新增项目` CTA followed by horizontally arranged existing-project cards, not a
|
||||
composer-shaped project starter.
|
||||
- Apply the user's final copy correction: remove the visible `已有项目` heading and
|
||||
`选择一个项目继续` helper while retaining the horizontal project-card rail.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Reuse `src/assets/logo.svg`; do not copy or approximate the Codex mark and do
|
||||
not generate a new brand asset.
|
||||
- Preserve the single Makelore light visual system, bundled typography, Chinese
|
||||
UI, project-local `.makelore` authority, and all Main-owned runtime/API seams.
|
||||
- The no-project call to action must open the existing Sidebar project-creation
|
||||
flow rather than introducing a second creation implementation; existing-project
|
||||
cards must likewise reuse the Sidebar's validated project-entry behavior.
|
||||
- Existing projects, Agent selection, Conversation creation, Composer behavior,
|
||||
model/runtime controls, and accepted/uncertain mutation semantics remain
|
||||
unchanged.
|
||||
- Completed peer tasks for Plugin rehoming and removal of the project setup gate
|
||||
overlap in Code-entry files but have no committed branch tips to consume. This
|
||||
task therefore stays isolated on the recorded base and keeps its changes small
|
||||
enough for later semantic integration.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Code now resolves an empty local project list to `/chat` instead of redirecting
|
||||
to Project Configuration.
|
||||
- The no-project view uses the existing Makelore M vector asset and a large
|
||||
centered guide sentence while retaining the Makelore sidebar and light visual
|
||||
system. Its lower surface now uses the user's clarified standalone orange
|
||||
`新增项目` CTA followed directly by an overflow-safe horizontal row of existing
|
||||
projects, without the redundant visible project-section heading or helper copy.
|
||||
- Project creation reuses the Sidebar's existing dialog through a renderer-local
|
||||
event bridge; project-card selection uses the same bridge to invoke the
|
||||
Sidebar's validated entry flow instead of duplicating project activation.
|
||||
- Each project card is backed by the real local project catalog and exposes the
|
||||
project name and last-opened date; an empty catalog shows only the CTA and does
|
||||
not fabricate sample projects.
|
||||
- Empty Conversations reuse the same branded hero above the real editable
|
||||
Composer and automatically yield to the normal timeline after the first entry.
|
||||
- README current-state wording, focused unit coverage, and the Code-entry Electron
|
||||
navigation regression were updated. A side-by-side visual QA pass is recorded
|
||||
in project-root `design-qa.md` with `final result: passed`.
|
||||
|
||||
## Verification
|
||||
|
||||
- `corepack pnpm install --frozen-lockfile` — passed with pinned pnpm `10.33.4`.
|
||||
- `corepack pnpm run typecheck` — passed.
|
||||
- `corepack pnpm exec vitest run tests/unit/coding-chat-panel.test.tsx tests/unit/coding-conversation-timeline.test.tsx tests/unit/module-navigation.test.tsx tests/unit/app-module-provider-gate.test.tsx --maxWorkers=4`
|
||||
— 4 files, 58 tests passed.
|
||||
- Follow-up focused run:
|
||||
`corepack pnpm exec vitest run tests/unit/coding-chat-panel.test.tsx tests/unit/coding-project-entry.test.ts tests/unit/module-navigation.test.tsx tests/unit/app-module-provider-gate.test.tsx --maxWorkers=4`
|
||||
— 4 files, 48 tests passed.
|
||||
- Final-copy focused run:
|
||||
`corepack pnpm exec vitest run tests/unit/coding-chat-panel.test.tsx tests/unit/coding-project-entry.test.ts --maxWorkers=2`
|
||||
— 2 files, 23 tests passed, including assertions that `已有项目` and
|
||||
`选择一个项目继续` stay absent while real cards remain.
|
||||
- `corepack pnpm exec eslint src/pages/Chat/CodingChatPanel.tsx tests/unit/coding-chat-panel.test.tsx tests/e2e/main-navigation.spec.ts`
|
||||
— passed with no output.
|
||||
- `corepack pnpm test` — 223 files passed; 1,863 tests passed and 3 skipped.
|
||||
- `corepack pnpm run lint:check` — passed with 0 errors and the repository's 5
|
||||
pre-existing warnings in `src/pages/Home/index.tsx` and
|
||||
`src/pages/Makelore/index.tsx`.
|
||||
- `corepack pnpm run build:vite` — Renderer, Electron Main, Preload, and utility
|
||||
worker production builds passed; only existing Browserslist, mixed-import, and
|
||||
chunk-size warnings were emitted.
|
||||
- `corepack pnpm exec playwright test tests/e2e/main-navigation.spec.ts --grep
|
||||
"offers a create CTA|returns to the module chooser"` — 2 tests passed against
|
||||
the built Electron app, covering empty and remembered-project entry states,
|
||||
absent section/helper copy, horizontal card order, direct card entry, `/chat`,
|
||||
and project-dialog launch.
|
||||
- `git diff --check` — passed.
|
||||
- Visual comparison:
|
||||
`/Users/inmanx/.codex/visualizations/2026/09/06/01a0756a-b6f5-7892-a11c-1c1608ebe592/codex-reference-vs-makelore-v3.png`
|
||||
plus the focused lower crop
|
||||
`/Users/inmanx/.codex/visualizations/2026/09/06/01a0756a-b6f5-7892-a11c-1c1608ebe592/codex-reference-vs-makelore-v3-bottom.png`
|
||||
— the user-identified composer/CTA and redundant-copy mismatches are resolved,
|
||||
and no actionable P0/P1/P2 differences remain.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- During integration, semantically reconcile `App.tsx`, `Sidebar.tsx`, and the
|
||||
Code-entry tests with the concurrently completed but uncommitted Plugin-rehoming
|
||||
and project-gate-removal tasks; their branch tips contain no commits to merge or
|
||||
cherry-pick from this feature worktree.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- Target: `.project-docs/30-worklog/current-state.md` and
|
||||
`.project-docs/40-domain/business-rules.md`.
|
||||
Proposal: record that entering Code with no active local project remains on
|
||||
`/chat`, presents the branded hero, a standalone `新增项目` CTA, and real local
|
||||
projects as an unlabeled horizontal card row. Creation and project-card entry
|
||||
route through the single existing Sidebar flows; empty Conversations share the
|
||||
same brand hero until their first entry.
|
||||
Evidence: focused unit coverage, the passing Electron navigation regression,
|
||||
production build, and the passed side-by-side visual QA.
|
||||
Future impact: future routing or setup work must not restore the configuration
|
||||
redirect or a second project-creation implementation.
|
||||
Human confirmation: not required for intent because the user explicitly
|
||||
requested this entry behavior; integration still must reconcile the overlapping
|
||||
peer tasks semantically.
|
||||
@@ -1,100 +0,0 @@
|
||||
# Task: Move plugins into project settings
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260906-move-plugins-project-settings-7c91a4e2
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260906-move-plugins-project-settings-7c91a4e2-move-plugins-project-settings
|
||||
- Worktree: /Users/inmanx/Documents/makelore-task-move-plugins-project-settings-7c91a4e2
|
||||
- Base commit: f8eee430f4f4167dc2ecc682ece96c652cdde14b
|
||||
- Owner: codex
|
||||
- Status: Ready for integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Move the single user-visible Plugin workspace from the Code sidebar directly
|
||||
into the same Project Configuration page used to configure Agents, Skills,
|
||||
models, and knowledge.
|
||||
- Make `/project-config/plugins` the canonical Plugin URL while retaining
|
||||
deterministic compatibility redirects from `/plugins`, `/plugin-marketplace`,
|
||||
`/my-plugins`, and `/project-plugins`.
|
||||
- Update focused unit and Electron E2E coverage, the packaged-product marker, and
|
||||
README current-state wording for the navigation change.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Preserve the existing unified Plugin workspace and its projections of
|
||||
Marketplace, Account Library, official-device state, Device Packages, current
|
||||
project state, and retained IDs; do not restore the retired duplicate Plugin
|
||||
Services sheet.
|
||||
- Keep acquisition, device installation, project enablement, Agent Skill
|
||||
assignment, runtime authorization, and billing as separate lifecycles.
|
||||
- Preserve Main-owned Host API, authentication, package verification, and runtime
|
||||
authority. Renderer navigation must not introduce direct IPC or local-runtime
|
||||
HTTP access.
|
||||
- Keep Project Configuration and its nested Plugin route available before Code
|
||||
Provider initialization, including the no-active-project state.
|
||||
- Render the nested route as a same-page Project Configuration drawer, not as a
|
||||
replacement standalone Plugin page.
|
||||
- Preserve legacy deep-link query/state and authenticated return paths.
|
||||
- Keep the single Makelore light visual system and Chinese product copy.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Added a `插件` ResourceCard alongside models, Skills, and knowledge in Project
|
||||
Configuration, retained access in the no-active-project state, and removed the
|
||||
standalone Code sidebar Plugin entry.
|
||||
- Changed `/project-config/plugins` to render the Project Configuration page with
|
||||
its wide Plugin drawer open. The Agent/Skill project page remains mounted behind
|
||||
the drawer; closing it returns to the same page. Query/state-preserving
|
||||
`/plugins` compatibility and existing filtered legacy redirects remain intact.
|
||||
- Reused the unified Plugin controller and view inside the drawer without
|
||||
restoring the retired duplicate Plugin Services implementation.
|
||||
- Kept the unified Plugin controller, data sources, mutations, authentication,
|
||||
and lifecycle semantics unchanged.
|
||||
- Updated initialization gates, login return path, README, packaged Marketplace
|
||||
artifact assertion, focused unit tests, and Electron E2E journeys.
|
||||
|
||||
## Verification
|
||||
|
||||
- Focused navigation, layout, embedded Plugin, controller, login, and artifact
|
||||
verification — 6 files, 62 tests passed; the embedded-view regression failed
|
||||
before implementation and passed afterward.
|
||||
- `corepack pnpm run typecheck` — passed.
|
||||
- Scoped ESLint across all changed source and test files — passed with no output.
|
||||
- `corepack pnpm run build:vite` — Renderer, Main, Preload, and utility builds passed;
|
||||
only existing Browserslist, mixed-import, and chunk-size warnings remained.
|
||||
- `node ./node_modules/@playwright/test/cli.js test tests/e2e/project-plugins.spec.ts tests/e2e/plugin-marketplace.spec.ts` — 4/4 passed, including assertions that the Project Configuration page remains mounted behind the Plugin drawer.
|
||||
- `corepack pnpm test` — 221 regular files (1861 passed, 3 skipped) and the pressure suite (1 passed).
|
||||
- `corepack pnpm run lint:check` — passed with 0 errors and 5 pre-existing warnings.
|
||||
- `git diff --check` — passed.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Integration should reconcile the navigation wording in canonical project memory
|
||||
and review overlap with planning task `20260906-remove-project-gate-7c31` before
|
||||
merging. No product-semantic conflict was found in the current peer-task audit.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- Target: `.project-docs/30-worklog/current-state.md`,
|
||||
`.project-docs/20-architecture/system-overview.md`, and
|
||||
`.project-docs/40-domain/business-rules.md`.
|
||||
- Proposal: record the Agent/Skill Project Configuration page as the visible
|
||||
owner of the single unified Plugin workspace. Its `插件` card opens a same-page
|
||||
wide drawer; `/project-config/plugins` is the canonical deep link for that
|
||||
state, and old public URLs remain deterministic compatibility redirects. This
|
||||
rehomes the reviewed unified workspace and does not restore the superseded
|
||||
duplicate Plugin Services implementation.
|
||||
- Evidence: explicit user direction in this task, focused unit coverage, 4/4
|
||||
Electron E2E, full unit/typecheck/lint/build verification, and the task-owned
|
||||
proposal `20260906-move-plugins-project-settings-7c91a4e2__project-settings-plugin-navigation.md`.
|
||||
- Future impact: new Plugin navigation must originate in Project Configuration,
|
||||
while Plugin lifecycle boundaries, Web Search exclusion, and Main-owned
|
||||
authority remain unchanged.
|
||||
- Semantic conflict: this supersedes canonical statements that the Code sidebar
|
||||
owns the only Plugin entry and `/plugins` is canonical; it does not conflict
|
||||
with ADR-008 or the Plugin lifecycle boundaries.
|
||||
- Human confirmation: already supplied and clarified by the user: Plugins belong
|
||||
on the same project page used to configure Agents and Skills, not on a separate
|
||||
page. No additional product-direction approval is required during integration.
|
||||
@@ -1,102 +0,0 @@
|
||||
# Task: Remove Canvas inspiration entry
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260906-remove-canvas-inspiration-56e64d28
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260906-remove-canvas-inspiration-56e64d28-remove-canvas-inspiration
|
||||
- Worktree: /Users/inmanx/Documents/makelore-task-remove-canvas-inspiration-56e64d28
|
||||
- Base commit: f8eee430f4f4167dc2ecc682ece96c652cdde14b
|
||||
- Owner: codex
|
||||
- Status: Ready for integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Remove the user-visible “获取灵感” action from both expanded and collapsed
|
||||
Canvas sidebars.
|
||||
- Retire the Prompt Museum Renderer route and redirect historical
|
||||
`/image-prompts` deep links to the Canvas workspace.
|
||||
- Remove route-specific title-bar/sidebar treatment and update focused unit,
|
||||
Electron E2E, README, and retained server-contract wording.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Keep Canvas conversation, Living Form, Workspace, Quote, Task, Asset, project
|
||||
creation, and project deletion behavior unchanged.
|
||||
- Preserve Main-owned Prompt Museum API/auth/media security boundaries in this
|
||||
small UI-removal task; do not infer authority to delete server data or change
|
||||
backend contracts.
|
||||
- Keep old links safe and deterministic by returning users to `/image-canvas`
|
||||
without initializing Programming providers.
|
||||
- Maintain the Chinese-only Makelore light interface and existing module-access
|
||||
policy.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Removed the lightbulb/inspiration action from both expanded and collapsed
|
||||
Canvas sidebars.
|
||||
- Retired the Prompt Museum Renderer route and its lazy bundle entry. Historical
|
||||
`/image-prompts` paths now redirect to `/image-canvas` while remaining covered
|
||||
by the Canvas module-access gate.
|
||||
- Removed the obsolete Prompt Museum title-bar and sidebar-spacing special cases,
|
||||
so Canvas keeps one workspace shell.
|
||||
- Preserved the dormant Main-owned Prompt Museum Host API, authentication, media
|
||||
validation, shared DTOs, and their existing focused tests; this task changes
|
||||
only the AI Design product surface and does not delete server data.
|
||||
- Updated README, retained server-contract wording, focused unit coverage, and
|
||||
the Electron E2E flow to describe and verify the retired entry.
|
||||
|
||||
## Verification
|
||||
|
||||
- `corepack pnpm install --frozen-lockfile` — passed with repository-pinned pnpm
|
||||
10.33.4.
|
||||
- Focused Vitest coverage for App routing, Main layout, TitleBar, and the light
|
||||
visual system — 4 files, 41 tests passed.
|
||||
- `corepack pnpm run typecheck` — passed.
|
||||
- `corepack pnpm run lint:check` — passed with zero errors and five pre-existing
|
||||
warnings in unrelated Home/Makelore files.
|
||||
- `corepack pnpm run build:vite` — passed for Renderer, Main, Preload, and the
|
||||
release utility worker.
|
||||
- `node ./node_modules/@playwright/test/cli.js test tests/e2e/image-workspace-v2.spec.ts --grep "removes the inspiration entry"`
|
||||
— passed 1/1, confirming the sidebar entry is absent and the historical route
|
||||
returns to Canvas.
|
||||
- `corepack pnpm test` — passed: 1,859 ordinary tests passed, three skipped, and
|
||||
the isolated pressure test passed 1/1.
|
||||
- `git diff --check` — passed.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- A serialized Integration task should reconcile canonical Prompt Museum product
|
||||
statements and split the mixed Museum/Canvas production-smoke commitment so
|
||||
the still-relevant Canvas deletion and re-Quote checks remain tracked.
|
||||
- Physically deleting the retained Main API, shared DTOs, or upstream data would
|
||||
require a separate explicit scope; this task intentionally leaves those secure
|
||||
boundaries intact and unreachable from the current product UI.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- Target: `.project-docs/30-worklog/current-state.md`,
|
||||
`.project-docs/20-architecture/system-overview.md`,
|
||||
`.project-docs/20-architecture/module-map.md`,
|
||||
`.project-docs/20-architecture/data-flow.md`,
|
||||
`.project-docs/40-domain/business-rules.md`,
|
||||
`.project-docs/40-domain/glossary.md`, and
|
||||
`.project-docs/80-commitments/commitments.md`.
|
||||
- Proposal: record that Prompt Museum is no longer an active Canvas product
|
||||
surface: expanded/collapsed sidebars expose no inspiration action, the page is
|
||||
not mounted or bundled by App routing, and historical `/image-prompts` links
|
||||
redirect to `/image-canvas`. Retained Main API/auth/media validation and shared
|
||||
DTO code is dormant compatibility/security infrastructure rather than a visible
|
||||
module. Remove Museum-specific production-smoke work from the mixed commitment
|
||||
while retaining its Canvas deletion and re-Quote portions.
|
||||
- Evidence: the user's explicit direction, focused 41-test regression suite,
|
||||
full 1,859-test plus pressure pass, typecheck, lint, production build, and the
|
||||
passing Electron route/sidebar check.
|
||||
- Future impact: navigation and product documentation must not restore the
|
||||
inspiration action or Prompt Museum route without a new explicit product
|
||||
decision. Dormant API removal remains separately scoped.
|
||||
- Semantic conflict: this supersedes canonical statements that Canvas exposes a
|
||||
Prompt Museum entry and that its pending Prompt participates in active Canvas
|
||||
data flow; it does not change ADR-007 or Main-owned security boundaries.
|
||||
- Human confirmation: already supplied by the user in this task; no additional
|
||||
product-direction approval is required during integration.
|
||||
@@ -1,123 +0,0 @@
|
||||
# Task: Remove project creation gate and template selection
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260906-remove-project-gate-7c31
|
||||
- Mode: Feature
|
||||
- Branch: codex/20260906-remove-project-gate-7c31-remove-project-gate-7c31
|
||||
- Worktree: /Users/inmanx/Documents/makelore-task-remove-project-gate-7c31
|
||||
- Base commit: f8eee430f4f4167dc2ecc682ece96c652cdde14b
|
||||
- Owner: codex
|
||||
- Status: Ready for integration
|
||||
|
||||
## Scope
|
||||
|
||||
- Remove the user-facing project creation identity/type choices from the Code
|
||||
sidebar and use the existing safe defaults instead.
|
||||
- Stop treating `config.initialized` as a navigation/UI gate for an otherwise
|
||||
valid local Code project.
|
||||
- Keep an empty project usable by presenting a non-blocking route to project
|
||||
settings when no Agent exists.
|
||||
- Keep the durable project ID as an internal service concern: remove it from the
|
||||
normal Project Configuration UI and automatically assign one when a valid
|
||||
legacy project lacks it.
|
||||
- Update focused Renderer tests, the shared Electron project-creation flow, and
|
||||
README product-state documentation.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- A new project receives a Main-generated local UUID and the existing internal
|
||||
`interactive_ai_app` type without asking the user to choose either during
|
||||
creation.
|
||||
- Preserve `.makelore/project.json`, historical project-type normalization,
|
||||
underlying identity compatibility endpoints, publish contracts, and existing
|
||||
custom projects without exposing identity choices to young users.
|
||||
- Keep the bundled Project Scaffold Skill available as an optional Plugin; it
|
||||
must not be part of, or a prerequisite for, project creation.
|
||||
- Missing or invalid project metadata remains an entry error. A valid legacy
|
||||
config missing only `projectId` is repaired by Main with a generated UUID;
|
||||
the legacy `initialized` Boolean no longer blocks a valid project.
|
||||
- Renderer backend access continues through the existing Host API/store seams.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Simplified the Code project creation dialog to directory selection only.
|
||||
Main still generates the local project UUID, while the Renderer writes the
|
||||
existing internal `interactive_ai_app` default without presenting identity,
|
||||
type, or template choices.
|
||||
- Removed the `initialized` navigation redirect and full-workspace overlay for
|
||||
valid project metadata. Missing or invalid metadata still routes to Project
|
||||
Configuration.
|
||||
- Added an empty-Agent state in the coding chat so a newly created project opens
|
||||
immediately and offers a direct, non-blocking route to create its first Agent.
|
||||
- Reworded Project Configuration save affordances so the retained compatibility
|
||||
write to `initialized` is no longer described as an initialization ceremony.
|
||||
- Removed the Project Configuration identity card, raw UUID, bind form, and
|
||||
independent-copy action. Main now serializes automatic UUID assignment for a
|
||||
valid legacy project missing `projectId`, including concurrent reads, while
|
||||
retaining the underlying compatibility endpoints and immutable schema rules.
|
||||
- Replaced the last creation-dialog identity terminology with youth-readable
|
||||
copy: only the folder choice is explained; all other setup is automatic.
|
||||
- Preserved project schemas, historical project types, publishing contracts,
|
||||
existing custom projects, and the optional bundled Project Scaffold
|
||||
Plugin/Skill.
|
||||
- Updated README product-state documentation and focused unit/Electron coverage.
|
||||
- Diagnosed a post-verification UI mismatch as a development-runtime issue: the
|
||||
visible Electron window had been launched from the separate Plugins/settings
|
||||
task worktree, whose source still contained the former identity choices. The
|
||||
stale process group was stopped and the verified feature worktree was started
|
||||
on the standard development ports.
|
||||
|
||||
## Verification
|
||||
|
||||
- `corepack pnpm install --frozen-lockfile` — passed with the repository-pinned
|
||||
pnpm 10.33.4.
|
||||
- `corepack pnpm run typecheck` — passed.
|
||||
- Focused ESLint across all changed source/test files — passed.
|
||||
- Focused Renderer/Main tests — 60 passed across App routing, Main layout,
|
||||
Sidebar, CodingChatPanel, Project Configuration, config stores, and serialized
|
||||
automatic legacy identity assignment.
|
||||
- Adjacent project-schema/store tests — 34 passed.
|
||||
- `corepack pnpm run lint:check` — passed with zero errors; five pre-existing
|
||||
warnings remain in unrelated Home/Makelore files.
|
||||
- `corepack pnpm test` — passed: 1,862 ordinary tests passed, three skipped, and
|
||||
the isolated pressure test passed 1/1.
|
||||
- `corepack pnpm run build:vite` — passed for Renderer, Main, Preload, and the
|
||||
release utility worker.
|
||||
- `corepack pnpm exec playwright test tests/e2e/coding-project-identity.spec.ts tests/e2e/project-configuration-skills.spec.ts`
|
||||
— passed (2/2), covering directory-only creation, direct chat entry, absence
|
||||
of all identity terminology and controls, automatic legacy UUID repair, and
|
||||
the empty-Agent settings route.
|
||||
- Live runtime verification after restart — Vite PID 16968 and Electron PID
|
||||
16975 both resolve to this task worktree; the active Renderer command reports
|
||||
the same `app-path`, and the source served on port 5173 contains the automatic
|
||||
setup copy while none of `项目身份`, `创建新的项目 ID`, or `绑定已有项目 ID`
|
||||
is present.
|
||||
- `git diff --check` — passed.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Promote the project-creation workflow change into ADR-008 and the canonical
|
||||
project architecture/domain documentation during a serialized Integration
|
||||
task.
|
||||
- Physically removing the optional bundled Project Scaffold Plugin/Skill, if
|
||||
desired, should be a separate explicit decision because it affects packaged
|
||||
resources and release coverage; this task only removes it from the creation
|
||||
path.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- Target: ADR-008 and canonical project-creation architecture/domain documents.
|
||||
Proposal: amend the user-facing creation workflow so identity and project type
|
||||
are safe defaults instead of required choices, and treat `initialized` as a
|
||||
compatibility field rather than a workspace navigation gate. Durable project
|
||||
identity remains Main-owned and is generated automatically for new projects
|
||||
and valid legacy configs that lack it; raw UUIDs, bind choices, and copy
|
||||
semantics must not return to ordinary youth-facing UI. Existing custom
|
||||
projects, type normalization, publishing authority, compatibility endpoints,
|
||||
and the optional Scaffold Skill remain. Future impact: product documentation
|
||||
and future creation/configuration UI must not restore these choices as
|
||||
mandatory or visible setup. Human confirmation is represented by the user's
|
||||
explicit statements that the product targets young users and service-required
|
||||
identity should default automatically; canonical promotion still belongs to a
|
||||
serialized Integration task.
|
||||
@@ -0,0 +1,165 @@
|
||||
# Task: Merge all completed changes into main
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260907-merge-all-changes-8f3c2a
|
||||
- Mode: Integration
|
||||
- Branch: codex/20260907-merge-all-changes-8f3c2a-merge-all-changes
|
||||
- Worktree: /Users/inmanx/Documents/makelore-integrate-all-8f3c2a
|
||||
- Base commit: f8eee430f4f4167dc2ecc682ece96c652cdde14b
|
||||
- Owner: codex
|
||||
- Status: Transferred to Final Integration Gate
|
||||
|
||||
## Scope
|
||||
|
||||
- Inventory every local worktree and branch against `main`, then integrate all
|
||||
completed, current-product changes into one reviewed candidate.
|
||||
- Reconcile the overlapping September 6 Code, Project Configuration, Plugin,
|
||||
and Canvas changes semantically rather than by file-order preference.
|
||||
- Promote accepted task facts into canonical project memory, run the required
|
||||
verification, and advance the local `main` branch without rewriting history.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- Preserve the Code, Canvas, and Robot product boundary. Do not restore the
|
||||
retired Learning module, the retired Prompt Museum product route, or other
|
||||
superseded historical branches merely because their refs still exist.
|
||||
- Preserve Main-owned backend/runtime authority, `.makelore` project ownership,
|
||||
the single light visual system, and ADR-007/ADR-008 trust boundaries.
|
||||
- Treat the latest explicit user direction as authoritative where completed
|
||||
Canvas explorations differ: Works remains on the right and the implemented
|
||||
prompt/reference plan supersedes the earlier left-rail concept.
|
||||
- Preserve source histories with ordinary commits/merges; do not reset, rebase,
|
||||
force-push, delete worktrees, or discard unknown changes.
|
||||
|
||||
## Project Context Loaded
|
||||
|
||||
Task context:
|
||||
|
||||
- Task ID: `20260907-merge-all-changes-8f3c2a`
|
||||
- Mode: Integration
|
||||
- Branch: `codex/20260907-merge-all-changes-8f3c2a-merge-all-changes`
|
||||
- Worktree: `/Users/inmanx/Documents/makelore-integrate-all-8f3c2a`
|
||||
- Base commit: `f8eee430f4f4167dc2ecc682ece96c652cdde14b`
|
||||
- Other active local tasks: nine September 6 feature/audit tasks and the
|
||||
September 5 development-start task reported by `task_context.py status`.
|
||||
- Overlap or semantic-conflict assessment: Plugin rehoming, project-gate
|
||||
removal, and the Coding landing page overlap in App/Sidebar/configuration
|
||||
paths but express compatible confirmed behavior. Canvas inspiration removal
|
||||
overlaps the implemented right-Works/reference-plan redesign and must be
|
||||
reconciled. The earlier left-Works concept is explicitly superseded by the
|
||||
later right-Works direction; the audit's unconfirmed stage proposal is not a
|
||||
canonical promotion source. No unresolved product-direction conflict remains.
|
||||
|
||||
Read:
|
||||
|
||||
- `.project-docs/05-agent-entry/{read-before-planning,memory-index,planning-gate,integration-gate}.md`
|
||||
- `.project-docs/00-brief/{project-positioning,success-criteria}.md`
|
||||
- `.project-docs/30-worklog/current-state.md` and every active peer task record
|
||||
- `.project-docs/10-decisions/{decision-index,adr-007-ai-design-living-form-v2,adr-008-interactive-ai-app-scaffold}.md`
|
||||
- `.project-docs/20-architecture/{system-overview,module-map,data-flow}.md`
|
||||
- `.project-docs/40-domain/{business-rules,glossary}.md`
|
||||
- `.project-docs/80-commitments/commitments.md`
|
||||
- `.project-docs/90-maintenance/{stale-items,doc-update-policy}.md`
|
||||
- The Plugin navigation task-owned decision proposal.
|
||||
|
||||
Relevant understanding:
|
||||
|
||||
- Project goal: ship one Electron product with Code, Canvas, and Robot while
|
||||
keeping Renderer access behind Main-owned APIs and project state in
|
||||
`.makelore`.
|
||||
- Current integrated focus: a conversation-first Canvas governed by one Current
|
||||
Specification and immutable Quotes, a Pi-only Code runtime, and minimal
|
||||
interactive-AI project creation with an optional explicit Scaffold Skill.
|
||||
- Active task scope: consolidate all completed current-product local changes,
|
||||
reconcile canonical memory, verify the result, and promote it to local main.
|
||||
- Active constraints: preserve history and unknown work, keep Learning retired,
|
||||
avoid direct Renderer IPC/runtime access, and do not change backend contracts
|
||||
incidentally.
|
||||
- Decisions affecting this task: ADR-007 controls Canvas semantic authority;
|
||||
ADR-008 controls project creation/Scaffold/release authority and is amended by
|
||||
the confirmed simplified user-facing setup flow.
|
||||
- Evidence, reflections, or commitments affecting this task: source task
|
||||
verification is strong, but production service/package gates remain pending;
|
||||
Prompt Museum's mixed commitment must retain Canvas deletion/re-Quote checks
|
||||
while dropping the retired Museum UI smoke.
|
||||
- Files or modules likely involved: `src/App.tsx`, layout/sidebar/title-bar,
|
||||
Project Configuration and Plugins pages, Code chat entry, Canvas page/store
|
||||
components, focused unit/Electron tests, README, and canonical project docs.
|
||||
- Unknowns, stale docs, or conflicts: several ready-for-integration branches may
|
||||
still hold uncommitted work; old local branch refs include explicitly
|
||||
superseded Learning work and must be classified rather than blindly merged.
|
||||
|
||||
Gate result:
|
||||
|
||||
- Passed.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Inventoried every local worktree and branch against `main`, including dirty
|
||||
feature worktrees, audit-only artifacts, and historical refs. Committed each
|
||||
completed product source in its owning worktree before integration:
|
||||
`af13aca` (project gate), `ce90f57` (Code landing), `be1764e` (Plugin
|
||||
rehoming), `1562a49` (Canvas plan/reference redesign), and `b22559a`
|
||||
(Canvas inspiration removal). The existing startup record was preserved as
|
||||
`1dfa922` on `main`.
|
||||
- Integrated those sources with ordinary merges `39d7b7e`, `a91c7e3`,
|
||||
`f6c5961`, `ea1219c`, and `e069ec6`. Conflict resolutions preserve the
|
||||
directory-only project flow, direct valid-project chat entry, no-Agent empty
|
||||
state, Project Configuration-owned Plugin sheet, right-side Canvas Works rail,
|
||||
central active plan, editable final Prompt/reference aliases, and retired
|
||||
Prompt Museum Renderer surface.
|
||||
- Reconciled overlapping files semantically. In particular, the new
|
||||
`DesignWorksRail` also had its inspiration action removed even though that file
|
||||
did not exist on the inspiration-removal source branch; the Plugin sheet keeps
|
||||
Project Configuration mounted without restoring duplicate Plugin Services;
|
||||
and valid projects no longer branch on the legacy `initialized` Boolean.
|
||||
- Fixed two integration-only verification defects: restored the missing `Bot`
|
||||
icon import in the Code empty-Agent state, and made the Canvas unit fixture
|
||||
establish a complete authenticated identity. Updated Electron journeys whose
|
||||
assertions still assumed pre-integration project routing, Canvas shell, or
|
||||
non-exact accessible names.
|
||||
- Promoted accepted facts into README, ADR-007, ADR-008, the decision index,
|
||||
architecture maps/flows, business rules, glossary, commitments, and current
|
||||
state. Prompt Museum production smoke was removed from the mixed commitment
|
||||
while Canvas reference/re-Quote/deletion smoke remains pending.
|
||||
- Excluded `codex/20260903-remove-learning-7a91` and
|
||||
`codex/learning-player-release-fix`: both are historical Learning refs
|
||||
superseded by the already integrated complete Learning removal and would
|
||||
violate the current Code/Canvas/Robot boundary. Unconfirmed Canvas audit
|
||||
concepts, generated reports, and source-worktree artifacts were also left
|
||||
uncommitted and untouched.
|
||||
|
||||
## Verification
|
||||
|
||||
- `corepack pnpm install --frozen-lockfile` — passed with pinned pnpm 10.33.4.
|
||||
- `corepack pnpm run typecheck` — passed.
|
||||
- Focused Vitest across 15 affected files — 184/184 passed.
|
||||
- `corepack pnpm test` — 223 ordinary files, 1,882 passed and 3 skipped;
|
||||
isolated pressure suite 1/1 passed.
|
||||
- `corepack pnpm run lint:check` — 0 errors; 5 pre-existing warnings remain in
|
||||
`src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`.
|
||||
- `corepack pnpm run build:vite` — Renderer, Electron Main, Preload, and release
|
||||
utility worker builds passed; only existing Browserslist, mixed-import, and
|
||||
chunk-size warnings were emitted.
|
||||
- Targeted Electron E2E across Code identity/navigation, Project Configuration,
|
||||
Plugin lifecycle/navigation, and Canvas — 12/12 passed.
|
||||
- `git diff --check` passed after conflict and follow-up fixes.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Existing production/install gates remain unchanged: real-account Canvas V2
|
||||
reference/Quote/deletion smoke, Plugin server availability, signed platform
|
||||
packages, and the source+built+contract publication chain are still external
|
||||
follow-ups. This integration does not claim them.
|
||||
- Local `main` promotion is in scope for this task. Remote push is not authorized
|
||||
by the user's request and is not performed.
|
||||
- Because the ownership checker audits every merge-parent change since this
|
||||
task's pre-merge base, its expected foreign-task-record finding is transferred
|
||||
to fresh Integration task `20260907-finalize-merge-all-4d72c1`, based on this
|
||||
reconciled candidate. No history is rewritten to bypass that audit.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None. This Integration task applies the reviewed source-task outcomes directly
|
||||
to canonical project memory.
|
||||
Reference in New Issue
Block a user