Files
deerflow-code/frontend-web
董宏凯 df408831e5 feat(maf): unified safe display + decision lock for approvals
Stage-6 MAF frontend foundation plus P1 approval safety hardening:

- Add lib/safe-display.ts: single-source safeDisplayJson that deletes
  sensitive keys (never renders as ***), recurses with depth/array/field/
  string caps, returns hiddenCount + truncated.
- MafApprovalCard & MafActionAuditPanel both use safeDisplayJson; remove
  private sanitize duplicates. Panels hide entirely when nothing is left.
- Lock the card on both approve AND reject (resuming state) since the
  backend advances the workflow on either decision; add a decisionLockRef
  sync guard so a double-click before React re-render cannot fire a second
  mutate. Status text becomes '正在同步工作流…'.
- Stage-6 base shipped here as prerequisite: self-contained maf-flow-graph
  (no roundtable-planning dep), MafFlowGraphDialog/MafFactLedgerPanel/
  MafActionAuditPanel, shared risk-theme/action-audit/approval-state/
  run-resume libs, mergeBySeq export, canResume wiring, TButton icon fixes.
- Tests import real functions only; 48 pass (adds 8 safeDisplayJson cases).
2026-08-02 22:55:27 +08:00
..
2026-07-15 16:13:03 +08:00
2026-07-24 10:33:28 +08:00
2026-07-24 10:33:28 +08:00