Merge remote-tracking branch 'origin/main'
Some checks failed
Electron E2E / Electron E2E (macos-latest) (push) Has been cancelled
Electron E2E / Electron E2E (ubuntu-latest) (push) Has been cancelled
Electron E2E / Electron E2E (windows-latest) (push) Has been cancelled

# Conflicts:
#	.project-docs/20-architecture/module-map.md
#	src/pages/ImageCanvas/DesignConversationPane.tsx
#	tests/unit/image-canvas-page.test.tsx
This commit is contained in:
inman
2026-09-07 18:40:36 +08:00
17 changed files with 2437 additions and 105 deletions

View File

@@ -4,6 +4,103 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
## Integrated Through
- Local AI Design activity frontier
`4b894c7e320cdf829888f63f501d176f051be7d7` and fetched remote frontier
`918f8f80dca61b0f561f96b168e4ef541734d414` are reconciled by the ordinary
two-parent merge prepared under task
`20260907-complete-current-merge-b61e4a93`. The semantic resolution keeps the
remote Code/Canvas/Plugin/Learning-removal product state while adding the local
Main-normalized, operation-scoped Design activity panel to the matching pending or
canonical user turn. Activity and assistant delta remain transient projections;
the central active production plan remains the Current Specification projection.
Typecheck, 90 focused tests, lint with 0 errors and 5 existing warnings, all Vite
targets, targeted Electron E2E 12/12, pressure 1/1, and staged-diff checks passed.
The ordinary unit suite passed 1,933 tests with 2 skips; its sole failure was the
unchanged Pi real-process two-second timing assertion, which also missed its limit
in isolation on this Windows host. No push, package, deployment, publication,
production database, paid Provider, or historical user-data change is claimed.
- AI Design operation activity source
`81b524a02c2cf51304090afa8fb89d27c72c5d2b` from task
`20260907-design-agent-activity-client-b6d913e4` is integrated by task
`20260907-land-design-agent-activity-e3b7a1c9`. Electron Main now
normalizes the server's four closed public stages into fixed youth-safe copy;
Renderer attaches one transient, update-in-place `AI 处理过程` panel to the exact
optimistic user message and collapses completed work without creating a chat Turn
or duplicating the right-side Current Specification. Workspace, Direction,
operation, pre-command turn sequence, connection generation, cursor, and terminal
events keep replay and stale results scoped; unknown outcomes retain the original
identity. Integration review additionally preserves prior completed/unknown activity
when a later chat starts and keeps each pending user's activity and provisional
reply together in visual order. Final committed assistant text continues through
the existing provisional assistant bubble and canonical Turn replacement. Focused verification passed 69
tests, TypeScript, changed-file ESLint, and all Vite production targets. No server,
database, billing, Quote/Task, navigation, package, deployment, publication, or paid
Provider call changed.
- Token Point V2 account-usage source `6348e402a4e8dde712e5cba4620bb883ffe24e0b`
from task `20260906-trace-makelore-usage-3d7a5c1e` is integrated onto local
`main` by task `20260906-integrate-token-points-v2-7b4e1c92`. The account menu
now uses the Main-owned `/api/works/billing/points` route and the Works Square
`/api/billing/points` authority instead of the retired rolling-window usage
contract. Managing accounts see the authoritative plan, weekly remaining/allowance,
total remaining points, and refresh time; loading and retrieval failures remain
explicit. Every non-managing account receives only coarse `shared_available`
state, including both family-shared members and youth self entitlements, and never
receives plan, cycle, or exact balance fields through the Main projection. Source
verification passed 72 focused tests, typecheck, scoped lint, all Vite targets,
diff/source checks, and two matching Works Square V2 contract tests. The deployed
service/database state and signed-in packaged-client smoke remain release evidence
gaps; no server deployment, database migration, package, publication, or remote
push is claimed.
- Automatic Game Resource delivery source
`6113a2453299141eab8420a56e93675712dd607b` from task
`20260906-game-resource-auto-delivery-7a4e2c91` is integrated onto local `main`
as product commit `4df4bc96245c01cd95e35ddf1b2b03d0e0d231c5` by task
`20260906-game-resource-auto-delivery-integration-8c4e1a72`. One confirmed
`game_resource_generate` call is now a Main-owned submit-and-deliver operation:
Main submits once, polls the accepted execution internally, downloads every terminal
output, and saves the files under the frozen original project at
`assets/generated/game-resource/<executionId>/`. Provider execution, billing, and
local delivery remain separate states. A durable user-data receipt resumes only the
local download/save phase after an interruption, so it cannot create a second
Provider submission or Token Point charge. The shared project write lease is held
only while terminal outputs are materialized, and the Agent-visible status/save tools
and second save confirmation are removed. Source verification passed 99 focused
tests, the 1,901-test full unit suite with 2 skips plus pressure, typecheck, lint with
0 errors/5 unchanged warnings, all Vite targets, 8 Electron tests, the unified Plugin
E2E journey, and Windows x64 runtime staging. No live paid Provider generation,
client installation, deployment, publication, or push is claimed.
- Official project-wide Plugin activation source
`718783f6837e29f56c9add633596249c03e5701f` from task
`20260905-official-plugin-project-scope-6e4a9c21` is integrated onto local `main`
as `e0de7aa28c1d6e97454f0e4073ae9153e746bb4b` by task
`20260905-official-plugin-project-scope-integration-8b3d6f42`. The shared
activation predicate now treats `makelore.data-service`,
`makelore.game-resource`, and `makelore.project-scaffold` as code-owned official
project Plugins: after their existing system delivery or Account acquisition and
project enablement, every parent Agent receives the full Skill/tool set without an
Agent-assignment gate or partner-assignment action. Child Agents remain empty;
downloaded Marketplace and local Device Packages retain their existing lifecycles,
and stored assignments for the three official identities may remain inert. Source
verification passed 30 focused, 70 adjacent, and 37 resolver/composition tests,
typecheck, lint with 0 errors/5 unchanged warnings, all Vite targets, and the
targeted Electron project-Plugin journey. The ordinary full unit run had one
unrelated two-second Pi real-process timing miss among 1,889 passes/2 skips; that
exact file passed 6/6 in isolation. A rebuilt and installed client smoke is still
required; this source integration does not change an already running binary.
- Project Scaffold project-wide activation source
`300ac89a81409440aac84ff45b1d9ca2fa186629` from task
`20260905-project-plugin-scope-7c4e9a21` is integrated onto local `main` as
`6710527e8f7150a6c4997d566a380454e33f455e`. The code-owned
`makelore.project-scaffold` remains Account-acquired and project-enabled, but no longer
has an Agent-assignment gate or partner-assignment action. Main now materializes its
complete Skill set for every parent Agent in the enabled project; child Agents remain
empty, active generations keep their existing freeze boundary. This was the initial
narrow exception and is superseded by the three-identity official rule above; Plugins
outside that set retain their assignment semantics. Source verification passed 45 focused and 87
adjacent tests, typecheck, lint with 0 errors/5 unchanged warnings, pressure, and all
Vite targets. One unrelated two-second Pi real-process timing assertion failed in the
ordinary full run and passed 6/6 in isolation. A rebuilt/installed-client smoke remains
pending; local source integration does not replace an already installed binary.
- Remote `main` frontier `da29294` is semantically integrated with local
frontier `f53683a` under task
`20260907-integrate-remote-before-push-a4c9e27b`. The merge retains the
@@ -721,7 +818,7 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
AI Design Canvas 现在以中央 conversation timeline 加唯一 active 制作方案、右侧 320–340 px 全高 Works rail 的两区布局服务创作者;Canvas 路由不挂载全局左栏,紧凑宽度把同一 Works rail 放进右侧 Sheet。Active 方案的 `content.concept` 直接作为可编辑“创作提示词”,类型、画幅、视频时长和数量保持紧凑直控;已提交、运行中或终止方案折叠进对话历史。Reference 使用稳定 reference ID、真实 Workspace Asset binding 与连续 `@图片N` alias;Prompt 是用途的唯一可见表达,binding row 只管理缩略图、文件、alias、替换与删除。未绑定 alias 提供定点上传并阻止 Quote,Prompt/reference/参数变更产生新 Specification revision 和新 immutable Quote。一个 Workspace 仍只公开一个 current Direction、一个 persistent Agent Session 和一个 Current Specification;conversation timeline 只记录交互历史。Chat、direct edits、decision responses、proposal acceptance、locks、Asset binding 与 restore 都通过 `design.input.apply` 进入同一服务端 reducer,Renderer drafts 在 accepted 前保持本地。Main 持有 Works Token、stream ticket、WebSocket、request deadline、stable command/operation IDs 与错误脱敏;unknown result 只能复用原 identity,结构化业务错误不得重放。Generation 由服务端对 exact Specification revision 编译 immutable Quote,客户端只展示 public output plan、warnings、expiry 与 Token Points,并以 Quote ID 调用 `design.generation.confirm`;Provider Prompt、model、route、storage 和 billing atoms 不进入 Renderer。Task/Asset events 独立收敛 Workspace resources,不改写 Living Form。Development 与 packaged builds 均使用 Works Square V2,V1 DTO、local semantic adapter、mutable Quote PATCH 与 editable provider Prompt 已移除。
新提交的 Design chat 会立即从现有 pending operation 投影为带“发送中”或“正在确认”的临时用户气泡,服务端确认的 canonical turn 到达后再替换它;确定失败时原草稿重新出现在输入框。匹配该 pending chat 的 `design.assistant.delta` 可以临时合并显示为一个未完成的助手气泡,并在 canonical turn 到达后被替换;它不进入 conversation timeline,也不生成独立的“AI 正在整理你的想法”进度栏。中央 active 制作方案继续呈现 AI 当前整理出的 Current Specification 公共投影。重复连接和事件按 connection generation 与 `chunkIndex` 收敛。
新提交的 Design chat 会立即从现有 pending operation 投影为带“发送中”或“正在确认”的临时用户气泡,服务端确认的 canonical turn 到达后再替换它;确定失败时原草稿重新出现在输入框。`design.assistant.progress` 经 Main 归一为固定通俗阶段,只在对应用户气泡下形成可更新、可折叠的“AI 处理过程”,不成为对话消息、中央制作方案或模型思考过程。匹配同一 pending chat 的 `design.assistant.delta` 只临时绘制为一个未完成助手气泡,随后由 canonical turn 替换;它不进入 conversation timeline,也不生成独立全局整理栏。中央 active 制作方案继续呈现 AI 当前整理出的 Current Specification 公共投影。重复连接和事件按 connection generation、operation identity 与 `chunkIndex` 收敛。
Prompt Museum 已退出当前产品面:Canvas 不再显示“获取灵感”,App 不挂载或 lazy-load Museum Renderer 页面,历史 `/image-prompts/*` 只重定向到 `/image-canvas`。Main-owned 固定 API、Works 认证、相对媒体路径校验、单次 401 刷新、可信 raster MIME/10 MiB 上限与共享 DTO 暂作为 dormant 兼容/安全基础设施保留,不代表可见模块或生产内容已启用;恢复入口需要新的明确产品决定。`pnpm run dev` 与 packaged Canvas 均使用云端 V2 适配器,产品 UI 只保留中文。

View File

@@ -0,0 +1,91 @@
# Task: Complete current remote main merge
## Identity
- Task ID: 20260907-complete-current-merge-b61e4a93
- Mode: Integration
- Branch: main
- Worktree: D:\Datas\OthersProjects\makelore
- Base commit: 4b894c7e320cdf829888f63f501d176f051be7d7
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Take over the already-started merge of local `main@4b894c7` with fetched
`origin/main@918f8f8` after the user's explicit authorization.
- Resolve the seven remaining conflicts across AI Design source/tests and canonical
project memory, preserving compatible intent from both histories.
- Verify the reconciled tree and create the ordinary two-parent merge commit locally.
A remote push is not part of this request.
## Intent And Constraints
- Preserve the remote Canvas right-side Works rail, central active production plan,
stable `@图片N` reference flow, retired Prompt Museum surface, retired Learning
module, directory-only project creation, non-blocking `/chat` entry, and Project
Configuration-owned Plugin workspace.
- Preserve the local Main-normalized, operation-scoped `design.assistant.progress`
activity projection alongside the existing single provisional assistant delta.
Neither projection may become a conversation, Current Specification, authorization,
or chain-of-thought surface.
- Resolve semantic conflicts from base/ours/theirs and source-task evidence; do not
choose a side mechanically, rewrite history, abort/reset/stash the merge, or alter
unrelated user work.
- Keep all adopted foreign task records byte-for-byte unchanged. In particular, leave
the three pre-existing untracked task records outside this task's commit.
- Retain existing external acceptance limits: no production deployment, paid Provider,
signed-package, real-account, or publication success is claimed by a local merge.
## Outcome
- Reconciled local `main@4b894c7` with fetched `origin/main@918f8f8`; the index now
has no unmerged paths and is ready for the ordinary two-parent merge commit.
- Combined the remote central Canvas plan, right-side Works rail, plan history,
stable reference aliases, and inline Quote flow with the local operation-scoped
activity panel. Pending user message, activity, and provisional assistant reply
remain one ordered group; completed activity follows its canonical user turn.
- Reconciled ADR-007, architecture maps, business rules, and current state around one
Current Specification authority. Removed the obsolete required-Agent entry from
current state and did not restore Learning or the Prompt Museum Renderer surface.
- Preserved the remote directory-only project flow, non-blocking no-Agent chat entry,
Project Configuration Plugin sheet, all staged source-task history, and the three
pre-existing untracked task records.
- No history rewrite, remote push, package, deployment, publication, database change,
paid Provider call, or historical user-data mutation was performed.
## Verification
- Pinned package manager: `pnpm@10.33.4` confirmed through Corepack.
- `pnpm run typecheck` — passed.
- Focused Vitest across Image Canvas, Workspace Store/Route/adapter, youth plan, and
reference aliases — 6 files / 90 tests passed.
- `pnpm run lint:check` — passed with 0 errors and 5 existing warnings in
`src/pages/Home/index.tsx` and `src/pages/Makelore/index.tsx`.
- `pnpm run build:vite` — Renderer, Electron Main, Preload, and utility worker passed;
only existing Browserslist, mixed-import, and chunk-size warnings were emitted.
- Targeted Electron E2E across Canvas, retired Learning navigation, Code project
identity/navigation, Project Configuration, and Plugin flows — 12/12 passed.
- `pnpm test` — 225 files / 1,933 tests passed and 2 skipped; one unchanged test in
`pi-agent-server-process-real.test.ts` failed its two-second timing assertion. The
test and Pi worker/write-lease/Agent Server blobs are identical in base, both parents,
and the merge index. An isolated run completed the functional path in 3.139 seconds
but still exceeded the threshold; a later isolated run timed out during slow process
startup. The separately skipped pressure test passed 1/1. Full-suite green is not
claimed, and no unrelated threshold or Pi code was changed.
- Conflict-marker scan, unmerged-path scan, and `git diff --cached --check` — passed.
- Required project-document structure and task-aware drift/ownership checks — passed;
adopted foreign task-record fingerprints remain intact.
## Follow-ups
- The existing Pi real-process two-second timing test remains a separate Windows test
reliability/performance follow-up; this merge provides no evidence of a Pi code
regression and does not change its behavior or threshold.
- Push `main` only if the user separately requests publication to `origin`.
## Promotion Candidates
- Applied in this integration: ADR-007, module map, system overview, business rules,
and current state now describe the combined central-plan/reference layout and
operation-scoped transient activity contract. No further promotion is pending.

View File

@@ -0,0 +1,64 @@
# Task: Integrate AI Design agent activity UI
## Identity
- Task ID: 20260907-integrate-design-agent-activity-b7d3f1a8
- Mode: Integration
- Branch: codex/20260907-integrate-design-agent-activity-b7d3f1a8-integrate-design-agent-activity
- Worktree: D:\Datas\OthersProjects\.codex-worktrees\makelore\20260907-integrate-design-agent-activity-b7d3f1a8
- Base commit: da29294979da4ce041edf992b590ee6ea170a44f
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Integrate client source commit `81b524a02c2cf51304090afa8fb89d27c72c5d2b` from exact base `da29294979da4ce041edf992b590ee6ea170a44f`.
- Promote the operation-scoped AI Design activity projection into canonical client memory.
- Verify Main event normalization, Renderer reconciliation, conversation rendering, and existing Design streaming behavior.
## Intent And Constraints
- Render only the server's fixed public lifecycle stages beneath the matching optimistic user message.
- Keep `design.assistant.delta` as the single provisional assistant-text stream and the right-side Living Form as the Current Specification projection.
- Never render raw chain-of-thought, prompt/provider/tool payloads, or a duplicate global “整理进度” banner.
- Preserve stable operation identity and existing unknown-result reconciliation.
- Do not touch or adopt unrelated changes in the root worktree.
## Outcome
- Fast-forwarded the exact source commit from the recorded base without conflict.
- Integrated Main-normalized public Design activity, operation-scoped Renderer
reconciliation, terminal-event convergence, and the conversation-attached activity
panel while preserving optimistic user messages and canonical assistant replacement.
- Fixed two integration-review findings: a later chat no longer erases earlier
completed/unknown activity, and each pending operation now renders its user message,
activity, and provisional assistant stream as one ordered group.
- Promoted the accepted transient-activity boundary into ADR-007, architecture maps,
data flow, domain rules, and current integrated state.
- No server contract, database, billing, Quote/Task, navigation, package, deployment,
publication, or Provider behavior changed.
## Verification
- `pnpm exec vitest run tests/unit/image-workspace-store.test.ts
tests/unit/image-canvas-page.test.tsx
tests/unit/works-square-design-workspace.test.ts
tests/unit/image-workspace-route.test.ts` — 69 passed.
- `pnpm exec tsc --noEmit` — passed.
- Focused ESLint across all eight changed TypeScript/TSX files — passed.
- `pnpm run build:vite` — passed; only existing chunk-size, dynamic-import, and
stale Browserslist-data warnings were emitted.
- `git diff --check` — passed.
- Independent integration review — PASS after the two multi-operation findings were
fixed and covered.
## Follow-ups
- Add an explicit snapshot/cursor reseed contract for a Gateway `cursor expired`
response in a separate transport-resilience task.
## Promotion Candidates
- Applied: ADR-007, system overview, module map, data flow, domain rules, and current
integrated state now define operation-scoped public activity as transient
presentation rather than Design authority or model reasoning.

View File

@@ -0,0 +1,63 @@
# Task: Land AI Design agent activity UI on main
## Identity
- Task ID: 20260907-land-design-agent-activity-e3b7a1c9
- Mode: Integration
- Branch: main
- Worktree: D:\Datas\OthersProjects\makelore
- Base commit: 7bdb42f26c60747fbabf3bb3a00e3df3477a46a3
- Owner: codex-root
- Status: Ready for Integration
## Scope
- Record and verify the root `main` landing of reviewed candidate
`7bdb42f26c60747fbabf3bb3a00e3df3477a46a3`.
- Promote this root landing task as the current-state integration owner while
preserving the retired candidate task record as immutable evidence.
- Preserve the three pre-existing untracked task records byte-for-byte and keep them
outside this task's commit.
## Intent And Constraints
- The candidate was fast-forwarded only after exact branch, ancestry, dirty-path, and
fingerprint preflight; do not rewrite its product tree.
- Do not reset, stash, clean, stage, or edit unrelated work.
- Reuse candidate tests and independent review; run the final root document, drift,
ancestry, fingerprint, and status gates that can detect landing-specific failures.
## Outcome
- `main` was fast-forwarded from
`da29294979da4ce041edf992b590ee6ea170a44f` to the exact reviewed candidate
`7bdb42f26c60747fbabf3bb3a00e3df3477a46a3`.
- The landed tree contains Main-normalized public Design activity,
operation-scoped Renderer reconciliation, terminal convergence, and ordered
optimistic-user/activity/provisional-reply groups.
- The three adopted task records retained preflight fingerprints
`728a9d4a20d4f0c4fee82177807c07e2a207264c`,
`2df2c08a55c2670f99588d3511deb1e533a6c97c`, and
`0538a686602b1ee7ef907880d65f5cf176b9916f`; they remain excluded from this task.
## Verification
- Candidate evidence: 69 focused tests, TypeScript, focused ESLint,
`pnpm run build:vite`, and `git diff --check` passed.
- Independent client activity integration review: PASS after the two
multi-operation findings were fixed and covered.
- Final root `check_project_docs.py`, task-aware `check_doc_drift.py`, and
`git diff --check` passed. `main` remained at the exact candidate, the candidate is
an ancestor, no non-document delta exists, and all three adopted fingerprints
remained unchanged.
## Follow-ups
- Add an explicit snapshot/cursor reseed contract for a Gateway `cursor expired`
response in a separate transport-resilience task.
## Promotion Candidates
- Applied: ADR-007, system overview, module map, data flow, domain rules, and current
integrated state define operation-scoped public activity as transient presentation,
not Design authority or model reasoning.