萝卜
|
485a8a639d
|
chore(governance): block batch BMPA when refund_status=has
|
2026-03-16 23:33:10 +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 |
|
萝卜
|
502c397ec2
|
fix(governance-ui): align clear error tool guards with backend
|
2026-03-16 22:37:46 +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 |
|
萝卜
|
6790771364
|
chore(governance): block batch activate when syncable_only conflicts with sync status
|
2026-03-16 20:59:52 +08:00 |
|
萝卜
|
dbb88f59f6
|
chore(governance): batch mark activated requires unsynced scope
|
2026-03-16 19:04:40 +08:00 |
|
萝卜
|
a9d2d5e749
|
refactor(admin-platform-order): centralize tool guard reasons
|
2026-03-16 13:28:14 +08:00 |
|
萝卜
|
d34578452c
|
BackUrl::sanitizeForLinks 增加长度安全阀(>2000 拒绝)并补单测
|
2026-03-15 04:45:04 +00:00 |
|
萝卜
|
0126a5aed7
|
BackUrl::sanitizeForLinks 增强:拒绝协议相对 URL(//evil.com)并补单测
|
2026-03-15 04:18:54 +00:00 |
|
萝卜
|
cbc05e59b7
|
BackUrl::sanitizeForLinks 增强:拒绝控制字符与 CRLF 注入 并补单测
|
2026-03-15 04:17:10 +00:00 |
|
萝卜
|
e86257e866
|
BackUrl::sanitizeForLinks 加强:拒绝二次编码 back%3D 绕过 并补单测
|
2026-03-15 04:11:42 +00:00 |
|
萝卜
|
09c8aeca2a
|
SubscriptionActivationService: guard against merchant mismatch
|
2026-03-15 02:56:31 +00:00 |
|
萝卜
|
ffc88feede
|
fix(backurl): avoid double fragment in withBackFirstAndFragment
|
2026-03-14 21:51:17 +00:00 |
|
萝卜
|
ee85e63340
|
fix(backurl): avoid double fragment when using withBackAndFragment
|
2026-03-14 21:33:32 +00:00 |
|
萝卜
|
4e741b92a1
|
security(backurl): re-sanitize back inside helpers
|
2026-03-14 21:27:52 +00:00 |
|
萝卜
|
e854d94578
|
feat(backurl): preserve existing fragment when appending back
|
2026-03-14 21:20:26 +00:00 |
|
萝卜
|
84e860e403
|
fix(backurl): avoid duplicating back query when already present
|
2026-03-14 21:17:02 +00:00 |
|
萝卜
|
9107d4af4a
|
fix(backurl): stabilize query append and support back-first links
|
2026-03-14 21:02:25 +00:00 |
|
萝卜
|
1b6476f2a4
|
refactor(back): add withBackAndFragment helper and use on platform_orders index
|
2026-03-14 19:06:32 +00:00 |
|
萝卜
|
956e177544
|
refactor: BackUrl::selfWithoutBack 统一 selfWithoutBack 构造并修复 currentQuery 依赖
|
2026-03-14 18:52:28 +00:00 |
|
萝卜
|
b759a87a57
|
refactor: BackUrl::withBack 统一 allUrl 生成(清空筛选但保留 back)
|
2026-03-14 18:46:18 +00:00 |
|
萝卜
|
0f8bc04020
|
refactor: BackUrl 增加 currentPathQuickFilter 并复用到收费闭环列表页
|
2026-03-14 18:37:47 +00:00 |
|
萝卜
|
7632b1d215
|
refactor: BackUrl 增加 currentPathWithQuery 并复用到订单列表
|
2026-03-14 18:25:35 +00:00 |
|
萝卜
|
3ffc87f78c
|
refactor: 抽出 BackUrl::sanitizeForLinks 统一 back 安全护栏
|
2026-03-14 18:23:00 +00:00 |
|
萝卜
|
50f15cdea8
|
chore: init saasshop repo + sql migrations runner + gitee go
|
2026-03-10 11:31:02 +00:00 |
|