 wangsli和Claude Opus 5.5
|
70af0c6b9a
|
资产流转E2E后退前等待未保存状态落定 [09-06-release-gate-integrity]
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
保存后 URL 同步 replace,而「表单已保存」需多次渲染才传到导航拦截器
(UnsavedChangesGuard 的 ref 在 effect 中更新)。负载下测试在 URL 变化后
立即 goBack 被拦为未保存(门禁 5 轮失败 2 次,快照可见确认框)。
改为沿用 r103 的写法,先等 html[data-unsaved-changes="false"] 再后退;
断言不变。
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
2026-09-26 20:28:08 +08:00 |
|
 wangsli和Claude Opus 5.5
|
0931b1ea49
|
修复慢网络下审批后页面显示旧状态:SW API 缓存仅在离线时回退 [09-26-approve-success-state-unchanged]
app-api-runtime 对 /api/me、/api/workflow/tasks*、/api/workflow/approvers*、
/api/notifications* 使用 NetworkFirst + networkTimeoutSeconds: 3。网络响应
超过 3 秒时 Service Worker 返回审批前缓存的旧响应,真实响应被丢弃,页面
仍显示「待派发」。审批写入本身正确。自 2026-03(9112383d)起存在。
去掉网络超时,只在网络失败(离线)时回退缓存;退出登录清理缓存不变。
新增回归测试锁定该规则。负载复现修复前 3 轮命中 2 轮,修复后 3 轮 0 命中。
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
2026-09-26 18:58:45 +08:00 |
|
 wangsli和Claude Opus 5.5
|
34675e1a98
|
放宽两处负载敏感的E2E超时预算 [09-06-release-gate-integrity]
750a184b 两轮 verify-candidate 在 2 核主机/4 worker 下均因同两处超时失败:
- 报销付款批次主链路:全部阶段在 305s/303s 完成,超出 300s(单跑 145s)→ 420s
- 项目级视觉 pc:admin:15 页在 180s 内完成 14 页 → 每组 240s(用例级覆盖)
所有断言、worker 数、重试及 Playwright 项目默认 180s(回执校验项)不变;
规约同步视觉分组预算。
Co-Authored-By: Claude Opus 5.5 <[email protected]>
|
2026-09-26 14:42:49 +08:00 |
|
 wangsli和Claude Sonnet 5
|
b2f4b42ded
|
fix: 清理自动合并时残留的4条重复错误码 [09-05-error-explainability-payment-readiness]
合并时 errorReasons.js/errorReasons.ts 未被判定为冲突,git 自动把
主线首批4个条目和候选分支的完整版本拼在了一起,导致同一语义有两套
命名(如 ap_operations.feature_disabled 与 ap_operations.disabled
并存)。删除主线这4条已被取代的旧条目,保留候选分支的完整版本。
check-error-reason-contract.mjs 主检查+self-test 均恢复 PASS。
Co-Authored-By: Claude Sonnet 5 <[email protected]>
|
2026-09-26 08:00:55 +08:00 |
|
wangsli
|
46a70aa552
|
merge: 合入候选分支(09-17借款/ERP退役、09-18编号、09-19预算并发、完整10-05错误码迁移,均经确认)
# Conflicts:
# .agents/skills/trellis-before-dev/SKILL.md
# .agents/skills/trellis-brainstorm/SKILL.md
# .agents/skills/trellis-continue/SKILL.md
# .agents/skills/trellis-start/SKILL.md
# .trellis/tasks/08-23-isolated-backup-restore-drill/design.md
# .trellis/tasks/08-23-isolated-backup-restore-drill/prd.md
# .trellis/tasks/09-05-error-explainability-payment-readiness/prd.md
# .trellis/tasks/09-05-error-explainability-payment-readiness/task.json
# .trellis/tasks/09-09-existing-deploy-seed-separation/implement.md
# .trellis/tasks/archive/2026-09/09-05-trellis-upgrade-rule-cleanup/task.json
# .trellis/workflow.md
# scripts/qa/error-reason-legacy-baseline.json
# server/src/routes/apOperations.js
# server/src/routes/portal.js
# server/src/routes/todos.js
# server/tests/unit/fixtures/error-reason-messages.json
# server/tests/unit/routes/apOperations.permissions.test.js
|
2026-09-26 07:54:10 +08:00 |
|
 wangsli和Claude Sonnet 5
|
cd01e4bf28
|
迁移首批4个错误码:AP台账/查询、待办、工作台功能开关 [09-05-error-explainability-payment-readiness]
10-05 到期例外清单里已设计好的首批 4 个具体调用,现予落码(原方案见
implement.md §14「首批具体分支与验证要求」):
- ap_operations.feature_disabled(409):AP 台账/明细查询功能关闭
- ap_operations.query_invalid(400):AP 台账查询参数校验失败
- todo.feature_disabled(409):待办功能关闭
- portal.feature_disabled(409):工作台首页功能关闭
四处均改为调用 buildBusinessValidationError(reasonCode, details, statusCode),
保留原 HTTP 状态码、featureFlag/reason 等既有 details 字段不变,仅新增精确
reasonCode;不改功能开关判断逻辑、不改权限校验顺序。
- server/src/constants/errorReasons.js + client/src/api/errorReasons.ts:
注册 4 条原因码及中文文案,服务端/客户端逐字一致。
- scripts/qa/error-reason-legacy-baseline.json:移除这 4 条已迁移的旧例外
记录(591 → 587),check-error-reason-contract.mjs 主检查与 self-test
均 PASS,无 new_legacy/stale_exception/unregistered_reason。
- apOperations.permissions.test.js:扩展"功能关闭"断言校验 reasonCode 与
原 details 字段共存;新增"查询参数非法(功能开启)"400 用例,断言零
台账业务查询;新增"合法查询仍 200"用例。
- portal.test.js:新增工作台关闭时 409+reasonCode+零业务查询断言(此前
完全没有覆盖这条路径)。
- todos.test.js:新建(此前 todos 路由零测试覆盖),聚焦 ensureFeatureEnabled
网关:关闭时 GET/POST 均 409+reasonCode+零 todoItem 查询;开启时正常放行。
验证:server 5 个相关测试文件 286/286 通过;client typecheck/build 通过;
check-ui-design-rules.mjs --strict、check-trellis-governance.mjs、
git diff --check 通过。routes/ 全量回归 872/874(2 个失败为 paymentBatches
BIFF8 导出的既有环境问题,已用 git stash 验证在改动前的 HEAD 上同样失败,
与本次改动无关,不在本次范围内处理)。
剩余 669 条例外记录不变,尚未处理;B/C 两档 57 文件仍需逐模块确认迁移或
提出延期理由,本次不扩大范围。
Co-Authored-By: Claude Sonnet 5 <[email protected]>
|
2026-09-25 21:16:55 +08:00 |
|
wangsli
|
eec26c7cfe
|
修复R101模拟接口隔离并接收定向验收(09-06-release-gate-integrity)
|
2026-09-19 19:52:17 +08:00 |
|
wangsli
|
1f8d5b658a
|
完善借款、编号、付款与预算并发及验收(09-06-release-gate-integrity)
汇总已落盘的借款本金与还款、兼容历史编号的周期化编号、付款责任与回单核验、报销进度和排序、PWA/采购事务、错误原因与日期校验及ERP退役。
统一共享预算池锁序和锁后判断,恢复差旅原预算选择,补原因码固定夹具及反向完整性检查。
纳入配套迁移、测试、受管QA、分层验收合同、规约及任务记录;原始证据留在ignored artifacts。
关联任务:09-17-company-loan-principal-repayment、09-17-erp-exclusive-retirement、09-18-reimbursement-periodic-numbering、09-08-reimbursement-payment-closeout、09-18-local-concurrency-product-fixes、09-19-budget-pool-concurrency、09-05-error-explainability-payment-readiness。
预算补审由Claude定向验证2文件928项通过,原4446/28及r6结果仍仅对应各自历史输入;本轮未重跑测试。
完整新候选门禁、R1真实入口接入与12项公网义务仍开放。生产编号未启用、差旅仍冻结;不推送、不部署,不宣称发布资格。
|
2026-09-19 13:11:04 +08:00 |
|
wangsli
|
b1d25d3c99
|
fix: 加固日历日期与动态错误合同(09-05-error-explainability-payment-readiness,09-08-reimbursement-payment-closeout)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-16 20:20:11 +08:00 |
|
wangsli
|
3516d7ec04
|
fix: 完善动态错误指引与发票日期校验(09-05-error-explainability-payment-readiness)
|
2026-09-16 12:56:27 +08:00 |
|
wangsli
|
b7d2285d8d
|
fix: 完善回单失败引导及真实认证验证(09-08-reimbursement-payment-closeout)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-15 15:26:08 +08:00 |
|
wangsli
|
8d08d46d16
|
fix: 增加回单核对与付款登记门禁(09-08-reimbursement-payment-closeout)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-15 07:21:55 +08:00 |
|
wangsli
|
229867f5fd
|
fix: 财务本人报销由总经理独立审批(09-04-reimbursement-state-gap-finance-view)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-12 20:03:29 +08:00 |
|
wangsli
|
7bfc25461f
|
fix: 统一报销与付款详情整体宽度(09-04-reimbursement-state-gap-finance-view)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-12 08:51:31 +08:00 |
|
wangsli
|
98eabdde7f
|
fix: 统一报销付款详情布局与票据展示(09-04-reimbursement-state-gap-finance-view)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-11 22:28:06 +08:00 |
|
wangsli
|
5d8cdf12b4
|
fix: 隔离门户待办身份并取消旧请求(09-11-reimbursement-payment-handoffs)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-11 20:21:46 +08:00 |
|
wangsli
|
9e41f107fa
|
fix: 收窄详情按钮并校正响应式回归(09-04-reimbursement-state-gap-finance-view)
|
2026-09-11 20:21:45 +08:00 |
|
wangsli
|
fedcaed1a1
|
feat: 补齐报销付款待办交接(09-11-reimbursement-payment-handoffs)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-11 09:43:37 +08:00 |
|
wangsli
|
f9aee4c932
|
fix: 统一报销付款状态与进度(09-04-reimbursement-state-gap-finance-view)
|
2026-09-11 09:43:36 +08:00 |
|
wangsli
|
fe025e65cf
|
fix: 优化报销制单下载与付款进度(09-08-reimbursement-payment-closeout)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-10 16:39:01 +08:00 |
|
wangsli
|
73fcd5a65a
|
fix: 退回报销支持留痕删除(09-04-reimbursement-state-gap-finance-view)
|
2026-09-10 16:38:37 +08:00 |
|
wangsli
|
e5685f18b2
|
feat: 选票自动生成报销明细并支持集中分类(08-29-reimbursement-expense-policy-invoice-guard)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-09 23:19:02 +08:00 |
|
wangsli
|
b9185308a6
|
fix: 优先引导下载银行制单(09-08-reimbursement-payment-closeout)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-09 09:05:17 +08:00 |
|
wangsli
|
e8cad812ad
|
fix: 取消CEO默认AP台账权限(09-07-manager-ap-access-scope)
|
2026-09-09 09:05:17 +08:00 |
|
wangsli
|
58dcee08f7
|
fix: 用专用权限收窄经理 AP 访问(09-07-manager-ap-access-scope)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-08 07:21:37 +08:00 |
|
wangsli
|
99167127b5
|
fix: 补齐候选诊断环境与证据保护(09-06-release-gate-integrity)
|
2026-09-08 07:21:19 +08:00 |
|
wangsli
|
a837912638
|
feat: 完成错误原因合同与付款就绪提示(09-05-error-explainability-payment-readiness)
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-09-05 19:00:35 +08:00 |
|
wangsli
|
5fe9f78bc9
|
补齐报销待组批财务入口 [09-04-reimbursement-state-gap-finance-view][R1]
|
2026-09-05 09:14:13 +08:00 |
|
wangsli
|
8551601818
|
收敛报销退回动作与审批布局 [09-04-approval-return-reject-actions]
|
2026-09-04 10:31:32 +08:00 |
|
wangsli
|
c4b4427f9e
|
收敛审批动作面板并清理层叠遗留 [approval-action-panel-kiss-layering]
|
2026-09-03 20:49:15 +08:00 |
|
wangsli
|
e48514d542
|
feat(报销): 收敛只读内容与审批上下文 [09-02-reimbursement-readonly-content-consistency]
|
2026-09-02 21:13:08 +08:00 |
|
wangsli
|
4b974fd87c
|
优化报销审批证据布局(reimbursement-form-shared-component-migration)
|
2026-09-02 12:55:24 +08:00 |
|
wangsli
|
abdd250325
|
实现 B-2b 统一报销工作台迁移(reimbursement-form-shared-component-migration)
|
2026-09-02 07:35:01 +08:00 |
|
wangsli
|
c840574d36
|
实现 B-2a 报销审批内容工作台(reimbursement-approval-content-workbench)
|
2026-09-01 20:32:34 +08:00 |
|
wangsli
|
5b53d29846
|
修复报销确认弹窗阻断恢复(08-30-b2-submit-error-ocr-fallback)
|
2026-09-01 12:58:35 +08:00 |
|
wangsli
|
fddf3a3bc7
|
修复报销金额阻断文案门禁(08-30-b2-submit-error-ocr-fallback)
|
2026-08-31 23:22:41 +08:00 |
|
wangsli
|
8aed72d1bf
|
统一报销错误提示无障碍样式(08-30-b2-submit-error-ocr-fallback)
|
2026-08-31 21:38:52 +08:00 |
|
wangsli
|
f57e2236f2
|
修复报销票据门禁提示与 OCR 降级(08-30-b2-submit-error-ocr-fallback)
|
2026-08-31 20:20:20 +08:00 |
|
wangsli
|
36c86f1dca
|
取消报销资产事前批准强制(08-30-reimbursement-assets-prior-approval-correction)
|
2026-08-30 12:44:58 +08:00 |
|
wangsli
|
6e999d5bf9
|
实现报销费用政策与票据明细门禁(08-29-reimbursement-expense-policy-invoice-guard)
|
2026-08-29 23:47:22 +08:00 |
|
wangsli
|
4b3797bfc8
|
修复 r102 普通报销编辑夹具(08-29-r102-reimbursement-fixture-debt)
|
2026-08-29 21:17:59 +08:00 |
|
wangsli
|
e8d676634f
|
修复非参与人报销只读边界(08-28-reimbursement-nonparticipant-readonly-projection)
|
2026-08-29 08:22:23 +08:00 |
|
wangsli
|
46bfa7e00f
|
修复(08-28-reimbursement-detail-material-preview-fixes): 收紧撤回展示并校正材料图片尺寸
|
2026-08-28 21:53:26 +08:00 |
|
wangsli
|
7b86ffb3c9
|
优化(07-28-all-account-login-readiness): 调整密码框Tab顺序
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s
|
2026-08-23 19:10:34 +08:00 |
|
wangsli
|
6923f4d1f7
|
验证(08-10-pwa-cross-version-cache-upgrade-validation): 固化PWA跨版本升级回归
|
2026-08-10 18:05:15 +08:00 |
|
wangsli
|
5cfd3d9bd3
|
修复(08-10-session-fallback-failure-classification): 定性并修复会话夹具回落
|
2026-08-10 12:50:06 +08:00 |
|
wangsli
|
21851774dd
|
feat(08-05-contract-detail-workspace): 完成合同详情与终止状态治理
|
2026-08-08 02:02:52 +08:00 |
|
wangsli
|
c14b40a00a
|
修复: 08-07-business-routing-regression-repair 关闭资产创建跳转回归
|
2026-08-07 14:53:55 +08:00 |
|
wangsli
|
1118bfadd7
|
feat(08-05-business-detail-routing): 完成采购与资产独立路由
|
2026-08-07 11:00:56 +08:00 |
|
wangsli
|
88b97b40af
|
test(08-07-e2e-fixture-repair): 修复交互回归夹具与附件定位
|
2026-08-07 09:05:28 +08:00 |
|