萝卜
|
aca99d1f30
|
Admin subscriptions: expiring 7d add merchant+plan top10 and renewal CTA
|
2026-03-17 00:54:17 +08:00 |
|
萝卜
|
3ba8018bf9
|
Admin subscriptions: expiring 7d top10 add renewal CTA
|
2026-03-17 00:45:28 +08:00 |
|
萝卜
|
03d30f0c7d
|
Admin subscriptions: add expiring 7d merchant top10 reminder list
|
2026-03-17 00:39:50 +08:00 |
|
萝卜
|
7ce6a65aab
|
Admin subscriptions: hide batch expired action in attach order mode
|
2026-03-17 00:37:11 +08:00 |
|
萝卜
|
f47cc71599
|
Tests: adjust long reason length to exceed keyword link max
|
2026-03-17 00:27:50 +08:00 |
|
萝卜
|
7b143e1a11
|
Admin subscriptions: batch mark expired with safety guards
|
2026-03-17 00:27:04 +08:00 |
|
萝卜
|
0e8a9797b9
|
Governance: block clear sync errors when synced_only present
|
2026-03-17 00:13:19 +08:00 |
|
萝卜
|
c0e3dffce1
|
Tests: ensure clear BMPA errors button disables when sync_status/synced_only present
|
2026-03-17 00:10:50 +08:00 |
|
萝卜
|
4f01232f35
|
Tests: cover clear BMPA errors blocking for sync_status/synced_only
|
2026-03-17 00:08:21 +08:00 |
|
萝卜
|
98fa529d01
|
Governance: block clear BMPA errors when sync_status/synced_only present
|
2026-03-17 00:03:32 +08:00 |
|
萝卜
|
1e7513a2c5
|
Governance UI: block clear BMPA errors when sync filters present
|
2026-03-17 00:01:13 +08:00 |
|
萝卜
|
c54e95bb74
|
Fix: dashboard recent platform orders table overflow
|
2026-03-16 23:54:54 +08:00 |
|
萝卜
|
131aa6b259
|
Admin dashboard: align column widths and remove height sync JS
|
2026-03-16 23:51:44 +08:00 |
|
萝卜
|
18ea639583
|
chore(governance): block batch mark activated when refund_status=has
|
2026-03-16 23:35:39 +08:00 |
|
萝卜
|
485a8a639d
|
chore(governance): block batch BMPA when refund_status=has
|
2026-03-16 23:33:10 +08:00 |
|
萝卜
|
7f1d234393
|
feat(admin-dashboard): sync trend/billing card height with recent orders
|
2026-03-16 23:29:45 +08:00 |
|
萝卜
|
9dc281f48e
|
chore(governance): block batch mark activated when receipt none/refund has
|
2026-03-16 23:26:29 +08:00 |
|
萝卜
|
75d64195d6
|
chore(governance): block batch mark activated when reconcile/refund inconsistent
|
2026-03-16 23:16:25 +08:00 |
|
萝卜
|
a26be5de9e
|
chore(governance): block batch activate when refund_status=has
|
2026-03-16 23:03:38 +08:00 |
|
萝卜
|
8063b8ae9d
|
chore(governance): block batch activate when syncable_only conflicts with synced_only
|
2026-03-16 23:00:27 +08:00 |
|
萝卜
|
d68d0523b1
|
chore(governance): block batch BMPA when sync-governance filters present
|
2026-03-16 22:54:19 +08:00 |
|
萝卜
|
68735ee914
|
refactor(governance-ui): align clear sync errors guard with backend scopes
|
2026-03-16 22:44:15 +08:00 |
|
萝卜
|
f6fa80c95c
|
fix(admin-dashboard): prevent pay column header wrap
|
2026-03-16 22:38:55 +08:00 |
|
萝卜
|
502c397ec2
|
fix(governance-ui): align clear error tool guards with backend
|
2026-03-16 22:37:46 +08:00 |
|
萝卜
|
d13ada0ed8
|
fix(admin-dashboard): prevent recent order scanline labels wrapping
|
2026-03-16 22:20:06 +08:00 |
|
萝卜
|
07fb547e0e
|
chore(seed): enrich plan share demo data for dashboard top5
|
2026-03-16 22:12:45 +08:00 |
|
萝卜
|
5e73e03ac2
|
chore(admin-dashboard): rank links should keep paid filter
|
2026-03-16 22:02:37 +08:00 |
|
萝卜
|
3f7ab0ed94
|
feat(admin-dashboard): add rank coverage meta for merchant revenue top5
|
2026-03-16 22:01:06 +08:00 |
|
萝卜
|
6aa58d5369
|
chore(seed): add demo merchants for dashboard rank; tighten batch mark activated UI guard
|
2026-03-16 21:51:29 +08:00 |
|
萝卜
|
314563a8d5
|
chore(governance): block batch mark activated when filters conflict
|
2026-03-16 21:46:08 +08:00 |
|
萝卜
|
2f57dc3a70
|
test(governance): batch mark activated should include sync_status unsynced
|
2026-03-16 21:39:49 +08:00 |
|
萝卜
|
363e60f76b
|
fix(admin-dashboard): prevent row-warn links wrapping in recent orders
|
2026-03-16 21:38:52 +08:00 |
|
萝卜
|
09a6ee55ad
|
test(governance): add guardrails for clearing failure markers
|
2026-03-16 21:35:27 +08:00 |
|
萝卜
|
968cba3c08
|
chore(governance): guard clear bmpa errors when filters not bmpa scope
|
2026-03-16 21:30:51 +08:00 |
|
萝卜
|
d3793d062a
|
chore(governance): guard clear sync errors when filters conflict
|
2026-03-16 21:28:26 +08:00 |
|
萝卜
|
512de34da4
|
chore(governance): block batch activate when syncable_only conflicts with failed filters
|
2026-03-16 21:05:13 +08:00 |
|
萝卜
|
6790771364
|
chore(governance): block batch activate when syncable_only conflicts with sync status
|
2026-03-16 20:59:52 +08:00 |
|
萝卜
|
4fb0d6b050
|
chore(subscription): disable-on-submit for batch activate form
|
2026-03-16 20:53:52 +08:00 |
|
萝卜
|
45c1dbf2b9
|
fix(subscription): syncable stats exclude sync failed orders
|
2026-03-16 20:47:10 +08:00 |
|
萝卜
|
abb0f2a38f
|
fix(subscription): syncable filter excludes sync failed orders
|
2026-03-16 20:41:53 +08:00 |
|
萝卜
|
0e293081d9
|
test(platform-orders): syncable summary link locks unsynced scope
|
2026-03-16 20:35:59 +08:00 |
|
萝卜
|
bbc31d3869
|
feat(governance): add anchor jump to batch activate tool from hints
|
2026-03-16 20:29:40 +08:00 |
|
萝卜
|
6a89b67c7a
|
chore(admin-ui): add anchor id for batch activate subscriptions tool
|
2026-03-16 20:24:18 +08:00 |
|
萝卜
|
44b916ecb3
|
fix(subscription): syncable orders link locks unsynced scope
|
2026-03-16 20:20:59 +08:00 |
|
萝卜
|
2f4e727c1b
|
fix(governance): batch activate subscriptions excludes failed and dirty renewal orders
|
2026-03-16 20:15:33 +08:00 |
|
萝卜
|
115e94644d
|
fix(platform-orders): keep syncable links aligned with unsynced scope
|
2026-03-16 20:13:03 +08:00 |
|
萝卜
|
93277a1392
|
fix(platform-orders): syncable governance links lock sync_status=unsynced
|
2026-03-16 20:09:28 +08:00 |
|
萝卜
|
4199c19920
|
test(admin-dashboard): syncable count excludes sync failed orders
|
2026-03-16 19:45:49 +08:00 |
|
萝卜
|
97326e9922
|
fix(platform-orders): syncable_only excludes sync failed orders
|
2026-03-16 19:40:23 +08:00 |
|
萝卜
|
f297ffacd5
|
fix(admin-dashboard): syncable quick link aligns with unsynced scope
|
2026-03-16 19:36:54 +08:00 |
|