| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| Dockerfile | ||
| components.json | ||
| eslint.config.mjs | ||
| next-env.d.ts | ||
| next.config.mjs | ||
| package.json | ||
| postcss.config.mjs | ||
| tsconfig.json |
产品定(2026-08-12):作废发生在**新草稿生成时**,不是在确认时。 否则主管面前会同时摆着两张都能点确认的卡,点错就是分错一批人。 - state: 'pending' → 'active' | 'superseded' | 'confirmed' | 'cancelled'⚠ ️ 顺带解掉一个命名撞车:原 state:'pending' 与「待分配」的 group:'pending' 同名不同义,读代码时极易混。 - 新草稿到达时**跨消息**扫描,把此前所有 active 作废;confirmed/cancelled 是终态,⛔ 不许被回退。 - edit 指令改为落到**唯一那张 active**,⛔ 不再是"最后一张" —— 重出一版后 最后一张可能正是刚作废的,改上去主管一点反应都看不到。 - 作废态:顶部横幅 + 底部说明 + 确认按钮禁用 + 降到 60% 不透明度。⛔ 不隐藏、⛔ 不折叠 —— 他要能看见自己出过几版、哪一版才是当前的。⚠ ️ 顶部横幅不能省:确认单可以很长,视线停在上半部分时看不到底部那句。 代码组织(按 dev-plan §三): - 数据模型 + 纯函数操作抽到 chat-blocks.ts(use-assistant-chat 534 → 479 行)。 草稿状态机的失败形态全是静默的,端到端点一遍代价高且不稳 —— 抽成纯函数锁住。 - pac-web 补 vitest(此前无任何测试基建),8 条回归覆盖跨消息作废、终态不回退、 同 id 重推清空 edits、findActiveSheet 不退化成"最后一张"。 tsc(service/web) 干净;pac-web build 通过;vitest 8 passed;jest 1212 passed。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| public | Loading commit data... | |
| src | Loading commit data... | |
| .dockerignore | Loading commit data... | |
| .env.example | Loading commit data... | |
| Dockerfile | Loading commit data... | |
| components.json | Loading commit data... | |
| eslint.config.mjs | Loading commit data... | |
| next-env.d.ts | Loading commit data... | |
| next.config.mjs | Loading commit data... | |
| package.json | Loading commit data... | |
| postcss.config.mjs | Loading commit data... | |
| tsconfig.json | Loading commit data... |