dsh-legal-suite 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +115 -0
- package/client/client.js +973 -630
- package/lib/domains/item/routes.js +13 -49
- package/lib/domains/item/routes.js.map +1 -1
- package/lib/domains/item/shape.js +128 -0
- package/lib/domains/item/shape.js.map +1 -0
- package/lib/domains/item/store/item-store.js +273 -21
- package/lib/domains/item/store/item-store.js.map +1 -1
- package/lib/domains/litigation/cascade-delete.js +87 -0
- package/lib/domains/litigation/cascade-delete.js.map +1 -0
- package/lib/domains/litigation/deadlines.js +115 -0
- package/lib/domains/litigation/deadlines.js.map +1 -1
- package/lib/domains/litigation/import/agentlex-migrate.js +60 -1
- package/lib/domains/litigation/import/agentlex-migrate.js.map +1 -1
- package/lib/domains/litigation/index.js +56 -4
- package/lib/domains/litigation/index.js.map +1 -1
- package/lib/domains/litigation/legacy-compat.js +260 -38
- package/lib/domains/litigation/legacy-compat.js.map +1 -1
- package/lib/domains/litigation/merge-legacy.js +169 -0
- package/lib/domains/litigation/merge-legacy.js.map +1 -0
- package/lib/domains/litigation/party-vocab.js +357 -0
- package/lib/domains/litigation/party-vocab.js.map +1 -0
- package/lib/domains/litigation/routes.js +172 -14
- package/lib/domains/litigation/routes.js.map +1 -1
- package/lib/domains/litigation/stage-expansion.js +26 -10
- package/lib/domains/litigation/stage-expansion.js.map +1 -1
- package/lib/domains/litigation/store/case-store.js +103 -15
- package/lib/domains/litigation/store/case-store.js.map +1 -1
- package/lib/domains/litigation/task-view.js +46 -0
- package/lib/domains/litigation/task-view.js.map +1 -0
- package/lib/domains/litigation/tools.js +166 -5
- package/lib/domains/litigation/tools.js.map +1 -1
- package/lib/domains/nonlitigation/import/import-agentlex.js +55 -26
- package/lib/domains/nonlitigation/import/import-agentlex.js.map +1 -1
- package/lib/domains/nonlitigation/index.js +11 -1
- package/lib/domains/nonlitigation/index.js.map +1 -1
- package/lib/domains/nonlitigation/legacy-compat.js +197 -37
- package/lib/domains/nonlitigation/legacy-compat.js.map +1 -1
- package/lib/domains/nonlitigation/merge-legacy.js +117 -0
- package/lib/domains/nonlitigation/merge-legacy.js.map +1 -0
- package/lib/domains/nonlitigation/project-task-view.js +26 -0
- package/lib/domains/nonlitigation/project-task-view.js.map +1 -0
- package/lib/domains/nonlitigation/routes.js +124 -28
- package/lib/domains/nonlitigation/routes.js.map +1 -1
- package/lib/domains/nonlitigation/stage-expansion.js +26 -11
- package/lib/domains/nonlitigation/stage-expansion.js.map +1 -1
- package/lib/domains/nonlitigation/store/project-store.js +17 -0
- package/lib/domains/nonlitigation/store/project-store.js.map +1 -1
- package/lib/domains/push/push.js +36 -8
- package/lib/domains/push/push.js.map +1 -1
- package/lib/domains/task/aggregate/unified.js +3 -1
- package/lib/domains/task/aggregate/unified.js.map +1 -1
- package/lib/domains/task/routes.js +54 -32
- package/lib/domains/task/routes.js.map +1 -1
- package/lib/shared/seed/index.js +234 -223
- package/lib/shared/seed/index.js.map +1 -1
- package/lib/suite.js +15 -17
- package/lib/suite.js.map +1 -1
- package/lib/types/domains/item/shape.d.ts +61 -0
- package/lib/types/domains/item/store/item-store.d.ts +35 -3
- package/lib/types/domains/item/store/types.d.ts +17 -3
- package/lib/types/domains/litigation/cascade-delete.d.ts +48 -0
- package/lib/types/domains/litigation/deadlines.d.ts +17 -0
- package/lib/types/domains/litigation/merge-legacy.d.ts +13 -0
- package/lib/types/domains/litigation/party-vocab.d.ts +116 -0
- package/lib/types/domains/litigation/routes.d.ts +3 -2
- package/lib/types/domains/litigation/stage-expansion.d.ts +1 -1
- package/lib/types/domains/litigation/store/case-store.d.ts +6 -0
- package/lib/types/domains/litigation/store/types.d.ts +5 -1
- package/lib/types/domains/litigation/task-view.d.ts +24 -0
- package/lib/types/domains/litigation/tools.d.ts +2 -0
- package/lib/types/domains/nonlitigation/import/import-agentlex.d.ts +1 -1
- package/lib/types/domains/nonlitigation/merge-legacy.d.ts +6 -0
- package/lib/types/domains/nonlitigation/project-task-view.d.ts +9 -0
- package/lib/types/domains/nonlitigation/routes.d.ts +3 -2
- package/lib/types/domains/nonlitigation/stage-expansion.d.ts +2 -2
- package/lib/types/domains/nonlitigation/store/project-store.d.ts +2 -0
- package/lib/types/domains/push/push.d.ts +4 -4
- package/lib/types/shared/seed/index.d.ts +15 -7
- package/package.json +1 -1
- package/src/domains/item/routes.ts +13 -48
- package/src/domains/item/shape.ts +176 -0
- package/src/domains/item/store/item-store.ts +277 -23
- package/src/domains/item/store/types.ts +18 -3
- package/src/domains/litigation/cascade-delete.ts +106 -0
- package/src/domains/litigation/deadlines.ts +110 -0
- package/src/domains/litigation/import/agentlex-migrate.ts +62 -1
- package/src/domains/litigation/index.ts +57 -4
- package/src/domains/litigation/legacy-compat.ts +241 -56
- package/src/domains/litigation/merge-legacy.ts +171 -0
- package/src/domains/litigation/party-vocab.ts +417 -0
- package/src/domains/litigation/routes.ts +171 -16
- package/src/domains/litigation/stage-expansion.ts +29 -11
- package/src/domains/litigation/store/case-store.ts +94 -17
- package/src/domains/litigation/store/types.ts +5 -1
- package/src/domains/litigation/task-view.ts +72 -0
- package/src/domains/litigation/tools.ts +165 -5
- package/src/domains/nonlitigation/import/import-agentlex.ts +73 -26
- package/src/domains/nonlitigation/index.ts +13 -1
- package/src/domains/nonlitigation/legacy-compat.ts +184 -57
- package/src/domains/nonlitigation/merge-legacy.ts +115 -0
- package/src/domains/nonlitigation/project-task-view.ts +45 -0
- package/src/domains/nonlitigation/routes.ts +121 -28
- package/src/domains/nonlitigation/stage-expansion.ts +29 -12
- package/src/domains/nonlitigation/store/project-store.ts +17 -0
- package/src/domains/push/client/PushSettings.tsx +6 -5
- package/src/domains/push/push.ts +34 -8
- package/src/domains/task/aggregate/unified.ts +4 -1
- package/src/domains/task/routes.ts +50 -25
- package/src/shared/seed/index.ts +274 -248
- package/src/suite.ts +15 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,120 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.2(2026-09-04)
|
|
4
|
+
|
|
5
|
+
### 备忘录新问题 5 项 + 字体(#6–#9 + 重复编号防护 + 卡片编号字体)
|
|
6
|
+
|
|
7
|
+
- **#6 新建案件拆双按钮**:表单按钮由单一「注册案件」改为「智能注册」(落库后跳
|
|
8
|
+
agent 会话,由 agent 按 SOP 补全法院/法官/标的额等)与「普通注册」(仅落库、
|
|
9
|
+
不跳会话,供纯手动登记)。CaseManager 新增 handleCaseSubmitPlain 分支,共用
|
|
10
|
+
buildCaseEntry 纯函数;NewCaseModal 增加 onSubmitPlain prop 与双提交按钮。
|
|
11
|
+
- **#7 任务面板「全部」等数字基数 = 待办**:hero 时间排「全部 N」改为只计未完成
|
|
12
|
+
任务(status ≠ done),不再把已完成混入待办基数。
|
|
13
|
+
- **#8 新建案件编号不被自动生成覆盖 + 重复编号防护**:NewCaseModal 之前每次打开/
|
|
14
|
+
现有案件变化都会用 generateCaseId 重置编号 → 用户手填后也被改成自动号。现加
|
|
15
|
+
caseIdTouchedRef 守卫:用户编辑过编号就不再自动分配(关闭重开才复位),自动
|
|
16
|
+
生成仅在编号为空时。**重复编号绝不覆盖数据**:编号输入框下方即时红字提醒(已被
|
|
17
|
+
哪个案件占用)、冲突时提交按钮禁用;`useAgentLex.addCase` 移除「冲突时静默回落
|
|
18
|
+
update-case」的危险逻辑,改为一律抛错提示换号(服务端 register 冲突同样拦截),
|
|
19
|
+
弹窗保持打开展示错误。
|
|
20
|
+
- **#9 日历点日弹窗点击外部自动关闭**:TaskManager 增加 document pointerdown 捕获
|
|
21
|
+
——弹层打开后点弹层外任意处(天格按钮除外)自动关闭,不再只能点 X。天格加
|
|
22
|
+
`data-calday` 标记防误关。修复任务面板白屏:TaskManager 新用 useEffect 但 import
|
|
23
|
+
遗漏 → 运行时 ReferenceError,补上 `useEffect` import。
|
|
24
|
+
- **案件卡片/详情页编号字体改微软雅黑**:案件总览卡片左轨编号(年份+序号)与案件
|
|
25
|
+
详情页大标题编号由等宽 font-mono 改为微软雅黑(内联 fontFamily 保证生效)。
|
|
26
|
+
|
|
27
|
+
### 存储:task-groups.json 退役,并入 items.json(单文件单源)
|
|
28
|
+
|
|
29
|
+
- `items.json` 文档扩为 `{ groups: [...], items: [...] }`:任务组(阶段)壳与
|
|
30
|
+
任务/事件正文同文件存储,磁盘上不再有第二套任务数据文件。
|
|
31
|
+
- 启动自动迁移旧 `task-groups.json` → `items.json.groups`(按 id 去重、已存在优先,
|
|
32
|
+
补 ownerType),成功后旧文件改名 `.legacy` 退役。
|
|
33
|
+
- 读入兼容:旧 items.json(只有 items、无 groups 键)读写自动归一化,升级不断档。
|
|
34
|
+
|
|
35
|
+
### 老数据彻底下岗:一次性并库迁移(启动自动,磁盘标记只跑一次)
|
|
36
|
+
|
|
37
|
+
- `merge-legacy.ts`(诉讼)+ `merge-legacy.ts`(非诉):把 case-registry 每案
|
|
38
|
+
残留的 taskGroups 镜像(组 + 任务正文,含 deadline/time/subtasks/checklist/
|
|
39
|
+
keyDateId)与 case-timeline.json 旧事件并入 items(按 id 去重、只补不覆盖,
|
|
40
|
+
零丢失)。
|
|
41
|
+
- 迁移成功后剥离 registry 每案的 taskGroups(registry 只留案件元信息 + keyDates),
|
|
42
|
+
case-timeline.json 改名 `.legacy` 退役。
|
|
43
|
+
- 迁移前先做数据快照(~/.dsh/agentlex-backups/),失败仅告警不致命、可重试。
|
|
44
|
+
|
|
45
|
+
### 读侧统一(不再从 registry taskGroups 计数/判存在)
|
|
46
|
+
|
|
47
|
+
- `/api/agentlex/read`(suite)、`/read-case`、legacy `/read-case`、`get_case`:
|
|
48
|
+
任务组一律从 items 实时聚合(含未分组兜底,组行 name+title 双写兼容 health 与旧 GUI)。
|
|
49
|
+
- `case_health` / `stage_suggestions` / `update_case` 同回合建议:先重建 items 任务
|
|
50
|
+
视图再计算 → **修复「展开任务成功但体检阶段任务数=0、反复建议展开当前阶段」**。
|
|
51
|
+
- `planStageExpansion` 已存在/已展开判断改读 items(幂等判断与写路径同源)。
|
|
52
|
+
|
|
53
|
+
### 写侧统一(全部落 items)
|
|
54
|
+
|
|
55
|
+
- litigation 原生路由 `/group /delete-group /reorder-groups /move-task /subtask
|
|
56
|
+
/checklist /check` 的 itemStore 分支补全;`/set-task-keydate` 任务本体写 items、
|
|
57
|
+
keyDates(案件字段)仍归 case-store 维护、item 记 keyDateId 链接。
|
|
58
|
+
- legacy-compat GUI 写路由(诉讼 + 非诉):组/任务/子任务/检查项增删改、
|
|
59
|
+
移动、排序全部改 itemStore → **修复 GUI 勾子任务/检查项写回旧库再分裂**;
|
|
60
|
+
时间轴事件 add/update/delete/toggle 也改 items。
|
|
61
|
+
- 非诉原生路由同款 items 化(group/reorder/task/move/subtask/check/add-checklist/
|
|
62
|
+
delete-checklist/health/stage)。
|
|
63
|
+
- 任务域写穿 `/api/agentlex-task/task`(source=litigation/nonlitigation)改
|
|
64
|
+
upsertItem(items),`delete-task` 同步按 source 走 items 删除 → 任务面板勾选
|
|
65
|
+
状态/编辑真正落到统一事项。
|
|
66
|
+
- 导入工具(AgentLex 迁移):案件任务搬入 items(不再写 registry taskGroups),
|
|
67
|
+
事件照旧入 items。
|
|
68
|
+
|
|
69
|
+
### 其他
|
|
70
|
+
|
|
71
|
+
- 工具/路由任务 upsert 补 groupName/templateTitle 溯源(幂等展开依据完整)。
|
|
72
|
+
- deleteGroup 一并清理组内任务(0.2.2 store 语义),删组不留孤儿。
|
|
73
|
+
- 验证:新增 `scripts/verify-unified-022.mjs`(并库/单文件/退役/展开→体检全链路),
|
|
74
|
+
全量既有 verify 脚本回归通过;真实 live 数据克隆演练通过(2026-015 展开后
|
|
75
|
+
体检阶段任务数=5、dryRun 正确跳过已存在 5 条)。
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
## 0.2.1(2026-09-04)
|
|
79
|
+
|
|
80
|
+
0.2.0 统一事项模型的收尾修复批次(备忘录 5 项 + 分叉根治 + 当事人模型重构)。
|
|
81
|
+
|
|
82
|
+
### 当事人「我方」模型重构(多次返工后定稿)
|
|
83
|
+
|
|
84
|
+
- **「我方」= 律所实际代理的具体当事人主体**(可多人),绝不由 ourSide(程序地位/
|
|
85
|
+
原告系·被告系)推断;同侧多个主体(如劳动仲裁多个被申请人)只有显式标记的才是
|
|
86
|
+
我方。数据字段:`parties.ourClientName` + `details[].ourClient: true`。
|
|
87
|
+
- **服务端 party-vocab.ts**:规范角色词表(含序数变体 canonical 识别)、写入时同名
|
|
88
|
+
主体去重合并(role 并集进 roles[],不重复列当事人)、ourSide 中文化归一。
|
|
89
|
+
- **详情页**:当事人信息右上角一个紧凑下拉选我方(选项=下方当事人,角色·名字);
|
|
90
|
+
行内 myClient 高亮「我方」;顶部原「我方诉讼地位」下拉移除。
|
|
91
|
+
- **新建案件**:废弃孤立「我方立场」下拉 →「我方当事人/对方当事人」两组动态行
|
|
92
|
+
(角色下拉含序数变体 + 姓名,可增删);我方组填的人自动 ourClient:true,ourSide
|
|
93
|
+
由我方首行角色自动推导。
|
|
94
|
+
- **修复浏览器端丢标记**:useAgentLex normalizeParties 此前丢弃 ourClient/ourClientName
|
|
95
|
+
→ UI 永远拿不到我方指认("一个我方都没有");已透传并补类型。
|
|
96
|
+
- **修复读取重复补行**:normalizeParties 的 legacy auto-populate 此前用精确字符串
|
|
97
|
+
判定,把「申请人/第一被申请人」误判为缺原告/被告而补行 → 003 变 5 行;改为
|
|
98
|
+
details 非空不补 + canonical 侧判定 + 顿号串(多人旧写法)不补。
|
|
99
|
+
- 卡片/详情「我方·对方」按阵营展示(我方多人逐行列出),角色编辑下拉固定规范词表。
|
|
100
|
+
|
|
101
|
+
### 备忘录其余项
|
|
102
|
+
|
|
103
|
+
- 审级自动追加节点回填案件已有信息(caseNo/court/judge/filedAt/我方当事人)。
|
|
104
|
+
- 推送设置模板预览改中性示例(去掉真实案号/当事人);push 运行时实时解析投递渠道,
|
|
105
|
+
不再因配置缺 channel 而把飞书走成普通文字。
|
|
106
|
+
- 内置 seed 演示减为诉讼/非诉各 2 个 + 磁盘播种标记(删光演示重启不复活)。
|
|
107
|
+
- 删除案件/项目级联清理 items/task-groups/legacy timeline/schedules(删除彻底)。
|
|
108
|
+
- 任务管理 hero「今日日程」→「今日事项」(事件 + 到期任务合并展示)。
|
|
109
|
+
|
|
110
|
+
### 统一事项模型收尾(split-brain 根治)
|
|
111
|
+
|
|
112
|
+
- 读路径 / 检查项 / 子任务 / 任务组 / 事件 toggle-delete 全部切 items.json,与写
|
|
113
|
+
路径同源(list_events/deadlines/upsert_check/upsert_subtask/delete_event…);
|
|
114
|
+
- items ownerType(litigation/nonlitigation/standalone)区分同号案件/项目,避免
|
|
115
|
+
诉讼 2026-001 与非诉 2026-001 事项互串(suite 聚合按 ownerType 归属)。
|
|
116
|
+
|
|
117
|
+
---
|
|
3
118
|
## 0.2.0(2026-09-04)
|
|
4
119
|
|
|
5
120
|
### P0 · 统一事项模型重构(事件/任务统一为一个 Item)
|