Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
816 commits
Select commit Hold shift + click to select a range
87d1994
p4(fu): QueryPanel 会话注册表与事务级库切换
Oct 5, 2026
b096ffb
p4(fu): 元数据缓存键接入 metadata identity,会话与连接配置绑定
Oct 5, 2026
0db23e6
feat(p5): merge i18n catch-up track
Oct 5, 2026
bc81de2
chore(p5): drop i18n track progress ledger
Oct 5, 2026
1edcead
chore(p5): hub update after i18n merge
Oct 5, 2026
609ef9d
chore(p5): fix hub ledger placeholder to drop-commit hash
Oct 5, 2026
9e640ac
feat(data-sync): 产物元数据冻结生效源过滤与相同行基线
Oct 5, 2026
422341c
feat(data-transfer): expose migration through Job-shaped commands
Oct 5, 2026
20c9ff1
docs(data-transfer): 记录 P5 迁移轨道门禁台账
Oct 5, 2026
70a3ead
chore(p5): record data-transfer R1 findings and fmt discipline
Oct 5, 2026
578f466
chore(p5): record cross-track facts from data-transfer R1 (cancel wat…
Oct 5, 2026
506f424
p3-fu(tunnel): 闭合 CM-32-FU1 —— 单计数器铁律从审计承诺变成机械保证
Oct 5, 2026
68b92c9
p3-fu(tunnel): 补 R7 / R2+ 关掉「换名字挂镜像账」,闸门拆目录守单文件纪律
Oct 5, 2026
760af1c
fix(data-transfer): honour §6.2/§7/§8 on the Job paths (round-1 defects)
Oct 5, 2026
22f685a
docs(data-transfer): round-2 台账(缺陷修复台账 + 门禁归属修正)
Oct 5, 2026
5ff668b
p3-fu(tunnel): 台账注释钉住「建账 vs 记账」的分界
Oct 6, 2026
85e5c55
p3-fu(tunnel): R6 按职责拆出 gate_self_audit.rs
Oct 6, 2026
cbced24
FU1 驱逐的四种非成功结局不再一律吞成「什么都没发生」
Oct 6, 2026
874b85f
p3-fu(tunnel): 台账 progress.md(交付即销毁)
Oct 6, 2026
783d261
FU2 §9.4 的宿主归池前检查在生产路径上重新可达
Oct 6, 2026
965a2ef
FU4 epoch 字符串收敛到唯一事实源
Oct 6, 2026
f494cd2
FU3 CM-74 第 2 条(提交替换 × 并发空闲驱逐)的可达性结论 + 五条用例
Oct 6, 2026
1d673ab
p3fu(fu): closeResource 从 ops.rs 拆出为 close.rs(纯搬迁,行为不变)
Oct 6, 2026
0d90192
FU5 孤儿态判据定案:报错,不是发回执也不是凭空重开
Oct 6, 2026
3e28d49
feat(p5-data-transfer): merge
Oct 6, 2026
6385eff
chore(p5): drop data-transfer track progress ledger
Oct 6, 2026
6ae4438
FU4 补强:「只有一份格式化」改由源码扫描钉住,值比较那条缩回它真正能证明的事
Oct 6, 2026
79ea4a8
fix(p5): drop duplicate datazen-runtime dep introduced by merge
Oct 6, 2026
ae20f3f
p3fu(fu): F12 关闭路径收敛为一次查表,未知 resourceId 从死分支变为 Err
Oct 6, 2026
395f9e1
p3fu(fu): F13 归池判据同时消费「实测登记数」与「宿主声明」(CM-74 / §9.4)
Oct 6, 2026
7f56e59
chore(p5): record data-transfer R2 verdict, D9 feature blocker, merge…
Oct 6, 2026
12bfe51
feat(runtime): 把 TunnelLedger 接进 ResourceManager 并闭合 CM-27 全阶段失败矩阵
Oct 6, 2026
6bc9574
feat(runtime): 闭合 Quarantined 下隧道引用与物理预算的归属配对
Oct 6, 2026
bbca42c
p3fu(fu): F11 关闭未确认分支补上 7 条覆盖(此前执行 0 次,非死代码)
Oct 6, 2026
cbf0f55
test(runtime): 补 release 自身走 Closed 分支时的配对用例
Oct 6, 2026
a1b1f96
把 §6.4 空闲驱逐整段拆到 registry/registry/evict.rs,让 registry.rs 回到 800 行以内
Oct 6, 2026
194ff75
tunnel: 补 R6 登记完备性、ASCII 化扫描入口,并修 blank() 的两条失约
Oct 6, 2026
c81c93f
resource: 把隧道引用并入 CleanupReport,删掉重复的第二次结算
Oct 6, 2026
92fa9a8
hub: 记录 Wave-2 两轨开跑与 D9/stage 内取消缺口的用户裁定
Oct 6, 2026
531b7e5
台账:FU1–FU5 逐项结论、门禁逐字结论行、9+1 条变异证据、两处基线失败的定性
Oct 6, 2026
3d5aca9
fix(runtime/fake): 重复关闭只记一次账(F14),close_cases 按职责拆分
Oct 6, 2026
240b4ea
tunnel: 台账补 M13 反例复验的逐字实测证据
Oct 6, 2026
7bf72ea
fix(runtime): 执行网关固有实现拆出 execution.rs,mod.rs 回到 800 行以内
Oct 6, 2026
b52e351
hub: 记录 cutover 轨首次死亡与未提交现场
Oct 6, 2026
533e544
hub: cutover 轨换新实例,接管未提交产出
Oct 6, 2026
7dc102d
fix(runtime): 把 execution.rs 登记进 cm70_no_disk 的落盘反面证据扫描
Oct 6, 2026
9affc07
fix(p5-runtime): 阶段内取消改由内核看守者送达,收敛 data-transfer 的第二套取消通道
Oct 6, 2026
ac9c62c
hub: runtime 轨交付待验收,并记录 rustfmt 地雷
Oct 6, 2026
25ce7be
fix(runtime): 撤销 gateway_contract 800 行门禁里唯一一条过期豁免
Oct 6, 2026
2efa334
fix(CM-32): 单账铁律的自检改成语法树判,不再做字面子串黑名单
Oct 6, 2026
6b2b35e
docs(arch): 更正隧道登记表里三处与代码不符的事实
Oct 6, 2026
1422bbe
merge: 合入 feature/p3fu-tunnel(单计数器轨道)
Oct 6, 2026
17aba8e
hub: runtime 轨 Tester 判 TEST_FAILED,变异核验钉死 D1/D2/D3
Oct 6, 2026
e212496
merge: 合入 feature/p3fu-fake(独立验收 PASS 的轨道)
Oct 6, 2026
71c9dce
merge: 合入 feature/p3fu-registry(注册表替换轨道,独立验收 PASS)
Oct 6, 2026
83d06a5
Merge commit '71c9dce75' into feature/p3fu-arch
Oct 6, 2026
d2878ad
fix(arch): 单账审计改钉 syn 2,R5 不再被覆盖面闸门跳过
Oct 6, 2026
36d2682
feat(sync): prepare/apply 走生产 Job 层并补齐 CM-43/44/45 宿主契约
Oct 6, 2026
088a70b
hub: data-sync 交付 36d2682c6 已派 Tester;记录 main 被 P3fu 推前与基线偏斜
Oct 6, 2026
7d6a0f6
fix(p5-cancel-watcher): round-2 rework D1-D7 (integration coverage + …
Oct 6, 2026
ceafddd
hub: runtime 返修 7d6a0f68d 已派 R2 Tester;记录门禁偷换与两处待判点
Oct 6, 2026
43c458e
CM-32-FU1 R5:按取数路径闭合收窄判据,架构轨端口登记入册并收敛成一个折函数
Oct 6, 2026
105494c
merge(p5-runtime-cancel-watcher): 内核阶段内取消看守者 + data-transfer 收敛到内核唯一取消通道
Oct 6, 2026
e28ff39
hub: runtime 轨 TEST_PASSED 并合并 105494c14;记录变异 target-dir 假绿事故与 4 条归档缺…
Oct 6, 2026
616ea33
CM-32-FU1:把端口那一半拆成 port_audit.rs,顺带清掉两份格式化债
Oct 6, 2026
c3a509a
fix(data-transfer): 纠正"单阶段 Job"清单并钉死阶段展开表
Oct 6, 2026
25d336e
merge: data-sync 交付 36d2682c6 并入集成分支基线(修复轮起点)
Oct 6, 2026
9bae839
合并 P3-FU 架构轨:TunnelLedger 接进 ResourceManager
Oct 6, 2026
797603f
docs(hub): 记录 data-sync 判 TEST_FAILED 的裁定与修复轮基线
Oct 6, 2026
e16b434
test(runtime): 给「停止轮询」断言补上活性前置,消除空转通过(D-A)
Oct 6, 2026
0627bdb
test(runtime): 覆盖 `terminal => return` 早退分支(D-B)
Oct 6, 2026
ea53469
docs(data-transfer): 写清 kernel_cancel 与 runtime 侧 C1 的成对关系(D-E)
Oct 6, 2026
3eb7d5c
docs(hub): 记录驱动集 DB_REGISTRY 不可比事实与 active_cancel_watchers 语义勘误
Oct 6, 2026
d4ebea6
style(runtime): 补 terminal_exit.rs 末尾换行,消除 rustfmt 漂移
Oct 6, 2026
f440acf
docs(runtime): 给 D-B 文档注释里的「全绿」断言补上 CTRL-2 实测出处
Oct 6, 2026
bace1e5
docs(hub): 登记 cancel-hardening 交付与对照变异取证,标注台账缺口
Oct 6, 2026
37e6d0b
WIP:R2-1 收敛(未过门禁)—— 宿主取消桥改走内核 CancelToken,删 host 侧 flag 存储
Oct 6, 2026
7ec0ca3
merge: cancel-hardening 交付 f440acf91 并入集成分支(D-A/D-B/D-C/D-E)
Oct 6, 2026
ec0444e
chore(runtime): 消掉 35 条 warning,并钉死共享夹具的处置纪律
Oct 6, 2026
e01a1f6
R2-1/R2-4 补:edition 2021 可编译 + rustfmt
Oct 6, 2026
3510fdf
R2-2:CM-44 取消契约改为可观察行为断言(D1 修复)
Oct 6, 2026
e61c27f
docs(hub): cancel-hardening TEST_PASSED 并合并 7ec0ca315;登记 CTRL-2b 归因锁与…
Oct 6, 2026
69d5fa8
R2-1 收尾:ensure_job 再导出收敛为 cfg(test)
Oct 6, 2026
47dedcb
R2-4 修:select 单测的 mock 需开 parameterized_writes
Oct 6, 2026
4ebdcab
chore(runtime): 清空 src/ 的 50 处 clippy 告警,并钉死「生产路径禁 #[allow]」
Oct 6, 2026
c56b2e1
R2-3: test fakes observe the kernel CancelToken instead of a host-min…
Oct 6, 2026
4a8174f
R2-4: cover CM-44 pre-Job cancel on the production submit_apply path
Oct 6, 2026
72bbda1
R2-5: bound the cancel contract's wait for the first write
Oct 6, 2026
f3f4ec3
R2-6: open the gate up front in the pre-Job cancel contract
Oct 6, 2026
00da4dc
registry 轨:epoch 格式字面量收敛到唯一实现 + 补放行改为有条件
Oct 6, 2026
f0b5732
注释不再引用行号:src/ 与 tests/ 全做(35 + 33 处)
Oct 6, 2026
f2793c5
docs(hub): 登记 data-sync R2 交付待验(删除宿主取消桥改走内核 token),标注签名变更风险与三处基线争议
Oct 6, 2026
0bcbf43
refactor(runtime): 清除 connection 模块注释与字符串里的文档引用型标记
Oct 6, 2026
9c1f9d8
注释与字符串不再引用文档位置:规格章节号/CM-NN/文档路径/行号/F-NN/R1 全部清掉
Oct 6, 2026
38c6596
清理 resource/tunnel/budget/gateway 注释与字符串中的文档引用标记
Oct 6, 2026
eeb78e5
tests(runtime): 集成测试注释与断言文案不再引用规格位置
Oct 6, 2026
adb0fd0
registry: 清除注释与消息里的规格引用标记
Oct 6, 2026
4b78275
docs(hub): 登记 Tester 中途裁定——warning 基线勘误为 34、签名变更非 IPC 可见、R4 上界裁定;推翻 p…
Oct 6, 2026
2aac39c
connection/testing/:注释与断言消息不再引用规格位置
Oct 6, 2026
e4d313f
docs(hub): 登记阻塞缺陷——端点重叠把不同物理库判为同一端点,开修复轨 p5-endpoint-overlap
Oct 6, 2026
31af2b8
merge(p5): data-sync R2 修复(Tester 5324a984 独立复验 TEST_PASSED)
Oct 6, 2026
1a61ae5
docs(hub): data-sync R2 Tester 终裁 TEST_PASSED,并采纳其对我四处说法的推翻
Oct 6, 2026
653f234
fix(job-budget): 端点重叠检测改用「service_key + connectionId」键并集
Oct 6, 2026
24f5a89
fix(data-transfer): Job 端点身份改由真实连接配置导出
Oct 6, 2026
bd436ef
收敛两处守卫的判据:把实测证伪的前提改成实测证实的洞
Oct 6, 2026
b00a1b0
style(job-budget): 端点身份用例拆分为独立测试二进制并消除格式偏差
Oct 6, 2026
e87aedb
docs(hub): 前端轨转验收中;端点轨首个提交
Oct 6, 2026
051a228
docs: 记录 p5-endpoint-overlap 轨进度台账
Oct 6, 2026
27a525c
docs(hub): 记录 frontend-cutover TEST_FAILED 裁定与端点身份轨状态
Oct 6, 2026
ad2f33e
docs(hub): frontend-cutover 修复轨 READY_FOR_TEST,端点身份轨待验收
Oct 6, 2026
f9cc99d
docs(hub): 端点身份轨判 TEST_FAILED,记录 D1 范畴错误与 D2 漏判
Oct 6, 2026
aa6b34e
hub: frontend-cutover 判 TEST_FAILED,D1 判不成立
Oct 6, 2026
2940e25
fix(data-transfer): 端点身份只用位置键,并让摘要吸收驱动默认 host
Oct 7, 2026
e998366
docs: p5-endpoint-overlap 台账更正——变更规模、变异验证、告警集合与取证方案
Oct 7, 2026
5824392
docs: 写入干净树认证门禁结果,并更正驱动计数口径
Oct 7, 2026
fc81961
test(job-budget): job_kernel.rs 按职责拆为三文件,回到单文件 ≤800 行纪律
Oct 7, 2026
8d1c65b
docs: 台账记录 job_kernel.rs 拆分提交 fc8196128 与三文件行数
Oct 7, 2026
6140045
hub: 撤回 D-1 不成立裁定; 后端停止预填 + D-4 不可达; 两条新纪律
Oct 7, 2026
03f153e
docs(progress): 补齐最终门禁、变异有效性前提与驱动集断言证据
Oct 7, 2026
825087c
hub: 门禁必须跑在最终 HEAD 上(两条轨同时踩中)
Oct 7, 2026
de75c10
docs(progress): 记录 03f153e70 门禁重跑与 CODE_SHA 收口
Oct 7, 2026
dd50883
hub: 工作区指纹不能用 git write-tree(哈希 index 而非工作树)
Oct 7, 2026
ca26ecf
hub: 两轨修复轨交付,开 data-sync 套件可靠性轨
Oct 7, 2026
e0a0c06
hub: 前端切轨 tip 前移至 4c6653daa,固定 squash 范围
Oct 7, 2026
089f23f
feat(data-transfer): 前端切 Job 路径(D9),后端停止预填新建表目标名 [squash 299b7562b^..…
Oct 7, 2026
7edfbd2
merge(p5-frontend-cutover): 前端切 Job 路径(D9) + D-1 后端停止预填目标名
Oct 7, 2026
b82509e
hub: frontend-cutover 合入;记录索引/工作树与 brief 过期两条教训
Oct 7, 2026
f7226e4
fix(clippy): 消除本轨新引入的两条告警(unused_imports / doc_lazy_continuation)
Oct 7, 2026
02dfd0c
docs(hub): endpoint-overlap 验收结论、postgres 等价性证明、告警集合判定法、超限可拆性裁定
Oct 7, 2026
94a3aaa
fix(clippy): 修正 doc_lazy_continuation 修复的缩进目标
Oct 7, 2026
5bafc13
docs(台账): 记录修复轮 R1 的告警门禁与测试实测
Oct 7, 2026
7909c7c
merge(p5): endpoint-overlap —— 物理端点身份键与连接配额键分离(§6.2 缺陷修复)
Oct 7, 2026
d6423f9
hub: endpoint-overlap 合入 7909c7cd3;新增注释纪律与两条敞口轨
Oct 7, 2026
7cd8e22
hub: 登记 p5-job-addressable 与 p5-transfer-target-tables 两轨并行开工
Oct 7, 2026
f04669b
test(redis): 消除 clippy::approx_constant 的 error 级诊断
Oct 7, 2026
f667812
hub: 裁定 D3 依赖 A 轨、flake 轨须在安静机器开;登记两条新开工轨并更正两处路径误记
Oct 7, 2026
b92e1da
test(data-transfer): pin the target catalog actually reaching table i…
Oct 7, 2026
feb0748
docs(ledger): 记录 approx_constant 轨的门禁与变异测试台账
Oct 7, 2026
8218a2f
hub: 撤回 D-9、记录 M6 存活与三条门禁纪律
Oct 7, 2026
23a5db5
hub: D-9 撤回后修正 §6.2 前端待办的落地前提
Oct 7, 2026
ad0a12a
hub: 记录协调纪律 —— brief 不得携带结论、争议走第三方仲裁
Oct 7, 2026
27f89b2
hub: 修正 L65 交叉引用措辞,避免污染锚点计数护栏
Oct 7, 2026
06a84ce
refactor(drivers): split sqlserver driver and driver-api trait into m…
Oct 7, 2026
de83a46
test(redis): ops/exec.rs 的结果分类测试改用 shape 表,去掉错误的 RESP3 断言
Oct 7, 2026
429bd6b
docs: add p5 file-cap progress ledger (deleted at merge)
Oct 7, 2026
8339db4
chore(p5): 更新跨轨台账(B 轨验收、file-cap 交付、clippy 仲裁结论)
Oct 7, 2026
943c453
merge(p5): 合入 target-tables 真正到达 inspect_tables(D9)
Oct 7, 2026
2dc756d
hub: 记录 clippy 修复轨交付与两条纪律(一树一主、判死三条件)
Oct 7, 2026
a8910c9
docs(redis): 改写 ops/exec.rs 结果分类测试的反事实注释分句
Oct 7, 2026
44d0a4d
hub: 记录 clippy 轨独立验收结论与 A 轨当前实际状态
Oct 7, 2026
3660040
Merge 'feature/p5-clippy-approx' into codex/p5-integration
Oct 7, 2026
dd0501b
hub: clippy 修复轨结案,记录合并结论与我自己的两处判读错误
Oct 7, 2026
6fc790a
hub: file-cap 验收结论落地;①② 项管裁定,③ 转第三方仲裁,④⑥ 记为缺陷与撤回
Oct 7, 2026
73de009
hub: A 轨待独立验收;file-cap 仲裁裁定回归、已派修复;新建计数器序列化行
Oct 7, 2026
7078b01
fix(drivers): restore the silenced items_after_test_module report and…
Oct 7, 2026
2be8943
merge(feature/p5-file-cap): 按职责拆分 driver-api trait 与 sqlserver 驱动,并恢复…
Oct 7, 2026
a51e5e9
docs(hub): 补记 file-cap 合并、跨轨裁定二、E2E 缺口重新分桶与 P5 累积的 fmt 欠账
Oct 7, 2026
7490e6b
feat(data-transfer): rebase job-addressable track onto a51e5e978
Oct 7, 2026
cac91a7
merge(main): 把 main 的 89 个提交并入 P5 集成分支
Oct 7, 2026
630b464
docs(hub): 记录 A 轨验收不通过、计数器归属裁定与 main 合并裁定
Oct 7, 2026
5becb34
fix(data-transfer): make the detached apply observable, and counters …
Oct 7, 2026
752e92e
docs(progress): record the r2 blocker fixes, mutants and gate results
Oct 7, 2026
ccf2175
test(job): real-engine round-trip, in-stage panic liveness, poll-inte…
Oct 7, 2026
89da47b
docs(hub): 重开注释清理轨、登记契约守卫阻塞项与三条操作纪律
Oct 7, 2026
19850bb
test(kernel-cancel): probe the target on its own connection
Oct 7, 2026
ac6e729
fix(kernel-cancel): probe through the pipeline's own handle
Oct 7, 2026
db5b010
style(kernel-cancel): rustfmt the probe signature
Oct 7, 2026
dcc7102
style(kernel-cancel): drop the padding left by the wrapped message
Oct 7, 2026
e6aa5fa
test(kernel-cancel): give the fixture a reserved-word column
Oct 7, 2026
b93c238
style(kernel-cancel): clear the two clippy findings in the new test f…
Oct 7, 2026
0dcead4
docs(hub): 区分已核实零产出与已重派在飞;记录四路 agent 的真实产物
Oct 7, 2026
01a7def
docs(kernel-cancel): record the mutation ledger, gates and open quest…
Oct 7, 2026
ec354fc
docs(hub): kernel-cancel 转待验收并派独立验收方;补记单向信号纪律
Oct 7, 2026
b1e4b31
merge(r2): job 可寻址性修复 —— TS 侧计数器解析 + Rust 侧测试接缝
Oct 7, 2026
3d2eff5
docs(hub): 记 r2 合入 b1e4b31a7 及其性质更正
Oct 7, 2026
f9cb0d6
fix(driver-protocol): reconcile a relocated trait by its signature set
Oct 7, 2026
193d093
merge(p5-kernel-cancel): 合并到 P5 集成分支(验收方 TEST_PASSED,有条件)
Oct 7, 2026
46a6e1c
chore(p5-comment-cleanup-ui): strip spec/doc/line citations from src+…
Oct 7, 2026
94ab440
docs(hub): 记录 kernel-cancel 合并后实测、protocol-guard 复核判不接受、注释豁免判据裁定与 pan…
Oct 7, 2026
3881a1a
fix(protocol-gate): stop four ways the compatibility gate reported ok
Oct 7, 2026
172a6dc
test(driver-protocol): cover the three ways the gate saw nothing
Oct 7, 2026
0cd521e
chore: drop this track's progress ledger
Oct 7, 2026
a3b4a72
docs(hub): record measured status for four ledger items
Oct 7, 2026
9353996
docs(hub): third-party ruling on protocol-guard; UI-batch acceptance …
Oct 8, 2026
ca7f3f8
merge: p5-protocol-guard-sync — contract guard D1-D4 fixes
Oct 8, 2026
f258a2c
merge: p5-comment-cleanup-ui — strip doc/line references from src/ an…
Oct 8, 2026
4991691
docs(hub): record protocol-guard and comment-cleanup-ui merges; falsi…
Oct 8, 2026
8f5c845
docs(hub): split two conflated test-count granularities on the merge …
Oct 8, 2026
276ee72
docs(hub): bring ledger level with this round; correct a count granul…
Oct 8, 2026
7276bd6
docs(hub): record P5 completion scope and current code audit
Oct 8, 2026
2971c6c
fix(runtime): converge handler faults without erasing job effects
Oct 8, 2026
dc768be
fix(runtime): fence infrastructure fault convergence and stop cancell…
Oct 8, 2026
91481d5
fix(runtime): pass owned dispatch claim by reference
Oct 8, 2026
374fa4d
fix: share physical migration endpoint identity across job adapters
Oct 8, 2026
d759e9e
test(runtime): query terminal job after validation panic
Oct 8, 2026
278b8df
test(runtime): qualify checkpoint type in fault fixture
Oct 8, 2026
d3662df
fix(p5): enforce driver parameter limits and Redis TLS provider contract
Oct 8, 2026
7a26ac4
fix: expose command error conversion to shared identity service
Oct 8, 2026
cb27946
test(p5): assert typed SQLite values and P5 error display contracts
Oct 8, 2026
47b7674
test(p5): exercise actual SQLite transfer batching and TLS leaf certi…
Oct 8, 2026
f064f54
test: distinguish migration server fixtures and reject physical aliases
Oct 8, 2026
da12d71
fix(runtime): stop cancelled stages before recording their start
Oct 8, 2026
1ad1893
style: format migration endpoint integration additions
Oct 8, 2026
9bc5ebf
merge: P5 shared endpoint identity
Oct 8, 2026
ddda377
merge: P5 runtime failure convergence
Oct 8, 2026
fec7a57
merge: P5 driver quality gates
Oct 8, 2026
58f9500
docs(hub): record accepted P5 wave one
Oct 8, 2026
7942438
docs(hub): resolve addressable branch audit
Oct 8, 2026
2ffacb5
feat(p5): add durable desktop job host and transfer adapter
Oct 8, 2026
6740748
docs(hub): record job host checkpoint
Oct 8, 2026
5161cf6
feat(data-transfer): follow accepted migration jobs
Oct 8, 2026
d098d2c
docs(hub): track migration job consumer work
Oct 8, 2026
b5b6c5f
docs(hub): track transfer ui contract repair
Oct 8, 2026
24fdb85
test(data-transfer): complete JobView fixtures
Oct 8, 2026
8bf6b43
feat(runtime): persist job domain receipts and recovery verification
Oct 8, 2026
9b30555
docs(hub): record recovery verifier api
Oct 8, 2026
453f586
docs(hub): record transfer ui independent pass
Oct 8, 2026
556a72f
Merge commit '8bf6b437206f0e87d95e1b08fed908ee11afacda' into codex/p5…
Oct 8, 2026
a6ecc37
fix(transfer): align durable details with shared job DTO
Oct 8, 2026
6f10669
docs(hub): record shared transfer DTO pass
Oct 8, 2026
4a93e34
docs(hub): track data sync job cutover
Oct 8, 2026
c5ba4a8
feat(job): persist queued recovery verdicts
Oct 8, 2026
fd286f7
docs(hub): record not-executed recovery checkpoint
Oct 8, 2026
0d05159
feat(data-sync): persist safe stage result projections
Oct 8, 2026
6a31ab4
Merge commit 'c5ba4a8f0' into codex/p5-sync-job
Oct 8, 2026
7cec049
docs(architecture): record durable desktop job core
Oct 8, 2026
5bbd752
test(job): align durable runtime contract fixtures
Oct 8, 2026
42cc333
docs(hub): record completed disk cleanup
Oct 8, 2026
33c7e04
docs(job): clarify panic watcher cleanup
Oct 8, 2026
8d74973
merge: integrate frozen P5 job host core
Oct 8, 2026
6238df3
fix(transfer): explain not-dispatched restart receipts
Oct 8, 2026
c40a4c3
fix(transfer): remove duplicate hydration fixture field
Oct 8, 2026
7f8db0a
feat(data-sync): route through durable jobs
Oct 8, 2026
0e98ccd
feat(schema-diff): persist desktop job lifecycle
Oct 8, 2026
85e0ed9
merge(p5): integrate durable job host core
Oct 8, 2026
f185485
docs(hub): record core job host merge
Oct 8, 2026
6420beb
Merge commit 'c40a4c3f1cdd081ec670820dad77327b055ccc82' into codex/p5…
Oct 8, 2026
c87eaa8
Merge commit '7f8db0a2778b4ce40d6e8e4653cb598ee042e4a8' into codex/p5…
Oct 8, 2026
46bf2d4
docs(hub): record transfer and sync merges
Oct 8, 2026
cc6b9c1
Merge branch 'codex/p5-schema-diff-job' into codex/p5-integration
Oct 8, 2026
b32a4c2
docs(hub): record Schema Diff integration
Oct 8, 2026
138d904
refactor(data-sync): reuse backend job details DTO
Oct 8, 2026
1c3a8ed
chore(p5): remove integration ledgers
Oct 8, 2026
cc0bee6
fix(schema-diff): scope PostgreSQL object discovery
Oct 8, 2026
53e1a12
fix(ci): format Rust and correct metadata and dependency guard checks
Oct 8, 2026
14d6c01
fix(ci): declare rqlite and turso as unguarded driver crates
Oct 8, 2026
3b27c6a
fix(ci): make the platform-arch mutation probes reach the rules they …
Oct 8, 2026
cf795fc
fix(ci): settle the cancel effect vocabulary and the stale job reason…
Oct 8, 2026
af24998
fix(ci): make Cargo.lock the fixed point of the rust job's resolution
Oct 8, 2026
bc32bd6
test(query): unmount the execution-gate hook so its focus timer canno…
Oct 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .agents/skills/subagent-coordinator/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ description: >-

本 Skill 指导主会话 Agent 作为**协调者 (Coordinator)**,负责统筹、拆轨、派发并合流多子代理并行开发与测试任务。

> **不写台账。** 进度、缺陷清单、设计方案一律不落文件。结论必须进代码、测试与 `docs/` 的正式文档(`docs/features/`、`docs/architecture/`、`docs/development/`)。过程产物(如需临时记录)只存在于会话上下文,随会话消亡。
> **进度落文件,但随开发周期清理。** 各轨把自己的进度记录到该轨分支的 `progress.md`,协调者把跨轨汇总记录到集成分支的 `hub.md`;两者**提交进 git**,以便会话中断、重启或上下文压缩后仍可恢复。feature 开发完成并通过验收后,协调者删除这些进度文件并提交一次清理。设计结论与缺陷修复则必须进代码、测试与 `docs/` 的正式文档(`docs/features/`、`docs/architecture/`、`docs/development/`),不得只停留在进度文件里。
> 完整项目约定见 `AGENTS.md`。

## 核心硬性纪律
Expand Down
18 changes: 18 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Application / local-development overrides.
#
# Copy to `.env` and fill in. `.env` is gitignored (`.gitignore`); this template
# is committed (negated by `!.env.example`) so it can never carry a real value.
#
# This file is deliberately almost empty. Every key below was located by
# grepping `import.meta.env.<NAME>` across `src/` and `packages/`; a key that no
# source file reads is not a setting, it is a comment that lies to the next
# reader. Vite's built-ins (DEV / PROD / MODE / SSR) are supplied by Vite.
#
# Database credentials for the driver contract **live tier** do NOT belong here.
# They live in `.env.test` — see `.env.test.example`.

# Enables `data-testid` hooks for WebdriverIO.
# Read by packages/ui/src/tid.ts, src/commands/connection.ts, src/commands/transfer.ts.
# 1 = on, unset = off. Leave unset for normal development; the E2E harness sets
# it as part of `pnpm tauri:build:webdriver`.
VITE_E2E=
176 changes: 176 additions & 0 deletions .env.test.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
# Test / driver-contract-live-tier credentials.
#
# Copy to `.env.test` and fill in. `.env.test` is gitignored (`.gitignore`);
# this template is committed (negated by `!.env.test.example`) so it can never
# carry a real value.
#
# ---------------------------------------------------------------------------
# How this is consumed
# ---------------------------------------------------------------------------
# scripts/run-live-contract.sh # the driver contract live tier
# scripts/run-live-contract.sh --dry-run # resolve + report, run nothing
#
# The runner loads `.env`, then `.env.test`, then `packages/drivers/.env` if it
# exists — later wins. It *parses* KEY=VALUE rather than `source`-ing the file,
# because `source` executes whatever is in it and a parser can only assign.
#
# The tests themselves read the process environment ONLY (fake-runtime-fixtures
# §10.2 rule 5); they never open a file. That is deliberate — it keeps the
# credential source single and auditable.
#
# If you already keep a `postgres://…` or `mysql://…` URL in this file, the
# runner expands it into the TEST_* variables and you do not need section 1 or 2
# at all. `DATABASE_URL` is only accepted when its scheme names the family, so
# one shared URL cannot be handed to the wrong driver.
#
# ---------------------------------------------------------------------------
# Safety rules the tests enforce, and why they exist
# ---------------------------------------------------------------------------
# These tests create, alter and DROP tables. They will not touch a database that
# is not obviously disposable:
#
# TEST_*_DATABASE MUST begin with `dz_fixture_`
# TEST_*_DATABASE_B MUST begin with `dz_fixture_`, and MUST differ from
# TEST_*_DATABASE. (If B is unset it defaults to A, and
# two equal targets are refused — the cross-database
# dimension would silently verify nothing.)
# MIGRATION_TEST_DATABASE MUST begin with `dz_mig_`
# MYSQL_MIGRATION_TEST_DATABASE MUST begin with `dz_mig_`
#
# The migration tier is stricter than the fixture tier on purpose: those suites
# DROP schemas wholesale, and a fixture name is no evidence that the database is
# throwaway to someone who names a working copy `dz_fixture_…`. A handful of
# long-standing exceptions are exact names a given suite has always accepted
# (`datazen_sync_src`, `datazen_e2e`, `datazen_test`); they are per-suite, in
# migration_gate.rs, and there is deliberately no way to add one from this file.
#
# A refusal is a refusal, not a warning. Renaming a real database to
# `dz_fixture_…` to get past the check defeats the check; make a dedicated one:
#
# createdb dz_fixture_pg_a && createdb dz_fixture_pg_b
# mysql -e 'CREATE DATABASE dz_fixture_mysql_a; CREATE DATABASE dz_fixture_mysql_b;'
# createdb dz_mig_contract_pg
# mysql -e 'CREATE DATABASE dz_mig_contract_mysql;'
#
# The account also needs DDL rights (CREATE/ALTER/DROP), not just CONNECT.


# ===========================================================================
# 1. Driver contract live tier — PostgreSQL
# ===========================================================================
# Consumed by packages/drivers/postgres/tests/real_driver_contract.rs and
# postgres_cross_database.rs. Defaults, if omitted, come from the driver's own
# Contract: host 127.0.0.1, port 5432, user postgres.
#
# TEST_PG_HOST=127.0.0.1
# TEST_PG_PORT=5432
# TEST_PG_USER=postgres
# TEST_PG_PASSWORD=
TEST_PG_DATABASE=dz_fixture_pg_a
TEST_PG_DATABASE_B=dz_fixture_pg_b


# ===========================================================================
# 2. Driver contract live tier — MySQL
# ===========================================================================
# Consumed by packages/drivers/mysql/tests/real_driver_contract.rs and
# mysql_cross_database.rs. Defaults: host 127.0.0.1, port 3306, user root.
#
# TEST_MYSQL_HOST=127.0.0.1
# TEST_MYSQL_PORT=3306
# TEST_MYSQL_USER=root
# TEST_MYSQL_PASSWORD=
TEST_MYSQL_DATABASE=dz_fixture_mysql_a
TEST_MYSQL_DATABASE_B=dz_fixture_mysql_b


# ===========================================================================
# 3. Strict mode — usually set for you
# ===========================================================================
# Unset, an unreachable server is a SKIP, and `test result: ok` cannot tell a
# skip from a pass. Set to 1 and an unverified dimension becomes a failure.
# scripts/run-live-contract.sh exports this for you; set it here only to make
# a bare `cargo test` strict too.
#
# DATAZEN_CONTRACT_REQUIRE_LIVE=1


# ===========================================================================
# 4. Migration suites — postgres and mysql
# ===========================================================================
# These now run by default as part of the contract tier; they are no longer
# `#[ignore]`d and need no `--ignored`. Unset, each suite reports its dimension
# unverified and returns; under `DATAZEN_CONTRACT_REQUIRE_LIVE=1` that is a
# failure, which is the whole point.
#
# The two families use DIFFERENT prefixes. One `cargo test -p <pg> -p <mysql>`
# puts every test binary in a single environment, so a shared name would point
# the MySQL suites at the PostgreSQL server. PostgreSQL keeps the original
# prefix; MySQL gets its own.
#
# MIGRATION_TEST_HOST=127.0.0.1 MYSQL_MIGRATION_TEST_HOST=127.0.0.1
# MIGRATION_TEST_PORT=5432 MYSQL_MIGRATION_TEST_PORT=3306
# MIGRATION_TEST_USER=postgres MYSQL_MIGRATION_TEST_USER=root
# MIGRATION_TEST_PASSWORD= MYSQL_MIGRATION_TEST_PASSWORD=
# MIGRATION_TEST_DATABASE= MYSQL_MIGRATION_TEST_DATABASE=
#
# Both DATABASE keys MUST start with `dz_mig_` (see the refusal note above).
# Leave them empty here: `run-live-contract.sh` defaults them to
# dz_mig_contract_pg / dz_mig_contract_mysql and creates those if absent.


# ===========================================================================
# 5. Redis live tests
# ===========================================================================
# Also `#[ignore]`d, and gated on the URL being present at all.
#
# DATAZEN_TEST_REDIS_URL=redis://127.0.0.1:6379
# DATAZEN_TEST_REDIS_CLUSTER_URL=redis://127.0.0.1:7000
# Overrides the `redis-server` binary used by the in-process harness.
# DATAZEN_REDIS_SERVER=/opt/homebrew/bin/redis-server


# ===========================================================================
# 6. Driver-internal unit tests
# ===========================================================================
# Not the contract tier — these are `#[cfg(test)]` tests inside the driver
# crates that reach for the vendor-standard libpq / MySQL variable names.
# Leaving these unset simply skips them.
#
# PGHOST=127.0.0.1
# PGPORT=5432
# PGUSER=postgres
# PGPASSWORD=
# PGDATABASE=postgres
#
# MYSQL_HOST=127.0.0.1
# MYSQL_PORT=3306
# MYSQL_USER=root
# MYSQL_PASSWORD=
# MYSQL_DB=mysql
#
# Note: PGDATABASE / MYSQL_DB above are NOT read by run-live-contract.sh. The
# runner only borrows a bare vendor variable as a fallback when it can also
# name the database, so a half-filled block here cannot shadow section 1.


# ===========================================================================
# 7. SQL Server env-file opt-in
# ===========================================================================
# The SQL Server live tests may read their settings from a file. This variable
# names that file, and only a bare filename is accepted — a path is refused, so
# the opt-in cannot be widened into "read anything".
#
# TEST_SQLSERVER_ENV_FILE=


# ===========================================================================
# 8. Escape hatch: names this template does not guess
# ===========================================================================
# If your env file spells these differently, do not edit this template. Put
# `YOUR_NAME = TEST_PG_NAME` lines in scripts/.live-contract.aliases (gitignored)
# and the runner will bind them. Keeping the mapping in a file rather than in
# the runner means nobody has to say their variable names out loud.
#
# POSTGRES_USER = TEST_PG_USER
# POSTGRES_PASSWORD = TEST_PG_PASSWORD
Loading
Loading