fengming 0.3.10 → 0.3.12

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 (871) hide show
  1. package/dist/build-info.json +2 -2
  2. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  3. package/dist/cli/run-main.js +3 -3
  4. package/dist/cli-startup-metadata.json +8 -8
  5. package/dist/{command-registry-DMB-HKIk.js → command-registry-BHIBvpgR.js} +2 -2
  6. package/dist/{command-registry-C5ooX6PF.js → command-registry-BT5icv-c.js} +2 -2
  7. package/dist/{command-registry-core-B2w_XWvn.js → command-registry-core-C-a3GaYV.js} +2 -2
  8. package/dist/{completion-cli-Bf4mEw2W.js → completion-cli-BUfFF31m.js} +2 -2
  9. package/dist/control-ui/assets/{activity-D-mnRThU.js → activity-DF1iC1pF.js} +2 -2
  10. package/dist/control-ui/assets/{agents-U_KSP5I_.js → agents-CDGNJA8n.js} +2 -2
  11. package/dist/control-ui/assets/{channels-ohK9_G1O.js → channels-CAPFdCrE.js} +2 -2
  12. package/dist/control-ui/assets/{cron-6ZCzfU29.js → cron-DUUdUzzu.js} +2 -2
  13. package/dist/control-ui/assets/{debug-CSsDLg_s.js → debug-BwfVXGKK.js} +2 -2
  14. package/dist/control-ui/assets/{index-jUDczxhd.js → index-JWV4rMUy.js} +4 -4
  15. package/dist/control-ui/assets/{instances-782ZoDT4.js → instances-BqAPpn0Y.js} +2 -2
  16. package/dist/control-ui/assets/{nodes-BMX16BKM.js → nodes-gya-0PkG.js} +2 -2
  17. package/dist/control-ui/assets/{sessions-jLGSApYa.js → sessions-BdttyTpI.js} +2 -2
  18. package/dist/control-ui/assets/{skills-DweBwUhs.js → skills-D_rtwBjc.js} +2 -2
  19. package/dist/control-ui/assets/{workboard-BsU-FXIo.js → workboard-CIGDGkWB.js} +2 -2
  20. package/dist/control-ui/index.html +1 -1
  21. package/dist/control-ui/sw.js +1 -1
  22. package/dist/crestodian/crestodian.js +1 -1
  23. package/dist/crestodian/rescue-message.js +1 -1
  24. package/dist/{crestodian-C0x7JjF-.js → crestodian-CAxGCgHM.js} +3 -3
  25. package/dist/{dialogue-No0NvYX7.js → dialogue-CHuN9qet.js} +1 -1
  26. package/dist/gateway/protocol/index.d.ts +1 -1
  27. package/dist/{index-AZzJCgph.d.ts → index-DbpfOFUf.d.ts} +1 -1
  28. package/dist/{operations-Z85LFqsT.js → operations-Mvnrndji.js} +1 -1
  29. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  30. package/dist/plugin-sdk/{agent-harness-runtime-CgQiThzm.d.ts → agent-harness-runtime-Bkrjji63.d.ts} +2 -2
  31. package/dist/plugin-sdk/agent-harness-runtime.d.ts +4 -4
  32. package/dist/plugin-sdk/agent-harness-task-runtime.d.ts +1 -1
  33. package/dist/plugin-sdk/agent-harness.d.ts +4 -4
  34. package/dist/plugin-sdk/agent-runtime.d.ts +1 -1
  35. package/dist/plugin-sdk/{bundled-channel-config-schema-Dfn3b8sF.d.ts → bundled-channel-config-schema-ZTBQez8k.d.ts} +9 -9
  36. package/dist/plugin-sdk/bundled-channel-config-schema.d.ts +1 -1
  37. package/dist/plugin-sdk/channel-config-schema-legacy.d.ts +1 -1
  38. package/dist/plugin-sdk/channel-core.d.ts +2 -2
  39. package/dist/plugin-sdk/channel-entry-contract.d.ts +1 -1
  40. package/dist/plugin-sdk/{channel-pairing-CX6ncj1r.d.ts → channel-pairing-CzsPAHgH.d.ts} +1 -1
  41. package/dist/plugin-sdk/channel-pairing.d.ts +1 -1
  42. package/dist/plugin-sdk/channel-plugin-common.d.ts +2 -2
  43. package/dist/plugin-sdk/cli-backend.d.ts +1 -1
  44. package/dist/plugin-sdk/compat.d.ts +4 -4
  45. package/dist/plugin-sdk/{config-schema-DuJUjn6k.d.ts → config-schema-N64y7n8C.d.ts} +1 -1
  46. package/dist/plugin-sdk/config-schema.d.ts +4 -4
  47. package/dist/plugin-sdk/{core-CPtu2Ftl.d.ts → core-BWZB2hNB.d.ts} +1 -1
  48. package/dist/plugin-sdk/core.d.ts +7 -7
  49. package/dist/plugin-sdk/{delegate-uk6vAMkc.d.ts → delegate-o5xckIuc.d.ts} +1 -1
  50. package/dist/plugin-sdk/discord.d.ts +3 -3
  51. package/dist/plugin-sdk/{fengming-runtime-Dt2ZEVYX.d.ts → fengming-runtime-abXAXyq2.d.ts} +1 -1
  52. package/dist/plugin-sdk/gateway-runtime.d.ts +1 -1
  53. package/dist/plugin-sdk/{host-compat-CM0h9ODw.d.ts → host-compat-D2Ky8seZ.d.ts} +1 -1
  54. package/dist/plugin-sdk/{http-registry-BniL_epL.d.ts → http-registry-oxJbX3E-.d.ts} +2 -2
  55. package/dist/plugin-sdk/image-generation-core.d.ts +4 -4
  56. package/dist/plugin-sdk/image-generation-runtime.d.ts +3 -3
  57. package/dist/plugin-sdk/index.d.ts +4 -4
  58. package/dist/plugin-sdk/lmstudio.d.ts +1 -1
  59. package/dist/plugin-sdk/{loader-aELh60PE.d.ts → loader-CgJhYjxT.d.ts} +3 -3
  60. package/dist/plugin-sdk/{logger-BpB3--7Z.d.ts → logger-CyDIBtoX.d.ts} +1 -1
  61. package/dist/plugin-sdk/logging-core.d.ts +3 -3
  62. package/dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts +2 -2
  63. package/dist/plugin-sdk/memory-core-host-engine-foundation.d.ts +3 -3
  64. package/dist/plugin-sdk/{memory-core-host-engine-storage-DYPjOQCg.d.ts → memory-core-host-engine-storage-DfW7ZqD0.d.ts} +1 -1
  65. package/dist/plugin-sdk/memory-core-host-engine-storage.d.ts +1 -1
  66. package/dist/plugin-sdk/memory-core-host-runtime-cli.d.ts +1 -1
  67. package/dist/plugin-sdk/memory-core-host-runtime-core.d.ts +3 -3
  68. package/dist/plugin-sdk/memory-core.d.ts +3 -3
  69. package/dist/plugin-sdk/memory-host-core.d.ts +3 -3
  70. package/dist/plugin-sdk/migration-runtime.d.ts +1 -1
  71. package/dist/plugin-sdk/migration.d.ts +1 -1
  72. package/dist/plugin-sdk/music-generation-core.d.ts +2 -2
  73. package/dist/plugin-sdk/{plugin-entry-DO9kQeTr.d.ts → plugin-entry-C9xM-ZA9.d.ts} +1 -1
  74. package/dist/plugin-sdk/plugin-entry.d.ts +3 -3
  75. package/dist/plugin-sdk/plugin-runtime.d.ts +3 -3
  76. package/dist/plugin-sdk/{provider-api-key-auth-DvIiojS6.d.ts → provider-api-key-auth-DOmYPTC2.d.ts} +1 -1
  77. package/dist/plugin-sdk/provider-auth-api-key.d.ts +4 -4
  78. package/dist/plugin-sdk/{provider-auth-helpers-CYkWZ0vq.d.ts → provider-auth-helpers-pqDNrZTd.d.ts} +1 -1
  79. package/dist/plugin-sdk/{provider-auth-input-DUV6ZTw4.d.ts → provider-auth-input-Ckt-cU4H.d.ts} +1 -1
  80. package/dist/plugin-sdk/provider-auth-result.d.ts +1 -1
  81. package/dist/plugin-sdk/provider-auth-runtime.d.ts +1 -1
  82. package/dist/plugin-sdk/provider-auth.d.ts +5 -5
  83. package/dist/plugin-sdk/provider-catalog-runtime.d.ts +2 -2
  84. package/dist/plugin-sdk/{provider-catalog-shared-Cm3SyFfL.d.ts → provider-catalog-shared-QvOT8Wz1.d.ts} +1 -1
  85. package/dist/plugin-sdk/provider-catalog-shared.d.ts +2 -2
  86. package/dist/plugin-sdk/provider-entry.d.ts +3 -3
  87. package/dist/plugin-sdk/{provider-model-shared-D5rgn7Gb.d.ts → provider-model-shared-Bnc8IMx5.d.ts} +1 -1
  88. package/dist/plugin-sdk/provider-model-shared.d.ts +2 -2
  89. package/dist/plugin-sdk/{provider-registry-DxdZT9UN.d.ts → provider-registry-Ba1nNfhA.d.ts} +1 -1
  90. package/dist/plugin-sdk/{provider-registry-DiKX35tc.d.ts → provider-registry-CqB5bSAD.d.ts} +1 -1
  91. package/dist/plugin-sdk/{provider-registry-D0vmhPWL.d.ts → provider-registry-CxdVib8g.d.ts} +1 -1
  92. package/dist/plugin-sdk/{provider-self-hosted-setup-BPx7JMDC.d.ts → provider-self-hosted-setup-eMoeVPnF.d.ts} +1 -1
  93. package/dist/plugin-sdk/provider-setup.d.ts +2 -2
  94. package/dist/plugin-sdk/{provider-stream-DcC2vn_N.d.ts → provider-stream-CGaLae9n.d.ts} +1 -1
  95. package/dist/plugin-sdk/provider-stream-family.d.ts +2 -2
  96. package/dist/plugin-sdk/{provider-stream-shared-ByDv3QKm.d.ts → provider-stream-shared-u5mt-8_i.d.ts} +1 -1
  97. package/dist/plugin-sdk/provider-stream-shared.d.ts +1 -1
  98. package/dist/plugin-sdk/provider-stream.d.ts +2 -2
  99. package/dist/plugin-sdk/provider-tools.d.ts +1 -1
  100. package/dist/plugin-sdk/provider-web-fetch-contract.d.ts +1 -1
  101. package/dist/plugin-sdk/provider-web-fetch.d.ts +1 -1
  102. package/dist/plugin-sdk/provider-web-search-config-contract.d.ts +2 -2
  103. package/dist/plugin-sdk/{provider-web-search-contract-fields-CY4v8kS-.d.ts → provider-web-search-contract-fields-BiWOSs_d.d.ts} +1 -1
  104. package/dist/plugin-sdk/provider-web-search-contract.d.ts +2 -2
  105. package/dist/plugin-sdk/provider-web-search.d.ts +1 -1
  106. package/dist/plugin-sdk/realtime-transcription.d.ts +1 -1
  107. package/dist/plugin-sdk/realtime-voice.d.ts +1 -1
  108. package/dist/plugin-sdk/{redact-identifier-CVwkabcI.d.ts → redact-identifier-CVqsKaEK.d.ts} +1 -1
  109. package/dist/plugin-sdk/{registry-CzaGoAKH.d.ts → registry-Gq9OFlb3.d.ts} +2 -2
  110. package/dist/plugin-sdk/{registry-types-DN1yiH3F.d.ts → registry-types-DyBkef1H.d.ts} +2 -2
  111. package/dist/plugin-sdk/reply-runtime.d.ts +1 -1
  112. package/dist/plugin-sdk/runtime-env.d.ts +3 -3
  113. package/dist/plugin-sdk/runtime-store.d.ts +1 -1
  114. package/dist/plugin-sdk/runtime.d.ts +3 -3
  115. package/dist/plugin-sdk/self-hosted-provider-setup.d.ts +2 -2
  116. package/dist/plugin-sdk/simple-completion-runtime.d.ts +1 -1
  117. package/dist/plugin-sdk/speech-core.d.ts +2 -2
  118. package/dist/plugin-sdk/speech.d.ts +2 -2
  119. package/dist/plugin-sdk/{subsystem-n4Y4vCcQ.d.ts → subsystem-Boo2DQIV.d.ts} +1 -1
  120. package/dist/plugin-sdk/text-runtime.d.ts +2 -2
  121. package/dist/plugin-sdk/tool-plugin.d.ts +2 -2
  122. package/dist/plugin-sdk/{types-BI8R-vGd.d.ts → types-DGF1KeaJ.d.ts} +2 -2
  123. package/dist/plugin-sdk/{types-CsqNt0j8.d.ts → types-DpaN54PS.d.ts} +1 -1
  124. package/dist/plugin-sdk/{unhandled-rejections-D9eBl3hT.d.ts → unhandled-rejections-Bez6JG0y.d.ts} +2 -2
  125. package/dist/plugin-sdk/video-generation-core.d.ts +3 -3
  126. package/dist/plugin-sdk/video-generation-runtime.d.ts +3 -3
  127. package/dist/plugin-sdk/webhook-ingress.d.ts +1 -1
  128. package/dist/plugin-sdk/webhook-targets.d.ts +1 -1
  129. package/dist/{program-D19g2jaa.js → program-BaCHjV-F.js} +1 -1
  130. package/dist/{register.crestodian-BhIukKDA.js → register.crestodian-DMJEPMf3.js} +1 -1
  131. package/dist/register.subclis-B0BgjwyK.js +3 -0
  132. package/dist/{register.subclis-DVk0HU4k.js → register.subclis-BuoWG93n.js} +2 -2
  133. package/dist/{register.subclis-core-BK7nVvl6.js → register.subclis-core-BGBFrWE3.js} +2 -2
  134. package/dist/{standalone-CHrieUsw.js → standalone-CV2Ud6F7.js} +1 -1
  135. package/dist/tui-Bvt7hhwe.js +3 -0
  136. package/dist/tui-CFSmzhsm.js +2 -0
  137. package/dist/{tui-backend-_Pn3Byj-.js → tui-backend-Bm_t5G7x.js} +4 -4
  138. package/dist/{tui-cli-CAiC39zd.js → tui-cli-9Ny23hmo.js} +1 -1
  139. package/dist/tui-ink-run-CuExfFLV.js +2 -0
  140. package/dist/{tui-ink-run-ChXEGj1h.js → tui-ink-run-qNL49iQn.js} +17 -1
  141. package/package.json +6 -410
  142. package/CHANGELOG.md +0 -42
  143. package/THIRD_PARTY_NOTICES.md +0 -37
  144. package/dist/register.subclis-Bsvdh8RI.js +0 -3
  145. package/dist/tui-C733Qov0.js +0 -2
  146. package/dist/tui-DqbscVN5.js +0 -3
  147. package/dist/tui-ink-run-D4mSfLHj.js +0 -2
  148. package/docs/.i18n/README.md +0 -81
  149. package/docs/.i18n/ar-navigation.json +0 -18
  150. package/docs/.i18n/de-navigation.json +0 -18
  151. package/docs/.i18n/es-navigation.json +0 -18
  152. package/docs/.i18n/fr-navigation.json +0 -18
  153. package/docs/.i18n/glossary.ar.json +0 -78
  154. package/docs/.i18n/glossary.de.json +0 -78
  155. package/docs/.i18n/glossary.es.json +0 -78
  156. package/docs/.i18n/glossary.fa.json +0 -78
  157. package/docs/.i18n/glossary.fr.json +0 -78
  158. package/docs/.i18n/glossary.id.json +0 -78
  159. package/docs/.i18n/glossary.it.json +0 -78
  160. package/docs/.i18n/glossary.ja-JP.json +0 -98
  161. package/docs/.i18n/glossary.ko.json +0 -78
  162. package/docs/.i18n/glossary.nl.json +0 -78
  163. package/docs/.i18n/glossary.pl.json +0 -78
  164. package/docs/.i18n/glossary.pt-BR.json +0 -78
  165. package/docs/.i18n/glossary.th.json +0 -78
  166. package/docs/.i18n/glossary.tr.json +0 -78
  167. package/docs/.i18n/glossary.uk.json +0 -78
  168. package/docs/.i18n/glossary.vi.json +0 -78
  169. package/docs/.i18n/glossary.zh-CN.json +0 -1122
  170. package/docs/.i18n/glossary.zh-TW.json +0 -78
  171. package/docs/.i18n/id-navigation.json +0 -18
  172. package/docs/.i18n/it-navigation.json +0 -18
  173. package/docs/.i18n/ja-navigation.json +0 -18
  174. package/docs/.i18n/ko-navigation.json +0 -18
  175. package/docs/.i18n/pl-navigation.json +0 -18
  176. package/docs/.i18n/pt-BR-navigation.json +0 -18
  177. package/docs/.i18n/tr-navigation.json +0 -18
  178. package/docs/.i18n/translation-workflow.md +0 -111
  179. package/docs/.i18n/zh-Hans-navigation.json +0 -552
  180. package/docs/AGENTS.md +0 -36
  181. package/docs/CLAUDE.md +0 -1
  182. package/docs/agent-runtime-architecture.md +0 -48
  183. package/docs/announcements/bluebubbles-imessage.md +0 -79
  184. package/docs/auth-credential-semantics.md +0 -124
  185. package/docs/automation/auth-monitoring.md +0 -11
  186. package/docs/automation/clawflow.md +0 -12
  187. package/docs/automation/cron-jobs.md +0 -534
  188. package/docs/automation/cron-vs-heartbeat.md +0 -11
  189. package/docs/automation/gmail-pubsub.md +0 -11
  190. package/docs/automation/hooks.md +0 -387
  191. package/docs/automation/index.md +0 -135
  192. package/docs/automation/poll.md +0 -12
  193. package/docs/automation/standing-orders.md +0 -250
  194. package/docs/automation/taskflow.md +0 -155
  195. package/docs/automation/tasks.md +0 -374
  196. package/docs/automation/troubleshooting.md +0 -12
  197. package/docs/automation/webhook.md +0 -12
  198. package/docs/brave-search.md +0 -11
  199. package/docs/channels/access-groups.md +0 -201
  200. package/docs/channels/ambient-room-events.md +0 -214
  201. package/docs/channels/bot-loop-protection.md +0 -131
  202. package/docs/channels/broadcast-groups.md +0 -472
  203. package/docs/channels/channel-routing.md +0 -162
  204. package/docs/channels/clickclack.md +0 -138
  205. package/docs/channels/discord.md +0 -1758
  206. package/docs/channels/feishu.md +0 -650
  207. package/docs/channels/googlechat.md +0 -284
  208. package/docs/channels/group-messages.md +0 -95
  209. package/docs/channels/groups.md +0 -524
  210. package/docs/channels/imessage-from-bluebubbles.md +0 -259
  211. package/docs/channels/imessage.md +0 -839
  212. package/docs/channels/index.md +0 -64
  213. package/docs/channels/irc.md +0 -253
  214. package/docs/channels/line.md +0 -243
  215. package/docs/channels/location.md +0 -71
  216. package/docs/channels/matrix-migration.md +0 -370
  217. package/docs/channels/matrix-presentation.md +0 -77
  218. package/docs/channels/matrix-push-rules.md +0 -150
  219. package/docs/channels/matrix.md +0 -921
  220. package/docs/channels/mattermost.md +0 -542
  221. package/docs/channels/msteams.md +0 -1096
  222. package/docs/channels/nextcloud-talk.md +0 -176
  223. package/docs/channels/nostr.md +0 -253
  224. package/docs/channels/pairing.md +0 -214
  225. package/docs/channels/qqbot.md +0 -314
  226. package/docs/channels/signal.md +0 -417
  227. package/docs/channels/slack.md +0 -1623
  228. package/docs/channels/synology-chat.md +0 -187
  229. package/docs/channels/telegram.md +0 -1124
  230. package/docs/channels/tlon.md +0 -296
  231. package/docs/channels/troubleshooting.md +0 -162
  232. package/docs/channels/twitch.md +0 -431
  233. package/docs/channels/wechat.md +0 -171
  234. package/docs/channels/whatsapp.md +0 -796
  235. package/docs/channels/yuanbao.md +0 -416
  236. package/docs/channels/zalo.md +0 -253
  237. package/docs/channels/zalouser.md +0 -217
  238. package/docs/ci.md +0 -657
  239. package/docs/clawhub/publishing.md +0 -96
  240. package/docs/cli/acp.md +0 -370
  241. package/docs/cli/agent.md +0 -109
  242. package/docs/cli/agents.md +0 -253
  243. package/docs/cli/approvals.md +0 -190
  244. package/docs/cli/backup.md +0 -98
  245. package/docs/cli/browser.md +0 -307
  246. package/docs/cli/channels.md +0 -154
  247. package/docs/cli/clawbot.md +0 -25
  248. package/docs/cli/commitments.md +0 -90
  249. package/docs/cli/completion.md +0 -39
  250. package/docs/cli/config.md +0 -504
  251. package/docs/cli/configure.md +0 -77
  252. package/docs/cli/crestodian.md +0 -337
  253. package/docs/cli/cron.md +0 -304
  254. package/docs/cli/daemon.md +0 -67
  255. package/docs/cli/dashboard.md +0 -33
  256. package/docs/cli/devices.md +0 -240
  257. package/docs/cli/directory.md +0 -68
  258. package/docs/cli/dns.md +0 -53
  259. package/docs/cli/docs.md +0 -63
  260. package/docs/cli/doctor.md +0 -241
  261. package/docs/cli/flows.md +0 -52
  262. package/docs/cli/gateway.md +0 -572
  263. package/docs/cli/health.md +0 -43
  264. package/docs/cli/hooks.md +0 -345
  265. package/docs/cli/index.md +0 -400
  266. package/docs/cli/infer.md +0 -364
  267. package/docs/cli/logs.md +0 -68
  268. package/docs/cli/mcp.md +0 -529
  269. package/docs/cli/memory.md +0 -183
  270. package/docs/cli/message.md +0 -317
  271. package/docs/cli/migrate.md +0 -334
  272. package/docs/cli/models.md +0 -239
  273. package/docs/cli/node.md +0 -177
  274. package/docs/cli/nodes.md +0 -76
  275. package/docs/cli/onboard.md +0 -250
  276. package/docs/cli/pairing.md +0 -77
  277. package/docs/cli/path.md +0 -511
  278. package/docs/cli/plugins.md +0 -459
  279. package/docs/cli/policy.md +0 -886
  280. package/docs/cli/proxy.md +0 -89
  281. package/docs/cli/qr.md +0 -56
  282. package/docs/cli/reset.md +0 -39
  283. package/docs/cli/sandbox.md +0 -208
  284. package/docs/cli/secrets.md +0 -202
  285. package/docs/cli/security.md +0 -136
  286. package/docs/cli/sessions.md +0 -164
  287. package/docs/cli/setup.md +0 -59
  288. package/docs/cli/skills.md +0 -122
  289. package/docs/cli/status.md +0 -45
  290. package/docs/cli/system.md +0 -89
  291. package/docs/cli/tasks.md +0 -111
  292. package/docs/cli/transcripts.md +0 -151
  293. package/docs/cli/tui.md +0 -91
  294. package/docs/cli/uninstall.md +0 -44
  295. package/docs/cli/update.md +0 -243
  296. package/docs/cli/voicecall.md +0 -204
  297. package/docs/cli/webhooks.md +0 -117
  298. package/docs/cli/wiki.md +0 -256
  299. package/docs/concepts/active-memory.md +0 -856
  300. package/docs/concepts/agent-loop.md +0 -185
  301. package/docs/concepts/agent-runtimes.md +0 -276
  302. package/docs/concepts/agent-workspace.md +0 -230
  303. package/docs/concepts/agent.md +0 -140
  304. package/docs/concepts/architecture.md +0 -154
  305. package/docs/concepts/channel-docking.md +0 -145
  306. package/docs/concepts/commitments.md +0 -150
  307. package/docs/concepts/compaction.md +0 -203
  308. package/docs/concepts/context-engine.md +0 -347
  309. package/docs/concepts/context.md +0 -199
  310. package/docs/concepts/delegate-architecture.md +0 -319
  311. package/docs/concepts/dreaming.md +0 -264
  312. package/docs/concepts/experimental-features.md +0 -109
  313. package/docs/concepts/features.md +0 -91
  314. package/docs/concepts/fengming-sdk.md +0 -323
  315. package/docs/concepts/mantis-slack-desktop-runbook.md +0 -231
  316. package/docs/concepts/mantis.md +0 -744
  317. package/docs/concepts/markdown-formatting.md +0 -139
  318. package/docs/concepts/memory-builtin.md +0 -148
  319. package/docs/concepts/memory-honcho.md +0 -144
  320. package/docs/concepts/memory-qmd.md +0 -271
  321. package/docs/concepts/memory-search.md +0 -167
  322. package/docs/concepts/memory.md +0 -299
  323. package/docs/concepts/message-lifecycle-refactor.md +0 -1126
  324. package/docs/concepts/messages.md +0 -214
  325. package/docs/concepts/model-failover.md +0 -384
  326. package/docs/concepts/model-providers.md +0 -719
  327. package/docs/concepts/models.md +0 -371
  328. package/docs/concepts/multi-agent.md +0 -625
  329. package/docs/concepts/oauth.md +0 -198
  330. package/docs/concepts/parallel-specialist-lanes.md +0 -127
  331. package/docs/concepts/personal-agent-benchmark-pack.md +0 -74
  332. package/docs/concepts/presence.md +0 -117
  333. package/docs/concepts/progress-drafts.md +0 -406
  334. package/docs/concepts/qa-e2e-automation.md +0 -947
  335. package/docs/concepts/qa-matrix.md +0 -139
  336. package/docs/concepts/queue-steering.md +0 -90
  337. package/docs/concepts/queue.md +0 -136
  338. package/docs/concepts/retry.md +0 -86
  339. package/docs/concepts/session-pruning.md +0 -104
  340. package/docs/concepts/session-tool.md +0 -188
  341. package/docs/concepts/session.md +0 -164
  342. package/docs/concepts/soul.md +0 -116
  343. package/docs/concepts/streaming.md +0 -257
  344. package/docs/concepts/system-prompt.md +0 -328
  345. package/docs/concepts/timezone.md +0 -47
  346. package/docs/concepts/typebox.md +0 -309
  347. package/docs/concepts/typing-indicators.md +0 -88
  348. package/docs/concepts/usage-tracking.md +0 -66
  349. package/docs/date-time.md +0 -126
  350. package/docs/debug/node-issue.md +0 -90
  351. package/docs/diagnostics/flags.md +0 -182
  352. package/docs/docs.json +0 -1862
  353. package/docs/fengming-agent-runtime.md +0 -82
  354. package/docs/gateway/authentication.md +0 -256
  355. package/docs/gateway/background-process.md +0 -147
  356. package/docs/gateway/bonjour.md +0 -303
  357. package/docs/gateway/bridge-protocol.md +0 -97
  358. package/docs/gateway/cli-backends.md +0 -439
  359. package/docs/gateway/config-agents.md +0 -1525
  360. package/docs/gateway/config-channels.md +0 -945
  361. package/docs/gateway/config-tools.md +0 -774
  362. package/docs/gateway/configuration-examples.md +0 -704
  363. package/docs/gateway/configuration-reference.md +0 -1391
  364. package/docs/gateway/configuration.md +0 -739
  365. package/docs/gateway/diagnostics.md +0 -213
  366. package/docs/gateway/discovery.md +0 -154
  367. package/docs/gateway/doctor.md +0 -575
  368. package/docs/gateway/gateway-lock.md +0 -37
  369. package/docs/gateway/health.md +0 -73
  370. package/docs/gateway/heartbeat.md +0 -498
  371. package/docs/gateway/index.md +0 -383
  372. package/docs/gateway/local-model-services.md +0 -205
  373. package/docs/gateway/local-models.md +0 -355
  374. package/docs/gateway/logging.md +0 -149
  375. package/docs/gateway/multiple-gateways.md +0 -178
  376. package/docs/gateway/network-model.md +0 -15
  377. package/docs/gateway/openai-http-api.md +0 -378
  378. package/docs/gateway/openresponses-http-api.md +0 -347
  379. package/docs/gateway/openshell.md +0 -316
  380. package/docs/gateway/opentelemetry.md +0 -433
  381. package/docs/gateway/operator-scopes.md +0 -119
  382. package/docs/gateway/pairing.md +0 -207
  383. package/docs/gateway/prometheus.md +0 -249
  384. package/docs/gateway/protocol.md +0 -826
  385. package/docs/gateway/remote-gateway-readme.md +0 -169
  386. package/docs/gateway/remote.md +0 -280
  387. package/docs/gateway/sandbox-vs-tool-policy-vs-elevated.md +0 -148
  388. package/docs/gateway/sandboxing.md +0 -546
  389. package/docs/gateway/secrets-plan-contract.md +0 -159
  390. package/docs/gateway/secrets.md +0 -805
  391. package/docs/gateway/security/audit-checks.md +0 -127
  392. package/docs/gateway/security/exposure-runbook.md +0 -212
  393. package/docs/gateway/security/index.md +0 -1343
  394. package/docs/gateway/security/secure-file-operations.md +0 -76
  395. package/docs/gateway/security/shrinkwrap.md +0 -111
  396. package/docs/gateway/tailscale.md +0 -156
  397. package/docs/gateway/tools-invoke-http-api.md +0 -169
  398. package/docs/gateway/troubleshooting.md +0 -877
  399. package/docs/gateway/trusted-proxy-auth.md +0 -483
  400. package/docs/help/debugging.md +0 -341
  401. package/docs/help/environment.md +0 -233
  402. package/docs/help/faq-first-run.md +0 -870
  403. package/docs/help/faq-models.md +0 -556
  404. package/docs/help/faq.md +0 -2041
  405. package/docs/help/index.md +0 -39
  406. package/docs/help/scripts.md +0 -56
  407. package/docs/help/testing-live.md +0 -587
  408. package/docs/help/testing-updates-plugins.md +0 -299
  409. package/docs/help/testing.md +0 -977
  410. package/docs/help/troubleshooting.md +0 -449
  411. package/docs/index.md +0 -196
  412. package/docs/install/ansible.md +0 -233
  413. package/docs/install/azure.md +0 -315
  414. package/docs/install/bun.md +0 -59
  415. package/docs/install/clawdock.md +0 -112
  416. package/docs/install/development-channels.md +0 -148
  417. package/docs/install/digitalocean.md +0 -174
  418. package/docs/install/docker-vm-runtime.md +0 -154
  419. package/docs/install/docker.md +0 -564
  420. package/docs/install/exe-dev.md +0 -201
  421. package/docs/install/fly.md +0 -524
  422. package/docs/install/gcp.md +0 -418
  423. package/docs/install/hetzner.md +0 -285
  424. package/docs/install/hostinger.md +0 -98
  425. package/docs/install/index.md +0 -232
  426. package/docs/install/installer.md +0 -447
  427. package/docs/install/kubernetes.md +0 -196
  428. package/docs/install/macos-vm.md +0 -281
  429. package/docs/install/migrating-claude.md +0 -165
  430. package/docs/install/migrating-hermes.md +0 -178
  431. package/docs/install/migrating.md +0 -137
  432. package/docs/install/nix.md +0 -112
  433. package/docs/install/node.md +0 -142
  434. package/docs/install/northflank.mdx +0 -44
  435. package/docs/install/oracle.md +0 -218
  436. package/docs/install/podman.md +0 -216
  437. package/docs/install/railway.mdx +0 -92
  438. package/docs/install/raspberry-pi.md +0 -234
  439. package/docs/install/render.mdx +0 -167
  440. package/docs/install/uninstall.md +0 -131
  441. package/docs/install/updating.md +0 -284
  442. package/docs/install/upstash.md +0 -96
  443. package/docs/logging.md +0 -320
  444. package/docs/nav-tabs-underline.js +0 -100
  445. package/docs/network.md +0 -72
  446. package/docs/nodes/audio.md +0 -216
  447. package/docs/nodes/camera.md +0 -166
  448. package/docs/nodes/images.md +0 -77
  449. package/docs/nodes/index.md +0 -439
  450. package/docs/nodes/location-command.md +0 -102
  451. package/docs/nodes/media-understanding.md +0 -495
  452. package/docs/nodes/talk.md +0 -160
  453. package/docs/nodes/troubleshooting.md +0 -123
  454. package/docs/nodes/voicewake.md +0 -93
  455. package/docs/perplexity.md +0 -11
  456. package/docs/plan/codex-context-engine-harness.md +0 -624
  457. package/docs/plan/ui-channels.md +0 -284
  458. package/docs/platforms/digitalocean.md +0 -12
  459. package/docs/platforms/easyrunner.md +0 -109
  460. package/docs/platforms/index.md +0 -51
  461. package/docs/platforms/linux.md +0 -141
  462. package/docs/platforms/mac/bundled-gateway.md +0 -79
  463. package/docs/platforms/mac/canvas.md +0 -128
  464. package/docs/platforms/mac/child-process.md +0 -72
  465. package/docs/platforms/mac/dev-setup.md +0 -112
  466. package/docs/platforms/mac/health.md +0 -39
  467. package/docs/platforms/mac/icon.md +0 -36
  468. package/docs/platforms/mac/logging.md +0 -62
  469. package/docs/platforms/mac/menu-bar.md +0 -93
  470. package/docs/platforms/mac/peekaboo.md +0 -96
  471. package/docs/platforms/mac/permissions.md +0 -73
  472. package/docs/platforms/mac/remote.md +0 -123
  473. package/docs/platforms/mac/signing.md +0 -52
  474. package/docs/platforms/mac/skills.md +0 -43
  475. package/docs/platforms/mac/voice-overlay.md +0 -66
  476. package/docs/platforms/mac/voicewake.md +0 -73
  477. package/docs/platforms/mac/webchat.md +0 -54
  478. package/docs/platforms/mac/xpc.md +0 -66
  479. package/docs/platforms/oracle.md +0 -12
  480. package/docs/platforms/raspberry-pi.md +0 -13
  481. package/docs/platforms/windows.md +0 -286
  482. package/docs/plugins/adding-capabilities.md +0 -146
  483. package/docs/plugins/admin-http-rpc.md +0 -216
  484. package/docs/plugins/agent-tools.md +0 -13
  485. package/docs/plugins/architecture-internals.md +0 -1196
  486. package/docs/plugins/architecture.md +0 -483
  487. package/docs/plugins/building-extensions.md +0 -13
  488. package/docs/plugins/building-plugins.md +0 -335
  489. package/docs/plugins/bundles.md +0 -310
  490. package/docs/plugins/cli-backend-plugins.md +0 -310
  491. package/docs/plugins/codex-computer-use.md +0 -297
  492. package/docs/plugins/codex-harness-reference.md +0 -470
  493. package/docs/plugins/codex-harness-runtime.md +0 -268
  494. package/docs/plugins/codex-harness.md +0 -780
  495. package/docs/plugins/codex-native-plugins.md +0 -276
  496. package/docs/plugins/community.md +0 -77
  497. package/docs/plugins/compatibility.md +0 -167
  498. package/docs/plugins/copilot.md +0 -356
  499. package/docs/plugins/dependency-resolution.md +0 -176
  500. package/docs/plugins/google-meet.md +0 -1737
  501. package/docs/plugins/hooks.md +0 -484
  502. package/docs/plugins/install-overrides.md +0 -80
  503. package/docs/plugins/manage-plugins.md +0 -210
  504. package/docs/plugins/manifest.md +0 -1457
  505. package/docs/plugins/memory-lancedb.md +0 -385
  506. package/docs/plugins/memory-wiki.md +0 -529
  507. package/docs/plugins/message-presentation.md +0 -473
  508. package/docs/plugins/oc-path.md +0 -166
  509. package/docs/plugins/plugin-inventory.md +0 -189
  510. package/docs/plugins/plugin-permission-requests.md +0 -193
  511. package/docs/plugins/reference/acpx.md +0 -23
  512. package/docs/plugins/reference/admin-http-rpc.md +0 -23
  513. package/docs/plugins/reference/alibaba.md +0 -23
  514. package/docs/plugins/reference/amazon-bedrock-mantle.md +0 -23
  515. package/docs/plugins/reference/amazon-bedrock.md +0 -23
  516. package/docs/plugins/reference/anthropic-vertex.md +0 -19
  517. package/docs/plugins/reference/anthropic.md +0 -23
  518. package/docs/plugins/reference/arcee.md +0 -23
  519. package/docs/plugins/reference/azure-speech.md +0 -23
  520. package/docs/plugins/reference/bonjour.md +0 -19
  521. package/docs/plugins/reference/brave.md +0 -23
  522. package/docs/plugins/reference/browser.md +0 -23
  523. package/docs/plugins/reference/byteplus.md +0 -19
  524. package/docs/plugins/reference/canvas.md +0 -19
  525. package/docs/plugins/reference/cerebras.md +0 -23
  526. package/docs/plugins/reference/chutes.md +0 -23
  527. package/docs/plugins/reference/clickclack.md +0 -23
  528. package/docs/plugins/reference/cloudflare-ai-gateway.md +0 -23
  529. package/docs/plugins/reference/codex-supervisor.md +0 -27
  530. package/docs/plugins/reference/codex.md +0 -23
  531. package/docs/plugins/reference/comfy.md +0 -23
  532. package/docs/plugins/reference/copilot-proxy.md +0 -19
  533. package/docs/plugins/reference/copilot.md +0 -23
  534. package/docs/plugins/reference/deepgram.md +0 -23
  535. package/docs/plugins/reference/deepinfra.md +0 -23
  536. package/docs/plugins/reference/deepseek.md +0 -23
  537. package/docs/plugins/reference/diagnostics-otel.md +0 -19
  538. package/docs/plugins/reference/diagnostics-prometheus.md +0 -19
  539. package/docs/plugins/reference/diffs-language-pack.md +0 -19
  540. package/docs/plugins/reference/diffs.md +0 -19
  541. package/docs/plugins/reference/discord.md +0 -23
  542. package/docs/plugins/reference/document-extract.md +0 -23
  543. package/docs/plugins/reference/duckduckgo.md +0 -23
  544. package/docs/plugins/reference/elevenlabs.md +0 -23
  545. package/docs/plugins/reference/exa.md +0 -23
  546. package/docs/plugins/reference/fal.md +0 -23
  547. package/docs/plugins/reference/feishu.md +0 -23
  548. package/docs/plugins/reference/file-transfer.md +0 -19
  549. package/docs/plugins/reference/firecrawl.md +0 -23
  550. package/docs/plugins/reference/fireworks.md +0 -23
  551. package/docs/plugins/reference/github-copilot.md +0 -23
  552. package/docs/plugins/reference/gmi.md +0 -23
  553. package/docs/plugins/reference/google-meet.md +0 -23
  554. package/docs/plugins/reference/google.md +0 -23
  555. package/docs/plugins/reference/googlechat.md +0 -23
  556. package/docs/plugins/reference/gradium.md +0 -23
  557. package/docs/plugins/reference/groq.md +0 -23
  558. package/docs/plugins/reference/huggingface.md +0 -23
  559. package/docs/plugins/reference/imessage.md +0 -23
  560. package/docs/plugins/reference/inworld.md +0 -23
  561. package/docs/plugins/reference/irc.md +0 -23
  562. package/docs/plugins/reference/kilocode.md +0 -23
  563. package/docs/plugins/reference/kimi.md +0 -23
  564. package/docs/plugins/reference/line.md +0 -23
  565. package/docs/plugins/reference/litellm.md +0 -23
  566. package/docs/plugins/reference/llm-task.md +0 -19
  567. package/docs/plugins/reference/lmstudio.md +0 -23
  568. package/docs/plugins/reference/lobster.md +0 -19
  569. package/docs/plugins/reference/matrix.md +0 -23
  570. package/docs/plugins/reference/mattermost.md +0 -23
  571. package/docs/plugins/reference/memory-core.md +0 -19
  572. package/docs/plugins/reference/memory-lancedb.md +0 -23
  573. package/docs/plugins/reference/memory-wiki.md +0 -23
  574. package/docs/plugins/reference/microsoft-foundry.md +0 -19
  575. package/docs/plugins/reference/microsoft.md +0 -19
  576. package/docs/plugins/reference/migrate-claude.md +0 -19
  577. package/docs/plugins/reference/migrate-hermes.md +0 -19
  578. package/docs/plugins/reference/minimax.md +0 -23
  579. package/docs/plugins/reference/mistral.md +0 -23
  580. package/docs/plugins/reference/moonshot.md +0 -23
  581. package/docs/plugins/reference/msteams.md +0 -23
  582. package/docs/plugins/reference/nextcloud-talk.md +0 -23
  583. package/docs/plugins/reference/nostr.md +0 -23
  584. package/docs/plugins/reference/novita.md +0 -23
  585. package/docs/plugins/reference/nvidia.md +0 -23
  586. package/docs/plugins/reference/oc-path.md +0 -23
  587. package/docs/plugins/reference/ollama.md +0 -23
  588. package/docs/plugins/reference/open-prose.md +0 -19
  589. package/docs/plugins/reference/openai.md +0 -23
  590. package/docs/plugins/reference/opencode-go.md +0 -23
  591. package/docs/plugins/reference/opencode.md +0 -23
  592. package/docs/plugins/reference/openrouter.md +0 -23
  593. package/docs/plugins/reference/openshell.md +0 -19
  594. package/docs/plugins/reference/perplexity.md +0 -23
  595. package/docs/plugins/reference/pixverse.md +0 -23
  596. package/docs/plugins/reference/policy.md +0 -72
  597. package/docs/plugins/reference/qa-channel.md +0 -23
  598. package/docs/plugins/reference/qa-lab.md +0 -19
  599. package/docs/plugins/reference/qa-matrix.md +0 -19
  600. package/docs/plugins/reference/qianfan.md +0 -23
  601. package/docs/plugins/reference/qqbot.md +0 -23
  602. package/docs/plugins/reference/qwen.md +0 -23
  603. package/docs/plugins/reference/runway.md +0 -23
  604. package/docs/plugins/reference/searxng.md +0 -19
  605. package/docs/plugins/reference/senseaudio.md +0 -23
  606. package/docs/plugins/reference/sglang.md +0 -23
  607. package/docs/plugins/reference/signal.md +0 -23
  608. package/docs/plugins/reference/skill-workshop.md +0 -23
  609. package/docs/plugins/reference/slack.md +0 -23
  610. package/docs/plugins/reference/stepfun.md +0 -23
  611. package/docs/plugins/reference/synology-chat.md +0 -23
  612. package/docs/plugins/reference/synthetic.md +0 -23
  613. package/docs/plugins/reference/tavily.md +0 -23
  614. package/docs/plugins/reference/telegram.md +0 -23
  615. package/docs/plugins/reference/tencent.md +0 -23
  616. package/docs/plugins/reference/tlon.md +0 -23
  617. package/docs/plugins/reference/together.md +0 -23
  618. package/docs/plugins/reference/tokenjuice.md +0 -23
  619. package/docs/plugins/reference/tts-local-cli.md +0 -19
  620. package/docs/plugins/reference/twitch.md +0 -23
  621. package/docs/plugins/reference/venice.md +0 -23
  622. package/docs/plugins/reference/vercel-ai-gateway.md +0 -23
  623. package/docs/plugins/reference/vllm.md +0 -23
  624. package/docs/plugins/reference/voice-call.md +0 -23
  625. package/docs/plugins/reference/volcengine.md +0 -23
  626. package/docs/plugins/reference/voyage.md +0 -19
  627. package/docs/plugins/reference/vydra.md +0 -23
  628. package/docs/plugins/reference/web-readability.md +0 -19
  629. package/docs/plugins/reference/webhooks.md +0 -23
  630. package/docs/plugins/reference/whatsapp.md +0 -23
  631. package/docs/plugins/reference/workboard.md +0 -23
  632. package/docs/plugins/reference/xai.md +0 -23
  633. package/docs/plugins/reference/xiaomi.md +0 -23
  634. package/docs/plugins/reference/zai.md +0 -23
  635. package/docs/plugins/reference/zalo.md +0 -23
  636. package/docs/plugins/reference/zalouser.md +0 -24
  637. package/docs/plugins/reference.md +0 -145
  638. package/docs/plugins/sdk-agent-harness.md +0 -338
  639. package/docs/plugins/sdk-channel-inbound.md +0 -70
  640. package/docs/plugins/sdk-channel-ingress.md +0 -137
  641. package/docs/plugins/sdk-channel-message.md +0 -18
  642. package/docs/plugins/sdk-channel-outbound.md +0 -113
  643. package/docs/plugins/sdk-channel-plugins.md +0 -765
  644. package/docs/plugins/sdk-channel-turn.md +0 -9
  645. package/docs/plugins/sdk-entrypoints.md +0 -344
  646. package/docs/plugins/sdk-migration.md +0 -979
  647. package/docs/plugins/sdk-overview.md +0 -511
  648. package/docs/plugins/sdk-provider-plugins.md +0 -846
  649. package/docs/plugins/sdk-runtime.md +0 -676
  650. package/docs/plugins/sdk-setup.md +0 -550
  651. package/docs/plugins/sdk-subpaths.md +0 -391
  652. package/docs/plugins/sdk-testing.md +0 -403
  653. package/docs/plugins/skill-workshop.md +0 -713
  654. package/docs/plugins/tool-plugins.md +0 -411
  655. package/docs/plugins/voice-call.md +0 -942
  656. package/docs/plugins/webhooks.md +0 -192
  657. package/docs/plugins/workboard.md +0 -252
  658. package/docs/plugins/zalouser.md +0 -86
  659. package/docs/prose.md +0 -137
  660. package/docs/providers/alibaba.md +0 -158
  661. package/docs/providers/anthropic.md +0 -381
  662. package/docs/providers/arcee.md +0 -144
  663. package/docs/providers/azure-speech.md +0 -119
  664. package/docs/providers/bedrock-mantle.md +0 -211
  665. package/docs/providers/bedrock.md +0 -414
  666. package/docs/providers/cerebras.md +0 -130
  667. package/docs/providers/chutes.md +0 -153
  668. package/docs/providers/claude-max-api-proxy.md +0 -191
  669. package/docs/providers/cloudflare-ai-gateway.md +0 -119
  670. package/docs/providers/comfy.md +0 -362
  671. package/docs/providers/deepgram.md +0 -184
  672. package/docs/providers/deepinfra.md +0 -92
  673. package/docs/providers/deepseek.md +0 -146
  674. package/docs/providers/ds4.md +0 -309
  675. package/docs/providers/elevenlabs.md +0 -130
  676. package/docs/providers/fal.md +0 -240
  677. package/docs/providers/fireworks.md +0 -144
  678. package/docs/providers/github-copilot.md +0 -257
  679. package/docs/providers/gmi.md +0 -92
  680. package/docs/providers/google.md +0 -472
  681. package/docs/providers/gradium.md +0 -123
  682. package/docs/providers/groq.md +0 -171
  683. package/docs/providers/huggingface.md +0 -235
  684. package/docs/providers/index.md +0 -105
  685. package/docs/providers/inferrs.md +0 -272
  686. package/docs/providers/inworld.md +0 -120
  687. package/docs/providers/kilocode.md +0 -135
  688. package/docs/providers/litellm.md +0 -234
  689. package/docs/providers/lmstudio.md +0 -224
  690. package/docs/providers/minimax.md +0 -505
  691. package/docs/providers/mistral.md +0 -235
  692. package/docs/providers/models.md +0 -64
  693. package/docs/providers/moonshot.md +0 -413
  694. package/docs/providers/novita.md +0 -92
  695. package/docs/providers/nvidia.md +0 -158
  696. package/docs/providers/ollama-cloud.md +0 -115
  697. package/docs/providers/ollama.md +0 -1225
  698. package/docs/providers/openai.md +0 -1093
  699. package/docs/providers/opencode-go.md +0 -123
  700. package/docs/providers/opencode.md +0 -149
  701. package/docs/providers/openrouter.md +0 -349
  702. package/docs/providers/perplexity-provider.md +0 -123
  703. package/docs/providers/pixverse.md +0 -165
  704. package/docs/providers/qianfan.md +0 -132
  705. package/docs/providers/qwen-oauth.md +0 -115
  706. package/docs/providers/qwen.md +0 -364
  707. package/docs/providers/runway.md +0 -103
  708. package/docs/providers/senseaudio.md +0 -68
  709. package/docs/providers/sglang.md +0 -161
  710. package/docs/providers/stepfun.md +0 -229
  711. package/docs/providers/synthetic.md +0 -154
  712. package/docs/providers/tencent.md +0 -130
  713. package/docs/providers/together.md +0 -140
  714. package/docs/providers/venice.md +0 -312
  715. package/docs/providers/vercel-ai-gateway.md +0 -128
  716. package/docs/providers/vllm.md +0 -407
  717. package/docs/providers/volcengine.md +0 -199
  718. package/docs/providers/vydra.md +0 -180
  719. package/docs/providers/xai.md +0 -571
  720. package/docs/providers/xiaomi.md +0 -262
  721. package/docs/providers/zai.md +0 -224
  722. package/docs/refactor/access.md +0 -9
  723. package/docs/refactor/acp.md +0 -298
  724. package/docs/refactor/canvas.md +0 -131
  725. package/docs/refactor/database-first.md +0 -2256
  726. package/docs/refactor/ingress-core.md +0 -341
  727. package/docs/reference/AGENTS.default.md +0 -131
  728. package/docs/reference/RELEASING.md +0 -799
  729. package/docs/reference/api-usage-costs.md +0 -208
  730. package/docs/reference/application-modernization-plan.md +0 -208
  731. package/docs/reference/code-mode.md +0 -773
  732. package/docs/reference/credits.md +0 -33
  733. package/docs/reference/device-models.md +0 -50
  734. package/docs/reference/fengming-sdk-api-design.md +0 -390
  735. package/docs/reference/full-release-validation.md +0 -202
  736. package/docs/reference/memory-config.md +0 -604
  737. package/docs/reference/prompt-caching.md +0 -358
  738. package/docs/reference/release-performance-sweep.md +0 -360
  739. package/docs/reference/rich-output-protocol.md +0 -101
  740. package/docs/reference/rpc.md +0 -43
  741. package/docs/reference/secret-placeholder-conventions.md +0 -33
  742. package/docs/reference/secretref-credential-surface.md +0 -159
  743. package/docs/reference/secretref-user-supplied-credentials-matrix.json +0 -663
  744. package/docs/reference/session-management-compaction.md +0 -474
  745. package/docs/reference/templates/AGENTS.dev.md +0 -90
  746. package/docs/reference/templates/AGENTS.md +0 -227
  747. package/docs/reference/templates/BOOT.md +0 -16
  748. package/docs/reference/templates/BOOTSTRAP.md +0 -66
  749. package/docs/reference/templates/CLAUDE.md +0 -1
  750. package/docs/reference/templates/HEARTBEAT.md +0 -24
  751. package/docs/reference/templates/IDENTITY.dev.md +0 -52
  752. package/docs/reference/templates/IDENTITY.md +0 -34
  753. package/docs/reference/templates/SOUL.dev.md +0 -82
  754. package/docs/reference/templates/SOUL.md +0 -49
  755. package/docs/reference/templates/TOOLS.dev.md +0 -29
  756. package/docs/reference/templates/TOOLS.md +0 -51
  757. package/docs/reference/templates/USER.dev.md +0 -23
  758. package/docs/reference/templates/USER.md +0 -28
  759. package/docs/reference/test.md +0 -247
  760. package/docs/reference/token-use.md +0 -246
  761. package/docs/reference/transcript-hygiene.md +0 -214
  762. package/docs/reference/wizard.md +0 -252
  763. package/docs/security/CONTRIBUTING-THREAT-MODEL.md +0 -101
  764. package/docs/security/THREAT-MODEL-ATLAS.md +0 -611
  765. package/docs/security/formal-verification.md +0 -170
  766. package/docs/security/incident-response.md +0 -59
  767. package/docs/security/network-proxy.md +0 -268
  768. package/docs/snippets/plugin-publish/minimal-fengming.plugin.json +0 -12
  769. package/docs/snippets/plugin-publish/minimal-package.json +0 -16
  770. package/docs/specs/claw-supervisor.md +0 -247
  771. package/docs/start/bootstrapping.md +0 -49
  772. package/docs/start/docs-directory.md +0 -69
  773. package/docs/start/fengming.md +0 -252
  774. package/docs/start/getting-started.md +0 -152
  775. package/docs/start/hubs.md +0 -201
  776. package/docs/start/lore.md +0 -223
  777. package/docs/start/onboarding-overview.md +0 -72
  778. package/docs/start/onboarding.md +0 -98
  779. package/docs/start/quickstart.md +0 -25
  780. package/docs/start/setup.md +0 -178
  781. package/docs/start/showcase.md +0 -363
  782. package/docs/start/wizard-cli-automation.md +0 -232
  783. package/docs/start/wizard-cli-reference.md +0 -331
  784. package/docs/start/wizard.md +0 -141
  785. package/docs/style.css +0 -137
  786. package/docs/superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md +0 -316
  787. package/docs/tools/acp-agents-setup.md +0 -351
  788. package/docs/tools/acp-agents.md +0 -854
  789. package/docs/tools/agent-send.md +0 -130
  790. package/docs/tools/apply-patch.md +0 -64
  791. package/docs/tools/brave-search.md +0 -139
  792. package/docs/tools/browser-control.md +0 -391
  793. package/docs/tools/browser-linux-troubleshooting.md +0 -173
  794. package/docs/tools/browser-login.md +0 -77
  795. package/docs/tools/browser-wsl2-windows-remote-cdp-troubleshooting.md +0 -219
  796. package/docs/tools/browser.md +0 -810
  797. package/docs/tools/btw.md +0 -159
  798. package/docs/tools/capability-cookbook.md +0 -12
  799. package/docs/tools/clawhub.md +0 -5
  800. package/docs/tools/code-execution.md +0 -173
  801. package/docs/tools/creating-skills.md +0 -158
  802. package/docs/tools/diffs.md +0 -525
  803. package/docs/tools/duckduckgo-search.md +0 -109
  804. package/docs/tools/elevated.md +0 -128
  805. package/docs/tools/exa-search.md +0 -152
  806. package/docs/tools/exec-approvals-advanced.md +0 -444
  807. package/docs/tools/exec-approvals.md +0 -494
  808. package/docs/tools/exec.md +0 -285
  809. package/docs/tools/firecrawl.md +0 -155
  810. package/docs/tools/gemini-search.md +0 -114
  811. package/docs/tools/goal.md +0 -217
  812. package/docs/tools/grok-search.md +0 -129
  813. package/docs/tools/image-generation.md +0 -493
  814. package/docs/tools/index.md +0 -178
  815. package/docs/tools/kimi-search.md +0 -105
  816. package/docs/tools/llm-task.md +0 -137
  817. package/docs/tools/lobster.md +0 -365
  818. package/docs/tools/loop-detection.md +0 -154
  819. package/docs/tools/media-overview.md +0 -160
  820. package/docs/tools/minimax-search.md +0 -102
  821. package/docs/tools/multi-agent-sandbox-tools.md +0 -409
  822. package/docs/tools/music-generation.md +0 -372
  823. package/docs/tools/ollama-search.md +0 -153
  824. package/docs/tools/pdf.md +0 -213
  825. package/docs/tools/perplexity-search.md +0 -220
  826. package/docs/tools/plugin.md +0 -363
  827. package/docs/tools/reactions.md +0 -100
  828. package/docs/tools/searxng-search.md +0 -141
  829. package/docs/tools/skills-config.md +0 -195
  830. package/docs/tools/skills.md +0 -569
  831. package/docs/tools/slash-commands.md +0 -487
  832. package/docs/tools/steer.md +0 -77
  833. package/docs/tools/subagents.md +0 -651
  834. package/docs/tools/tavily.md +0 -162
  835. package/docs/tools/thinking.md +0 -142
  836. package/docs/tools/tokenjuice.md +0 -84
  837. package/docs/tools/tool-search.md +0 -269
  838. package/docs/tools/trajectory.md +0 -229
  839. package/docs/tools/tts.md +0 -1009
  840. package/docs/tools/video-generation.md +0 -555
  841. package/docs/tools/web-fetch.md +0 -210
  842. package/docs/tools/web.md +0 -461
  843. package/docs/tts.md +0 -11
  844. package/docs/vps.md +0 -139
  845. package/docs/web/control-ui.md +0 -512
  846. package/docs/web/dashboard.md +0 -107
  847. package/docs/web/index.md +0 -133
  848. package/docs/web/tui.md +0 -250
  849. package/docs/web/webchat.md +0 -102
  850. package/npm-shrinkwrap.json +0 -12861
  851. package/patches/.gitkeep +0 -0
  852. package/patches/@agentclientprotocol__claude-agent-acp@0.37.0.patch +0 -41
  853. package/pnpm-workspace.yaml +0 -120
  854. package/scripts/crabbox-wrapper.mjs +0 -2004
  855. package/scripts/lib/official-external-channel-catalog.json +0 -560
  856. package/scripts/lib/official-external-plugin-catalog.json +0 -264
  857. package/scripts/lib/official-external-provider-catalog.json +0 -158
  858. package/scripts/lib/package-dist-imports.mjs +0 -171
  859. package/scripts/npm-runner.mjs +0 -91
  860. package/scripts/postinstall-bundled-plugins.mjs +0 -978
  861. package/scripts/preinstall-package-manager-warning.mjs +0 -64
  862. package/scripts/prepare-git-hooks.mjs +0 -72
  863. package/scripts/windows-cmd-helpers.mjs +0 -22
  864. package/skills/batch/SKILL.md +0 -118
  865. package/skills/code-review/SKILL.md +0 -107
  866. package/skills/debug/SKILL.md +0 -83
  867. package/skills/loop/SKILL.md +0 -118
  868. package/skills/run/SKILL.md +0 -79
  869. package/skills/run-skill-generator/SKILL.md +0 -179
  870. package/skills/verify/SKILL.md +0 -103
  871. package/src/agents/templates/HEARTBEAT.md +0 -3
@@ -1,799 +0,0 @@
1
- ---
2
- summary: "Release lanes, operator checklist, validation boxes, version naming, and cadence"
3
- title: "Release policy"
4
- read_when:
5
- - Looking for public release channel definitions
6
- - Running release validation or package acceptance
7
- - Looking for version naming and cadence
8
- ---
9
-
10
- FengMing has three public release lanes:
11
-
12
- - stable: tagged releases that publish to npm `beta` by default, or to npm `latest` when explicitly requested
13
- - beta: prerelease tags that publish to npm `beta`
14
- - dev: the moving head of `main`
15
-
16
- ## Version naming
17
-
18
- - Stable release version: `YYYY.M.D`
19
- - Git tag: `vYYYY.M.D`
20
- - Stable correction release version: `YYYY.M.D-N`
21
- - Git tag: `vYYYY.M.D-N`
22
- - Beta prerelease version: `YYYY.M.D-beta.N`
23
- - Git tag: `vYYYY.M.D-beta.N`
24
- - Do not zero-pad month or day
25
- - `latest` means the current promoted stable npm release
26
- - `beta` means the current beta install target
27
- - Stable and stable correction releases publish to npm `beta` by default; release operators can target `latest` explicitly, or promote a vetted beta build later
28
- - Every stable FengMing release ships the npm package and macOS app together;
29
- beta releases normally validate and publish the npm/package path first, with
30
- mac app build/sign/notarize reserved for stable unless explicitly requested
31
-
32
- ## Release cadence
33
-
34
- - Releases move beta-first
35
- - Stable follows only after the latest beta is validated
36
- - Maintainers normally cut releases from a `release/YYYY.M.D` branch created
37
- from current `main`, so release validation and fixes do not block new
38
- development on `main`
39
- - If a beta tag has been pushed or published and needs a fix, maintainers cut
40
- the next `-beta.N` tag instead of deleting or recreating the old beta tag
41
- - Detailed release procedure, approvals, credentials, and recovery notes are
42
- maintainer-only
43
-
44
- ## Release operator checklist
45
-
46
- This checklist is the public shape of the release flow. Private credentials,
47
- signing, notarization, dist-tag recovery, and emergency rollback details stay in
48
- the maintainer-only release runbook.
49
-
50
- 1. Start from current `main`: pull latest, confirm the target commit is pushed,
51
- and confirm current `main` CI is green enough to branch from it.
52
- 2. Generate the top `CHANGELOG.md` section from merged PRs and all direct
53
- commits since the last reachable release tag. Keep entries user-facing,
54
- dedupe overlapping PR/direct-commit entries, commit the rewrite, push it,
55
- and rebase/pull once more before branching.
56
- 3. Review release compatibility records in
57
- `src/plugins/compat/registry.ts` and
58
- `src/commands/doctor/shared/deprecation-compat.ts`. Remove expired
59
- compatibility only when the upgrade path stays covered, or record why it is
60
- intentionally carried.
61
- 4. Create `release/YYYY.M.D` from current `main`; do not do normal release work
62
- directly on `main`.
63
- 5. Bump every required version location for the intended tag, then run
64
- `pnpm release:prep`. It refreshes plugin versions, plugin inventory, config
65
- schema, bundled channel config metadata, config docs baseline, plugin SDK
66
- exports, and plugin SDK API baseline in the right order. Commit any generated
67
- drift before tagging. Then run the local deterministic preflight:
68
- `pnpm check:test-types`, `pnpm check:architecture`,
69
- `pnpm build && pnpm ui:build`, and `pnpm release:check`.
70
- 6. Run `FengMing NPM Release` with `preflight_only=true`. Before a tag exists,
71
- a full 40-character release-branch SHA is allowed for validation-only
72
- preflight. The preflight generates dependency release evidence for the
73
- exact checked-out dependency graph and stores it in the npm preflight
74
- artifact. Save the successful `preflight_run_id`.
75
- 7. Kick off all pre-release tests with `Full Release Validation` for the
76
- release branch, tag, or full commit SHA. This is the one manual entrypoint
77
- for the four big release test boxes: Vitest, Docker, QA Lab, and Package.
78
- 8. If validation fails, fix on the release branch and rerun the smallest failed
79
- file, lane, workflow job, package profile, provider, or model allowlist that
80
- proves the fix. Rerun the full umbrella only when the changed surface makes
81
- prior evidence stale.
82
- 9. For beta, tag `vYYYY.M.D-beta.N`, then run `pnpm release:candidate -- --tag
83
- vYYYY.M.D-beta.N` from the matching `release/YYYY.M.D` branch. The helper runs
84
- the local generated-release checks, dispatches or verifies the full release
85
- validation and npm preflight evidence, runs Parallels and Telegram package
86
- proof, records plugin npm and ClawHub plans, and prints the exact
87
- `FengMing Release Publish` command only after the evidence bundle is green.
88
- `FengMing Release Publish` dispatches the selected or all-publishable plugin
89
- packages to npm and the same set to ClawHub in parallel, and then promotes the
90
- prepared FengMing npm preflight artifact with the matching dist-tag as soon as
91
- plugin npm publish succeeds.
92
- After the FengMing npm publish child succeeds, it creates or updates the
93
- matching GitHub release/prerelease page from the complete matching
94
- `CHANGELOG.md` section. Stable releases published to npm `latest` become the
95
- GitHub latest release; stable maintenance releases kept on npm `beta` are
96
- created with GitHub `latest=false`. The workflow also uploads the preflight
97
- dependency evidence to the GitHub release as
98
- `fengming-<version>-dependency-evidence.zip` for post-release incident
99
- response. The publish workflow prints child run IDs immediately, auto-approves
100
- release environment gates the workflow token is allowed to approve, summarizes
101
- failed child jobs with log tails, closes out the GitHub release and dependency
102
- evidence as soon as FengMing npm publish succeeds, waits for ClawHub whenever
103
- FengMing npm is being published, then runs `pnpm release:verify-beta` and
104
- uploads postpublish evidence for the GitHub release, npm package, selected
105
- plugin npm packages, selected ClawHub packages, child workflow run IDs, and
106
- optional NPM Telegram run ID. The ClawHub path retries transient CLI
107
- dependency install failures, publishes preview-passing plugins even when one
108
- preview cell flakes, and ends with registry verification for every expected
109
- plugin version so partial publishes remain visible and retryable. Then run the post-publish
110
- package acceptance against the published
111
- `fengming@YYYY.M.D-beta.N` or
112
- `fengming@beta` package. If a pushed or published prerelease needs a fix,
113
- cut the next matching prerelease number; do not delete or rewrite the old
114
- prerelease.
115
- 10. For stable, continue only after the vetted beta or release candidate has the
116
- required validation evidence. Stable npm publish also goes through
117
- `FengMing Release Publish`, reusing the successful preflight artifact via
118
- `preflight_run_id`; stable macOS release readiness also requires the
119
- packaged `.zip`, `.dmg`, `.dSYM.zip`, and updated `appcast.xml` on `main`.
120
- The macOS publish workflow publishes the signed appcast to public `main`
121
- automatically after release assets verify; if branch protection blocks the
122
- direct push, it opens or updates an appcast PR.
123
- 11. After publish, run the npm post-publish verifier, optional standalone
124
- published-npm Telegram E2E when you need post-publish channel proof,
125
- dist-tag promotion when needed, verify the generated GitHub release page,
126
- and run the release announcement steps.
127
-
128
- ## Release preflight
129
-
130
- - Run `pnpm check:test-types` before release preflight so test TypeScript stays
131
- covered outside the faster local `pnpm check` gate
132
- - Run `pnpm check:architecture` before release preflight so the broader import
133
- cycle and architecture boundary checks are green outside the faster local gate
134
- - Run `pnpm build && pnpm ui:build` before `pnpm release:check` so the expected
135
- `dist/*` release artifacts and Control UI bundle exist for the pack
136
- validation step
137
- - Run `pnpm release:prep` after the root version bump and before tagging. It
138
- runs every deterministic release generator that commonly drifts after a
139
- version/config/API change: plugin versions, plugin inventory, base config
140
- schema, bundled channel config metadata, config docs baseline, plugin SDK
141
- exports, and plugin SDK API baseline. `pnpm release:check` re-runs those
142
- guards in check mode and reports every generated drift failure it finds in one
143
- pass before running package release checks.
144
- - Plugin version sync updates official plugin package versions and existing
145
- `fengming.compat.pluginApi` floors to the FengMing release version by
146
- default. Treat that field as the plugin SDK/runtime API floor, not just a copy
147
- of the package version: for plugin-only releases that intentionally remain
148
- compatible with older FengMing hosts, keep the floor at the oldest supported
149
- host API and document that choice in the plugin release proof.
150
- - Run the manual `Full Release Validation` workflow before release approval to
151
- kick off all pre-release test boxes from one entrypoint. It accepts a branch,
152
- tag, or full commit SHA, dispatches manual `CI`, and dispatches
153
- `FengMing Release Checks` for install smoke, package acceptance, cross-OS
154
- package checks, QA Lab parity, Matrix, and Telegram lanes. Stable/default runs
155
- keep exhaustive live/E2E and Docker release-path soak behind
156
- `run_release_soak=true`; `release_profile=full` forces soak on. With
157
- `release_profile=full` and `rerun_group=all`, it also runs package Telegram
158
- E2E against the `release-package-under-test` artifact from release checks.
159
- Provide `release_package_spec` after publishing a beta to reuse the shipped
160
- npm package across release checks, Package Acceptance, and package Telegram
161
- E2E without rebuilding the release tarball. Provide
162
- `npm_telegram_package_spec` only when Telegram should use a different
163
- published package from the rest of release validation. Provide
164
- `package_acceptance_package_spec` when Package Acceptance should use a
165
- different published package from the release package spec. Provide
166
- `evidence_package_spec` when the release evidence report should prove that the
167
- validation matches a published npm package without forcing Telegram E2E.
168
- Example:
169
- `gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.D`
170
- - Run the manual `Package Acceptance` workflow when you want side-channel proof
171
- for a package candidate while release work continues. Use `source=npm` for
172
- `fengming@beta`, `fengming@latest`, or an exact release version; `source=ref`
173
- to pack a trusted `package_ref` branch/tag/SHA with the current
174
- `workflow_ref` harness; `source=url` for a public HTTPS tarball with a
175
- required SHA-256 and strict public URL policy; `source=trusted-url` for a
176
- named trusted-source policy using required `trusted_source_id` and SHA-256; or
177
- `source=artifact` for a tarball uploaded by another GitHub Actions run. The
178
- workflow resolves the candidate to
179
- `package-under-test`, reuses the Docker E2E release scheduler against that
180
- tarball, and can run Telegram QA against the same tarball with
181
- `telegram_mode=mock-openai` or `telegram_mode=live-frontier`. When the
182
- selected Docker lanes include `published-upgrade-survivor`, the package
183
- artifact is the candidate and `published_upgrade_survivor_baseline` selects
184
- the published baseline. `update-restart-auth` uses the candidate package as
185
- both the installed CLI and the package-under-test so it exercises the
186
- candidate update command's managed restart path.
187
- Example: `gh workflow run package-acceptance.yml --ref main -f workflow_ref=main -f source=npm -f package_spec=fengming@beta -f suite_profile=product -f published_upgrade_survivor_baseline=fengming@2026.4.26 -f telegram_mode=mock-openai`
188
- Common profiles:
189
- - `smoke`: install/channel/agent, gateway network, and config reload lanes
190
- - `package`: artifact-native package/update/restart/plugin lanes without OpenWebUI or live ClawHub
191
- - `product`: package profile plus MCP channels, cron/subagent cleanup,
192
- OpenAI web search, and OpenWebUI
193
- - `full`: Docker release-path chunks with OpenWebUI
194
- - `custom`: exact `docker_lanes` selection for a focused rerun
195
- - Run the manual `CI` workflow directly when you only need full normal CI
196
- coverage for the release candidate. Manual CI dispatches bypass changed
197
- scoping and force the Linux Node shards, bundled-plugin shards, plugin and
198
- channel contract shards, Node 22 compatibility, `check-*`, `check-additional-*`,
199
- built-artifact smoke checks, docs checks, Python skills, Windows, macOS,
200
- Android, and Control UI i18n lanes.
201
- Example: `gh workflow run ci.yml --ref release/YYYY.M.D`
202
- - Run `pnpm qa:otel:smoke` when validating release telemetry. It exercises
203
- QA-lab through a local OTLP/HTTP receiver and verifies trace, metric, and log
204
- export plus bounded trace attributes and content/identifier redaction without
205
- requiring Opik, Langfuse, or another external collector.
206
- - Run `pnpm qa:otel:collector-smoke` when validating collector compatibility.
207
- It routes the same QA-lab OTLP export through a real OpenTelemetry Collector
208
- Docker container before the local receiver assertions.
209
- - Run `pnpm qa:prometheus:smoke` when validating protected Prometheus scraping.
210
- It exercises QA-lab, rejects unauthenticated scrapes, and verifies
211
- release-critical metric families stay free of prompt content, raw identifiers,
212
- auth tokens, and local paths.
213
- - Run `pnpm qa:observability:smoke` when you want the source-checkout
214
- OpenTelemetry and Prometheus smoke lanes back to back.
215
- - Run `pnpm release:check` before every tagged release
216
- - `FengMing NPM Release` preflight generates dependency release evidence before
217
- it packs the npm tarball. The npm advisory vulnerability gate is
218
- release-blocking. The transitive manifest risk, dependency ownership/install
219
- surface, and dependency change reports are release evidence only. The
220
- dependency change report compares the release candidate with the previous
221
- reachable release tag.
222
- - The preflight uploads dependency evidence as
223
- `fengming-release-dependency-evidence-<tag>` and also embeds it under
224
- `dependency-evidence/` inside the prepared npm preflight artifact. The real
225
- publish path reuses that preflight artifact, then attaches the same evidence
226
- to the GitHub release as `fengming-<version>-dependency-evidence.zip`.
227
- - Run `FengMing Release Publish` for the mutating publish sequence after the
228
- tag exists. Dispatch it from `release/YYYY.M.D` (or `main` when publishing a
229
- main-reachable tag), pass the release tag and successful FengMing npm
230
- `preflight_run_id`, and keep the default plugin publish scope
231
- `all-publishable` unless you are deliberately running a focused repair. The
232
- workflow serializes plugin npm publish, plugin ClawHub publish, and FengMing
233
- npm publish so the core package is not published before its externalized
234
- plugins.
235
- - Release checks now run in a separate manual workflow:
236
- `FengMing Release Checks`
237
- - `FengMing Release Checks` also runs the QA Lab mock parity lane plus the fast
238
- live Matrix profile and Telegram QA lane before release approval. The live
239
- lanes use the `qa-live-shared` environment; Telegram also uses Convex CI
240
- credential leases. Run the manual `QA-Lab - All Lanes` workflow with
241
- `matrix_profile=all` and `matrix_shards=true` when you want full Matrix
242
- transport, media, and E2EE inventory in parallel.
243
- - Cross-OS install and upgrade runtime validation is part of public
244
- `FengMing Release Checks` and `Full Release Validation`, which call the
245
- reusable workflow
246
- `.github/workflows/fengming-cross-os-release-checks-reusable.yml` directly
247
- - This split is intentional: keep the real npm release path short,
248
- deterministic, and artifact-focused, while slower live checks stay in their
249
- own lane so they do not stall or block publish
250
- - Secret-bearing release checks should be dispatched through `Full Release
251
- Validation` or from the `main`/release workflow ref so workflow logic and
252
- secrets stay controlled
253
- - `FengMing Release Checks` accepts a branch, tag, or full commit SHA as long
254
- as the resolved commit is reachable from an FengMing branch or release tag
255
- - `FengMing NPM Release` validation-only preflight also accepts the current
256
- full 40-character workflow-branch commit SHA without requiring a pushed tag
257
- - That SHA path is validation-only and cannot be promoted into a real publish
258
- - In SHA mode the workflow synthesizes `v<package.json version>` only for the
259
- package metadata check; real publish still requires a real release tag
260
- - Both workflows keep the real publish and promotion path on GitHub-hosted
261
- runners, while the non-mutating validation path can use the larger
262
- Blacksmith Linux runners
263
- - That workflow runs
264
- `FENGMING_LIVE_TEST=1 FENGMING_LIVE_CACHE_TEST=1 pnpm test:live:cache`
265
- using both `OPENAI_API_KEY` and `ANTHROPIC_API_KEY` workflow secrets
266
- - npm release preflight no longer waits on the separate release checks lane
267
- - Before tagging a release candidate locally, run
268
- `RELEASE_TAG=vYYYY.M.D-beta.N pnpm release:fast-pretag-check`. The helper
269
- runs the fast release guardrails, plugin npm/ClawHub release checks, build,
270
- UI build, and `release:fengming:npm:check` in the order that catches common
271
- approval-blocking mistakes before the GitHub publish workflow starts.
272
- - Run `RELEASE_TAG=vYYYY.M.D node --import tsx scripts/fengming-npm-release-check.ts`
273
- (or the matching beta/correction tag) before approval
274
- - After npm publish, run
275
- `node --import tsx scripts/fengming-npm-postpublish-verify.ts YYYY.M.D`
276
- (or the matching beta/correction version) to verify the published registry
277
- install path in a fresh temp prefix
278
- - After a beta publish, run `FENGMING_NPM_TELEGRAM_PACKAGE_SPEC=fengming@YYYY.M.D-beta.N FENGMING_NPM_TELEGRAM_CREDENTIAL_SOURCE=convex FENGMING_NPM_TELEGRAM_CREDENTIAL_ROLE=ci pnpm test:docker:npm-telegram-live`
279
- to verify installed-package onboarding, Telegram setup, and real Telegram E2E
280
- against the published npm package using the shared leased Telegram credential
281
- pool. Local maintainer one-offs may omit the Convex vars and pass the three
282
- `FENGMING_QA_TELEGRAM_*` env credentials directly.
283
- - To run the full post-publish beta smoke from a maintainer machine, use `pnpm release:beta-smoke -- --beta betaN`. The helper runs Parallels npm update/fresh-target validation, dispatches `NPM Telegram Beta E2E`, polls the exact workflow run, downloads the artifact, and prints the Telegram report.
284
- - Maintainers can run the same post-publish check from GitHub Actions via the
285
- manual `NPM Telegram Beta E2E` workflow. It is intentionally manual-only and
286
- does not run on every merge.
287
- - Maintainer release automation now uses preflight-then-promote:
288
- - real npm publish must pass a successful npm `preflight_run_id`
289
- - the real npm publish must be dispatched from the same `main` or
290
- `release/YYYY.M.D` branch as the successful preflight run
291
- - stable npm releases default to `beta`
292
- - stable npm publish can target `latest` explicitly via workflow input
293
- - token-based npm dist-tag mutation now lives in
294
- `fengming/releases/.github/workflows/fengming-npm-dist-tags.yml` because
295
- `npm dist-tag add` still needs `NPM_TOKEN` while the source repo keeps
296
- OIDC-only publish
297
- - public `macOS Release` is validation-only; when a tag lives only on a
298
- release branch but the workflow is dispatched from `main`, set
299
- `public_release_branch=release/YYYY.M.D`
300
- - real macOS publish must pass successful macOS `preflight_run_id` and
301
- `validate_run_id`
302
- - the real publish paths promote prepared artifacts instead of rebuilding
303
- them again
304
- - For stable correction releases like `YYYY.M.D-N`, the post-publish verifier
305
- also checks the same temp-prefix upgrade path from `YYYY.M.D` to `YYYY.M.D-N`
306
- so release corrections cannot silently leave older global installs on the
307
- base stable payload
308
- - npm release preflight fails closed unless the tarball includes both
309
- `dist/control-ui/index.html` and a non-empty `dist/control-ui/assets/` payload
310
- so we do not ship an empty browser dashboard again
311
- - Post-publish verification also checks that published plugin entrypoints and
312
- package metadata are present in the installed registry layout. A release that
313
- ships missing plugin runtime payloads fails the postpublish verifier and
314
- cannot be promoted to `latest`.
315
- - `pnpm test:install:smoke` also enforces the npm pack `unpackedSize` budget on
316
- the candidate update tarball, so installer e2e catches accidental pack bloat
317
- before the release publish path
318
- - If the release work touched CI planning, extension timing manifests, or
319
- extension test matrices, regenerate and review the planner-owned
320
- `plugin-prerelease-extension-shard` matrix outputs from
321
- `.github/workflows/plugin-prerelease.yml` before approval so release notes do
322
- not describe a stale CI layout
323
- - Stable macOS release readiness also includes the updater surfaces:
324
- - the GitHub release must end up with the packaged `.zip`, `.dmg`, and `.dSYM.zip`
325
- - `appcast.xml` on `main` must point at the new stable zip after publish; the
326
- macOS publish workflow commits it automatically, or opens an appcast
327
- PR when direct push is blocked
328
- - the packaged app must keep a non-debug bundle id, a non-empty Sparkle feed
329
- URL, and a `CFBundleVersion` at or above the canonical Sparkle build floor
330
- for that release version
331
-
332
- ## Release test boxes
333
-
334
- `Full Release Validation` is how operators kick off all pre-release tests from
335
- one entrypoint. For a pinned commit proof on a fast-moving branch, use the
336
- helper so every child workflow runs from a temporary branch fixed at the target
337
- SHA:
338
-
339
- ```bash
340
- pnpm ci:full-release --sha <full-sha>
341
- ```
342
-
343
- The helper pushes `release-ci/<sha>-...`, dispatches `Full Release Validation`
344
- from that branch with `ref=<sha>`, verifies every child workflow `headSha`
345
- matches the target, then deletes the temporary branch. This avoids proving a
346
- newer `main` child run by accident.
347
-
348
- For release branch or tag validation, run it from the trusted `main` workflow
349
- ref and pass the release branch or tag as `ref`:
350
-
351
- ```bash
352
- gh workflow run full-release-validation.yml \
353
- --ref main \
354
- -f ref=release/YYYY.M.D \
355
- -f provider=openai \
356
- -f mode=both \
357
- -f release_profile=stable \
358
- -f evidence_package_spec=fengming@YYYY.M.D-beta.N
359
- ```
360
-
361
- The workflow resolves the target ref, dispatches manual `CI` with
362
- `target_ref=<release-ref>`, dispatches `FengMing Release Checks`, prepares a
363
- parent `release-package-under-test` artifact for package-facing checks, and
364
- dispatches standalone package Telegram E2E when `release_profile=full` with
365
- `rerun_group=all` or when `release_package_spec` or
366
- `npm_telegram_package_spec` is set. `FengMing Release
367
- Checks` then fans out install smoke, cross-OS release checks, live/E2E Docker
368
- release-path coverage when soak is enabled, Package Acceptance with Telegram
369
- package QA, QA Lab parity, live Matrix, and live Telegram. A full run is only acceptable when the
370
- `Full Release Validation`
371
- summary shows `normal_ci` and `release_checks` as successful. In full/all mode,
372
- the `npm_telegram` child must also be successful; outside full/all it is skipped
373
- unless a published `release_package_spec` or `npm_telegram_package_spec` was
374
- provided. The final
375
- verifier summary includes slowest-job tables for each child run, so the release
376
- manager can see the current critical path without downloading logs.
377
- See [Full release validation](/reference/full-release-validation) for the
378
- complete stage matrix, exact workflow job names, stable versus full profile
379
- differences, artifacts, and focused rerun handles.
380
- Child workflows are dispatched from the trusted ref that runs `Full Release
381
- Validation`, normally `--ref main`, even when the target `ref` points at an
382
- older release branch or tag. There is no separate Full Release Validation
383
- workflow-ref input; choose the trusted harness by choosing the workflow run ref.
384
- Do not use `--ref main -f ref=<sha>` for exact commit proof on moving `main`;
385
- raw commit SHAs cannot be workflow dispatch refs, so use
386
- `pnpm ci:full-release --sha <sha>` to create the pinned temporary branch.
387
-
388
- Use `release_profile` to select live/provider breadth:
389
-
390
- - `minimum`: fastest release-critical OpenAI/core live and Docker path
391
- - `stable`: minimum plus stable provider/backend coverage for release approval
392
- - `full`: stable plus broad advisory provider/media coverage
393
-
394
- Use `run_release_soak=true` with `stable` when the release-blocking lanes are
395
- green and you want the exhaustive live/E2E, Docker release-path, and
396
- bounded published upgrade-survivor sweep before promotion. That sweep covers
397
- the latest four stable packages plus pinned `2026.4.23` and `2026.5.2`
398
- baselines plus older `2026.4.15` coverage, with duplicate baselines removed and
399
- each baseline sharded into its own Docker runner job. `full` implies
400
- `run_release_soak=true`.
401
-
402
- `FengMing Release Checks` uses the trusted workflow ref to resolve the target
403
- ref once as `release-package-under-test` and reuses that artifact in cross-OS,
404
- Package Acceptance, and release-path Docker checks when soak runs. This keeps
405
- all package-facing boxes on the same bytes and avoids repeated package builds.
406
- After a beta is already on npm, set `release_package_spec=fengming@YYYY.M.D-beta.N`
407
- so release checks download the shipped package once, extract its build source
408
- SHA from `dist/build-info.json`, and reuse that artifact for cross-OS,
409
- Package Acceptance, release-path Docker, and package Telegram lanes.
410
- The cross-OS OpenAI install smoke uses `FENGMING_CROSS_OS_OPENAI_MODEL` when the
411
- repo/org variable is set, otherwise `openai/gpt-5.4`, because this lane is
412
- proving package install, onboarding, gateway startup, and one live agent turn
413
- rather than benchmarking the slowest default model. The broader live provider
414
- matrix remains the place for model-specific coverage.
415
-
416
- Use these variants depending on release stage:
417
-
418
- ```bash
419
- # Validate an unpublished release candidate branch.
420
- gh workflow run full-release-validation.yml \
421
- --ref main \
422
- -f ref=release/YYYY.M.D \
423
- -f provider=openai \
424
- -f mode=both \
425
- -f release_profile=stable
426
-
427
- # Validate an exact pushed commit.
428
- gh workflow run full-release-validation.yml \
429
- --ref main \
430
- -f ref=<40-char-sha> \
431
- -f provider=openai \
432
- -f mode=both
433
-
434
- # After publishing a beta, add published-package Telegram E2E.
435
- gh workflow run full-release-validation.yml \
436
- --ref main \
437
- -f ref=release/YYYY.M.D \
438
- -f provider=openai \
439
- -f mode=both \
440
- -f release_profile=full \
441
- -f release_package_spec=fengming@YYYY.M.D-beta.N \
442
- -f evidence_package_spec=fengming@YYYY.M.D-beta.N \
443
- -f npm_telegram_provider_mode=mock-openai
444
- ```
445
-
446
- Do not use the full umbrella as the first rerun after a focused fix. If one box
447
- fails, use the failed child workflow, job, Docker lane, package profile, model
448
- provider, or QA lane for the next proof. Run the full umbrella again only when
449
- the fix changed shared release orchestration or made earlier all-box evidence
450
- stale. The umbrella's final verifier re-checks the recorded child workflow run
451
- ids, so after a child workflow is rerun successfully, rerun only the failed
452
- `Verify full validation` parent job.
453
-
454
- For bounded recovery, pass `rerun_group` to the umbrella. `all` is the real
455
- release-candidate run, `ci` runs only the normal CI child, `plugin-prerelease`
456
- runs only the release-only plugin child, `release-checks` runs every release
457
- box, and the narrower release groups are `install-smoke`, `cross-os`,
458
- `live-e2e`, `package`, `qa`, `qa-parity`, `qa-live`, and `npm-telegram`.
459
- Focused `npm-telegram` reruns require `release_package_spec` or
460
- `npm_telegram_package_spec`; full/all runs with `release_profile=full` use the
461
- release-checks package artifact. Focused
462
- cross-OS reruns can add `cross_os_suite_filter=windows/packaged-upgrade` or
463
- another OS/suite filter. QA release-check failures are advisory except the
464
- standard runtime tool coverage gate, which blocks release validation when
465
- required FengMing dynamic tools drift or disappear from the standard tier
466
- summary.
467
-
468
- ### Vitest
469
-
470
- The Vitest box is the manual `CI` child workflow. Manual CI intentionally
471
- bypasses changed scoping and forces the normal test graph for the release
472
- candidate: Linux Node shards, bundled-plugin shards, plugin and channel contract
473
- shards, Node 22 compatibility, `check-*`, `check-additional-*`,
474
- built-artifact smoke checks, docs checks, Python skills, Windows, macOS,
475
- Android, and Control UI i18n.
476
-
477
- Use this box to answer "did the source tree pass the full normal test suite?"
478
- It is not the same as release-path product validation. Evidence to keep:
479
-
480
- - `Full Release Validation` summary showing the dispatched `CI` run URL
481
- - `CI` run green on the exact target SHA
482
- - failed or slow shard names from the CI jobs when investigating regressions
483
- - Vitest timing artifacts such as `.artifacts/vitest-shard-timings.json` when
484
- a run needs performance analysis
485
-
486
- Run manual CI directly only when the release needs deterministic normal CI but
487
- not the Docker, QA Lab, live, cross-OS, or package boxes:
488
-
489
- ```bash
490
- gh workflow run ci.yml --ref main -f target_ref=release/YYYY.M.D
491
- ```
492
-
493
- ### Docker
494
-
495
- The Docker box lives in `FengMing Release Checks` through
496
- `fengming-live-and-e2e-checks-reusable.yml`, plus the release-mode
497
- `install-smoke` workflow. It validates the release candidate through packaged
498
- Docker environments instead of only source-level tests.
499
-
500
- Release Docker coverage includes:
501
-
502
- - full install smoke with the slow Bun global install smoke enabled
503
- - root Dockerfile smoke image preparation/reuse by target SHA, with QR,
504
- root/gateway, and installer/Bun smoke jobs running as separate install-smoke
505
- shards
506
- - repository E2E lanes
507
- - release-path Docker chunks: `core`, `package-update-openai`,
508
- `package-update-anthropic`, `package-update-core`, `plugins-runtime-plugins`,
509
- `plugins-runtime-services`,
510
- `plugins-runtime-install-a`, `plugins-runtime-install-b`,
511
- `plugins-runtime-install-c`, `plugins-runtime-install-d`,
512
- `plugins-runtime-install-e`, `plugins-runtime-install-f`,
513
- `plugins-runtime-install-g`, and `plugins-runtime-install-h`
514
- - OpenWebUI coverage inside the `plugins-runtime-services` chunk when requested
515
- - split bundled plugin install/uninstall lanes
516
- `bundled-plugin-install-uninstall-0` through
517
- `bundled-plugin-install-uninstall-23`
518
- - live/E2E provider suites and Docker live model coverage when release checks
519
- include live suites
520
-
521
- Use Docker artifacts before rerunning. The release-path scheduler uploads
522
- `.artifacts/docker-tests/` with lane logs, `summary.json`, `failures.json`,
523
- phase timings, scheduler plan JSON, and rerun commands. For focused recovery,
524
- use `docker_lanes=<lane[,lane]>` on the reusable live/E2E workflow instead of
525
- rerunning all release chunks. Generated rerun commands include prior
526
- `package_artifact_run_id` and prepared Docker image inputs when available, so a
527
- failed lane can reuse the same tarball and GHCR images.
528
-
529
- ### QA Lab
530
-
531
- The QA Lab box is also part of `FengMing Release Checks`. It is the agentic
532
- behavior and channel-level release gate, separate from Vitest and Docker
533
- package mechanics.
534
-
535
- Release QA Lab coverage includes:
536
-
537
- - mock parity lane comparing the OpenAI candidate lane against the Opus 4.6
538
- baseline using the agentic parity pack
539
- - fast live Matrix QA profile using the `qa-live-shared` environment
540
- - live Telegram QA lane using Convex CI credential leases
541
- - `pnpm qa:otel:smoke`, `pnpm qa:otel:collector-smoke`,
542
- `pnpm qa:prometheus:smoke`, or
543
- `pnpm qa:observability:smoke` when release telemetry needs explicit local
544
- proof
545
-
546
- Use this box to answer "does the release behave correctly in QA scenarios and
547
- live channel flows?" Keep the artifact URLs for parity, Matrix, and Telegram
548
- lanes when approving the release. Full Matrix coverage remains available as a
549
- manual sharded QA-Lab run rather than the default release-critical lane.
550
-
551
- ### Package
552
-
553
- The Package box is the installable-product gate. It is backed by
554
- `Package Acceptance` and the resolver
555
- `scripts/resolve-fengming-package-candidate.mjs`. The resolver normalizes a
556
- candidate into the `package-under-test` tarball consumed by Docker E2E, validates
557
- the package inventory, records the package version and SHA-256, and keeps the
558
- workflow harness ref separate from the package source ref.
559
-
560
- Supported candidate sources:
561
-
562
- - `source=npm`: `fengming@beta`, `fengming@latest`, or an exact FengMing release
563
- version
564
- - `source=ref`: pack a trusted `package_ref` branch, tag, or full commit SHA
565
- with the selected `workflow_ref` harness
566
- - `source=url`: download a public HTTPS `.tgz` with required `package_sha256`;
567
- URL credentials, non-default HTTPS ports, private/internal/special-use
568
- hostnames or resolved addresses, and unsafe redirects are rejected
569
- - `source=trusted-url`: download an HTTPS `.tgz` with required
570
- `package_sha256` and `trusted_source_id` from a named policy in
571
- `.github/package-trusted-sources.json`; use this for maintainer-owned
572
- enterprise mirrors or private package repositories instead of adding an
573
- input-level private-network bypass to `source=url`
574
- - `source=artifact`: reuse a `.tgz` uploaded by another GitHub Actions run
575
-
576
- `FengMing Release Checks` runs Package Acceptance with `source=artifact`, the
577
- prepared release package artifact, `suite_profile=custom`,
578
- `docker_lanes=doctor-switch update-channel-switch skill-install update-corrupt-plugin upgrade-survivor published-upgrade-survivor update-restart-auth plugins-offline plugin-update`,
579
- `telegram_mode=mock-openai`. Package Acceptance keeps migration, update,
580
- configured-auth update restart, live ClawHub skill install, stale plugin dependency cleanup, offline plugin
581
- fixtures, plugin update, and Telegram package QA against the same resolved
582
- tarball. Blocking release checks use the default latest published package
583
- baseline; `run_release_soak=true` or
584
- `release_profile=full` expands to every stable npm-published baseline from
585
- `2026.4.23` through `latest` plus reported-issue fixtures. Use
586
- Package Acceptance with `source=npm` for an already shipped candidate,
587
- `source=ref` for a SHA-backed local npm tarball before publish,
588
- `source=trusted-url` for a maintainer-owned enterprise/private mirror, or
589
- `source=artifact` for a prepared tarball uploaded by another GitHub Actions run.
590
- It is the GitHub-native
591
- replacement for most of the package/update coverage that previously required
592
- Parallels. Cross-OS release checks still matter for OS-specific onboarding,
593
- installer, and platform behavior, but package/update product validation should
594
- prefer Package Acceptance.
595
-
596
- The canonical checklist for update and plugin validation is
597
- [Testing updates and plugins](/help/testing-updates-plugins). Use it when
598
- deciding which local, Docker, Package Acceptance, or release-check lane proves a
599
- plugin install/update, doctor cleanup, or published-package migration change.
600
- Exhaustive published update migration from every stable `2026.4.23+` package is
601
- a separate manual `Update Migration` workflow, not part of Full Release CI.
602
-
603
- Legacy package-acceptance leniency is intentionally time boxed. Packages through
604
- `2026.4.25` may use the compatibility path for metadata gaps already published
605
- to npm: private QA inventory entries missing from the tarball, missing
606
- `gateway install --wrapper`, missing patch files in the tarball-derived git
607
- fixture, missing persisted `update.channel`, legacy plugin install-record
608
- locations, missing marketplace install-record persistence, and config metadata
609
- migration during `plugins update`. The published `2026.4.26` package may warn
610
- for local build metadata stamp files that were already shipped. Later packages
611
- must satisfy the modern package contracts; those same gaps fail release
612
- validation.
613
-
614
- Use broader Package Acceptance profiles when the release question is about an
615
- actual installable package:
616
-
617
- ```bash
618
- gh workflow run package-acceptance.yml \
619
- --ref main \
620
- -f workflow_ref=main \
621
- -f source=npm \
622
- -f package_spec=fengming@beta \
623
- -f suite_profile=product \
624
- -f published_upgrade_survivor_baseline=fengming@2026.4.26
625
- ```
626
-
627
- Common package profiles:
628
-
629
- - `smoke`: quick package install/channel/agent, gateway network, and config
630
- reload lanes
631
- - `package`: install/update/restart/plugin package contracts plus live ClawHub
632
- skill install proof; this is the release-check default
633
- - `product`: `package` plus MCP channels, cron/subagent cleanup, OpenAI web
634
- search, and OpenWebUI
635
- - `full`: Docker release-path chunks with OpenWebUI
636
- - `custom`: exact `docker_lanes` list for focused reruns
637
-
638
- For package-candidate Telegram proof, enable `telegram_mode=mock-openai` or
639
- `telegram_mode=live-frontier` on Package Acceptance. The workflow passes the
640
- resolved `package-under-test` tarball into the Telegram lane; the standalone
641
- Telegram workflow still accepts a published npm spec for post-publish checks.
642
-
643
- ## Release publish automation
644
-
645
- `FengMing Release Publish` is the normal mutating publish entrypoint. It
646
- orchestrates the trusted-publisher workflows in the order the release needs:
647
-
648
- 1. Check out the release tag and resolve its commit SHA.
649
- 2. Verify the tag is reachable from `main` or `release/*`.
650
- 3. Run `pnpm plugins:sync:check`.
651
- 4. Dispatch `Plugin NPM Release` with `publish_scope=all-publishable` and
652
- `ref=<release-sha>`.
653
- 5. Dispatch `Plugin ClawHub Release` with the same scope and SHA.
654
- 6. Dispatch `FengMing NPM Release` with the release tag, npm dist-tag, and
655
- saved `preflight_run_id`.
656
-
657
- Beta publish example:
658
-
659
- ```bash
660
- gh workflow run fengming-release-publish.yml \
661
- --ref release/YYYY.M.D \
662
- -f tag=vYYYY.M.D-beta.N \
663
- -f preflight_run_id=<successful-fengming-npm-preflight-run-id> \
664
- -f npm_dist_tag=beta
665
- ```
666
-
667
- Stable publish to the default beta dist-tag:
668
-
669
- ```bash
670
- gh workflow run fengming-release-publish.yml \
671
- --ref release/YYYY.M.D \
672
- -f tag=vYYYY.M.D \
673
- -f preflight_run_id=<successful-fengming-npm-preflight-run-id> \
674
- -f npm_dist_tag=beta
675
- ```
676
-
677
- Stable promotion directly to `latest` is explicit:
678
-
679
- ```bash
680
- gh workflow run fengming-release-publish.yml \
681
- --ref release/YYYY.M.D \
682
- -f tag=vYYYY.M.D \
683
- -f preflight_run_id=<successful-fengming-npm-preflight-run-id> \
684
- -f npm_dist_tag=latest
685
- ```
686
-
687
- Use the lower-level `Plugin NPM Release` and `Plugin ClawHub Release` workflows
688
- only for focused repair or republish work. `FengMing Release Publish` rejects
689
- `plugin_publish_scope=selected` when `publish_fengming_npm=true` so the core
690
- package cannot ship without every publishable official plugin, including
691
- `@fengming/diffs-language-pack`. For a selected plugin repair, set
692
- `publish_fengming_npm=false` with `plugin_publish_scope=selected` and
693
- `plugins=@fengming/name`, or dispatch the child workflow directly.
694
-
695
- ## NPM workflow inputs
696
-
697
- `FengMing NPM Release` accepts these operator-controlled inputs:
698
-
699
- - `tag`: required release tag such as `v2026.4.2`, `v2026.4.2-1`, or
700
- `v2026.4.2-beta.1`; when `preflight_only=true`, it may also be the current
701
- full 40-character workflow-branch commit SHA for validation-only preflight
702
- - `preflight_only`: `true` for validation/build/package only, `false` for the
703
- real publish path
704
- - `preflight_run_id`: required on the real publish path so the workflow reuses
705
- the prepared tarball from the successful preflight run
706
- - `npm_dist_tag`: npm target tag for the publish path; defaults to `beta`
707
-
708
- `FengMing Release Publish` accepts these operator-controlled inputs:
709
-
710
- - `tag`: required release tag; must already exist
711
- - `preflight_run_id`: successful `FengMing NPM Release` preflight run id;
712
- required when `publish_fengming_npm=true`
713
- - `npm_dist_tag`: npm target tag for the FengMing package
714
- - `plugin_publish_scope`: defaults to `all-publishable`; use `selected` only
715
- for focused plugin-only repair work with `publish_fengming_npm=false`
716
- - `plugins`: comma-separated `@fengming/*` package names when
717
- `plugin_publish_scope=selected`
718
- - `publish_fengming_npm`: defaults to `true`; set `false` only when using the
719
- workflow as a plugin-only repair orchestrator
720
- - `wait_for_clawhub`: defaults to `false` so npm availability is not blocked by
721
- the ClawHub sidecar; set `true` only when workflow completion must include
722
- ClawHub completion
723
-
724
- `FengMing Release Checks` accepts these operator-controlled inputs:
725
-
726
- - `ref`: branch, tag, or full commit SHA to validate. Secret-bearing checks
727
- require the resolved commit to be reachable from an FengMing branch or
728
- release tag.
729
- - `run_release_soak`: opt into exhaustive live/E2E, Docker release-path, and
730
- all-since upgrade-survivor soak on stable/default release checks. It is forced
731
- on by `release_profile=full`.
732
-
733
- Rules:
734
-
735
- - Stable and correction tags may publish to either `beta` or `latest`
736
- - Beta prerelease tags may publish only to `beta`
737
- - For `FengMing NPM Release`, full commit SHA input is allowed only when
738
- `preflight_only=true`
739
- - `FengMing Release Checks` and `Full Release Validation` are always
740
- validation-only
741
- - The real publish path must use the same `npm_dist_tag` used during preflight;
742
- the workflow verifies that metadata before publish continues
743
-
744
- ## Stable npm release sequence
745
-
746
- When cutting a stable npm release:
747
-
748
- 1. Run `FengMing NPM Release` with `preflight_only=true`
749
- - Before a tag exists, you may use the current full workflow-branch commit
750
- SHA for a validation-only dry run of the preflight workflow
751
- 2. Choose `npm_dist_tag=beta` for the normal beta-first flow, or `latest` only
752
- when you intentionally want a direct stable publish
753
- 3. Run `Full Release Validation` on the release branch, release tag, or full
754
- commit SHA when you want normal CI plus live prompt cache, Docker, QA Lab,
755
- Matrix, and Telegram coverage from one manual workflow
756
- 4. If you intentionally only need the deterministic normal test graph, run the
757
- manual `CI` workflow on the release ref instead
758
- 5. Save the successful `preflight_run_id`
759
- 6. Run `FengMing Release Publish` with the same `tag`, the same `npm_dist_tag`,
760
- and the saved `preflight_run_id`; it publishes externalized plugins to npm
761
- and ClawHub before promoting the FengMing npm package
762
- 7. If the release landed on `beta`, use the
763
- `fengming/releases/.github/workflows/fengming-npm-dist-tags.yml`
764
- workflow to promote that stable version from `beta` to `latest`
765
- 8. If the release intentionally published directly to `latest` and `beta`
766
- should follow the same stable build immediately, use that same release
767
- workflow to point both dist-tags at the stable version, or let its scheduled
768
- self-healing sync move `beta` later
769
-
770
- The dist-tag mutation lives in the release ledger repo because it still requires
771
- `NPM_TOKEN`, while the source repo keeps OIDC-only publish.
772
-
773
- That keeps the direct publish path and the beta-first promotion path both
774
- documented and operator-visible.
775
-
776
- If a maintainer must fall back to local npm authentication, run any 1Password
777
- CLI (`op`) commands only inside a dedicated tmux session. Do not call `op`
778
- directly from the main agent shell; keeping it inside tmux makes prompts,
779
- alerts, and OTP handling observable and prevents repeated host alerts.
780
-
781
- ## Public references
782
-
783
- - [`.github/workflows/full-release-validation.yml`](https://github.com/fengming/fengming/blob/main/.github/workflows/full-release-validation.yml)
784
- - [`.github/workflows/package-acceptance.yml`](https://github.com/fengming/fengming/blob/main/.github/workflows/package-acceptance.yml)
785
- - [`.github/workflows/fengming-npm-release.yml`](https://github.com/fengming/fengming/blob/main/.github/workflows/fengming-npm-release.yml)
786
- - [`.github/workflows/fengming-release-checks.yml`](https://github.com/fengming/fengming/blob/main/.github/workflows/fengming-release-checks.yml)
787
- - [`.github/workflows/fengming-cross-os-release-checks-reusable.yml`](https://github.com/fengming/fengming/blob/main/.github/workflows/fengming-cross-os-release-checks-reusable.yml)
788
- - [`scripts/resolve-fengming-package-candidate.mjs`](https://github.com/fengming/fengming/blob/main/scripts/resolve-fengming-package-candidate.mjs)
789
- - [`scripts/fengming-npm-release-check.ts`](https://github.com/fengming/fengming/blob/main/scripts/fengming-npm-release-check.ts)
790
- - [`scripts/package-mac-dist.sh`](https://github.com/fengming/fengming/blob/main/scripts/package-mac-dist.sh)
791
- - [`scripts/make_appcast.sh`](https://github.com/fengming/fengming/blob/main/scripts/make_appcast.sh)
792
-
793
- Maintainers use the private release docs in
794
- [`fengming/maintainers/release/README.md`](https://github.com/fengming/maintainers/blob/main/release/README.md)
795
- for the actual runbook.
796
-
797
- ## Related
798
-
799
- - [Release channels](/install/development-channels)