chainlesschain 0.166.65 → 0.166.69
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.
- package/README.md +20 -12
- package/package.json +4 -4
- package/src/assets/web-panel/assets/{AIOps-Byz17CTN.js → AIOps-FhevRfL6.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-C5LiW2-J.js → ActionButton-rOeOykx5.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-D1INcvZF.js → Analytics-BK_wYlfz.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-DZzHO1VV.js → AppLayout-_2cCtZKV.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-WfYQL6Ia.js → Artifacts-D5MSvVzk.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-DohBoGWO.js → Audit-yd-Ah-A3.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-Chtk-Hde.js → BackgroundAgents-yCaw_Gu_.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-B813PuMz.js → Backup-G3ADD4N-.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-DaDdWWgK.js → BaseInput-ByDhkLbF.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-D4pJ6oZ7.js → Chat-BMrc7qjz.js} +4 -4
- package/src/assets/web-panel/assets/ChatBubbleRenderer-nA7n0I6S.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-Clo9TvO6.js → Checkbox-BHYgyZWA.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-uejLg8Ih.js → Codegen-DJfcy0jC.js} +1 -1
- package/src/assets/web-panel/assets/{Col-B7nbx-iJ.js → Col-C27zROxc.js} +1 -1
- package/src/assets/web-panel/assets/{Community-FEyjPK1j.js → Community-CuS5tq_1.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-B6Fk0Kn6.js → Compact-BrYJNe7Q.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-BQG8goUl.js → Compliance-8hfahYHT.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-CbBeEfHp.js → Cowork-DdE0n2lp.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-DPzlFcEZ.js → Cron-CUq3aSiX.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-B8pWJrbg.js → Crosschain-BM4XSPWG.js} +1 -1
- package/src/assets/web-panel/assets/{DID-gGQHUlFN.js → DID-CdaBY57N.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-C2TMFHrn.js → Dashboard-Cwtd52So.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BVPxGbll.js → Dropdown-BvlObh6U.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-CNPxs0hd.js → EmailListRenderer-e3fLhjnX.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-_XTiB7q1.js → EvolutionSettings-CTtk1Zo8.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-UyE3VWtI.js → FamilyGuardDashboard-BpPJUnCU.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-CLt6FHK-.js → Federation-vzjZ6_nQ.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-CdNQPRPw.js → FormItemContext-DEDNLhkE.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-BJ0AMhrh.js → GenericCardRenderer-DEl2Te5f.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CQnvMfOM.js → Git-BzsYQnCq.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-deYsHC-o.js → Governance-zxJs6Y8s.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-qaSck43z.js → Inference-5JUsrmF1.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-De0aJ3Ls.js → KnowledgeGraph-Br8b5Htz.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-ZtS98jCm.js → Logs-D-tubDMJ.js} +2 -2
- package/src/assets/web-panel/assets/MarkdownRenderer-In4itZX2.js +1 -0
- package/src/assets/web-panel/assets/{Marketplace-Byz3xCBN.js → Marketplace-s8MmWkS9.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DOZUUW6z.js → McpTools-Wu-WRg4M.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-C33wC2hA.js → Memory-B_i-eX9w.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-zZe-T_6M.js → MobileBridge-Ca64kjVx.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-CRnUIume.js → MobileProjects-Cq9AFiO4.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-C1xlRVAN.js → Mtc-DKvGmG3y.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-D0U07bIi.js → MtcAudit-BVvWx8pF.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-DF8uvV3h.js → Multisig-wqeJ2O9x.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-bBPGAFlt.js → NLProgramming-DX87ysYu.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BHAaOsgg.js → Notes-ChenGdu0.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-Cl0fG_rA.js → NotificationSettings-BZRa68-x.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-BEPAs8Zv.js → OrderTableRenderer-DZ6xG1M6.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BAxSwgk5.js → Organization-BWJp4VPX.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-D68KubAu.js → Overflow-BoM4bYt5.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-bhdT17zk.js → P2P-Cvi8YV09.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-DqaO6wgH.js → PdhVaultBrowser-CNVC1NIj.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-Bq8fvkak.js → Permissions-DNd1MRjW.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-BYd2JEic.js → PersonalDataHub-DGSBYZ5-.js} +5 -5
- package/src/assets/web-panel/assets/{Pipeline-Csg_ja69.js → Pipeline-DkcoGMBo.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-lwxwLj4M.js → Privacy-DltwvMAW.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-BdBZkH8z.js → ProjectInit-ChYbpHg8.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-ClWgFy-K.js → ProjectSettings-B8FWiHTJ.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-Bu-qj8N1.js → Projects-DuyhtSm4.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-DEjxrxw3.js → Providers-Bo18Tx_6.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-eccy-8Vi.js → QrScannerModal-6W85KlsG.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-Vx3uDvFg.js → QuickAsk-DznRUedP.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-CfUivNps.js → Recommend-CQDN3_p-.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-BU4gk7GI.js → RemoteSession-CiJgokEj.js} +3 -3
- package/src/assets/web-panel/assets/{Reputation-CbPzdZ0C.js → Reputation-DexzGH7E.js} +1 -1
- package/src/assets/web-panel/assets/{Row-CYLrgfKA.js → Row-BgZOIvSi.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-DbY1oyuv.js → RssFeed-BWIZJ_Jr.js} +3 -3
- package/src/assets/web-panel/assets/{Search-QeW41K5r.js → Search-B376EwWJ.js} +1 -1
- package/src/assets/web-panel/assets/{Security-CJxf1kLZ.js → Security-92mUR5OD.js} +4 -4
- package/src/assets/web-panel/assets/{Services-CFO9ySZc.js → Services-ClSEAOHk.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CQFjeQN0.js → Skeleton-DVhLbv99.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-CLLB4INW.js → Skills-JTcXs_xI.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-DxeLIJk0.js → Sla-DnKY9zy9.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-D4FA9KYI.js → SpeechSettings-GO1JefAH.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-C6NOkcQK.js → SyncSettings-jX5tB2St.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-LmVPWDfQ.js → Tasks-BxRBzhUc.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-BdEfUoVB.js → Templates-CAVkbTG1.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-IUlESacN.js → Tenant-5Y7sHBkz.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-B9pDe7sn.js → Terminal-CbbLShYb.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-ZCwB-Pki.js → TimelineRenderer-2HptWihL.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-4qk16LX1.js → Tokens-B-jGxzHl.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-jXNyargn.js → Trigger-9DGa90DT.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-D13PydtT.js → Trust-BSJEkEOO.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-yPgws6mS.js → UkeySign-C807So5R.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-B329WjpG.js → VideoEditing-ByiieAv-.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-T8VM-Ttm.js → Wallet-BixbIOUv.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-XuRibrpP.js → WebAuthn-z7akhor4.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-D1Gwz3YR.js → WorkflowEditor-KvijuUuR.js} +1 -1
- package/src/assets/web-panel/assets/{chat-DjydtnT-.js → chat-BYKoh0YG.js} +1 -1
- package/src/assets/web-panel/assets/{colors-gFtBvPrr.js → colors-CLT8IYBt.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-CndxhGfx.js → compact-item-DlBIyYHF.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-DnfGpd0L.js → createContext-5XmAnNLr.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-BmcCIHwY.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-CmT5hRVW.js → hasIn-rPdRhm7K.js} +1 -1
- package/src/assets/web-panel/assets/{index-DoBKSzqu.js → index-8un-eUDI.js} +1 -1
- package/src/assets/web-panel/assets/{index-DGbKeg8G.js → index-B-0nAxf5.js} +1 -1
- package/src/assets/web-panel/assets/{index-DreYqebI.js → index-B1VfBUPB.js} +1 -1
- package/src/assets/web-panel/assets/{index-zQf599Uq.js → index-BBt2CSAx.js} +1 -1
- package/src/assets/web-panel/assets/{index-BlTcxT_L.js → index-BDtlwjSr.js} +1 -1
- package/src/assets/web-panel/assets/{index-CqpR0Des.js → index-BIRl2Ii5.js} +1 -1
- package/src/assets/web-panel/assets/{index-C3HvYeA3.js → index-BgevTkUv.js} +1 -1
- package/src/assets/web-panel/assets/{index-B0WFjxWs.js → index-Bve7Wsgf.js} +1 -1
- package/src/assets/web-panel/assets/{index-BNHdO6Jr.js → index-Bzd0sFkp.js} +1 -1
- package/src/assets/web-panel/assets/{index-DV2PR3Fa.js → index-C2sFDVb_.js} +1 -1
- package/src/assets/web-panel/assets/{index-D2d7358Y.js → index-CErvHCDe.js} +1 -1
- package/src/assets/web-panel/assets/{index-DaEPE2DC.js → index-CM_a9spK.js} +1 -1
- package/src/assets/web-panel/assets/{index-DKyuE_Y2.js → index-CY6TMc2m.js} +1 -1
- package/src/assets/web-panel/assets/{index-BVM_w30N.js → index-ChlzaTV3.js} +1 -1
- package/src/assets/web-panel/assets/{index-CZLDbPTa.js → index-CsnbOKdI.js} +1 -1
- package/src/assets/web-panel/assets/{index-HHP1zzo7.js → index-D3-NL-x-.js} +1 -1
- package/src/assets/web-panel/assets/{index-BFif4Cev.js → index-D3f9Jzx2.js} +1 -1
- package/src/assets/web-panel/assets/{index-C14jryXi.js → index-DCDSycWo.js} +1 -1
- package/src/assets/web-panel/assets/{index-CB27echm.js → index-DIVrVGvf.js} +1 -1
- package/src/assets/web-panel/assets/{index-BGlmPbl_.js → index-DI_tYFBe.js} +1 -1
- package/src/assets/web-panel/assets/{index-BsRKmb6k.js → index-DPS4mWnI.js} +1 -1
- package/src/assets/web-panel/assets/{index-BXNUTiW8.js → index-DTslLzPJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dbpk75MO.js → index-DW8vozBS.js} +1 -1
- package/src/assets/web-panel/assets/index-DY8rmd6x.js +1 -0
- package/src/assets/web-panel/assets/{index-DjY-3sMA.js → index-DZiSMYoD.js} +3 -3
- package/src/assets/web-panel/assets/{index-DV6NrfJx.js → index-DZjGcIGU.js} +1 -1
- package/src/assets/web-panel/assets/{index-ktN-K1Tf.js → index-Dea32nOK.js} +1 -1
- package/src/assets/web-panel/assets/{index-DjcR-CwS.js → index-Djd7uqwM.js} +1 -1
- package/src/assets/web-panel/assets/{index-CuOx4Pbe.js → index-Dntid6oj.js} +1 -1
- package/src/assets/web-panel/assets/{index-BW3nWiu0.js → index-DqZU4_7J.js} +1 -1
- package/src/assets/web-panel/assets/{index-C4Mqhmas.js → index-DuvweiCz.js} +1 -1
- package/src/assets/web-panel/assets/{index-CRqz8TtI.js → index-DzExCCLS.js} +1 -1
- package/src/assets/web-panel/assets/{index-D5na0B7G.js → index-LKT-Ol0A.js} +1 -1
- package/src/assets/web-panel/assets/{index-_-wGLtAg.js → index-akwXS-FF.js} +1 -1
- package/src/assets/web-panel/assets/{index-CgMKElUh.js → index-b-rQCMkx.js} +1 -1
- package/src/assets/web-panel/assets/{index-DUlubR4l.js → index-eHbr3f5I.js} +1 -1
- package/src/assets/web-panel/assets/{index-D88-8bsB.js → index-kx6zDWew.js} +1 -1
- package/src/assets/web-panel/assets/{index-DuAvYTmY.js → index-rRuCGdKW.js} +1 -1
- package/src/assets/web-panel/assets/index-sbwcUeRS.js +1 -0
- package/src/assets/web-panel/assets/{initDefaultProps-KV3V-PNH.js → initDefaultProps-a8411LiK.js} +1 -1
- package/src/assets/web-panel/assets/{motion-PFGQg7_X.js → motion-oVcQdpCm.js} +1 -1
- package/src/assets/web-panel/assets/{move-Dnl79wq4.js → move-B-eyzzzL.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-Bwl5JH9V.js → mtc-parser-BCYIxuG7.js} +1 -1
- package/src/assets/web-panel/assets/{omit-DCcTtM1l.js → omit-DuFtWiYh.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-Cl6BjjDf.js → pickAttrs-CVAoJhGu.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-fdqhyo42.js → placementArrow-Y2iub2bO.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-DYQpmcDW.js → responsiveObserve-BHenWIVD.js} +1 -1
- package/src/assets/web-panel/assets/{slide-C4l-VfO4.js → slide-CKrMaL29.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-DYDw_dyZ.js → statusUtils-w8eb_1da.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-BEsubSMu.js → styleChecker-CCVi_Ww3.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-Cj82ggQ_.js → useFlexGapSupport-BsmR_q0r.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-B7L1eJ0V.js → useFs-a8GMBjnc.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DVlJVD4d.js → usePersonalDataHub-BMUYSPn-.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-BBAbRN_Y.js → vnode-DL2pI31V.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-BYn48q-I.js → zoom-Cbi8fISi.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/data/changelog.json +33 -7
- package/src/lib/dependency-install-policy.js +1 -1
- package/src/lib/evolution/browser-download-action-authority.js +747 -0
- package/src/lib/evolution/browser-download-artifact-disposal-authority.js +436 -0
- package/src/lib/evolution/browser-filesystem-quarantine-custody.js +2453 -0
- package/src/lib/evolution/browser-filesystem-quarantine-disposal.js +36 -0
- package/src/lib/evolution/browser-keyboard-action-authority.js +560 -0
- package/src/lib/evolution/browser-navigation-action-authority.js +546 -0
- package/src/lib/evolution/browser-quarantine-lock-maintenance-authority.js +573 -0
- package/src/lib/evolution/browser-quarantine-operator-revocation-authority.js +442 -0
- package/src/lib/evolution/browser-quarantine-retention-authority.js +503 -0
- package/src/lib/evolution/browser-quarantine-retention-scheduler.js +207 -0
- package/src/lib/evolution/browser-quarantined-download-executor.js +525 -0
- package/src/lib/evolution/browser-tab-open-action-authority.js +491 -0
- package/src/lib/evolution/browser-vision-action-authority.js +444 -0
- package/src/lib/evolution/browser-vision-observation-authority.js +304 -0
- package/src/lib/evolution/evolution-deployment-loader.js +241 -1
- package/src/lib/evolution/evolution-eval-child-evidence-ledger-adapter.js +5 -0
- package/src/lib/evolution/evolution-eval-gate.js +2 -1
- package/src/lib/evolution/evolution-eval-process-supervisor-worker.mjs +71 -9
- package/src/lib/evolution/evolution-eval-process-supervisor.js +276 -9
- package/src/lib/evolution/evolution-workbench-metrics.js +81 -21
- package/src/lib/evolution/pm-exploration-benchmark.js +747 -0
- package/src/lib/evolution/pm-exploration-budget-executor.js +106 -9
- package/src/lib/evolution/pm-exploration-egress-authority.js +382 -0
- package/src/lib/evolution/pm-exploration-evidence-bundle.js +149 -44
- package/src/lib/evolution/pm-exploration-execution-host.js +1254 -8
- package/src/lib/evolution/pm-exploration-process-grader.js +458 -0
- package/src/lib/evolution/pm-exploration-process-reviewer.js +456 -0
- package/src/lib/evolution/pm-exploration-process-runner.js +500 -0
- package/src/lib/evolution/pm-exploration-receipts.js +211 -11
- package/src/lib/evolution/pm-exploration-recovery-snapshot-store.js +465 -46
- package/src/lib/evolution/pm-exploration-transition-committer.js +185 -34
- package/src/lib/evolution/skill-outcome-index-authority.js +7 -3
- package/src/lib/evolution/skill-writer-inventory-manifest.js +0 -39
- package/src/lib/evolution/volcengine-function-execution-authority.js +2949 -0
- package/src/lib/evolution/volcengine-function-process-executor.js +615 -0
- package/src/lib/evolution/volcengine-function-replay-store.js +836 -0
- package/src/lib/evolution/volcengine-function-revocation-status-floor-store.js +480 -0
- package/src/lib/governance-coverage.js +1 -1
- package/src/lib/headless-manifest.js +1 -1
- package/src/lib/protocol-replay.js +1 -1
- package/src/lib/skill-outcome-transcript-authority.js +45 -5
- package/src/runtime/agent-core.js +17 -0
- package/src/assets/web-panel/assets/ChatBubbleRenderer-Cf3LLgDc.js +0 -1
- package/src/assets/web-panel/assets/MarkdownRenderer-CTsYo9NN.js +0 -1
- package/src/assets/web-panel/assets/devWarning-D60SbiD-.js +0 -1
- package/src/assets/web-panel/assets/index-C0yR4_7h.js +0 -1
- package/src/assets/web-panel/assets/index-D4xuvo03.js +0 -1
package/src/data/changelog.json
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"source": "CHANGELOG.md",
|
|
3
3
|
"releases": [
|
|
4
|
+
{
|
|
5
|
+
"productVersion": null,
|
|
6
|
+
"cliVersion": "0.166.69",
|
|
7
|
+
"cliVersions": ["0.166.69"],
|
|
8
|
+
"date": null,
|
|
9
|
+
"title": "",
|
|
10
|
+
"sections": [
|
|
11
|
+
{
|
|
12
|
+
"heading": "Added - cc CLI 0.166.69: durable Volcengine function authority",
|
|
13
|
+
"body": "- Bind each governed Volcengine function request to an exact function policy,\n bounded arguments, a deadline, and a durable replay reservation so repeated\n or concurrent requests fail closed across processes and restarts.\n- Execute approved functions in supervised child processes with cooperative\n cancellation, hard termination, fixed result boundaries, and supervision\n receipts bound to the signed deployment module.\n- Persist function-authority revocations and verify their original evidence,\n signatures, trust roots, issuer certificate chains, and status snapshots\n before admitting execution.\n- Prevent signer-status rollback with a durable monotonic floor, including\n cross-process compare-and-set behavior and fail-closed recovery from stale or\n conflicting authority state."
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"productVersion": null,
|
|
19
|
+
"cliVersion": "0.166.68",
|
|
20
|
+
"cliVersions": ["0.166.68"],
|
|
21
|
+
"date": null,
|
|
22
|
+
"title": "",
|
|
23
|
+
"sections": [
|
|
24
|
+
{
|
|
25
|
+
"heading": "Added - cc CLI 0.166.68: governed browser actions and corrected child releases",
|
|
26
|
+
"body": "- Govern browser observation, navigation, tab creation, history traversal,\n keyboard actions, and downloads through explicit action authorities instead\n of allowing implicit automation side effects.\n- Stream downloads into a durable filesystem quarantine with cross-process\n locks, authenticated retention and revocation decisions, crash recovery,\n expiry sweeps, and auditable disposal custody.\n- Isolate PM exploration runners, reviewers, and graders in bounded child\n processes; bind their evidence, recovery snapshots, egress decisions, and\n benchmark receipts to the governed execution context.\n- Migrate mixed evolution receipt histories under an explicit compatibility\n policy while preserving fail-closed verification for unsupported records.\n- Publish Session Core 0.3.13, Context/Memory Kernel 0.1.5, and Personal Data\n Hub 0.4.62 before the CLI so their public tarballs include every checked-in\n runtime and package-content change.\n- Compare all 13 child package tarballs byte-for-byte with npm before CLI\n publication, and reuse the exact-SHA CLI CI and Strict Sandbox results\n instead of rerunning the complete suite on the release tag.\n- Rebuild Agent SDK's deterministic `dist/` output before auditing a reused\n public version. The immutable `0.166.67` candidate stopped before CLI\n publication after its clean checkout lacked these generated files.\n- Keep quarantine byte streams valid across isolated test realms, canonicalize\n macOS temporary workspace aliases, and redact Windows-style backup paths on\n every host.\n- Restore the explicit browser vision ingress boundary and synchronize the\n Self-Improving Agent's audited crypto capability and handler digest."
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
4
30
|
{
|
|
5
31
|
"productVersion": null,
|
|
6
32
|
"cliVersion": "0.166.65",
|
|
@@ -737,11 +763,11 @@
|
|
|
737
763
|
},
|
|
738
764
|
{
|
|
739
765
|
"heading": "Added — cc CLI 0.162.167:增量 gap-analysis 收尾——P0 沙箱远程脚本执行检测 + 4 个生命周期事件钩子(CwdChanged/Worktree/InstructionsLoaded)+ doctor 孤儿子进程 + 4 项杂项接线(CLI-only npm 发版)",
|
|
740
|
-
"body": "> `chainlesschain` 0.162.166 → **0.162.167** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` 增量(+ 测试 + gap-analysis 文档状态更新);未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。**无新增顶层命令,命令数 175 不变**;所有改动 opt-in / 默认路径字节不变。本版把 `docs/CLAUDE_CODE_CLI_INCREMENTAL_GAP_ANALYSIS_2026-07-12.md` 的多个可 Windows 落地「仍欠」项整批接线。\n\n- **P0 沙箱:run_shell 远程脚本执行检测**:新增统一「代码获取」分类器——把 20+ 包管理器安装命令(npm/pip/cargo/gem/go/apt/…)与 `curl … | sh` / `wget -O- | bash` 一类**下载即执行**的远程脚本归为一类,在 shell 审批时抬高风险地板并落审计(记录带 `remoteExec` 标记);`cat script.sh | sh`(本地文件)与 `curl -O file`(仅下载不执行)不误报。默认路径字节不变。\n- **P2 生命周期事件钩子——4 个命令层生产者**:为新的 settings.json 生命周期事件类型接上真实触发点(此前它们只在事件总线注册、无生产者、loader 不认、`cc doctor` 还会当 unknown-event 告警用户配的钩子):`CwdChanged`(REPL `/cd` 改工作目录后)、`WorktreeCreate`/`WorktreeRemove`(`cc agent --worktree` 会话 create/finish 一对,payload 含 branch/base_sha,remove 带 `removed`/`reason` 区分自动删与保留)、`InstructionsLoaded`(会话启动组装完项目指令块后,携本会话权威指令文件清单 `{path,scope,truncated}`,**绝不含文件内容**)。全部 observe-only、无注册 hook 时字节不变;`InstructionsLoaded` 经 `composeSystemPrompt` 可选回调拿**真正注入**的那份文件集(零漂移,非另行 re-discover)。三处会话入口(headless / stream / REPL)与 SessionStart 同点触发。\n- **P2 Doctor:孤儿 agent 子进程检测**:`cc doctor` 现从持久化的后台 agent 记录探活,标出「worker 已死但子进程仍在」或「会话已消失」的泄漏进程为 error 并给对应 `taskkill`/`kill` 修复命令(进程起始时间锚定,防 PID 复用误判;仅喂持久记录不做启发式全机扫描 → 零误报)。\n- **4 项杂项 gap 接线**:①async-hook 持久重唤队列 + 崩溃恢复(失败的 async-hook 重唤按会话落盘,`--resume` 时作「Recovery notice」系统消息恢复);②monorepo 附加根变更时向连接的 MCP 服务器广播 roots/list_changed(`/add-dir` + 启动 `--add-dir`);③`cc doctor` LSP 就绪安装缺口检查(源文件在但对应语言服务器未装 → 代码智能静默降级为文本搜索时告警);④Session Mirror at-rest 加密/删除/保留/密钥轮换(scrypt+AES-256-GCM,`cc session index --mirror-delete` / `--mirror-prune` / `--mirror-rotate`)。"
|
|
766
|
+
"body": "> `chainlesschain` 0.162.166 → **0.162.167** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` 增量(+ 测试 + gap-analysis 文档状态更新);未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。**无新增顶层命令,命令数 175 不变**;所有改动 opt-in / 默认路径字节不变。本版把 `docs/research/cli/CLAUDE_CODE_CLI_INCREMENTAL_GAP_ANALYSIS_2026-07-12.md` 的多个可 Windows 落地「仍欠」项整批接线。\n\n- **P0 沙箱:run_shell 远程脚本执行检测**:新增统一「代码获取」分类器——把 20+ 包管理器安装命令(npm/pip/cargo/gem/go/apt/…)与 `curl … | sh` / `wget -O- | bash` 一类**下载即执行**的远程脚本归为一类,在 shell 审批时抬高风险地板并落审计(记录带 `remoteExec` 标记);`cat script.sh | sh`(本地文件)与 `curl -O file`(仅下载不执行)不误报。默认路径字节不变。\n- **P2 生命周期事件钩子——4 个命令层生产者**:为新的 settings.json 生命周期事件类型接上真实触发点(此前它们只在事件总线注册、无生产者、loader 不认、`cc doctor` 还会当 unknown-event 告警用户配的钩子):`CwdChanged`(REPL `/cd` 改工作目录后)、`WorktreeCreate`/`WorktreeRemove`(`cc agent --worktree` 会话 create/finish 一对,payload 含 branch/base_sha,remove 带 `removed`/`reason` 区分自动删与保留)、`InstructionsLoaded`(会话启动组装完项目指令块后,携本会话权威指令文件清单 `{path,scope,truncated}`,**绝不含文件内容**)。全部 observe-only、无注册 hook 时字节不变;`InstructionsLoaded` 经 `composeSystemPrompt` 可选回调拿**真正注入**的那份文件集(零漂移,非另行 re-discover)。三处会话入口(headless / stream / REPL)与 SessionStart 同点触发。\n- **P2 Doctor:孤儿 agent 子进程检测**:`cc doctor` 现从持久化的后台 agent 记录探活,标出「worker 已死但子进程仍在」或「会话已消失」的泄漏进程为 error 并给对应 `taskkill`/`kill` 修复命令(进程起始时间锚定,防 PID 复用误判;仅喂持久记录不做启发式全机扫描 → 零误报)。\n- **4 项杂项 gap 接线**:①async-hook 持久重唤队列 + 崩溃恢复(失败的 async-hook 重唤按会话落盘,`--resume` 时作「Recovery notice」系统消息恢复);②monorepo 附加根变更时向连接的 MCP 服务器广播 roots/list_changed(`/add-dir` + 启动 `--add-dir`);③`cc doctor` LSP 就绪安装缺口检查(源文件在但对应语言服务器未装 → 代码智能静默降级为文本搜索时告警);④Session Mirror at-rest 加密/删除/保留/密钥轮换(scrypt+AES-256-GCM,`cc session index --mirror-delete` / `--mirror-prune` / `--mirror-rotate`)。"
|
|
741
767
|
},
|
|
742
768
|
{
|
|
743
769
|
"heading": "Added — cc CLI 0.162.166:P1-9「Capability Manifest 与脱敏诊断包」收官——协议文档 CI byte-diff / 离线协议回放 / 治理覆盖率指标(CLI-only npm 发版)",
|
|
744
|
-
"body": "> `chainlesschain` 0.162.165 → **0.162.166** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` 增量(新增 3 个 `src/lib` 纯逻辑模块 + 3 个 `scripts/` 离线工具 + 测试);未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。**只加 npm 脚本 + 离线工具,无新增顶层命令,命令数 175 不变**;默认路径字节不变。本版把 `docs/CLAUDE_CODE_IDE_INCREMENTAL_GAP_ANALYSIS_2026-07-13.md` 的 P1-9 三个剩项全部收口。\n\n- **协议能力文档 CI byte-diff 单源生成**:新增生成器 `scripts/gen-protocol-doc.mjs`(`--out`/`--check`)从唯一源 `capability-manifest.js` `renderProtocolDoc()` 投影出 `docs/cli/PROTOCOL_CAPABILITY_MANIFEST.generated.md`(协议版本 + 可协商 wire 特性表 + 权限模式);npm 脚本 `docs:protocol` / `docs:protocol:check`;`capability-manifest.test.js` 新增 byte-diff 断言(读签入副本 = `renderProtocolDoc()`),manifest 加 wire 字段但未重生成即测试红——drift 不可能 merge 绿。\n- **离线协议回放 + 兼容审计**:新增 `protocol-replay.js`——拿一段录制的 stream-json 会话 + 协商上下文(server×client offer),**无需活体对端**离线①回放到该协商下的线上形态(未通过协商的字段按 field-gate 剥离)②审计录制是否遵守协商(任何帧携带已 gate-OFF 的可协商 wire 字段 = 前向兼容违规,fail-closed)。可 gate 字段集从唯一源 `toFieldGate()` 投影不会漂移;`sessionDigest` 键序无关可 pin golden 录制。离线工具 `scripts/replay-protocol.mjs`(`--replay`/`--audit`,违规 exit 1)+ golden fixture。\n- **治理覆盖率指标(§11.3 验收)**:新增 `governance-coverage.js`——①高风险 Tool Call Ledger/Trace 覆盖率(每个不可逆副作用调用须既有 side-effect-ledger 记录又有 trace span,「高风险」复用唯一源 `classifyToolSideEffect`)②Plugin/MCP/Skill/Hook 溯源可追溯率(外部来源调用须带 source+version+scope+权限决策);`ok` 仅双 100% 才真(fail-closed),给逐条未覆盖项。离线工具 `scripts/coverage-report.mjs`(读 run-summary JSON,任一 gap exit 1,可对录制 run 工件 CI 强制 100%)。"
|
|
770
|
+
"body": "> `chainlesschain` 0.162.165 → **0.162.166** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` 增量(新增 3 个 `src/lib` 纯逻辑模块 + 3 个 `scripts/` 离线工具 + 测试);未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。**只加 npm 脚本 + 离线工具,无新增顶层命令,命令数 175 不变**;默认路径字节不变。本版把 `docs/research/ide/CLAUDE_CODE_IDE_INCREMENTAL_GAP_ANALYSIS_2026-07-13.md` 的 P1-9 三个剩项全部收口。\n\n- **协议能力文档 CI byte-diff 单源生成**:新增生成器 `scripts/gen-protocol-doc.mjs`(`--out`/`--check`)从唯一源 `capability-manifest.js` `renderProtocolDoc()` 投影出 `docs/cli/PROTOCOL_CAPABILITY_MANIFEST.generated.md`(协议版本 + 可协商 wire 特性表 + 权限模式);npm 脚本 `docs:protocol` / `docs:protocol:check`;`capability-manifest.test.js` 新增 byte-diff 断言(读签入副本 = `renderProtocolDoc()`),manifest 加 wire 字段但未重生成即测试红——drift 不可能 merge 绿。\n- **离线协议回放 + 兼容审计**:新增 `protocol-replay.js`——拿一段录制的 stream-json 会话 + 协商上下文(server×client offer),**无需活体对端**离线①回放到该协商下的线上形态(未通过协商的字段按 field-gate 剥离)②审计录制是否遵守协商(任何帧携带已 gate-OFF 的可协商 wire 字段 = 前向兼容违规,fail-closed)。可 gate 字段集从唯一源 `toFieldGate()` 投影不会漂移;`sessionDigest` 键序无关可 pin golden 录制。离线工具 `scripts/replay-protocol.mjs`(`--replay`/`--audit`,违规 exit 1)+ golden fixture。\n- **治理覆盖率指标(§11.3 验收)**:新增 `governance-coverage.js`——①高风险 Tool Call Ledger/Trace 覆盖率(每个不可逆副作用调用须既有 side-effect-ledger 记录又有 trace span,「高风险」复用唯一源 `classifyToolSideEffect`)②Plugin/MCP/Skill/Hook 溯源可追溯率(外部来源调用须带 source+version+scope+权限决策);`ok` 仅双 100% 才真(fail-closed),给逐条未覆盖项。离线工具 `scripts/coverage-report.mjs`(读 run-summary JSON,任一 gap exit 1,可对录制 run 工件 CI 强制 100%)。"
|
|
745
771
|
},
|
|
746
772
|
{
|
|
747
773
|
"heading": "Added — cc CLI 0.162.165:精简项目记忆——`--no-project-memory` 全关 + `CC_PROJECT_MEMORY=lean` 只留入口文件 + IDE 聊天「精简上下文」默认开(CLI-only npm 发版)",
|
|
@@ -749,23 +775,23 @@
|
|
|
749
775
|
},
|
|
750
776
|
{
|
|
751
777
|
"heading": "Added — cc CLI 0.162.164:IDE 增量 gap-analysis (2026-07-13) 全批接线落地——凭据脱敏三导出面 / /rewind 从这里分支 / cc doctor 执行位置 / cc session pr-status / 复杂 Diff 行评论锚定 / 终端上下文策略 / worktree 清理安全闸 / 崩溃恢复台账 / 无人值守动作门 / 跨设备操作指纹(CLI-only npm 发版)",
|
|
752
|
-
"body": "> `chainlesschain` 0.162.163 → **0.162.164** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` 增量;未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。命令面只加 **session 子命令 `cc session pr-status`** 与 REPL `/rewind <n> --branch`、`cc doctor` 新增「Execution context」诊断段 + 工具 flag,**顶层命令数 175 不变**。本版把 `docs/CLAUDE_CODE_IDE_INCREMENTAL_GAP_ANALYSIS_2026-07-13.md` 的可 Windows 落地项整批接线(纯核已建、本版补真实运行时/命令面接线,默认路径保持字节不变)。\n\n- **8.1 凭据脱敏三导出面全闸**:一份导出物离机必须朝「不泄漏」失败——`cc session export` 导出前对渲染 transcript 跑召回优先 secret-scan(命中替 `[REDACTED]`,脱敏计数写 stderr,`--no-redact` 保原值);OTLP `toOtlp()` 对 span/event 字符串属性(含 exception message)默认脱敏(`cc agent/team --otlp`、`cc eval`);诊断包 `cc doctor --export-bundle` 强制脱敏(P1-9)。三面共用同一 recall-first 扫描器。\n- **P0-2 崩溃恢复副作用台账**:两阶段记账 `prepare→start→commit|fail|unknown` 接进 headless 与 IDE/Bridge/Extension-Host resume——`--resume` reconcile 台账,started-未落定-非幂等 op 注入去标识「Recovery notice」而非盲目重跑;Diff-Apply 内容哈希幂等(old 已改+new 已在→幂等 no-op 不重写);外部操作 Idempotency Key + 0-重复副作用度量。\n- **P0-3「从这里分支」进 `/rewind`**:`/rewind <n> --branch [--write]`(`--fork` 别名)从选中 turn 派生独立会话,保留分支点之前历史并从此分叉,**父会话绝不被截断**;确定性分支 id + `session_branch` 血统事件 + 幂等重放 + traversal fail-closed。\n- **P1-1 复杂 Diff 行评论锚定**:review finding 锚到它所指的**代码**(file+baseHash+锚定行原文+上下文)而非裸坐标;agent 改文件后可 `reanchorComment` 重定位/标 outdated,绝不复用旧行号(接进 `review-pipeline` finding 输出 + `cc review` 尽力填 fileContents)。\n- **P1-2 终端上下文策略 + 后台任务脱敏**:`selectTerminalContextForModel` fail-closed(非显式 opt-in 绝不把终端 scrollback 塞进模型上下文)+ ANSI-strip→secret-redact→scrollback-cap;`check_shell {list}` / `/tasks` 后台任务快照对命令串脱敏并暴露 PID(stoppable 仅在握真 PID 时)。\n- **P1-4 PR/CI 监控 + 受控合并**:新子命令 `cc session pr-status [id] [--pr N] [--checks-file <json>] [--enable] [--json]`——从 PR-link ledger 取会话关联 PR,`gh pr view` 或 `--checks-file` 采信号,渲染状态条 + **默认关**的 auto-merge 合格性判定(穷举列未满足项:分支保护/Review/待审批/失败或 pending check/缺席必需 check)。\n- **P1-5 worktree 清理安全闸**:后台 agent worktree reaper 清理前过 fail-closed 安全闸——未提交/未追踪/未 push/关联 PR 任一命中即**保留**(旧「全清」逃生门 `force:true` 保留);`git` 读不出→保留(绝不销毁无法核实的工作)。\n- **P1-6 会话级 agent 工具准入 + 归因**:extension 层工具(run_skill/spawn_sub_agent/browser/schedule/publish_artifact/MCP)需 Capability+Policy+权限+预算+UI 五闸全过;每次调用记只带来源的安全归因(可落 transcript)。\n- **P1-7 执行位置一等属性**:`cc doctor` 新增「Execution context」诊断段——检测 ambient location(Codespaces/SSH/Container/WSL/Local),remote/unknown fail-closed 到只读地板并列 policy 违规;凭据只显示来源/作用域不显示值。\n- **P1-8 无人值守动作门**:`cc agenda` 定时/事件任务默认拦截 notify/publish_artifact 等高危外呼(`unattendedAllowlist` 显式放回);action-class 分级 fail-closed。\n- **P1-9 脱敏诊断包**:`cc doctor --export-bundle` 一键导出去标识诊断包(版本/平台/Capability/连接/脱敏事件/进程·端口·锁文件·worktree 摘要;默认不含源码/Key/Cookie/完整环境变量;导出前强制 secret-scan)。\n- **8.2 跨设备操作指纹**:远程审批 `remote-approval-bridge` 升级到全元组 `OperationApprovalRegistry`(工具名/规范化参数/目标环境/workspace/session/策略版本/有效期);`permission.request` 发完整指纹 + 短标识 + 无秘密摘要,`approval.resolve` 失败关闭(mismatch/superseded/duplicate/过窗)。\n- **Monorepo / P2 硬化**:worktree `sparsePaths` 稀疏检出 + `symlinkDirectories` 逃逸守卫接进 team runner;`cc doctor` 新增沙箱真能力/静默降级、重复 skill 影子、settings.json hook 配置静态校验、async-hook 可靠性健康检查;LSP 服务器可选指数退避重启;每 span 归一 OTel session/agent id + `permission.decision_id`。"
|
|
778
|
+
"body": "> `chainlesschain` 0.162.163 → **0.162.164** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` 增量;未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。命令面只加 **session 子命令 `cc session pr-status`** 与 REPL `/rewind <n> --branch`、`cc doctor` 新增「Execution context」诊断段 + 工具 flag,**顶层命令数 175 不变**。本版把 `docs/research/ide/CLAUDE_CODE_IDE_INCREMENTAL_GAP_ANALYSIS_2026-07-13.md` 的可 Windows 落地项整批接线(纯核已建、本版补真实运行时/命令面接线,默认路径保持字节不变)。\n\n- **8.1 凭据脱敏三导出面全闸**:一份导出物离机必须朝「不泄漏」失败——`cc session export` 导出前对渲染 transcript 跑召回优先 secret-scan(命中替 `[REDACTED]`,脱敏计数写 stderr,`--no-redact` 保原值);OTLP `toOtlp()` 对 span/event 字符串属性(含 exception message)默认脱敏(`cc agent/team --otlp`、`cc eval`);诊断包 `cc doctor --export-bundle` 强制脱敏(P1-9)。三面共用同一 recall-first 扫描器。\n- **P0-2 崩溃恢复副作用台账**:两阶段记账 `prepare→start→commit|fail|unknown` 接进 headless 与 IDE/Bridge/Extension-Host resume——`--resume` reconcile 台账,started-未落定-非幂等 op 注入去标识「Recovery notice」而非盲目重跑;Diff-Apply 内容哈希幂等(old 已改+new 已在→幂等 no-op 不重写);外部操作 Idempotency Key + 0-重复副作用度量。\n- **P0-3「从这里分支」进 `/rewind`**:`/rewind <n> --branch [--write]`(`--fork` 别名)从选中 turn 派生独立会话,保留分支点之前历史并从此分叉,**父会话绝不被截断**;确定性分支 id + `session_branch` 血统事件 + 幂等重放 + traversal fail-closed。\n- **P1-1 复杂 Diff 行评论锚定**:review finding 锚到它所指的**代码**(file+baseHash+锚定行原文+上下文)而非裸坐标;agent 改文件后可 `reanchorComment` 重定位/标 outdated,绝不复用旧行号(接进 `review-pipeline` finding 输出 + `cc review` 尽力填 fileContents)。\n- **P1-2 终端上下文策略 + 后台任务脱敏**:`selectTerminalContextForModel` fail-closed(非显式 opt-in 绝不把终端 scrollback 塞进模型上下文)+ ANSI-strip→secret-redact→scrollback-cap;`check_shell {list}` / `/tasks` 后台任务快照对命令串脱敏并暴露 PID(stoppable 仅在握真 PID 时)。\n- **P1-4 PR/CI 监控 + 受控合并**:新子命令 `cc session pr-status [id] [--pr N] [--checks-file <json>] [--enable] [--json]`——从 PR-link ledger 取会话关联 PR,`gh pr view` 或 `--checks-file` 采信号,渲染状态条 + **默认关**的 auto-merge 合格性判定(穷举列未满足项:分支保护/Review/待审批/失败或 pending check/缺席必需 check)。\n- **P1-5 worktree 清理安全闸**:后台 agent worktree reaper 清理前过 fail-closed 安全闸——未提交/未追踪/未 push/关联 PR 任一命中即**保留**(旧「全清」逃生门 `force:true` 保留);`git` 读不出→保留(绝不销毁无法核实的工作)。\n- **P1-6 会话级 agent 工具准入 + 归因**:extension 层工具(run_skill/spawn_sub_agent/browser/schedule/publish_artifact/MCP)需 Capability+Policy+权限+预算+UI 五闸全过;每次调用记只带来源的安全归因(可落 transcript)。\n- **P1-7 执行位置一等属性**:`cc doctor` 新增「Execution context」诊断段——检测 ambient location(Codespaces/SSH/Container/WSL/Local),remote/unknown fail-closed 到只读地板并列 policy 违规;凭据只显示来源/作用域不显示值。\n- **P1-8 无人值守动作门**:`cc agenda` 定时/事件任务默认拦截 notify/publish_artifact 等高危外呼(`unattendedAllowlist` 显式放回);action-class 分级 fail-closed。\n- **P1-9 脱敏诊断包**:`cc doctor --export-bundle` 一键导出去标识诊断包(版本/平台/Capability/连接/脱敏事件/进程·端口·锁文件·worktree 摘要;默认不含源码/Key/Cookie/完整环境变量;导出前强制 secret-scan)。\n- **8.2 跨设备操作指纹**:远程审批 `remote-approval-bridge` 升级到全元组 `OperationApprovalRegistry`(工具名/规范化参数/目标环境/workspace/session/策略版本/有效期);`permission.request` 发完整指纹 + 短标识 + 无秘密摘要,`approval.resolve` 失败关闭(mismatch/superseded/duplicate/过窗)。\n- **Monorepo / P2 硬化**:worktree `sparsePaths` 稀疏检出 + `symlinkDirectories` 逃逸守卫接进 team runner;`cc doctor` 新增沙箱真能力/静默降级、重复 skill 影子、settings.json hook 配置静态校验、async-hook 可靠性健康检查;LSP 服务器可选指数退避重启;每 span 归一 OTel session/agent id + `permission.decision_id`。"
|
|
753
779
|
},
|
|
754
780
|
{
|
|
755
781
|
"heading": "Added — cc CLI 0.162.163:增量 gap-analysis last-mile 运行时接线——Subagent 契约全轴强制 / 跨 Agent 授权边界 / 完成条件引擎 / Turn↔Checkpoint 持久化 / hook 事件日志+replay / plugin consent 生命周期 / /goal 循环 / --json-schema / OTel(CLI-only npm 发版)",
|
|
756
|
-
"body": "> `chainlesschain` 0.162.162 → **0.162.163** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` 增量;未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。命令面只加子命令(`cc agenda prune`、`cc plugin consent`、`cc hook replay`/`events-log`、`cc context --sources`)与 REPL slash(`/goal`)+ 工具参数/flag,**顶层命令数 175 不变**。本版把 0.162.162 announce 的多数纯核落成真实**运行时接线**,并补齐 `docs/CLAUDE_CODE_CLI_INCREMENTAL_GAP_ANALYSIS_2026-07-12.md` 各节的 last-mile「仍欠」。全套本地三层全绿(unit+integration 25,008 + e2e 628,0 真失败)。\n\n- **Subagent 契约全轴强制(P1)**:`_executeSpawnSubAgent` 真正消费 `resolveSubagentContract`(spawnArgs > agent-file > 父级天花板),tighten-only 强制 skills/mcp/hooks/memory capability INTERSECT、permissionMode(plan→只读工具集)、budget/effort/context、worktree fail-closed、递归深度/宽度上限;非 plan confirmer 线程化 + headless 与交互 REPL 均以运行模式播种子级天花板;子级专属无 confirmer ApprovalGate 强制 run_shell/run_code/browser_act 会话策略。\n- **跨 Agent 授权边界接线(P0)**:本地 headless 审批链路携带并校验 `tool_call_id + normalized_arguments + policy_digest` 绑定(重放/参数替换/错投的批准判 `binding-mismatch` 拒绝);入站 channel 事件显式打 steer authority(其载荷里的 \"approved\" 只是文本,不能代表用户批准)。\n- **会话完成条件引擎接线(P1)**:`--goal-condition <spec>`(exit-zero/file-exists/contains/regex/model)驱动 headless 外层回合,跨进程 `--resume` 续跑(持久 `goal_snapshot`),REPL `/goal <condition>` 交互入口;`goal_started/evaluated/completed/exhausted` 事件。\n- **Turn↔Checkpoint 绑定持久化 + coverage-aware /rewind(P1)**:绑定作为链式会话事件持久化;`/rewind` 打印诚实的 coverage/警告(副作用 / 缺 checkpoint / 对话-文件漂移),永不过度承诺可恢复范围。\n- **副作用台账崩溃恢复(P0 纯核)**:`side-effect-ledger.js` 两阶段记账 `prepare→start→commit|fail|unknown` + `reconcileSideEffects` 分桶 redo/inspect/skip(file-write/git-push/package-install 中途强杀不重复副作用)。\n- **持久 Scheduler/Monitor 扩展(P1)**:`cc agenda prune`(回收终态条目)+ 过期退休(`expiresAt`/`retireExpired`)+ Monitor 文件/HTTP/mtime-change 源(替每 tick spawn shell)+ agent `schedule` 工具透传 `expires`/`jitter` + 每任务 permission-mode/worktree/turn 预算。\n- **Plugin 能力 consent 生命周期(P1)**:consent 存储 + load-path chokepoint enforcement(opt-in)+ `cc plugin consent` + `add`/`upgrade` 渲染能力清单+diff+re-consent 提示 + doctor 未同意/坏 manifest 告警。\n- **Monorepo 上下文(P1)**:`instructionExcludes` 从分层 settings 接进 `composeSystemPrompt`(排除 legacy/vendor/generated 子树,含 @import)+ `cc context --sources`(逐来源 token 归因)+ 懒加载子树指令纯核。\n- **Hooks 持久事件日志 + Replay(P2)**:哈希链 JSONL 事件日志(opt-in `CC_HOOK_EVENT_LOG`)+ `cc hook replay`(决策类事件必显式 `--sandbox`,绝不 re-gate 真流程)/`cc hook events-log`(列出/校验链)。\n- **JSON Schema(P2)**:`--json-schema` 接受 inline JSON + 与 `stream-json` 兼容(终局 `structured_result` NDJSON 行)+ format/if-then-else 断言 + 约束式重试改用富校验器(带 RFC 6901 JSON Pointer 提示)。\n- **多 Agent Review(P2)**:`cc review --multi`(correctness/security/performance/tests 分维 finder 扇出)+ `--verify`(skeptic 复现剔除 refuted)+ high effort 自动双开。\n- **OTel(P2)**:`--otlp-content` opt-in 输出 prompt/response/tool_arguments(默认脱敏 `[redacted]`)+ 每 span 归一化 session/agent id。"
|
|
782
|
+
"body": "> `chainlesschain` 0.162.162 → **0.162.163** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` 增量;未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。命令面只加子命令(`cc agenda prune`、`cc plugin consent`、`cc hook replay`/`events-log`、`cc context --sources`)与 REPL slash(`/goal`)+ 工具参数/flag,**顶层命令数 175 不变**。本版把 0.162.162 announce 的多数纯核落成真实**运行时接线**,并补齐 `docs/research/cli/CLAUDE_CODE_CLI_INCREMENTAL_GAP_ANALYSIS_2026-07-12.md` 各节的 last-mile「仍欠」。全套本地三层全绿(unit+integration 25,008 + e2e 628,0 真失败)。\n\n- **Subagent 契约全轴强制(P1)**:`_executeSpawnSubAgent` 真正消费 `resolveSubagentContract`(spawnArgs > agent-file > 父级天花板),tighten-only 强制 skills/mcp/hooks/memory capability INTERSECT、permissionMode(plan→只读工具集)、budget/effort/context、worktree fail-closed、递归深度/宽度上限;非 plan confirmer 线程化 + headless 与交互 REPL 均以运行模式播种子级天花板;子级专属无 confirmer ApprovalGate 强制 run_shell/run_code/browser_act 会话策略。\n- **跨 Agent 授权边界接线(P0)**:本地 headless 审批链路携带并校验 `tool_call_id + normalized_arguments + policy_digest` 绑定(重放/参数替换/错投的批准判 `binding-mismatch` 拒绝);入站 channel 事件显式打 steer authority(其载荷里的 \"approved\" 只是文本,不能代表用户批准)。\n- **会话完成条件引擎接线(P1)**:`--goal-condition <spec>`(exit-zero/file-exists/contains/regex/model)驱动 headless 外层回合,跨进程 `--resume` 续跑(持久 `goal_snapshot`),REPL `/goal <condition>` 交互入口;`goal_started/evaluated/completed/exhausted` 事件。\n- **Turn↔Checkpoint 绑定持久化 + coverage-aware /rewind(P1)**:绑定作为链式会话事件持久化;`/rewind` 打印诚实的 coverage/警告(副作用 / 缺 checkpoint / 对话-文件漂移),永不过度承诺可恢复范围。\n- **副作用台账崩溃恢复(P0 纯核)**:`side-effect-ledger.js` 两阶段记账 `prepare→start→commit|fail|unknown` + `reconcileSideEffects` 分桶 redo/inspect/skip(file-write/git-push/package-install 中途强杀不重复副作用)。\n- **持久 Scheduler/Monitor 扩展(P1)**:`cc agenda prune`(回收终态条目)+ 过期退休(`expiresAt`/`retireExpired`)+ Monitor 文件/HTTP/mtime-change 源(替每 tick spawn shell)+ agent `schedule` 工具透传 `expires`/`jitter` + 每任务 permission-mode/worktree/turn 预算。\n- **Plugin 能力 consent 生命周期(P1)**:consent 存储 + load-path chokepoint enforcement(opt-in)+ `cc plugin consent` + `add`/`upgrade` 渲染能力清单+diff+re-consent 提示 + doctor 未同意/坏 manifest 告警。\n- **Monorepo 上下文(P1)**:`instructionExcludes` 从分层 settings 接进 `composeSystemPrompt`(排除 legacy/vendor/generated 子树,含 @import)+ `cc context --sources`(逐来源 token 归因)+ 懒加载子树指令纯核。\n- **Hooks 持久事件日志 + Replay(P2)**:哈希链 JSONL 事件日志(opt-in `CC_HOOK_EVENT_LOG`)+ `cc hook replay`(决策类事件必显式 `--sandbox`,绝不 re-gate 真流程)/`cc hook events-log`(列出/校验链)。\n- **JSON Schema(P2)**:`--json-schema` 接受 inline JSON + 与 `stream-json` 兼容(终局 `structured_result` NDJSON 行)+ format/if-then-else 断言 + 约束式重试改用富校验器(带 RFC 6901 JSON Pointer 提示)。\n- **多 Agent Review(P2)**:`cc review --multi`(correctness/security/performance/tests 分维 finder 扇出)+ `--verify`(skeptic 复现剔除 refuted)+ high effort 自动双开。\n- **OTel(P2)**:`--otlp-content` opt-in 输出 prompt/response/tool_arguments(默认脱敏 `[redacted]`)+ 每 span 归一化 session/agent id。"
|
|
757
783
|
},
|
|
758
784
|
{
|
|
759
785
|
"heading": "Added — cc CLI 0.162.162:增量 gap-analysis 收尾(P1 Subagent 契约/Turn-Checkpoint 绑定/Plugin 能力 Schema + P2 Hooks 事件总线/JSON Schema/多 Agent Review + LSP 诊断/Doctor+文档+OTel)+ IDE gap P0(远程审批指纹/会话生命周期)(CLI-only npm 发版)",
|
|
760
|
-
"body": "> `chainlesschain` 0.162.161 → **0.162.162** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` + 一个构建脚本;未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。命令面无新顶层命令(全部为纯核 lib 模块 + 最小接线 + 一个 `scripts/gen-cli-reference.mjs` 生成器),**顶层命令数 175 不变**。至此 `docs/CLAUDE_CODE_CLI_INCREMENTAL_GAP_ANALYSIS_2026-07-12.md`(vs Claude Code v2.1.207)的 P0/P1/P2 全部章节均有「已落地(增量)」记录;每节仍列「仍欠」(多为环境/平台阻塞或运行时深接线)。\n>\n> 全部为纯核 + 时钟注入(无 timer/RNG,确定性可测)+ 最小真实接线的低风险增量;新增测试文件本地全绿。\n\n- **Subagent 契约(P1)**:`subagent-contract.js`——tighten-only 继承/覆盖:权限模式加宽被钳回父级上限,capabilities 与父级天花板取交集,memory 父级拒则永不授予,预算封顶父级余量,maxDepth/maxChildren 只能调低不能调高;`resolveSubagentContract` + `enforceRecursionLimits` + `resolveIsolationFailClosed`。接线到 `.claude/agents/*.md` 解析(`parseAgentFile` 增 `contract` 字段)。\n- **Turn↔Checkpoint 绑定(P1)**:`turn-binding.js`——显式 turn→checkpoint 表:`computeCoverage` 对有副作用无 checkpoint 的 turn 标 PARTIAL、无变更标 FULL、有变更且有 checkpoint 标 FULL、有变更无 checkpoint 标 NONE;`resolveRestorePlan` 永不过度承诺可恢复范围(conversation/files/both scope);`TurnBindingLog` + `selectTurnRange` + `buildTurnBindingFromMarks`。\n- **Plugin 能力声明 + 配置 Schema(P1)**:`plugin-runtime/capabilities.js`——能力默认 DENY(process/network{any,domains}/filesystem/mcp/monitor/credential),`diffCapabilities`+`consentRequiredForUpgrade`(加宽即需重新同意),`auditDeclaredCapabilities`;`normalizeOptionsSchema`/`validateOptions`/`redactSensitiveOptions`(敏感选项只从用户级取、拒绝来自 project 配置)。接线到 `manifest.js`(`parsePluginManifest` 增 capabilities/capabilitiesDeclared/optionsSchema)。\n- **Hooks 统一事件总线 + Replay(P2)**:`hook-event-bus.cjs`——`HOOK_EVENT_TYPES`(现有 settings 事件 ∪ 新 PermissionDenied/TaskCreated/TaskCompleted/InstructionsLoaded/CwdChanged/WorktreeCreate/WorktreeRemove/MCPElicitation),`buildHookEnvelope`(`event_id`=`evt_`+sha256,带 trace_id/parent_id 的版本化信封),`mergeHookDecisions`(block>ask>allow>continue 最严胜出),`planHookReplay`(决策类事件 replay 必须显式 sandbox:true)。接线到 `settings-hook-events.cjs`(`withDeliveryId` 打 event_id)。\n- **JSON Schema 结构化输出(P2)**:`json-schema-validate.js`——Draft 2020-12 子集校验器:`jsonPointer`/`canonical`/`computeSchemaDigest`(\"sha256:…\")/`validate`→`{valid,errors:[{code,keyword,instancePath,schemaPath,message}]}`/`validateSchema`(meta 校验)/`buildStructuredResultEvent`(`{type:\"structured_result\",schema_digest,valid,value,errors?}`);支持 type/enum/const/properties/required/additionalProperties/items/prefixItems/数值与串与数组约束/allOf-anyOf-oneOf-not/本地 $ref(128 层守卫)。接线到 `json-schema-output.js`(加载即 meta 校验 + 导出 buildStructuredResult/computeSchemaDigest)。\n- **多 Agent Code Review + LSP 自动诊断(P2)**:`review-pipeline.js`——finders→verifier→deduper→结构化输出的纯聚合核:`dedupeFindings`(合并同 path:line:title、保留最高 severity、跨维度并 categories/dimensions;形状保持)、`applyVerdicts`(verifier 复现——拒者剔除、复现者提权)、`filterByConfidence`/`rankFindings`/`buildReviewReport`(path/line/category/severity/failure_scenario/evidence + rollup);接线到 `review.js parseFindings`(过 dedupe,形状保持)。`lsp/diagnostics-scheduler.js`——编辑触发的自动诊断:`DiagnosticsScheduler`(debounce 合并编辑爆发、throttle 每文件最小间隔、msUntilNextDue)+ `capDiagnostics`(token 上限、按 severity 先丢最不严重、恒留≥1)。\n- **Doctor Runtime Checkup + CLI 文档漂移 + 统一 OTel id(P2)**:`telemetry-ids.js`——`buildTelemetryAttributes` 把杂乱别名归一到九个稳定 id key(session/turn/prompt/tool_use/agent/parent_agent/workflow.run_id/permission.decision_id/checkpoint.id),`content.*` 默认脱敏为 `[redacted]`(仅显式 opt-in 才输出且长度封顶),只发 allow-list key(外来高基数 label 丢弃)、id 值字符集净化+≤128 截断;接线到 `agent-core.js`(每 span 现带归一化的 workflow.run_id+session.id)。`runtime-checkup.js`——纯 Doctor 评估器(agenda 逾期/孤儿进程/慢·熔断 Hook/失效 Plugin·LSP/陈旧 session·worktree/冗长指令文件);接线到 `doctor-checkup.js` 新 `runtimeSection`(只消费 agenda + 指令文件,其余留给既有 section 免双报)。`docs-drift.js` + `scripts/gen-cli-reference.mjs`——从 `command-manifest.json`(175)+`listCodingAgentToolNames()`(26) 生成 canonical 参考文档并双向 diff 漂移(`--out` 生成 / `--check` CI fail-on-drift)。\n- **IDE gap P0(cli/src 侧)**:远程审批绑定操作指纹(`approvalBindingDigest` 常数时间校验,断线重发/跨 Agent 冒用防护)+ 统一会话生命周期状态机(`session-lifecycle.js` 折叠 supervisor 状态/worker phase/IDE 状态为单一词汇表)。"
|
|
786
|
+
"body": "> `chainlesschain` 0.162.161 → **0.162.162** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` + 一个构建脚本;未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。命令面无新顶层命令(全部为纯核 lib 模块 + 最小接线 + 一个 `scripts/gen-cli-reference.mjs` 生成器),**顶层命令数 175 不变**。至此 `docs/research/cli/CLAUDE_CODE_CLI_INCREMENTAL_GAP_ANALYSIS_2026-07-12.md`(vs Claude Code v2.1.207)的 P0/P1/P2 全部章节均有「已落地(增量)」记录;每节仍列「仍欠」(多为环境/平台阻塞或运行时深接线)。\n>\n> 全部为纯核 + 时钟注入(无 timer/RNG,确定性可测)+ 最小真实接线的低风险增量;新增测试文件本地全绿。\n\n- **Subagent 契约(P1)**:`subagent-contract.js`——tighten-only 继承/覆盖:权限模式加宽被钳回父级上限,capabilities 与父级天花板取交集,memory 父级拒则永不授予,预算封顶父级余量,maxDepth/maxChildren 只能调低不能调高;`resolveSubagentContract` + `enforceRecursionLimits` + `resolveIsolationFailClosed`。接线到 `.claude/agents/*.md` 解析(`parseAgentFile` 增 `contract` 字段)。\n- **Turn↔Checkpoint 绑定(P1)**:`turn-binding.js`——显式 turn→checkpoint 表:`computeCoverage` 对有副作用无 checkpoint 的 turn 标 PARTIAL、无变更标 FULL、有变更且有 checkpoint 标 FULL、有变更无 checkpoint 标 NONE;`resolveRestorePlan` 永不过度承诺可恢复范围(conversation/files/both scope);`TurnBindingLog` + `selectTurnRange` + `buildTurnBindingFromMarks`。\n- **Plugin 能力声明 + 配置 Schema(P1)**:`plugin-runtime/capabilities.js`——能力默认 DENY(process/network{any,domains}/filesystem/mcp/monitor/credential),`diffCapabilities`+`consentRequiredForUpgrade`(加宽即需重新同意),`auditDeclaredCapabilities`;`normalizeOptionsSchema`/`validateOptions`/`redactSensitiveOptions`(敏感选项只从用户级取、拒绝来自 project 配置)。接线到 `manifest.js`(`parsePluginManifest` 增 capabilities/capabilitiesDeclared/optionsSchema)。\n- **Hooks 统一事件总线 + Replay(P2)**:`hook-event-bus.cjs`——`HOOK_EVENT_TYPES`(现有 settings 事件 ∪ 新 PermissionDenied/TaskCreated/TaskCompleted/InstructionsLoaded/CwdChanged/WorktreeCreate/WorktreeRemove/MCPElicitation),`buildHookEnvelope`(`event_id`=`evt_`+sha256,带 trace_id/parent_id 的版本化信封),`mergeHookDecisions`(block>ask>allow>continue 最严胜出),`planHookReplay`(决策类事件 replay 必须显式 sandbox:true)。接线到 `settings-hook-events.cjs`(`withDeliveryId` 打 event_id)。\n- **JSON Schema 结构化输出(P2)**:`json-schema-validate.js`——Draft 2020-12 子集校验器:`jsonPointer`/`canonical`/`computeSchemaDigest`(\"sha256:…\")/`validate`→`{valid,errors:[{code,keyword,instancePath,schemaPath,message}]}`/`validateSchema`(meta 校验)/`buildStructuredResultEvent`(`{type:\"structured_result\",schema_digest,valid,value,errors?}`);支持 type/enum/const/properties/required/additionalProperties/items/prefixItems/数值与串与数组约束/allOf-anyOf-oneOf-not/本地 $ref(128 层守卫)。接线到 `json-schema-output.js`(加载即 meta 校验 + 导出 buildStructuredResult/computeSchemaDigest)。\n- **多 Agent Code Review + LSP 自动诊断(P2)**:`review-pipeline.js`——finders→verifier→deduper→结构化输出的纯聚合核:`dedupeFindings`(合并同 path:line:title、保留最高 severity、跨维度并 categories/dimensions;形状保持)、`applyVerdicts`(verifier 复现——拒者剔除、复现者提权)、`filterByConfidence`/`rankFindings`/`buildReviewReport`(path/line/category/severity/failure_scenario/evidence + rollup);接线到 `review.js parseFindings`(过 dedupe,形状保持)。`lsp/diagnostics-scheduler.js`——编辑触发的自动诊断:`DiagnosticsScheduler`(debounce 合并编辑爆发、throttle 每文件最小间隔、msUntilNextDue)+ `capDiagnostics`(token 上限、按 severity 先丢最不严重、恒留≥1)。\n- **Doctor Runtime Checkup + CLI 文档漂移 + 统一 OTel id(P2)**:`telemetry-ids.js`——`buildTelemetryAttributes` 把杂乱别名归一到九个稳定 id key(session/turn/prompt/tool_use/agent/parent_agent/workflow.run_id/permission.decision_id/checkpoint.id),`content.*` 默认脱敏为 `[redacted]`(仅显式 opt-in 才输出且长度封顶),只发 allow-list key(外来高基数 label 丢弃)、id 值字符集净化+≤128 截断;接线到 `agent-core.js`(每 span 现带归一化的 workflow.run_id+session.id)。`runtime-checkup.js`——纯 Doctor 评估器(agenda 逾期/孤儿进程/慢·熔断 Hook/失效 Plugin·LSP/陈旧 session·worktree/冗长指令文件);接线到 `doctor-checkup.js` 新 `runtimeSection`(只消费 agenda + 指令文件,其余留给既有 section 免双报)。`docs-drift.js` + `scripts/gen-cli-reference.mjs`——从 `command-manifest.json`(175)+`listCodingAgentToolNames()`(26) 生成 canonical 参考文档并双向 diff 漂移(`--out` 生成 / `--check` CI fail-on-drift)。\n- **IDE gap P0(cli/src 侧)**:远程审批绑定操作指纹(`approvalBindingDigest` 常数时间校验,断线重发/跨 Agent 冒用防护)+ 统一会话生命周期状态机(`session-lifecycle.js` 折叠 supervisor 状态/worker phase/IDE 状态为单一词汇表)。"
|
|
761
787
|
},
|
|
762
788
|
{
|
|
763
789
|
"heading": "Added — cc CLI 0.162.161:增量 gap-analysis(P0 后台状态机/跨 Agent 授权/凭据代理 + P1 完成条件/Monorepo 排除/持久 Scheduler)+ bg-\\* WS relay 协议硬化(CLI-only npm 发版)",
|
|
764
|
-
"body": "> `chainlesschain` 0.162.160 → **0.162.161** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` + `packages/agent-sdk` 协议增量;未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。命令面无新顶层命令(`cc agenda list` 增 `nextWakeupAt` 字段),**顶层命令数 175 不变**。对照 `docs/CLAUDE_CODE_CLI_INCREMENTAL_GAP_ANALYSIS_2026-07-12.md`(vs Claude Code v2.1.207)逐节落地 P0/P1 Windows-可做、自包含、全测试的最有价值切片,每节文档记录「已落地」与「仍欠」。\n>\n> 全部为纯核 + 时钟注入(无 timer/RNG,确定性可测)+ 最小真实接线的低风险增量;已落地增量的 9 个测试文件 148 测全绿。\n\n- **跨事件 `trace_id`(协议 §1.2.1)**:stream-json 每行标注 run-scoped `trace_id`(`--trace-id` / `CC_TRACE_ID` / 自动生成),`sanitizeTraceId` 限字符集 `[A-Za-z0-9._:-]`≤128,供跨进程/跨 Agent 事件关联。\n- **后台 Agent 状态机(P0)**:拆分 Idle 与 Needs-input——`background-agent-phase.js` 归一化 phase(starting/working/idle/needs_input/waiting_permission,legacy `turn`→working),`phaseGroupKey` 让 `cc` 后台仪表板把「空闲」与「待输入/待批准」分组显示,不再混为一谈。\n- **跨 Agent 授权边界(P0 安全)**:`agent-authority.js` 授权信封——`origin`(user/model/subagent/teammate/channel/hook/remote/system/permission_tool)→ `authority`(none/steer/approve/manage),仅 user=manage、permission_tool=approve、已认证且 approve-scoped 的 remote=approve 可批准;`approvalBindingDigest({toolCallId,args,policyDigest})` 常数时间校验、fail-closed,防止一个 Agent 冒用另一个的批准。`origin` 恒由可信 dispatch 赋值,绝不从消息内容读取。\n- **跨平台沙箱与凭据代理(P0)**:`credential-proxy.js`——子进程环境默认屏蔽长效凭据(`maskCredentialEnv` 把 secret 值换成哨兵 `cc-cred-redacted:<NAME>`,`mask`/`deny` 双模式),审计日志绝不记录还原后的明文(`redactEnvForAudit`),`resolveApprovedInjection` 按 approved-host fail-closed 注入;`CC_CREDENTIAL_PROXY` 开关,关闭时同对象引用零开销。接线到 agent-core 前后台两处 spawn。\n- **会话级完成条件引擎(P1)**:`goal-condition-engine.js`——确定性完成条件(`exit-zero:`/`file-exists:`/`contains:`/`regex:`/`model:`/裸),预算(maxOuterTurns 默认 10、硬顶 100)+ 纯 reducer `evaluateGoalStep`,`GoalConditionEngine` 支持 snapshot/fromSnapshot 恢复;确定性检查经注入 spawnSync/existsSync 可测。\n- **大型 Monorepo 上下文排除(P1)**:`instructionExcludes`——`project-instructions.js` 支持按 glob 排除 legacy/vendor/generated 子树(裸名=任意段匹配、带斜杠前缀=目录+后代、`*`/`**`/`?` 通配、祖先匹配语义),@import 目标落在排除子树内也跳过(避免把凭据文件拉进 prompt);`composeSystemPrompt` 透传 `instructionExcludes`。\n- **统一持久 Scheduler 规划器(P1)**:`schedule-planner.js`——确定性 jitter(FNV-1a 稳定 per-task 偏移,跨重启不漂移,避免共享 cron 分钟的惊群)、自适应唤醒(`nextWakeupAt`/`msUntilNextWakeup` 让 daemon 睡到最早 fire 而非轮询)、过期(`isEntryExpired`/`partitionSchedule` 先退休过期再触发);接线到 `cc agenda list`(JSON `nextWakeupAt` + \"next wakeup\" 行)。\n- **bg-\\* WS relay 协议硬化**:事件序号缺口检测 + replay(慢/断线消费者补投)、出站背压(slow-consumer 保护)、跨语言 fixture 契约 + `tool_use_id` + event seq,IDE 上报文件路径的 remote URI/path 映射,MCP tool-path 边界守卫 + Windows lockfile ACL,diff-apply 并发/二进制守卫 + 读取实时编辑器缓冲的 stale-rejection,后台 Agent supervisor 3 个 pinned gap 收口 + 有界 prompt 队列。"
|
|
790
|
+
"body": "> `chainlesschain` 0.162.160 → **0.162.161** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` + `packages/agent-sdk` 协议增量;未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。命令面无新顶层命令(`cc agenda list` 增 `nextWakeupAt` 字段),**顶层命令数 175 不变**。对照 `docs/research/cli/CLAUDE_CODE_CLI_INCREMENTAL_GAP_ANALYSIS_2026-07-12.md`(vs Claude Code v2.1.207)逐节落地 P0/P1 Windows-可做、自包含、全测试的最有价值切片,每节文档记录「已落地」与「仍欠」。\n>\n> 全部为纯核 + 时钟注入(无 timer/RNG,确定性可测)+ 最小真实接线的低风险增量;已落地增量的 9 个测试文件 148 测全绿。\n\n- **跨事件 `trace_id`(协议 §1.2.1)**:stream-json 每行标注 run-scoped `trace_id`(`--trace-id` / `CC_TRACE_ID` / 自动生成),`sanitizeTraceId` 限字符集 `[A-Za-z0-9._:-]`≤128,供跨进程/跨 Agent 事件关联。\n- **后台 Agent 状态机(P0)**:拆分 Idle 与 Needs-input——`background-agent-phase.js` 归一化 phase(starting/working/idle/needs_input/waiting_permission,legacy `turn`→working),`phaseGroupKey` 让 `cc` 后台仪表板把「空闲」与「待输入/待批准」分组显示,不再混为一谈。\n- **跨 Agent 授权边界(P0 安全)**:`agent-authority.js` 授权信封——`origin`(user/model/subagent/teammate/channel/hook/remote/system/permission_tool)→ `authority`(none/steer/approve/manage),仅 user=manage、permission_tool=approve、已认证且 approve-scoped 的 remote=approve 可批准;`approvalBindingDigest({toolCallId,args,policyDigest})` 常数时间校验、fail-closed,防止一个 Agent 冒用另一个的批准。`origin` 恒由可信 dispatch 赋值,绝不从消息内容读取。\n- **跨平台沙箱与凭据代理(P0)**:`credential-proxy.js`——子进程环境默认屏蔽长效凭据(`maskCredentialEnv` 把 secret 值换成哨兵 `cc-cred-redacted:<NAME>`,`mask`/`deny` 双模式),审计日志绝不记录还原后的明文(`redactEnvForAudit`),`resolveApprovedInjection` 按 approved-host fail-closed 注入;`CC_CREDENTIAL_PROXY` 开关,关闭时同对象引用零开销。接线到 agent-core 前后台两处 spawn。\n- **会话级完成条件引擎(P1)**:`goal-condition-engine.js`——确定性完成条件(`exit-zero:`/`file-exists:`/`contains:`/`regex:`/`model:`/裸),预算(maxOuterTurns 默认 10、硬顶 100)+ 纯 reducer `evaluateGoalStep`,`GoalConditionEngine` 支持 snapshot/fromSnapshot 恢复;确定性检查经注入 spawnSync/existsSync 可测。\n- **大型 Monorepo 上下文排除(P1)**:`instructionExcludes`——`project-instructions.js` 支持按 glob 排除 legacy/vendor/generated 子树(裸名=任意段匹配、带斜杠前缀=目录+后代、`*`/`**`/`?` 通配、祖先匹配语义),@import 目标落在排除子树内也跳过(避免把凭据文件拉进 prompt);`composeSystemPrompt` 透传 `instructionExcludes`。\n- **统一持久 Scheduler 规划器(P1)**:`schedule-planner.js`——确定性 jitter(FNV-1a 稳定 per-task 偏移,跨重启不漂移,避免共享 cron 分钟的惊群)、自适应唤醒(`nextWakeupAt`/`msUntilNextWakeup` 让 daemon 睡到最早 fire 而非轮询)、过期(`isEntryExpired`/`partitionSchedule` 先退休过期再触发);接线到 `cc agenda list`(JSON `nextWakeupAt` + \"next wakeup\" 行)。\n- **bg-\\* WS relay 协议硬化**:事件序号缺口检测 + replay(慢/断线消费者补投)、出站背压(slow-consumer 保护)、跨语言 fixture 契约 + `tool_use_id` + event seq,IDE 上报文件路径的 remote URI/path 映射,MCP tool-path 边界守卫 + Windows lockfile ACL,diff-apply 并发/二进制守卫 + 读取实时编辑器缓冲的 stale-rejection,后台 Agent supervisor 3 个 pinned gap 收口 + 有界 prompt 队列。"
|
|
765
791
|
},
|
|
766
792
|
{
|
|
767
793
|
"heading": "Added — cc CLI 0.162.160:运行时安全与确定性 8 批(沙箱严格模式 + 依赖/凭据安全 + 确定性 Headless + Subagent 契约 + MCP 生命周期 + Hooks 硬化)(CLI-only npm 发版)",
|
|
768
|
-
"body": "> `chainlesschain` 0.162.159 → **0.162.160** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` 增量;未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。命令面**只加子命令**(`cc session rename/prune`、`cc daemon rm`、`cc mcp trust-project`),**顶层命令数 175 不变**(manifest 无需重生)。对照 `docs/CLAUDE_CODE_CLI_GAP_ANALYSIS.md`(docs 根)审计确认仍缺的 8 项全落地(commit 链 `c4533ad848..4c2e297754`)。\n>\n> ⚠️ **行为变更(升级前须知)**:① `run_code` 的 pip 依赖**默认不再自动安装**(改 opt-in,见下);② agent 脚本默认写 OS 临时目录、不再落项目根(`persist:true` 才进项目);③ headless/agent **退出码细化**——最大轮次→3、预算超限→4、模型错误→5、配置错误→6(成功仍 0、通用失败仍 1、hook block 仍 2、SIGINT/SIGTERM 仍 130/143)。依赖固定 exit≠0 判失败的脚本不受影响;依赖\"失败必为 1\"的脚本需放宽。\n\n- **确定性 Headless(A)**:新增 `--ephemeral`(resume 只读回放、零落盘);init 事件补 `protocol_version`/`session_persistence`/`loaded_sources`/`policy_digest`/`tools_hash`/`isolation_level`(消费者可判定回放确定性与工具/策略指纹);退出码分类(`lib/exit-codes.cjs`);`cc agent --capabilities` 打印机读能力清单(协议版本、agent 工具集、权限模式、退出码、特性开关)后退出。\n- **依赖安装安全(B)**:`run_code` 的 pip 自动安装**默认关闭**——经 settings `runCode.autoInstall` 或 `CC_RUN_CODE_AUTO_INSTALL` 显式开启,且受 `runCode.installAllowlist`(PEP 503 归一化包名)约束,每次安装写审计 JSONL(`~/.chainlesschain/audit/`,`CC_AUDIT_DIR` 可覆盖);agent 脚本默认写 OS 临时目录(`persist:true` 才进项目根)。系统提示词/工具契约文案已同步。\n- **凭据卫生(C)**:config `llm.apiKeyHelper`——从外部命令(→ OS 凭据库)解析 API Key,5 分钟缓存,helper 失败 **fail-closed 并告警一次**(返回 null,绝不静默替换成别的凭据);argv `--api-key` 明文传参现给出告警(进程表/shell 历史泄露面)。\n- **沙箱严格模式(D)**:`failIfUnavailable` 此前只是声明、从不执行——现在启动期探测沙箱引擎(docker `version` / bwrap `--version`),不可用即拒绝启动(退出码 6),headless 与交互双路均生效;`isolation_level`(os-sandbox / container / policy-only)透出到 init 事件与 `sandboxSummary`,不再静默降级为\"只有工具规则\"。\n- **Subagent 契约(E)**:`spawn_sub_agent` 与 `.claude/agents/*.md` frontmatter 双入口新增 `disallowedTools`(从 allowedTools 减去)、`maxTurns`、`isolation:worktree`。**顺手修出一个真 bug**:`SubAgentContext._runCore` 早已算出工具白名单却从未传给 agentLoop——子代理在 LLM 面一直看到全量工具,白名单形同虚设(修=`enabledToolNames` 透传)。\n- **会话运营(F)**:`cc session rename <id> <title>`(append `session_rename` 事件,哈希链不破)+ `cc session prune --older-than <days> [--keep N] [--dry-run]`(按最后活动保留期清理,默认保最新 10)+ `cc daemon rm <id> [--force] [--keep-log]`(终态直接移除、运行中需 `--force`)。\n- **MCP 生命周期(G)**:mcp-client 处理 `notifications/tools/list_changed` + `notifications/resources/list_changed`——合并式重拉服务器工具/资源清单(刻意**不动 in-flight LLM 工具数组**,保 tool-search 缓存稳定性,追加式更新);项目 `.mcp.json` 首用记 sha256 指纹,文件变更后 **fail-closed 拒绝加载**,需 `CC_PROJECT_MCP_TRUST=1` 或 `cc mcp trust-project` 显式重信任(防被换过的项目配置静默拉起新 MCP server)。\n- **Hooks 硬化(H)**:每个 hook 的 stdin payload 打 `schema_version`(=1,additive 变更保号、破坏性 reshape 才 bump);连续失败熔断——同一 hook 命令连续 3 次非阻塞失败(spawn error / 超时 / 非 2 非零退出)开闸,60s 冷却后半开试跑一次,成功或真 block/ask 决策关闸(`CC_HOOK_BREAKER_THRESHOLD=0` 关闭、`CC_HOOK_BREAKER_COOLDOWN_MS` 可调);坏 hook 不再每轮拖慢 agent。"
|
|
794
|
+
"body": "> `chainlesschain` 0.162.159 → **0.162.160** 发 npm `latest`(经 `npm-publish.yml`,`--provenance --access public`)。纯 `packages/cli/src` 增量;未触 `pdh/lib` → 无 Android cc bundle rollover / 无 USR_VERSION 改动。命令面**只加子命令**(`cc session rename/prune`、`cc daemon rm`、`cc mcp trust-project`),**顶层命令数 175 不变**(manifest 无需重生)。对照 `docs/research/cli/CLAUDE_CODE_CLI_GAP_ANALYSIS.md`(docs 根)审计确认仍缺的 8 项全落地(commit 链 `c4533ad848..4c2e297754`)。\n>\n> ⚠️ **行为变更(升级前须知)**:① `run_code` 的 pip 依赖**默认不再自动安装**(改 opt-in,见下);② agent 脚本默认写 OS 临时目录、不再落项目根(`persist:true` 才进项目);③ headless/agent **退出码细化**——最大轮次→3、预算超限→4、模型错误→5、配置错误→6(成功仍 0、通用失败仍 1、hook block 仍 2、SIGINT/SIGTERM 仍 130/143)。依赖固定 exit≠0 判失败的脚本不受影响;依赖\"失败必为 1\"的脚本需放宽。\n\n- **确定性 Headless(A)**:新增 `--ephemeral`(resume 只读回放、零落盘);init 事件补 `protocol_version`/`session_persistence`/`loaded_sources`/`policy_digest`/`tools_hash`/`isolation_level`(消费者可判定回放确定性与工具/策略指纹);退出码分类(`lib/exit-codes.cjs`);`cc agent --capabilities` 打印机读能力清单(协议版本、agent 工具集、权限模式、退出码、特性开关)后退出。\n- **依赖安装安全(B)**:`run_code` 的 pip 自动安装**默认关闭**——经 settings `runCode.autoInstall` 或 `CC_RUN_CODE_AUTO_INSTALL` 显式开启,且受 `runCode.installAllowlist`(PEP 503 归一化包名)约束,每次安装写审计 JSONL(`~/.chainlesschain/audit/`,`CC_AUDIT_DIR` 可覆盖);agent 脚本默认写 OS 临时目录(`persist:true` 才进项目根)。系统提示词/工具契约文案已同步。\n- **凭据卫生(C)**:config `llm.apiKeyHelper`——从外部命令(→ OS 凭据库)解析 API Key,5 分钟缓存,helper 失败 **fail-closed 并告警一次**(返回 null,绝不静默替换成别的凭据);argv `--api-key` 明文传参现给出告警(进程表/shell 历史泄露面)。\n- **沙箱严格模式(D)**:`failIfUnavailable` 此前只是声明、从不执行——现在启动期探测沙箱引擎(docker `version` / bwrap `--version`),不可用即拒绝启动(退出码 6),headless 与交互双路均生效;`isolation_level`(os-sandbox / container / policy-only)透出到 init 事件与 `sandboxSummary`,不再静默降级为\"只有工具规则\"。\n- **Subagent 契约(E)**:`spawn_sub_agent` 与 `.claude/agents/*.md` frontmatter 双入口新增 `disallowedTools`(从 allowedTools 减去)、`maxTurns`、`isolation:worktree`。**顺手修出一个真 bug**:`SubAgentContext._runCore` 早已算出工具白名单却从未传给 agentLoop——子代理在 LLM 面一直看到全量工具,白名单形同虚设(修=`enabledToolNames` 透传)。\n- **会话运营(F)**:`cc session rename <id> <title>`(append `session_rename` 事件,哈希链不破)+ `cc session prune --older-than <days> [--keep N] [--dry-run]`(按最后活动保留期清理,默认保最新 10)+ `cc daemon rm <id> [--force] [--keep-log]`(终态直接移除、运行中需 `--force`)。\n- **MCP 生命周期(G)**:mcp-client 处理 `notifications/tools/list_changed` + `notifications/resources/list_changed`——合并式重拉服务器工具/资源清单(刻意**不动 in-flight LLM 工具数组**,保 tool-search 缓存稳定性,追加式更新);项目 `.mcp.json` 首用记 sha256 指纹,文件变更后 **fail-closed 拒绝加载**,需 `CC_PROJECT_MCP_TRUST=1` 或 `cc mcp trust-project` 显式重信任(防被换过的项目配置静默拉起新 MCP server)。\n- **Hooks 硬化(H)**:每个 hook 的 stdin payload 打 `schema_version`(=1,additive 变更保号、破坏性 reshape 才 bump);连续失败熔断——同一 hook 命令连续 3 次非阻塞失败(spawn error / 超时 / 非 2 非零退出)开闸,60s 冷却后半开试跑一次,成功或真 block/ask 决策关闸(`CC_HOOK_BREAKER_THRESHOLD=0` 关闭、`CC_HOOK_BREAKER_COOLDOWN_MS` 可调);坏 hook 不再每轮拖慢 agent。"
|
|
769
795
|
},
|
|
770
796
|
{
|
|
771
797
|
"heading": "Added — cc CLI 0.162.159:Claude-Code 平价 gap-analysis 14 项收口(cloud handoff + /tui + /voice + /fast + plugin 治理 + session SQLite 索引)(CLI-only npm 发版)",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Dependency-install policy for `run_code` (gap-analysis 2026-07-11,
|
|
3
|
-
* docs/CLAUDE_CODE_CLI_GAP_ANALYSIS.md P0 "依赖安装与凭据").
|
|
3
|
+
* docs/research/cli/CLAUDE_CODE_CLI_GAP_ANALYSIS.md P0 "依赖安装与凭据").
|
|
4
4
|
*
|
|
5
5
|
* Auto `pip install` on a Python import error used to be unconditional. It is
|
|
6
6
|
* now OPT-IN:
|