Skip to content

chore: alpha.2 batch upgrade - #12

Merged
PerryLink merged 11 commits into
mainfrom
batch/alpha2-upgrade
Sep 18, 2026
Merged

PerryLink merged 11 commits into
mainfrom
batch/alpha2-upgrade

Conversation

@PerryLink

Copy link
Copy Markdown
Owner

Batch upgrade to the 0.1.6-alpha.2 family line (approved 45-card plugin batch, W1鈥揥3).

Contents

Per this repo's exec card: the peer-range third clause (>=0.1.6-0 <0.2.0), the G-3 manifest (dsh.manifestVersion: 1 + engines.dsh), the card's fixes, and the five-language docs + CHANGELOG. Itemized in CHANGELOG.md.

Verification

  • Local gate chain green: ypecheck, ypecheck:ci, tests, �uild, �erify:self-contained, �erify:artifacts, five-language README sync, pack.
  • CI: this PR runs the repo's ci.yml; see the checks below.
  • npm: published as dsh-memento@0.5.13 with provenance (dist-tag latest).

Notes

  • No known deviations.

zzproc and others added 11 commits September 14, 2026 16:18
DSH 对工具输出做 additionalProperties: false 严格校验,而 memory_recall 的
output schema 只声明了 id/track/scope/text;execute 经 publicEntry() 返回的
对象却还带 source 与 tags。结果是只要有一条记忆命中,整次工具调用就被拒绝
(未命中时不报错,所以长期没被发现);记忆工具的 entries schema 是对的,属漏写。

补上两个字段并与 memory 工具对齐,同时加回归测试:按 DSH 语义递归遍历返回值,
断言每个字段都在 output schema 中声明。
The recall tool's entry schema declared only id/track/scope/text while
publicEntry() also returns source/tags, and DSH validates tool output with
additionalProperties:false - so any recall that hit an entry failed the whole
call. The PR adds the two fields plus a contract test that walks the actual
return value against the declared schema.

Merge resolution: the PR branch predates this batch's W0 work, so its hunks
that would strip the >=0.1.6-0 peer clause and delete the published-line ruler
(tsconfig.check.ci.json + typecheck:ci) were NOT taken; the merged tree keeps
main's W0 state and takes the PR's substantive index.mjs + test changes only.
Author attribution stays in the merge parents (PR head 3ac10ac).
maybeAppendSessionEvent 由隐式静默改为显式三态返回值
('appended' | 'skipped-unknown-type' | 'no-session'):宿主未收录 memory/*
时返回 skipped-unknown-type 并在进程内恰好告警一次;/memory audit 输出尾部
附「会话日志侧当前未落盘」提示(空账本同样提示),宿主收录 memory/added 后
提示自适应消失。不改 append 形态:非 surface 事件无法盖 ignorable,裸 append
会让该会话下次加载被持久化层拒绝。

- 新增 sessionAuditGateOpen() 作为写路径门判据(派发端仍逐类型判定)
- test/index.test.mjs 覆盖三态:未收录不落盘且恰好一次告警、收录后载荷断言、无会话不抛错
- test/v2.test.mjs 覆盖 /memory audit 缺口提示的存在与自适应消失
dsh.manifestVersion: 1 与顶层 engines.dsh(三段式 canonical,与同族 peer 同源)。
两字段当前均无读取方,属声明性动作,验收方式为读回断言;dshWorkshop.compatibility.dshVersions
按裁决保持原样(该字段语义是已验证过的宿主线,alpha.2 尚未真机验证,不追加)。
- booted 标记移到全部注册之后:激活中途抛错时不得留下「已就绪」假状态
- 自持 vectorDisposer 增加随 fiber 卸载的清空 effect,杜绝二次调用已失效 disposer
- retrieval.vector 热切换改为「先建新、再拆旧、最后登记」,登记失败响亮留痕
  (settings-swap-failed 审计行)并把该字段回退到上一次生效值,同值重试才成立;
  旧写法先拆后建,建新抛错即留下「配置说 vector、实际没有检索器」的半状态
- test/helpers/mock-ctx.mjs:ctx.effect 返回可调用的幂等 disposer(对齐真 Cordis
  的 Disposable 契约),此前返回 {dispose(){}} 使自持 disposer 的路径测不出来
- 新增 G-9 关→开两次五断言与热切换失败回滚用例;反向验证:去掉 catch 后用例转红
主控核实:本仓 tsconfig.check.json 无 paths、check.ci.json 只有空的 paths: {},
两把尺子解析同一份 node_modules ⇒ SAME-CMD 假第二尺。本 commit 选方案 (i)「做成真第二把尺」。

- tsconfig.check.json(checkout 面):paths 指向 D:\deepseek-harness 已构建类型面
  (该 checkout = dsh-v0.1.6-alpha.2),量宿主源码线的形状
- tsconfig.check.ci.json(已发布线):保持无 paths,量 devDependencies 钉住的
  node_modules 形状
- scripts/typecheck-checkout.mjs:本机无 checkout(CI runner 属此类)时打印
  「不可验证」并 exit 0,绝不装一个恒红步骤;npm run typecheck 走它
- tsconfig.check.client.json + scripts 的 check:client:第三面(DOM)量 client/client.js
- CI 三把都调:typecheck(可自我声明不可验证)/ typecheck:ci / check:client
- 类型面收口(两把尺子的真实差异,非风格调整):
  · lib/gate.mjs 的 next/返回值写明 ApprovalOutcome 字面量
  · index.mjs 的 answerer 与命令 gate 在 seam 边界显式声明 ApprovalOutcome,
    overrideOf 的结构窄面收口一处并就地说明理由
- client/client.js 补 JSDoc 类型(66 → 0 error,纯类型注释,零行为改动);
  ctx.effect 返回值按真 Cordis 的可调用 disposer 契约声明

M1 反例(本机实测):
- 中立类型错 ⇒ 两面同红(1/1)
- 仅 alpha.2 有的成员(SessionMessageProjection)⇒ checkout 绿(0) / 已发布线红(1)
- 结构窄 Session 传入具体类 seam ⇒ checkout 红(1) / 已发布线绿(0)
- 兼容行重锚到 dsh-v0.1.6-alpha.2(2026-09-18 复核),写明仍无插件事件注册面与
  三条 peer 线,并说明类型证据来自三个面(checkout 已构建类型 / 已发布线 / DOM 浏览器半侧)
- 新增「审计缺口可见」特性条目:/memory audit 明示会话日志侧未落盘及其原因,
  宿主收录 memory/* 后自动消失
- 主副标语改为「可重建的审计链——来自审批对加插件自有审计表」,不再声称审计来自会话日志
- 开发命令块补 typecheck:ci 与 check:client(并订正测试条数为 187)
- types.d.ts 会话事件口径改为「词汇在、写入通道不在」,列出四条复核线
- CHANGELOG 增 [Unreleased] 段(新增/变更/文档三节)

五语同 commit 更新(英文为源);check:readmes 全绿,乱码扫描零命中。
@PerryLink
PerryLink merged commit d3b419e into main Sep 18, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants