dsh-plugin-guide 0.3.10 → 0.3.16

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.
Files changed (431) hide show
  1. package/README-es.md +13 -3
  2. package/README-hi.md +13 -3
  3. package/README-pt.md +13 -3
  4. package/README-zh.md +13 -3
  5. package/README.md +12 -3
  6. package/SKILL.md +1 -1
  7. package/guide/links.md +1 -0
  8. package/guide/unfixed-issues.md +111 -0
  9. package/package.json +1 -1
  10. package/references/official-docs/AGENTS.md +74 -49
  11. package/references/official-docs/README.i18n.yaml +2 -2
  12. package/references/official-docs/README.zh.md +12 -0
  13. package/references/official-docs/SNAPSHOT.md +4 -4
  14. package/references/official-docs/THIRD_PARTY_NOTICES.md +86 -30
  15. package/references/official-docs/docs/AGENTS.md +7 -6
  16. package/references/official-docs/docs/agent-lifecycle.i18n.yaml +2 -2
  17. package/references/official-docs/docs/agent-lifecycle.md +12 -5
  18. package/references/official-docs/docs/agent-lifecycle.zh.md +12 -5
  19. package/references/official-docs/docs/api-gateway.i18n.yaml +2 -2
  20. package/references/official-docs/docs/api-gateway.md +2 -2
  21. package/references/official-docs/docs/api-gateway.zh.md +2 -2
  22. package/references/official-docs/docs/architecture.i18n.yaml +2 -2
  23. package/references/official-docs/docs/architecture.md +26 -12
  24. package/references/official-docs/docs/architecture.zh.md +28 -14
  25. package/references/official-docs/docs/capability-seams.i18n.yaml +2 -2
  26. package/references/official-docs/docs/capability-seams.md +111 -31
  27. package/references/official-docs/docs/capability-seams.zh.md +111 -31
  28. package/references/official-docs/docs/config-catalog.i18n.yaml +2 -2
  29. package/references/official-docs/docs/config-catalog.md +674 -202
  30. package/references/official-docs/docs/config-catalog.zh.md +691 -219
  31. package/references/official-docs/docs/cookbook/adding-a-session-format-version.i18n.yaml +6 -0
  32. package/references/official-docs/docs/cookbook/adding-a-session-format-version.md +111 -0
  33. package/references/official-docs/docs/cookbook/adding-a-session-format-version.zh.md +111 -0
  34. package/references/official-docs/docs/cookbook/adding-a-settings-card.zh.md +1 -1
  35. package/references/official-docs/docs/cookbook/adding-a-tool.i18n.yaml +2 -2
  36. package/references/official-docs/docs/cookbook/adding-a-tool.md +2 -2
  37. package/references/official-docs/docs/cookbook/adding-a-tool.zh.md +4 -4
  38. package/references/official-docs/docs/cookbook/adding-a-vendored-package.i18n.yaml +2 -2
  39. package/references/official-docs/docs/cookbook/adding-a-vendored-package.md +1 -1
  40. package/references/official-docs/docs/cookbook/adding-a-vendored-package.zh.md +1 -1
  41. package/references/official-docs/docs/cookbook/adding-an-llm-adapter.zh.md +1 -1
  42. package/references/official-docs/docs/cookbook/extension-cookbook.i18n.yaml +2 -2
  43. package/references/official-docs/docs/cookbook/extension-cookbook.md +3 -3
  44. package/references/official-docs/docs/cookbook/extension-cookbook.zh.md +5 -5
  45. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.i18n.yaml +2 -2
  46. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.md +1 -1
  47. package/references/official-docs/docs/cookbook/responding-to-pr-review-on-a-stack.zh.md +1 -1
  48. package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.i18n.yaml +6 -0
  49. package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.md +108 -0
  50. package/references/official-docs/docs/cookbook/reviewing-persistence-type-changes.zh.md +108 -0
  51. package/references/official-docs/docs/cordis-api/fiber.i18n.yaml +2 -2
  52. package/references/official-docs/docs/cordis-api/fiber.md +3 -3
  53. package/references/official-docs/docs/cordis-api/fiber.zh.md +3 -3
  54. package/references/official-docs/docs/cordis-api/inherited.md +0 -3
  55. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.i18n.yaml +2 -2
  56. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.md +2 -2
  57. package/references/official-docs/docs/cordis-tutorial/06-composition-and-hmr.zh.md +2 -2
  58. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.i18n.yaml +2 -2
  59. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.md +14 -15
  60. package/references/official-docs/docs/deepseek-llm-api-wire-extensions.zh.md +15 -16
  61. package/references/official-docs/docs/dependency-catalog.json +7312 -0
  62. package/references/official-docs/docs/development.i18n.yaml +2 -2
  63. package/references/official-docs/docs/development.md +13 -3
  64. package/references/official-docs/docs/development.zh.md +16 -6
  65. package/references/official-docs/docs/event-producer-consumer.i18n.yaml +2 -2
  66. package/references/official-docs/docs/event-producer-consumer.md +50 -39
  67. package/references/official-docs/docs/event-producer-consumer.zh.md +55 -44
  68. package/references/official-docs/docs/glossary.i18n.yaml +2 -2
  69. package/references/official-docs/docs/glossary.md +1 -1
  70. package/references/official-docs/docs/glossary.zh.md +1 -1
  71. package/references/official-docs/docs/i18n/README.i18n.yaml +2 -2
  72. package/references/official-docs/docs/i18n/README.md +8 -3
  73. package/references/official-docs/docs/i18n/README.zh.md +8 -3
  74. package/references/official-docs/docs/i18n/style-samples.md +1 -1
  75. package/references/official-docs/docs/i18n/translation-prompt.md +5 -5
  76. package/references/official-docs/docs/i18n/translation-rules.zh.md +2 -2
  77. package/references/official-docs/docs/module-graph.i18n.yaml +2 -2
  78. package/references/official-docs/docs/module-graph.md +303 -120
  79. package/references/official-docs/docs/module-graph.zh.md +303 -120
  80. package/references/official-docs/docs/persistence-catalog.i18n.yaml +2 -2
  81. package/references/official-docs/docs/persistence-catalog.md +5699 -64
  82. package/references/official-docs/docs/persistence-catalog.zh.md +5708 -73
  83. package/references/official-docs/docs/persistence-changes/2026-09-11-initial.i18n.yaml +6 -0
  84. package/references/official-docs/docs/persistence-changes/2026-09-11-initial.md +280 -0
  85. package/references/official-docs/docs/persistence-changes/2026-09-11-initial.schema.json +13557 -0
  86. package/references/official-docs/docs/persistence-changes/2026-09-11-initial.zh.md +280 -0
  87. package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.i18n.yaml +6 -0
  88. package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.md +52 -0
  89. package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.schema.json +910 -0
  90. package/references/official-docs/docs/persistence-changes/2026-09-12-auto-review-error-metadata.zh.md +52 -0
  91. package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.i18n.yaml +6 -0
  92. package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.md +96 -0
  93. package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.schema.json +8478 -0
  94. package/references/official-docs/docs/persistence-changes/2026-09-14-image-offload.zh.md +96 -0
  95. package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.i18n.yaml +6 -0
  96. package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.md +48 -0
  97. package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.schema.json +72 -0
  98. package/references/official-docs/docs/persistence-changes/2026-09-14-workspace-changes-event.zh.md +48 -0
  99. package/references/official-docs/docs/persistence-changes/README.i18n.yaml +6 -0
  100. package/references/official-docs/docs/persistence-changes/README.md +74 -0
  101. package/references/official-docs/docs/persistence-changes/README.zh.md +74 -0
  102. package/references/official-docs/docs/persistence-changes/historical-formats/README.i18n.yaml +6 -0
  103. package/references/official-docs/docs/persistence-changes/historical-formats/README.md +74 -0
  104. package/references/official-docs/docs/persistence-changes/historical-formats/README.zh.md +74 -0
  105. package/references/official-docs/docs/persistence-changes/historical-formats/v0.i18n.yaml +6 -0
  106. package/references/official-docs/docs/persistence-changes/historical-formats/v0.md +5105 -0
  107. package/references/official-docs/docs/persistence-changes/historical-formats/v0.schema.json +49308 -0
  108. package/references/official-docs/docs/persistence-changes/historical-formats/v0.zh.md +5105 -0
  109. package/references/official-docs/docs/persistence-changes/historical-formats/v1.i18n.yaml +6 -0
  110. package/references/official-docs/docs/persistence-changes/historical-formats/v1.md +5107 -0
  111. package/references/official-docs/docs/persistence-changes/historical-formats/v1.schema.json +49411 -0
  112. package/references/official-docs/docs/persistence-changes/historical-formats/v1.zh.md +5107 -0
  113. package/references/official-docs/docs/persistence-changes/historical-formats/v2.i18n.yaml +6 -0
  114. package/references/official-docs/docs/persistence-changes/historical-formats/v2.md +5362 -0
  115. package/references/official-docs/docs/persistence-changes/historical-formats/v2.schema.json +56466 -0
  116. package/references/official-docs/docs/persistence-changes/historical-formats/v2.zh.md +5362 -0
  117. package/references/official-docs/docs/persistence-changes/releases/README.i18n.yaml +6 -0
  118. package/references/official-docs/docs/persistence-changes/releases/README.md +103 -0
  119. package/references/official-docs/docs/persistence-changes/releases/README.zh.md +103 -0
  120. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.i18n.yaml +6 -0
  121. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.md +201 -0
  122. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.schema.json +39868 -0
  123. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.1.zh.md +201 -0
  124. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.i18n.yaml +6 -0
  125. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.md +261 -0
  126. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.schema.json +43342 -0
  127. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.2.zh.md +261 -0
  128. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.i18n.yaml +6 -0
  129. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.md +126 -0
  130. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.schema.json +19452 -0
  131. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.3.zh.md +126 -0
  132. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.i18n.yaml +6 -0
  133. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.md +75 -0
  134. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.schema.json +5 -0
  135. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.4.zh.md +75 -0
  136. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.i18n.yaml +6 -0
  137. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.md +75 -0
  138. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.schema.json +5 -0
  139. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.0.1-rc.5.zh.md +75 -0
  140. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.i18n.yaml +6 -0
  141. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.md +75 -0
  142. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.schema.json +5 -0
  143. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.1.zh.md +75 -0
  144. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.i18n.yaml +6 -0
  145. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.md +75 -0
  146. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.schema.json +5 -0
  147. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.2.zh.md +75 -0
  148. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.i18n.yaml +6 -0
  149. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.md +75 -0
  150. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.schema.json +5 -0
  151. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.3.zh.md +75 -0
  152. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.i18n.yaml +6 -0
  153. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.md +75 -0
  154. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.schema.json +5 -0
  155. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.5.zh.md +75 -0
  156. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.i18n.yaml +6 -0
  157. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.md +75 -0
  158. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.schema.json +5 -0
  159. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.6.zh.md +75 -0
  160. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.i18n.yaml +6 -0
  161. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.md +82 -0
  162. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.schema.json +5320 -0
  163. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.7.zh.md +82 -0
  164. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.i18n.yaml +6 -0
  165. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.md +110 -0
  166. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.schema.json +21258 -0
  167. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.0-rc.8.zh.md +110 -0
  168. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.i18n.yaml +6 -0
  169. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.md +82 -0
  170. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.schema.json +417 -0
  171. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.1.zh.md +82 -0
  172. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.i18n.yaml +6 -0
  173. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.md +119 -0
  174. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.schema.json +29672 -0
  175. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.1-rc.2.zh.md +119 -0
  176. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.i18n.yaml +6 -0
  177. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.md +295 -0
  178. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.schema.json +48429 -0
  179. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.1.zh.md +295 -0
  180. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.i18n.yaml +6 -0
  181. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.md +286 -0
  182. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.schema.json +49347 -0
  183. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.2.zh.md +286 -0
  184. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.i18n.yaml +6 -0
  185. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.md +75 -0
  186. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.schema.json +5 -0
  187. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.3.zh.md +75 -0
  188. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.i18n.yaml +6 -0
  189. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.md +95 -0
  190. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.schema.json +17642 -0
  191. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.4.zh.md +95 -0
  192. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.i18n.yaml +6 -0
  193. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.md +75 -0
  194. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.schema.json +5 -0
  195. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-alpha.5.zh.md +75 -0
  196. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.i18n.yaml +6 -0
  197. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.md +75 -0
  198. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.schema.json +5 -0
  199. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.2-rc.1.zh.md +75 -0
  200. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.i18n.yaml +6 -0
  201. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.md +154 -0
  202. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.schema.json +38678 -0
  203. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.1.zh.md +154 -0
  204. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.i18n.yaml +6 -0
  205. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.md +86 -0
  206. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.schema.json +783 -0
  207. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.3-alpha.2.zh.md +86 -0
  208. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.i18n.yaml +6 -0
  209. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.md +139 -0
  210. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.schema.json +24597 -0
  211. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.1.zh.md +139 -0
  212. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.i18n.yaml +6 -0
  213. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.md +95 -0
  214. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.schema.json +2132 -0
  215. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-alpha.2.zh.md +95 -0
  216. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.i18n.yaml +6 -0
  217. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.md +75 -0
  218. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.schema.json +5 -0
  219. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.1.zh.md +75 -0
  220. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.i18n.yaml +6 -0
  221. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.md +75 -0
  222. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.schema.json +5 -0
  223. package/references/official-docs/docs/persistence-changes/releases/dsh-v0.1.5-rc.2.zh.md +75 -0
  224. package/references/official-docs/docs/persistence-changes/releases/manifest.json +162 -0
  225. package/references/official-docs/docs/persistence-schema.json +61480 -0
  226. package/references/official-docs/docs/postmortem/README.i18n.yaml +1 -1
  227. package/references/official-docs/docs/postmortem/README.md +1 -1
  228. package/references/official-docs/docs/postmortem/README.zh.md +1 -1
  229. package/references/official-docs/docs/rescope.i18n.yaml +2 -2
  230. package/references/official-docs/docs/rescope.md +2 -2
  231. package/references/official-docs/docs/rescope.zh.md +2 -2
  232. package/references/official-docs/docs/session-format-status.i18n.yaml +6 -0
  233. package/references/official-docs/docs/session-format-status.md +49 -0
  234. package/references/official-docs/docs/session-format-status.zh.md +49 -0
  235. package/references/official-docs/docs/subsystems/README.i18n.yaml +2 -2
  236. package/references/official-docs/docs/subsystems/README.md +12 -3
  237. package/references/official-docs/docs/subsystems/README.zh.md +23 -14
  238. package/references/official-docs/docs/subsystems/agent-team.i18n.yaml +2 -2
  239. package/references/official-docs/docs/subsystems/agent-team.md +1 -1
  240. package/references/official-docs/docs/subsystems/agent-team.zh.md +2 -2
  241. package/references/official-docs/docs/subsystems/approval.i18n.yaml +2 -2
  242. package/references/official-docs/docs/subsystems/approval.md +1 -1
  243. package/references/official-docs/docs/subsystems/approval.zh.md +1 -1
  244. package/references/official-docs/docs/subsystems/attachment.i18n.yaml +2 -2
  245. package/references/official-docs/docs/subsystems/attachment.md +17 -7
  246. package/references/official-docs/docs/subsystems/attachment.zh.md +17 -7
  247. package/references/official-docs/docs/subsystems/{code-runtime.i18n.yaml → boot.i18n.yaml} +3 -3
  248. package/references/official-docs/docs/subsystems/boot.md +223 -0
  249. package/references/official-docs/docs/subsystems/boot.zh.md +223 -0
  250. package/references/official-docs/docs/subsystems/browser-use.i18n.yaml +6 -0
  251. package/references/official-docs/docs/subsystems/browser-use.md +67 -0
  252. package/references/official-docs/docs/subsystems/browser-use.zh.md +67 -0
  253. package/references/official-docs/docs/subsystems/client-modules.i18n.yaml +2 -2
  254. package/references/official-docs/docs/subsystems/client-modules.md +20 -10
  255. package/references/official-docs/docs/subsystems/client-modules.zh.md +21 -11
  256. package/references/official-docs/docs/subsystems/client-resources.i18n.yaml +6 -0
  257. package/references/official-docs/docs/subsystems/client-resources.md +92 -0
  258. package/references/official-docs/docs/subsystems/client-resources.zh.md +92 -0
  259. package/references/official-docs/docs/subsystems/commands.i18n.yaml +2 -2
  260. package/references/official-docs/docs/subsystems/commands.md +4 -0
  261. package/references/official-docs/docs/subsystems/commands.zh.md +5 -1
  262. package/references/official-docs/docs/subsystems/compaction.i18n.yaml +2 -2
  263. package/references/official-docs/docs/subsystems/compaction.md +48 -2
  264. package/references/official-docs/docs/subsystems/compaction.zh.md +50 -4
  265. package/references/official-docs/docs/subsystems/computer-use.i18n.yaml +6 -0
  266. package/references/official-docs/docs/subsystems/computer-use.md +56 -0
  267. package/references/official-docs/docs/subsystems/computer-use.zh.md +56 -0
  268. package/references/official-docs/docs/subsystems/conversation.zh.md +1 -1
  269. package/references/official-docs/docs/subsystems/core.i18n.yaml +2 -2
  270. package/references/official-docs/docs/subsystems/core.md +106 -60
  271. package/references/official-docs/docs/subsystems/core.zh.md +109 -63
  272. package/references/official-docs/docs/subsystems/deliverables.i18n.yaml +6 -0
  273. package/references/official-docs/docs/subsystems/deliverables.md +178 -0
  274. package/references/official-docs/docs/subsystems/deliverables.zh.md +178 -0
  275. package/references/official-docs/docs/subsystems/extensions.zh.md +1 -1
  276. package/references/official-docs/docs/subsystems/feedback.i18n.yaml +2 -2
  277. package/references/official-docs/docs/subsystems/feedback.md +165 -31
  278. package/references/official-docs/docs/subsystems/feedback.zh.md +165 -31
  279. package/references/official-docs/docs/subsystems/filesystem.i18n.yaml +2 -2
  280. package/references/official-docs/docs/subsystems/filesystem.md +15 -0
  281. package/references/official-docs/docs/subsystems/filesystem.zh.md +16 -1
  282. package/references/official-docs/docs/subsystems/goal.i18n.yaml +2 -2
  283. package/references/official-docs/docs/subsystems/goal.md +37 -1
  284. package/references/official-docs/docs/subsystems/goal.zh.md +38 -2
  285. package/references/official-docs/docs/subsystems/invariants.i18n.yaml +2 -2
  286. package/references/official-docs/docs/subsystems/invariants.md +1 -1
  287. package/references/official-docs/docs/subsystems/invariants.zh.md +3 -3
  288. package/references/official-docs/docs/subsystems/jobs.i18n.yaml +1 -1
  289. package/references/official-docs/docs/subsystems/jobs.md +1 -1
  290. package/references/official-docs/docs/subsystems/jobs.zh.md +1 -1
  291. package/references/official-docs/docs/subsystems/llm-streaming.i18n.yaml +2 -2
  292. package/references/official-docs/docs/subsystems/llm-streaming.md +35 -15
  293. package/references/official-docs/docs/subsystems/llm-streaming.zh.md +37 -17
  294. package/references/official-docs/docs/subsystems/lsp.i18n.yaml +2 -2
  295. package/references/official-docs/docs/subsystems/lsp.md +1 -1
  296. package/references/official-docs/docs/subsystems/lsp.zh.md +1 -1
  297. package/references/official-docs/docs/subsystems/mcp.i18n.yaml +6 -0
  298. package/references/official-docs/docs/subsystems/mcp.md +139 -0
  299. package/references/official-docs/docs/subsystems/mcp.zh.md +139 -0
  300. package/references/official-docs/docs/subsystems/office-to-pdf.i18n.yaml +6 -0
  301. package/references/official-docs/docs/subsystems/office-to-pdf.md +87 -0
  302. package/references/official-docs/docs/subsystems/office-to-pdf.zh.md +87 -0
  303. package/references/official-docs/docs/subsystems/permission-presets.i18n.yaml +2 -2
  304. package/references/official-docs/docs/subsystems/permission-presets.md +62 -27
  305. package/references/official-docs/docs/subsystems/permission-presets.zh.md +62 -27
  306. package/references/official-docs/docs/subsystems/persistence.i18n.yaml +2 -2
  307. package/references/official-docs/docs/subsystems/persistence.md +36 -15
  308. package/references/official-docs/docs/subsystems/persistence.zh.md +36 -15
  309. package/references/official-docs/docs/subsystems/plan.zh.md +2 -2
  310. package/references/official-docs/docs/subsystems/ptc-runtime.i18n.yaml +6 -0
  311. package/references/official-docs/docs/subsystems/ptc-runtime.md +232 -0
  312. package/references/official-docs/docs/subsystems/ptc-runtime.zh.md +232 -0
  313. package/references/official-docs/docs/subsystems/sandbox.i18n.yaml +2 -2
  314. package/references/official-docs/docs/subsystems/sandbox.md +5 -4
  315. package/references/official-docs/docs/subsystems/sandbox.zh.md +7 -6
  316. package/references/official-docs/docs/subsystems/schedule.i18n.yaml +2 -2
  317. package/references/official-docs/docs/subsystems/schedule.md +2 -2
  318. package/references/official-docs/docs/subsystems/schedule.zh.md +3 -3
  319. package/references/official-docs/docs/subsystems/scope.i18n.yaml +2 -2
  320. package/references/official-docs/docs/subsystems/scope.md +1 -1
  321. package/references/official-docs/docs/subsystems/scope.zh.md +1 -1
  322. package/references/official-docs/docs/subsystems/session-projection.i18n.yaml +2 -2
  323. package/references/official-docs/docs/subsystems/session-projection.md +1 -1
  324. package/references/official-docs/docs/subsystems/session-projection.zh.md +2 -2
  325. package/references/official-docs/docs/subsystems/session-reference.i18n.yaml +2 -2
  326. package/references/official-docs/docs/subsystems/session-reference.md +11 -6
  327. package/references/official-docs/docs/subsystems/session-reference.zh.md +11 -6
  328. package/references/official-docs/docs/subsystems/session-telemetry.i18n.yaml +2 -2
  329. package/references/official-docs/docs/subsystems/session-telemetry.md +22 -6
  330. package/references/official-docs/docs/subsystems/session-telemetry.zh.md +23 -7
  331. package/references/official-docs/docs/subsystems/session-title.i18n.yaml +2 -2
  332. package/references/official-docs/docs/subsystems/session-title.md +5 -5
  333. package/references/official-docs/docs/subsystems/session-title.zh.md +5 -5
  334. package/references/official-docs/docs/subsystems/session.i18n.yaml +2 -2
  335. package/references/official-docs/docs/subsystems/session.md +149 -61
  336. package/references/official-docs/docs/subsystems/session.zh.md +150 -62
  337. package/references/official-docs/docs/subsystems/shell.i18n.yaml +2 -2
  338. package/references/official-docs/docs/subsystems/shell.md +19 -15
  339. package/references/official-docs/docs/subsystems/shell.zh.md +20 -16
  340. package/references/official-docs/docs/subsystems/sidebar-right.i18n.yaml +6 -0
  341. package/references/official-docs/docs/subsystems/sidebar-right.md +153 -0
  342. package/references/official-docs/docs/subsystems/sidebar-right.zh.md +153 -0
  343. package/references/official-docs/docs/subsystems/skills.i18n.yaml +2 -2
  344. package/references/official-docs/docs/subsystems/skills.md +4 -6
  345. package/references/official-docs/docs/subsystems/skills.zh.md +4 -6
  346. package/references/official-docs/docs/subsystems/slots.i18n.yaml +2 -2
  347. package/references/official-docs/docs/subsystems/slots.md +52 -38
  348. package/references/official-docs/docs/subsystems/slots.zh.md +53 -39
  349. package/references/official-docs/docs/subsystems/spill.i18n.yaml +2 -2
  350. package/references/official-docs/docs/subsystems/spill.md +13 -6
  351. package/references/official-docs/docs/subsystems/spill.zh.md +13 -6
  352. package/references/official-docs/docs/subsystems/ssh.i18n.yaml +6 -0
  353. package/references/official-docs/docs/subsystems/ssh.md +135 -0
  354. package/references/official-docs/docs/subsystems/ssh.zh.md +135 -0
  355. package/references/official-docs/docs/subsystems/storage.zh.md +2 -2
  356. package/references/official-docs/docs/subsystems/subagent.i18n.yaml +2 -2
  357. package/references/official-docs/docs/subsystems/subagent.md +33 -16
  358. package/references/official-docs/docs/subsystems/subagent.zh.md +32 -15
  359. package/references/official-docs/docs/subsystems/subprocess.i18n.yaml +2 -2
  360. package/references/official-docs/docs/subsystems/subprocess.md +41 -44
  361. package/references/official-docs/docs/subsystems/subprocess.zh.md +41 -44
  362. package/references/official-docs/docs/subsystems/system-prompt.i18n.yaml +2 -2
  363. package/references/official-docs/docs/subsystems/system-prompt.md +6 -2
  364. package/references/official-docs/docs/subsystems/system-prompt.zh.md +7 -3
  365. package/references/official-docs/docs/subsystems/todo.zh.md +1 -1
  366. package/references/official-docs/docs/subsystems/token-meter.i18n.yaml +2 -2
  367. package/references/official-docs/docs/subsystems/token-meter.md +2 -1
  368. package/references/official-docs/docs/subsystems/token-meter.zh.md +2 -1
  369. package/references/official-docs/docs/subsystems/tools.i18n.yaml +2 -2
  370. package/references/official-docs/docs/subsystems/tools.md +28 -12
  371. package/references/official-docs/docs/subsystems/tools.zh.md +28 -12
  372. package/references/official-docs/docs/subsystems/typert.i18n.yaml +2 -2
  373. package/references/official-docs/docs/subsystems/typert.md +6 -5
  374. package/references/official-docs/docs/subsystems/typert.zh.md +6 -5
  375. package/references/official-docs/docs/subsystems/user-questions.i18n.yaml +2 -2
  376. package/references/official-docs/docs/subsystems/user-questions.md +2 -0
  377. package/references/official-docs/docs/subsystems/user-questions.zh.md +2 -0
  378. package/references/official-docs/docs/subsystems/web-client.i18n.yaml +2 -2
  379. package/references/official-docs/docs/subsystems/web-client.md +5 -5
  380. package/references/official-docs/docs/subsystems/web-client.zh.md +6 -6
  381. package/references/official-docs/docs/subsystems/web-server.i18n.yaml +2 -2
  382. package/references/official-docs/docs/subsystems/web-server.md +64 -0
  383. package/references/official-docs/docs/subsystems/web-server.zh.md +65 -1
  384. package/references/official-docs/docs/subsystems/webhook.i18n.yaml +1 -1
  385. package/references/official-docs/docs/subsystems/webhook.md +2 -2
  386. package/references/official-docs/docs/subsystems/workflow.i18n.yaml +2 -2
  387. package/references/official-docs/docs/subsystems/workflow.md +8 -8
  388. package/references/official-docs/docs/subsystems/workflow.zh.md +10 -10
  389. package/references/official-docs/docs/subsystems/workspace.i18n.yaml +2 -2
  390. package/references/official-docs/docs/subsystems/workspace.md +199 -1
  391. package/references/official-docs/docs/subsystems/workspace.zh.md +199 -1
  392. package/references/official-docs/docs/testing.i18n.yaml +2 -2
  393. package/references/official-docs/docs/testing.md +5 -4
  394. package/references/official-docs/docs/testing.zh.md +5 -4
  395. package/references/official-docs/docs/tool-catalog.i18n.yaml +2 -2
  396. package/references/official-docs/docs/tool-catalog.md +452 -187
  397. package/references/official-docs/docs/tool-catalog.zh.md +454 -189
  398. package/references/official-docs/docs/tool-execution-pipeline.i18n.yaml +2 -2
  399. package/references/official-docs/docs/tool-execution-pipeline.md +2 -2
  400. package/references/official-docs/docs/tool-execution-pipeline.zh.md +2 -2
  401. package/references/official-docs/docs/user/develop/basic/index.zh.md +1 -1
  402. package/references/official-docs/docs/user/develop/basic/publish.i18n.yaml +2 -2
  403. package/references/official-docs/docs/user/develop/basic/publish.md +2 -2
  404. package/references/official-docs/docs/user/develop/basic/publish.zh.md +5 -5
  405. package/references/official-docs/docs/user/develop/framework/index.i18n.yaml +2 -2
  406. package/references/official-docs/docs/user/develop/framework/index.md +1 -1
  407. package/references/official-docs/docs/user/develop/framework/index.zh.md +1 -1
  408. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.i18n.yaml +2 -2
  409. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.md +8 -8
  410. package/references/official-docs/docs/user/develop/practice/dynamic-cordis.zh.md +8 -8
  411. package/references/official-docs/docs/user/guide/index.zh.md +2 -2
  412. package/references/official-docs/docs/user/guide/mcp-memory.zh.md +1 -1
  413. package/references/official-docs/docs/user/guide/network-proxy.i18n.yaml +2 -2
  414. package/references/official-docs/docs/user/guide/network-proxy.md +1 -1
  415. package/references/official-docs/docs/user/guide/network-proxy.zh.md +1 -1
  416. package/references/official-docs/docs/user/guide/providers.i18n.yaml +2 -2
  417. package/references/official-docs/docs/user/guide/providers.md +12 -8
  418. package/references/official-docs/docs/user/guide/providers.zh.md +14 -10
  419. package/references/official-docs/docs/user/guide/python-sdk.i18n.yaml +2 -2
  420. package/references/official-docs/docs/user/guide/python-sdk.md +59 -23
  421. package/references/official-docs/docs/user/guide/python-sdk.zh.md +60 -24
  422. package/references/official-docs/docs/web-styling.i18n.yaml +2 -2
  423. package/references/official-docs/docs/web-styling.md +2 -1
  424. package/references/official-docs/docs/web-styling.zh.md +3 -2
  425. package/references/official-docs/packages/AGENTS.md +1 -1
  426. package/references/official-docs/packages/README.md +12 -7
  427. package/references/official-docs/vendor/README.md +15 -11
  428. package/references/official-docs/website-docs.ts +4 -2
  429. package/scripts/sync-official-docs.ps1 +5 -5
  430. package/references/official-docs/docs/subsystems/code-runtime.md +0 -195
  431. package/references/official-docs/docs/subsystems/code-runtime.zh.md +0 -195
@@ -10,10 +10,11 @@ How this repo tests, tier by tier, and the rules that keep a green suite meaning
10
10
  - **Coverage gate** (`pnpm run test:coverage`): the gating run, per-file 100% on `packages/*/*/src`. An uncovered line is often dead code the gate flags for deletion, not a missing test to bolt on. Line coverage is necessary, never sufficient — it proves lines ran, not that the feature works as shipped. Per-file 100% on `packages/shell/pwsh-local/src` needs a real `pwsh`: without one its executor suites self-skip and `vitest.config.ts` exempts the file so pwsh-less hosts stay green, while CI runners ship pwsh and enforce the full bar.
11
11
  - **Real-API e2e** (`pnpm run test:e2e`): with-key tests against live provider APIs — the DeepSeek model plus provider-specific smokes that gate on their own keys (`EXA_API_KEY`, `PERPLEXITY_API_KEY`, …); each suite self-skips without its key so keyless CI stays green ([real-API e2e Agent Note](../.agents/notes/implemented/testing/2026-06-19-real-api-e2e-ci.md)).
12
12
  - **Owner-local expected output** (`pnpm run test:expected`): keyless assembled CLI/process expectations without a recorded-session round trip. Drivers use `*.expected.e2e.ts` beside `tests/expected/`; CI runs built exports. Package/script expectations use `test`, while browser expectations use `test:web`.
13
+ - **Performance benchmarks** (`pnpm run test:bench`; required Linux PR gate `node 24 / benchmarks`): `benchmarks/` groups user-path gates. It builds libraries and workers; timed code runs under plain Node, never TSX. Synthetic inputs enforce time, heap, and scaling budgets; package-local `.perf.ts` stays diagnostic ([rules](../.agents/notes/implemented/testing/2026-09-04-session-open-performance-gate.md)).
13
14
  - **Snapshot** (`pnpm run test:snapshot`): a top-level scenario's highest recorded parent generation supplies user input and model replay, then serves as the expected persisted result. Parent filenames are `session[.vN].jsonl`; child roles are `session.<ordinal>[.vN].jsonl`; v0 omits `.v0`, positive versions require lowercase `.vN`, and each filename must agree with its header. Process scenarios start through `dsh`: headless owns one-shot behavior, the SDK owns persistent control, ACP owns automation-protocol behavior, and Web retains browser/ARIA evidence beside the same Session. `snapshot.yml` declares the profile, composition/header class, recording policy, exceptional replay or input metadata, and workspace facts. Typed tokens preserve parent/child identity relationships; only header pins own prompt/schema sidecars. A mutating scenario independently compares the complete `workspace.expected/` tree, which record and refresh never rewrite. Use `test:snapshot:record` when a model transcript changes and `test:snapshot:refresh` when replay input remains valid; review every resulting diff.
14
- - **Web browser snapshot** (`pnpm run test:web`; required Linux PR gate): Chromium compares session-driven output under `snapshots/web/` and UI-only output under `apps/web/tests/expected/`. CI forces read-only `DSH_SNAPSHOT=replay`, never writing expected outputs; record/refresh stay local and every diff is reviewed ([web e2e lane](../.agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.md), [CI gate decision](../.agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.md)). `test:web` [builds first](../.agents/notes/implemented/bug-fix/2026-07-28-themed-scrollbars-and-reserved-gutter.md) for plugin CSS.
15
+ - **Web browser snapshot** (`pnpm run test:web`; required Linux PR gate): Chromium compares session-driven output under `snapshots/web/` and UI-only output under `apps/web/tests/expected/`. CI forces read-only `DSH_SNAPSHOT=replay`, never writing expected outputs; record/refresh stay local and every diff is reviewed ([web e2e lane](../.agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.md), [CI gate decision](../.agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.md)). `test:web` builds first for plugin CSS.
15
16
 
16
- Session fixtures retain headers and payloads but omit body sequence/time envelopes; replay synthesizes them. Replay, record, and refresh select each parent/child role's highest generation. Current v2 uses `.v2`, one row per event, and embedded compact Assistant streams; retained v0 (suffixless) and v1 (`.v1`) may keep canonical packed rows for migration coverage. [The migrator](../scripts/migrate-packed-session-fixtures.ts) rewrites older historical layouts.
17
+ Session fixtures retain headers and payloads but omit body sequence/time envelopes; replay synthesizes them. Replay, record, and refresh select each parent/child role's highest generation. Current fixtures use the [writer format](session-format-status.md) in their filenames and headers, one row per event, and embedded compact Assistant streams. Historical fixtures retain their released representation; explicit `sessionFormat` owners preserve migration coverage. Follow the [format-version cookbook](cookbook/adding-a-session-format-version.md#snapshot-successors) to add successors without changing predecessors.
17
18
 
18
19
  ## How specs execute
19
20
 
@@ -37,7 +38,7 @@ An e2e assertion re-runs the command or re-reads the file externally; a keyword
37
38
 
38
39
  - Product-visible plugins require a non-unit REAL-composition test. Hand-built `ctx.plugin(...)` suites are insufficient: boot test-only `cordis.yml` through Loader and app/process, mock only external services or nondeterministic inputs, and assert model-visible request/log, durable state, or user-visible output. Keep opt-ins out of shipped defaults.
39
40
  - A guard only guards if the regression fails it. For a plugin without `inject` (bundle/composition plugins), a Loader smoke stays green when a default export replaces the required named exports — add an explicit `expect('default' in mod).toBe(false)` plus an `unwrapExports` round-trip assertion, and prove it: introduce the regression, watch red, revert.
40
- - "Real entry path" means the published artifact: a package `bin` runs built `lib/bin.js` under plain `node`, exposing failures tsx masks (settle races, module resolution, swallowed load failures). The same applies to non-index runtime entries (the worker-thread sibling `lib/worker.cjs`) and singleton modules shared across bundles (`packages/sdk/server/tests/built-scope-carrier.e2e.ts`). Keep the built-artifact smokes green (`packages/examples/*/tests/built-bin.e2e.ts`, `packages/code-runtime/code-runtime-worker-thread/tests/built-lib.e2e.ts`), and assert a genuinely-missing config exits non-zero.
41
+ - "Real entry path" means the published artifact: a package `bin` runs built `lib/bin.js` under plain `node`, exposing failures tsx masks (settle races, module resolution, swallowed load failures). The same applies to non-index runtime entries (the Node program bootstrap `lib/process.js`) and singleton modules shared across bundles (`packages/sdk/server/tests/built-scope-carrier.e2e.ts`). Keep the built-artifact smokes green (`packages/examples/*/tests/built-bin.e2e.ts`, `packages/ptc-runtime/ptc-runtime-node/tests/built-lib.e2e.ts`), and assert a genuinely-missing config exits non-zero.
41
42
 
42
43
  ## Test resolution: source plane only
43
44
 
@@ -51,4 +52,4 @@ An e2e assertion re-runs the command or re-reads the file externally; a keyword
51
52
 
52
53
  ## When a snapshot test is required
53
54
 
54
- Every non-trivial model-, protocol-, or human-visible change adds or updates a keyless recorded-session scenario in the same PR; package, e2e, mock-only, and rationale evidence does not replace the assembled transcript. Headless, SDK, ACP, and Web recordings live under `snapshots/session/`, `snapshots/sdk/`, `snapshots/acp/`, and `snapshots/web/`; a Web rendering may explicitly borrow another scenario's canonical session. Expected output that is not driven by a recorded session stays with its owning app, package, or script under `tests/expected/` and does not use the `*.snapshot.ts` suffix. [`dsh-session-snapshot`](../packages/test-support/session-snapshot/README.md) owns the shared storage rules and profile adapters. Agent-loop, session-lifecycle, and `SessionEventMap` changes update both SDK projections: `snapshots/sdk/` owns TypeScript, while required Python-runtime CI owns `scripts/snapshots/python-sdk-single-exe/`. New capability seams and lifecycle or transcript variants name every required tier at plan time.
55
+ Every non-trivial model-, protocol-, or human-visible change adds or updates a keyless recorded-session scenario in the same PR; package, e2e, mock-only, and rationale evidence does not replace the assembled transcript. Headless, SDK, ACP, and Web recordings live under `snapshots/session/`, `snapshots/sdk/`, `snapshots/acp/`, and `snapshots/web/`; a Web rendering may explicitly borrow another scenario's canonical session. Expected output that is not driven by a recorded session stays with its owning app, package, or script under `tests/expected/` and does not use the `*.snapshot.ts` suffix. [`dsh-session-snapshot`](../packages/test-support/session-snapshot/README.md) owns the shared storage rules and profile adapters. Agent-loop, session-lifecycle, and `SessionEventMap` changes update both SDK projections: `snapshots/sdk/` owns TypeScript, while [Python-runtime CI](../.agents/notes/implemented/process/2026-09-06-master-only-platform-ci.md) owns `scripts/snapshots/python-sdk-single-exe/`. New capability seams and lifecycle or transcript variants name every required tier at plan time.
@@ -10,10 +10,11 @@
10
10
  - **覆盖率门禁**(`pnpm run test:coverage`):门禁级运行,对 `packages/*/*/src` 按文件 100% 覆盖。未覆盖的行往往是门禁正确标记出的死代码(应删除),而非需要补写的测试。行覆盖率是必要条件,但永远不是充分条件:它证明行被执行过,不证明功能按交付预期工作。`packages/shell/pwsh-local/src` 的按文件 100% 覆盖需要真实的 `pwsh`:缺少它时其执行器套件会自动跳过,`vitest.config.ts` 会豁免该文件以使无 pwsh 的主机保持绿色,而 CI runner 自带 pwsh,仍按完整标准执行门禁。
11
11
  - **真实 API e2e**(`pnpm run test:e2e`):带密钥测试调用真实提供方 API,包括 DeepSeek 模型以及各提供方特有的冒烟测试;这些测试各自由自己的密钥控制(`EXA_API_KEY`、`PERPLEXITY_API_KEY` 等),缺少密钥时套件会自动跳过,使 keyless CI 保持绿色([真实 API e2e Agent Note](../.agents/notes/implemented/testing/2026-06-19-real-api-e2e-ci.zh.md))。
12
12
  - **所属位置的预期输出**(`pnpm run test:expected`):无录制会话往返的无密钥组装 CLI/进程预期。驱动使用 `*.expected.e2e.ts`,并与 `tests/expected/` 同属一处;CI 针对构建产物运行。包/脚本预期使用 `test`,浏览器预期使用 `test:web`。
13
+ - **性能基准**(`pnpm run test:bench`;必需的 Linux PR gate `node 24 / benchmarks`):`benchmarks/` 按用户路径组织门禁。它先构建 library 和 worker;被计时代码在纯 Node 下运行,不使用 TSX。合成输入执行耗时、堆和缩放预算;包内 `.perf.ts` 保留为诊断([规则](../.agents/notes/implemented/testing/2026-09-04-session-open-performance-gate.zh.md))。
13
14
  - **快照**(`pnpm run test:snapshot`):顶层场景数值最高的已录制 parent generation 同时提供用户输入和模型回放,并作为持久化结果的预期值。parent 文件名是 `session[.vN].jsonl`;child 角色使用 `session.<ordinal>[.vN].jsonl`;v0 省略 `.v0`,正版本必须使用小写 `.vN`,且每个文件名必须与其 header 一致。进程级场景都通过 `dsh` 启动:headless 负责一次性行为,SDK 负责持久控制,ACP 负责自动化协议行为,Web 在同一 Session 旁保留浏览器与 ARIA 证据。`snapshot.yml` 声明 profile、组合与请求头类别、录制策略、例外回放或输入元数据以及 workspace 事实。带类型的 token 保留父子身份关系;只有请求头 pin 拥有 prompt/schema sidecar。变更 workspace 的场景会独立比较完整的 `workspace.expected/` 目录,record 与 refresh 绝不改写该目录。当模型 transcript(文本记录)变化时使用 `test:snapshot:record`,回放输入仍有效时使用 `test:snapshot:refresh`;请审查所有结果差异。
14
- - **Web 浏览器快照**(`pnpm run test:web`;必需的 Linux PR(Pull Request)门禁):Chromium 比较 `snapshots/web/` 下由会话驱动的输出,以及 `apps/web/tests/expected/` 下仅含 UI 的输出。CI 强制只读的 `DSH_SNAPSHOT=replay`,绝不写入预期输出;record/refresh 留在本地,每处 diff 都须评审([web e2e 车道](../.agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.zh.md)、[CI 门禁决策](../.agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md))。`test:web` 会[先构建](../.agents/notes/implemented/bug-fix/2026-07-28-themed-scrollbars-and-reserved-gutter.zh.md)以交付插件 CSS。
15
+ - **Web 浏览器快照**(`pnpm run test:web`;必需的 Linux PR(Pull Request)门禁):Chromium 比较 `snapshots/web/` 下由会话驱动的输出,以及 `apps/web/tests/expected/` 下仅含 UI 的输出。CI 强制只读的 `DSH_SNAPSHOT=replay`,绝不写入预期输出;record/refresh 留在本地,每处 diff 都须评审([web e2e 车道](../.agents/notes/implemented/testing/2026-07-24-web-gui-browser-e2e-lane.zh.md)、[CI 门禁决策](../.agents/notes/implemented/testing/2026-07-30-web-browser-snapshot-ci-gate.zh.md))。`test:web` 会先构建以交付插件 CSS。
15
16
 
16
- Session fixture 保留 header 与 payload,但省略正文 seq/time envelope;replay 会合成这些 envelope。Replay、record 与 refresh 会选择每个 parent/child 角色的最高 generation。当前 v2 使用 `.v2`、每个事件一行,并嵌入紧凑 Assistant stream;保留的 v0(无后缀)与 v1(`.v1`)可以为迁移覆盖保留规范 packed row。[迁移器](../scripts/migrate-packed-session-fixtures.ts)会改写更旧的历史布局。
17
+ Session fixture 保留 header 与 payload,但省略正文 seq/time envelope;replay 会合成这些 envelope。Replay、record 与 refresh 会选择每个 parent/child 角色的最高 generation。当前 fixture 在文件名与 header 中使用[写入格式](session-format-status.zh.md),每个事件一行,并嵌入紧凑 Assistant stream。历史 fixture 保留其已发布表示;显式 `sessionFormat` 所有者保留迁移覆盖。按照[格式版本实操手册](cookbook/adding-a-session-format-version.zh.md#snapshot-successors)添加后继代际,不改动前代。
17
18
 
18
19
  ## spec 如何被执行
19
20
 
@@ -37,7 +38,7 @@ e2e 断言应重新运行命令或从外部重新读取文件;对 agent 自身
37
38
 
38
39
  - 产品可见的插件必须有一个非单元的真实组合测试。手动构建的 `ctx.plugin(...)` 套件不够:通过 Loader 和 app/process 启动仅用于测试的 `cordis.yml`,只 mock 外部服务或非确定性输入,断言模型可见的请求/日志、持久状态或用户可见输出。不要把 opt-in 选项混入交付默认值。
39
40
  - 一个守卫只有在回归能让它失败时才有效。对于没有 `inject` 的插件(bundle/组合插件),Loader 冒烟测试在默认导出替换必需的具名导出时仍然绿着——需要添加显式的 `expect('default' in mod).toBe(false)` 加 `unwrapExports` 往返断言,并证明它有效:引入回归、观察变红、回退。
40
- - 「真实入口路径」指已发布的产物:包的 `bin` 所运行的是构建后的 `lib/bin.js`,并由普通 `node` 执行,从而暴露 tsx 会掩盖的失败(结算竞态、模块解析、被吞掉的加载失败)。同样的规则适用于非 index 运行时入口(worker-thread 的同级文件 `lib/worker.cjs`),也适用于多个 bundle 共享的单例模块(`packages/sdk/server/tests/built-scope-carrier.e2e.ts`)。保持构建产物冒烟测试绿色(`packages/examples/*/tests/built-bin.e2e.ts`、`packages/code-runtime/code-runtime-worker-thread/tests/built-lib.e2e.ts`),并断言真正缺失的配置以非零状态退出。
41
+ - 「真实入口路径」指已发布的产物:包的 `bin` 所运行的是构建后的 `lib/bin.js`,并由普通 `node` 执行,从而暴露 tsx 会掩盖的失败(结算竞态、模块解析、被吞掉的加载失败)。同样的规则适用于非 index 运行时入口(Node 程序 bootstrap `lib/process.js`),也适用于多个 bundle 共享的单例模块(`packages/sdk/server/tests/built-scope-carrier.e2e.ts`)。保持构建产物冒烟测试绿色(`packages/examples/*/tests/built-bin.e2e.ts`、`packages/ptc-runtime/ptc-runtime-node/tests/built-lib.e2e.ts`),并断言真正缺失的配置以非零状态退出。
41
42
 
42
43
  ## 测试解析:仅限源码
43
44
 
@@ -51,4 +52,4 @@ e2e 断言应重新运行命令或从外部重新读取文件;对 agent 自身
51
52
 
52
53
  ## 何时需要快照测试
53
54
 
54
- 每项非平凡的模型可见、协议可见或人类可见变更,都在同一 PR 中添加或更新无密钥录制会话场景;包级、e2e、仅 mock 和 PR 理由证据不能取代组装后的 transcript。Headless、SDK、ACP 和 Web 录制分别位于 `snapshots/session/`、`snapshots/sdk/`、`snapshots/acp/` 和 `snapshots/web/`;Web 渲染可以显式借用另一个场景的规范会话。不由录制会话驱动的预期输出保留在所属应用、包或脚本的 `tests/expected/` 下,并且不使用 `*.snapshot.ts` 后缀。[`dsh-session-snapshot`](../packages/test-support/session-snapshot/README-zh.md) 拥有共享存储规则和 profile 适配器。Agent loop、会话生命周期和 `SessionEventMap` 变更应更新两个 SDK 投影:`snapshots/sdk/` 拥有 TypeScript,必需的 Python 运行时 CI 拥有 `scripts/snapshots/python-sdk-single-exe/`。新增 capability seam、生命周期或 transcript 变体应在计划阶段列出每个必需层级。
55
+ 每项非平凡的模型可见、协议可见或人类可见变更,都在同一 PR 中添加或更新无密钥录制会话场景;包级、e2e、仅 mock 和 PR 理由证据不能取代组装后的 transcript。Headless、SDK、ACP 和 Web 录制分别位于 `snapshots/session/`、`snapshots/sdk/`、`snapshots/acp/` 和 `snapshots/web/`;Web 渲染可以显式借用另一个场景的规范会话。不由录制会话驱动的预期输出保留在所属应用、包或脚本的 `tests/expected/` 下,并且不使用 `*.snapshot.ts` 后缀。[`dsh-session-snapshot`](../packages/test-support/session-snapshot/README.zh.md) 拥有共享存储规则和 profile 适配器。Agent loop、会话生命周期和 `SessionEventMap` 变更应更新两个 SDK 投影:`snapshots/sdk/` 拥有 TypeScript,[Python 运行时 CI](../.agents/notes/implemented/process/2026-09-06-master-only-platform-ci.zh.md) 拥有 `scripts/snapshots/python-sdk-single-exe/`。新增 capability seam、生命周期或 transcript 变体应在计划阶段列出每个必需层级。
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write docs/tool-catalog.md
5
- tool-catalog.md: 416585106de28296a3105fafbbe6e4edc0d0f16b
6
- tool-catalog.zh.md: 89d2e467863c09b78805fd9db8ec785ad7936a9d
5
+ tool-catalog.md: cd7805d3104120a04e21363cb75c6dcb8456f5e0
6
+ tool-catalog.zh.md: 52752836f49c8fb745a69f10c4f8cd1ef79a871d