# DeepSeek Harness PTC：两步工具程序复用变量，换 stateOwner 后隔离并释放

已核对npm0.1.6-alpha.1与官方源码commit的PTC接口差异；当前发布包未支持文档stateOwner/release，因此未运行持久PTC或捏造共享结果。
本题先在独立目录执行npm install，再设置DSH_NODE_MODULES为本目录node_modules绝对路径并运行reference/version_gate.py；门槛false即停止持久运行示例。


## 运行

在本目录使用独立虚拟环境并安装requirements.txt；脚本结果写入results。

```sh
python reference/audit.py
python reference/run_sdk.py
```

fixtures是原创输入与故意失败样本；作者真值、离线合成provider和实际SDK记录各自标明，不是模型正确率。需要真实模型/账号/GPU的步骤按正文另行授权运行。

## 1. 先运行版本门槛检查

先安装目标Node依赖，再设置DSH_NODE_MODULES为其node_modules绝对路径，执行reference/version_gate.py。已检查npm0.1.6-alpha.1没有stateOwner/release支持，当前门槛false；不能照新文档直接运行。

## 2. 对照精确源码与发布包

本包保存官方master commit 687f282e8625c6b8d11ff58211a90524be2e4317的相关类型/实现摘录。源码支持不等于当前npm包已经发布，先升级到实际含该接口的版本或使用经审核源码环境。

## 3. 配置persistent-in-memory模式

只有支持该模式的Node PTC runtime才能保留同owner变量；默认fresh调用不会自动复用。bindings只暴露只读catalog，不赋予无关工具权限。

## 4. 两段程序复用同一个owner对象

第一段声明selected，第二段使用selected；必须传同一对象引用，不是每次new对象或相同字符串。目标环境需保存两次真实返回。

## 5. 换owner并省略owner做隔离反例

新对象B和省略owner的运行都不能读取A的私有变量。不要用自写字典模拟后声称真实PTC已通过隔离。

## 6. 调用release并验证清理

任务结束await runtime.release(ownerA)，核对进程和后续变量不可用。保留内存不是durable Session，重启不保证恢复。

## 7. 交付版本矩阵与真实运行范围

当前包实际执行的是发布包/源码接口门槛，未执行持久PTC程序。提供目标脚本待支持版本与完整Host服务就绪后运行，未伪造共享变量结果。

## 官方依据

- DeepSeek Harness 官方文档或源码：https://deepseek-harness.github.io/deepseek-harness/reference/subsystems/ptc-runtime.md
- DeepSeek官方Harness仓库：https://github.com/deepseek-ai/deepseek-harness
