merge: integrate remote main
This commit is contained in:
@@ -20,6 +20,46 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
tests, typecheck, full unit 1,844 with 3 skips plus pressure 1/1, production build,
|
||||
targeted Electron 8/8, and full Electron 33/33 with 1 platform skip. Lint reported
|
||||
0 errors and only existing warnings in current source and a historical worktree.
|
||||
- AI Design streamed-reply diagnosis
|
||||
`229b1b1ce39b7f1541a93ea3c980ab82b6d6266c` and client fix
|
||||
`23f96a523eb37d8397bb3766ce95a59d56e59225` from tasks
|
||||
`20260904-diagnose-design-stream-6a4e9c21` and
|
||||
`20260904-fix-design-stream-4f7b91c2` are integrated onto local `main` and
|
||||
canonically reconciled by task `20260904-integrate-design-stream-5e7c2a91`.
|
||||
The existing post-validation `design.assistant.delta` transport is visible again as
|
||||
exactly one provisional assistant-shaped bubble tied to its pending chat identity;
|
||||
canonical `workspace.turns` still owns history and replaces the unfinished bubble,
|
||||
while unknown outcomes keep the same identity and partial reply. The removed generic
|
||||
“AI 正在整理你的想法” banner is not restored. A ready conversation now offers an
|
||||
inline Quote step; successful Quote requests reveal the confirmation on desktop or
|
||||
open it on mobile, but only explicit immutable Quote-ID confirmation creates a paid
|
||||
Task. Unknown Quote requests disable both entry points and retry the original
|
||||
operation. Focused tests passed 35/35, the Electron Quote-confirm-Task flow passed
|
||||
1/1, typecheck, scoped lint, Vite build, document gates, and independent review
|
||||
passed. The ordinary full suite had one unrelated Pi real-process 2-second timing
|
||||
miss among 1,873 passing tests and 2 skips; that exact test passed immediately in
|
||||
isolation, and the pressure test passed 1/1. Provider-native first-token streaming
|
||||
remains a separate server follow-up; no server, database, billing, Plugin,
|
||||
packaging, deployment, publication, or remote push changed.
|
||||
- AI Design conversation-feedback sources
|
||||
`403236115bf81e7617856cd8219b1be23f6abbb8` from task
|
||||
`20260904-design-summary-separation-9c4e7a21` and
|
||||
`3bda17aa3c1d034ddb3feaa08e516398e91cba0a` from task
|
||||
`20260904-remove-design-progress-4e8a1c73` are integrated onto local `main` and
|
||||
canonically reconciled by task `20260904-finalize-design-feedback-7c4e2a91`. A
|
||||
submitted chat appears immediately as a provisional user bubble from its existing
|
||||
pending operation, shows `发送中` or `正在确认`, restores the retained draft after
|
||||
definitive failure, and is replaced by the canonical Workspace turn without a
|
||||
second message store. Raw `design.assistant.delta` text remains internal transport
|
||||
state: it is neither a finished reply nor a visible progress banner. The right-side
|
||||
“AI 听懂的想法” remains the single organized-understanding projection, while
|
||||
connection generation fencing and `chunkIndex` deduplication still converge repeated
|
||||
streams. Current Specification, immutable Quote confirmation, server/Main contracts,
|
||||
plugins, packaging, deployment, publication, and paid Provider behavior are
|
||||
unchanged. Source verification passed focused/adjacent tests, typecheck, scoped
|
||||
lint, production build, and both existing AI Design Electron checks individually;
|
||||
the banner-removal follow-up passed its focused 10-test file, typecheck, and scoped
|
||||
lint.
|
||||
- Conversation-first AI Design client source
|
||||
`fe50e4ba198649a07c5c9443f15edf7dfa2a47e6` from task
|
||||
`20260903-design-guided-conversation-client-8b4e1c72` is integrated onto local
|
||||
@@ -569,6 +609,8 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
|
||||
AI Design Canvas 现在默认以对话和一张持续可见的“我的创作”卡服务 8-16 岁创作者;专业字段矩阵收进按需打开的“精细调整”,移动端保持对话优先并只挂载一个卡片/底部面板。Creation Card、精细调整、Quote、Task 与结果提示都只投影权威状态,已知问题按 code 转成通俗中文,未知服务端或 Provider 文本不会直接显示。一个 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 到达后再替换它;确定失败时原草稿重新出现在输入框。`design.assistant.delta` 只作为内部传输与收敛状态,不显示原始片段,也不在对话区生成独立整理进度栏;右侧 Current Specification 摘要继续承担“AI 当前听懂的内容”。重复连接和事件按 connection generation 与 `chunkIndex` 收敛。
|
||||
|
||||
Canvas 侧栏提供“获取灵感”进入 Prompt Museum。列表、筛选、分页、详情、作者/来源/许可证和图片地址全部由服务端经 Main-owned Host API 提供,客户端不打包静态数据集;服务端相对媒体只允许固定 `/api/image-prompt-museum/{entry}/media/{thumbnail|number}` 形状,并由 Main 注入 Works Bearer、执行一次 401 刷新、可信 raster MIME 与 10 MiB 上限后转为 Renderer data URL;credential-free HTTPS CDN 图片保持直连。图片失败只显示卡片内占位,不阻断卡片或详情;缺少来源 URL 时显示纯文本。“使用此 Prompt”只把原文带回当前 Canvas 输入框,不自动发送。该模块不是投稿、点赞、评论或排行榜社区。客户端契约已就绪,但不据此宣称 Works Square 内容后台和生产数据已经部署。`pnpm run dev` 现在默认使用云端 Canvas 适配器,本地适配器只能通过显式开发命令启用;产品 UI 只保留中文。
|
||||
|
||||
密码登录提供可选“记住密码”。该记录与七天登录会话分离,只在正式安装包且系统安全存储可用时由 Electron Main 加密落盘;Renderer 仅在登录页内存中接收回填,不写 Zustand/localStorage,Works Square 也不持久化桌面密码。退出登录和短信登录不删除记录,成功的未勾选密码登录会清除旧记录。未打包开发版禁用该选项,避免未签名 Electron 调试进程触发 macOS 钥匙串。
|
||||
|
||||
Reference in New Issue
Block a user