feat(overlay): 内容块级寻址 + 实例逐步拉起 + 骨干选路 + 组密钥加密(序24–㉛ 累积同步)

代码
- 内容分发块级寻址:新增 src/net/relay/content/{chunker,store,runtime,source,peer,crypto}.ts
- 组密钥(C 档)确定性加密:AES-256-GCM,块 id β′ = sha256(密文) 前 32 hex;双 epoch 过渡窗口
- 实例生命周期:三处 teardown() 不再杀实例(local/remote/leased-spawner);启动认领 + TCP 探活判孤儿
- 骨干选路:jitter 选路 + endpoint-target;relay client/server/wire/identity/directory/rendezvous/switcher 调整
- 工作台 src/web/server.ts、src/worker/relay-tunnel.ts 装配与候选链观测

脚本与测试
- scripts/overlay-{probe,keyring,jitter}.cjs 更新
- 探针新增 OBS-21(每连接候选数)/ OBS-22(teardown 静态守卫 + 认领面)/ OBS-23(组密钥加密)
- 新增 test/{orchestrator-teardown,orchestrator-rehydrate,overlay-content,overlay-jitter}.test.mjs;relay 两例更新

文档
- 新增交接单:覆盖网络-序24-内容分发块级寻址 / 序25-实例逐步拉起 / 序26-骨干稳定选路与加密
- INDEX.md、交接单/README.md、skills/dsh-auto-handoff-chain/SKILL.md 同步

验收(零回归,2026-09-18 08:0x 复核)
- npm test           201 tests / 200 pass / 0 fail / 1 skipped
- overlay-failover-drill --scene all --table   12 PASS / 0 SKIP / 0 FAIL
- overlay-probe --table                        23 PASS / 0 SKIP / 0 FAIL (rc=0)
This commit is contained in:
admin committed 2026-09-18 08:08:51 +08:00
1 parent 04776af4b1
commit 09ce76f3af
38 files changed
+9133 -211

No files matched your search

+1 -1
View File
@@ -24,7 +24,7 @@
"typecheck": "tsc -p tsconfig.json --noEmit",
"check:layering": "node scripts/check-layering.mjs",
"verify": "npm run build && node scripts/check-layering.mjs && node --test test/db.test.mjs test/local-user-fs.test.mjs test/remote-user-fs.test.mjs test/crash-policy.test.mjs test/locale-pref.test.mjs test/worker-provision.test.mjs test/reachability.test.mjs test/instance-port.test.mjs test/relay.test.mjs test/remote-spawner.test.mjs test/overlay-network.test.mjs test/overlay-auth.test.mjs test/overlay-bootstrap.test.mjs && node scripts/verify-inject.cjs lib/supervisor/proxy.js && node scripts/verify-static.mjs && node scripts/verify-platform-admin-section.mjs && node scripts/verify-mem-model.mjs && node scripts/verify-model-landing.mjs && node scripts/verify-dsh-install.mjs && node scripts/verify-models-dict.mjs && node scripts/verify-models-render.cjs && node scripts/verify-dsh-compat.mjs && node scripts/verify-my-skills.mjs && node scripts/verify-portal-entry.mjs",
"test": "npm run build && node --test test/db.test.mjs test/local-user-fs.test.mjs test/remote-user-fs.test.mjs test/crash-policy.test.mjs test/reachability.test.mjs test/instance-port.test.mjs test/relay.test.mjs test/remote-spawner.test.mjs test/overlay-network.test.mjs test/overlay-auth.test.mjs test/overlay-bootstrap.test.mjs test/overlay-identity.test.mjs test/relay-failover.test.mjs && node scripts/verify-inject.cjs lib/supervisor/proxy.js",
"test": "npm run build && node --test test/db.test.mjs test/local-user-fs.test.mjs test/remote-user-fs.test.mjs test/crash-policy.test.mjs test/reachability.test.mjs test/instance-port.test.mjs test/relay.test.mjs test/remote-spawner.test.mjs test/overlay-network.test.mjs test/overlay-auth.test.mjs test/overlay-bootstrap.test.mjs test/overlay-identity.test.mjs test/relay-failover.test.mjs test/overlay-jitter.test.mjs && node scripts/verify-inject.cjs lib/supervisor/proxy.js",
"smoke": "node scripts/smoke.mjs",
"smoke:admin": "node scripts/smoke-admin.mjs",
"smoke:auth": "node scripts/smoke-auth.mjs",