chainlesschain 0.166.74 → 0.166.77
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 +4 -2
- package/package.json +1 -1
- package/src/assets/web-panel/assets/{AIOps-BlIvP3k1.js → AIOps-CpiCBhRh.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DYF7atSV.js → ActionButton-CnU-Xvx-.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-LZYaYek6.js → Analytics-BJW-CNtf.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-BJxrjNbj.js → AppLayout-UFQJL3G9.js} +5 -5
- package/src/assets/web-panel/assets/{Artifacts-gEDhxhmE.js → Artifacts-Dr_IUDoY.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-B0MR950Q.js → Audit-aglWo6rr.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-3e6Os_Kl.js → BackgroundAgents-Dm_TCiXC.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-DB_X8KUg.js → Backup-DUdX4-gA.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-DTNcvNeG.js → BaseInput-BTcLjy1o.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-SnqdA62j.js → Chat-Bhy9qZrl.js} +5 -5
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-BaiWNH_V.js → ChatBubbleRenderer-D0WrJQaQ.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-Dj0O4dyP.js → Checkbox-CblrPa21.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-BeelW3dx.js → Codegen-SEAHzOlr.js} +1 -1
- package/src/assets/web-panel/assets/{Col-BmstiyBM.js → Col-DJz8iFOR.js} +1 -1
- package/src/assets/web-panel/assets/{Community-CrbmFk3f.js → Community-RufKhcQt.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DCg5ZPIw.js → Compact-Dlifx08U.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-B3sajhq7.js → Compliance-DdhQWcHh.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-DWcdvrDK.js → Cowork-BLNn6oOm.js} +4 -4
- package/src/assets/web-panel/assets/{Cron-Bjwp_NDf.js → Cron-Dv-JWY2d.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-BXTLC9o8.js → Crosschain-k7Pz7O-b.js} +1 -1
- package/src/assets/web-panel/assets/{DID-Di62M46b.js → DID-C_10syUW.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-BQED8Rkt.js → Dashboard-CMyH6Szx.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-DEf9VYaj.js → Dropdown-DjmD2Saa.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-DhFpPMAM.js → EmailListRenderer-36_IRUSo.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-BOqmzkpS.js → EvolutionSettings-CmtU0XmM.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-BxBnJ4fe.js → FamilyGuardDashboard-DEgf9kyP.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-BN9Q8nsZ.js → Federation-DGO1wQls.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-CGeqFEd-.js → FormItemContext-Doj1FmKW.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-DElmWQTc.js → GenericCardRenderer-GzOU27iT.js} +1 -1
- package/src/assets/web-panel/assets/{Git-BHBSgKck.js → Git-Dd7D1EDK.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-Breo3NTU.js → Governance-6IY8LcjI.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-CCABy4E0.js → Inference-BB9gl8q1.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-B6_ryn-X.js → KnowledgeGraph-CeCed5wd.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-CkmJjJok.js → Logs-CYOeHuaI.js} +2 -2
- package/src/assets/web-panel/assets/{MarkdownRenderer-DQEQBaRu.js → MarkdownRenderer-Bk8Zqc2R.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-iip65jxv.js → Marketplace-D-_xgHgM.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DDwp_QLb.js → McpTools-NnaUTF5t.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-2ZmNDRkC.js → Memory-CndN9pMt.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-C6HilwZl.js → MobileBridge-BXblFmhY.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-BeMtYRhx.js → MobileProjects-CC26Dm2k.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-Bp-FEcoo.js → Mtc-BhaqWCiW.js} +2 -2
- package/src/assets/web-panel/assets/{MtcAudit-DNdkTCe5.js → MtcAudit-D6fktM2w.js} +5 -5
- package/src/assets/web-panel/assets/{Multisig-PnKg2_Eo.js → Multisig-CFvahz7s.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-DDp4lZeG.js → NLProgramming-Co73Ivya.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-DEjFktcO.js → Notes-B4g33L1o.js} +4 -4
- package/src/assets/web-panel/assets/{NotificationSettings-FR8fJDAn.js → NotificationSettings-lXd17EbN.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-Cyc-XI0L.js → OrderTableRenderer-BiOB0GIi.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-DNW2E_JU.js → Organization-JQ7_wQIA.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-BHfd6wk6.js → Overflow-gwgJgozQ.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-COIkaXH4.js → P2P-D9L_0gie.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-DuRP0UeX.js → PdhVaultBrowser-CbOPsFE9.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-BfVRGMy8.js → Permissions-Cz42HNQf.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-BWYjO6Aa.js → PersonalDataHub-DjorYtrF.js} +5 -5
- package/src/assets/web-panel/assets/{Pipeline-C0e0fPBW.js → Pipeline-DyWPhmm5.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-CnId4Jv-.js → Privacy-DyfLMl2j.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-CYf1grXg.js → ProjectInit-CyqDx1OE.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-HsXgJdiH.js → ProjectSettings-DsBw0Csy.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-Bi0r9QcC.js → Projects-CRaSI25Z.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-B-Tu_-_4.js → Providers-CCI_klN-.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-CPDqYT2F.js → QrScannerModal-DNsnlDdS.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-Df6qcjXy.js → QuickAsk-B9r2iaee.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-dP6sfGSY.js → Recommend-BJDe03GR.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-VAt9-tM3.js → RemoteSession-J7JR3rRo.js} +3 -3
- package/src/assets/web-panel/assets/{Reputation-DtRVRiLI.js → Reputation-DR39AJeV.js} +1 -1
- package/src/assets/web-panel/assets/{Row-B6Ukqvli.js → Row-Dh77m3NZ.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-DfVRQMrZ.js → RssFeed-BUdg28nJ.js} +2 -2
- package/src/assets/web-panel/assets/{Search-CyncAiqQ.js → Search-BNC7sGhj.js} +1 -1
- package/src/assets/web-panel/assets/{Security-DEO7nrkb.js → Security-DISENGI7.js} +3 -3
- package/src/assets/web-panel/assets/{Services-CkusQEhN.js → Services-BBBGpJ1-.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CbGtO3kc.js → Skeleton-DMcIoIv2.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-diOh0gAr.js → Skills-QAyFbI3r.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-CIu9Ahak.js → Sla-CSg5wLH7.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-_Nzyi4K9.js → SpeechSettings-DMPxTc5x.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-BAOLFlRq.js → SyncSettings-CPG7l30y.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-BpmvL1Eq.js → Tasks-Y1kOVvVL.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-Dkr_vRdJ.js → Templates-jt9NagL0.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-kM7lHUFR.js → Tenant-DauuJICx.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-9zfc41aU.js → Terminal-E9rnKeGq.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-Cg_7j6cj.js → TimelineRenderer-Cc7z2APG.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-Cs1aikaM.js → Tokens-CV0UthRA.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-DKYPJ9gl.js → Trigger-BFcJJGfu.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-BFy1Sm8B.js → Trust-BAydbNJA.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-B31L9NBH.js → UkeySign-DcOS6sqL.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-OMmUYdIC.js → VideoEditing-BLHJZvif.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-y3aE7oru.js → Wallet-4QFLKHwW.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-C0ICKvpu.js → WebAuthn-BocEOOSj.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-Cq5UYbr5.js → WorkflowEditor-DCfF7D0B.js} +1 -1
- package/src/assets/web-panel/assets/{chat-B1ijaKFv.js → chat-CxvfsYGr.js} +1 -1
- package/src/assets/web-panel/assets/{colors-CHkI8PDg.js → colors-KtQB9DmQ.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-1BYvgWEs.js → compact-item-Dx4J6arN.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-BGti56u4.js → createContext-Cq0olgzo.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-CmgDNkoO.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-Cr87Fph1.js → hasIn-Bf9-h3D-.js} +1 -1
- package/src/assets/web-panel/assets/{index-CS0MIE2C.js → index-0fi8DIVQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DJjnXDAD.js → index-6dDDSCHD.js} +1 -1
- package/src/assets/web-panel/assets/{index-tY479EoQ.js → index-B3xfiItB.js} +1 -1
- package/src/assets/web-panel/assets/{index-BjgtiMdY.js → index-B8WuPI-h.js} +1 -1
- package/src/assets/web-panel/assets/{index-CQWMHlY7.js → index-BHmdMKYl.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bdkrut2A.js → index-BKtQyb2o.js} +1 -1
- package/src/assets/web-panel/assets/{index-6Ta8Pg47.js → index-BMcC4cbj.js} +1 -1
- package/src/assets/web-panel/assets/{index-BA0FMuDX.js → index-BO6XvO-C.js} +1 -1
- package/src/assets/web-panel/assets/{index-B4BSM3BK.js → index-B_8UcDan.js} +1 -1
- package/src/assets/web-panel/assets/index-BpIZ2S01.js +1 -0
- package/src/assets/web-panel/assets/{index-BkFXPrdx.js → index-Br1mDMfO.js} +1 -1
- package/src/assets/web-panel/assets/index-C-VmKuyv.js +1 -0
- package/src/assets/web-panel/assets/{index-CkcWhgLB.js → index-C9yaUHm9.js} +1 -1
- package/src/assets/web-panel/assets/{index-DzevrmLK.js → index-CK2U_AHi.js} +1 -1
- package/src/assets/web-panel/assets/{index-D6g4jxdE.js → index-CaIclw-E.js} +1 -1
- package/src/assets/web-panel/assets/{index-CmmSJBNi.js → index-CeYP_kT9.js} +1 -1
- package/src/assets/web-panel/assets/{index-BKb16YKp.js → index-Cfsn7N18.js} +1 -1
- package/src/assets/web-panel/assets/{index-B1yur8MU.js → index-ClUfSChI.js} +1 -1
- package/src/assets/web-panel/assets/{index-1WxCzqYq.js → index-CmQuG0fr.js} +1 -1
- package/src/assets/web-panel/assets/{index-BYpqBWlt.js → index-CpO6DKuu.js} +1 -1
- package/src/assets/web-panel/assets/{index-DcoI3ENn.js → index-CqnggDos.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bni5GodE.js → index-Cy865Hhq.js} +1 -1
- package/src/assets/web-panel/assets/{index-CbkGda_k.js → index-Cz7f4Jaq.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dam-LB_J.js → index-D2BfSIrn.js} +1 -1
- package/src/assets/web-panel/assets/{index-fhpMyq0u.js → index-DBRlZdZj.js} +1 -1
- package/src/assets/web-panel/assets/{index-CevUJTXd.js → index-DDAe1UmZ.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cvu95WPI.js → index-DFdEDvFn.js} +1 -1
- package/src/assets/web-panel/assets/{index-CDTNnQDz.js → index-DI5bRqNG.js} +1 -1
- package/src/assets/web-panel/assets/{index-B8Jb_cGt.js → index-DMR-keCL.js} +1 -1
- package/src/assets/web-panel/assets/{index-DCkvhzaY.js → index-DQDR-_ai.js} +1 -1
- package/src/assets/web-panel/assets/{index-rVnXNFST.js → index-DZWjYfWt.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dnp-4yPc.js → index-DfrFNMvz.js} +1 -1
- package/src/assets/web-panel/assets/{index-CjBkVrq9.js → index-DnU-dUWd.js} +1 -1
- package/src/assets/web-panel/assets/{index-Duv0TfJa.js → index-DsCdl2Od.js} +1 -1
- package/src/assets/web-panel/assets/{index-rO6VKJv5.js → index-_FIz-0tp.js} +1 -1
- package/src/assets/web-panel/assets/{index-DHJtAEx8.js → index-gt5N6VM_.js} +1 -1
- package/src/assets/web-panel/assets/{index-BOjTRSHE.js → index-hSzyoXri.js} +3 -3
- package/src/assets/web-panel/assets/{index-CvcpesEZ.js → index-iE9tqEN5.js} +1 -1
- package/src/assets/web-panel/assets/{index-C_lEztok.js → index-nmyDOh_b.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DAGtnwoX.js → initDefaultProps-DvzKJ6o5.js} +1 -1
- package/src/assets/web-panel/assets/{motion-02FXBi5C.js → motion-D1yTvmxW.js} +1 -1
- package/src/assets/web-panel/assets/{move-BLf7rhzJ.js → move-DxtSIF8K.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-Ct6i1vqQ.js → mtc-parser-BDsQgIHY.js} +1 -1
- package/src/assets/web-panel/assets/{omit-DKvTU8IT.js → omit-UVBJW8kh.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-DqDsKoMe.js → pickAttrs-D4QqtTyX.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-kae6Cnwx.js → placementArrow-QXmu6vBf.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-DzFM_TQf.js → responsiveObserve-D-PmXO9M.js} +1 -1
- package/src/assets/web-panel/assets/{slide-qDjNFPuM.js → slide-CKbGxEZJ.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-BihSr7G3.js → statusUtils-BbgXPkXm.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-BzoT0TfJ.js → styleChecker-DOr9rk68.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-CjXXcU1j.js → useFlexGapSupport-B2wO2r36.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-DrWcbDJ1.js → useFs-SeVGBK34.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DO1oBNTE.js → usePersonalDataHub-DUJBCxjD.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-BR6crWko.js → vnode-CF4EYsig.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-DmKLfw6W.js → zoom-pRUs5pqI.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/data/changelog.json +39 -0
- package/src/lib/decision-layer/providers.js +84 -9
- package/src/lib/decision-layer/runtime.js +86 -49
- package/src/lib/direct-model-usage.js +14 -3
- package/src/lib/evolution/evolution-eval-child-evidence-ledger-adapter.js +2 -0
- package/src/lib/evolution/evolution-eval-cohort-enrollment.js +770 -0
- package/src/lib/evolution/evolution-eval-contracts.js +86 -0
- package/src/lib/evolution/evolution-eval-gate.js +136 -85
- package/src/lib/evolution/evolution-eval-launch-admission.js +505 -0
- package/src/lib/evolution/skill-target-matrix-eval.js +84 -3
- package/src/lib/with-file-lock.js +81 -16
- package/src/runtime/headless-runner.js +8 -0
- package/src/assets/web-panel/assets/devWarning-Isft1nEX.js +0 -1
- package/src/assets/web-panel/assets/index-B_T9NUk7.js +0 -1
- package/src/assets/web-panel/assets/index-DBqUxaat.js +0 -1
|
@@ -519,7 +519,62 @@ function reclaimLegacyDirectory(_fs, lockDir, stat) {
|
|
|
519
519
|
return true;
|
|
520
520
|
}
|
|
521
521
|
|
|
522
|
-
function completePublishedRelease(
|
|
522
|
+
function completePublishedRelease(
|
|
523
|
+
_fs,
|
|
524
|
+
lockDir,
|
|
525
|
+
owner,
|
|
526
|
+
claimant,
|
|
527
|
+
ownerAlive,
|
|
528
|
+
ownerBodyFinished = false,
|
|
529
|
+
) {
|
|
530
|
+
const finishedPath = path.join(
|
|
531
|
+
lockDir,
|
|
532
|
+
`.release-body-finished-${owner.token}`,
|
|
533
|
+
);
|
|
534
|
+
if (ownerBodyFinished) {
|
|
535
|
+
// Publication is already known by the owner. Persist its ended-body proof
|
|
536
|
+
// before reading the release marker: a sharing error on that read must not
|
|
537
|
+
// strand an abandoned staging path behind a still-live owner.
|
|
538
|
+
const ownerPath = path.join(lockDir, "owner.json");
|
|
539
|
+
const current = readOwnerResult(_fs, ownerPath);
|
|
540
|
+
if (
|
|
541
|
+
current.error?.code === "ENOENT" ||
|
|
542
|
+
(current.owner && !sameOwner(current.owner, owner))
|
|
543
|
+
) {
|
|
544
|
+
return { published: true, completed: true };
|
|
545
|
+
}
|
|
546
|
+
if (current.error) throw current.error;
|
|
547
|
+
try {
|
|
548
|
+
writeOwnerMarker(_fs, finishedPath, owner);
|
|
549
|
+
} catch (error) {
|
|
550
|
+
if (error?.code === "ENOENT") {
|
|
551
|
+
const latest = readOwnerResult(_fs, ownerPath);
|
|
552
|
+
if (
|
|
553
|
+
latest.error?.code === "ENOENT" ||
|
|
554
|
+
(latest.owner && !sameOwner(latest.owner, owner))
|
|
555
|
+
) {
|
|
556
|
+
return { published: true, completed: true };
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
if (error?.code !== "EEXIST") throw error;
|
|
560
|
+
const existing = readOwnerResult(_fs, finishedPath);
|
|
561
|
+
if (existing.error) throw existing.error;
|
|
562
|
+
if (!sameOwner(existing.owner, owner)) {
|
|
563
|
+
throw new Error("Mismatched ended-body release proof");
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
// A contender can finish the handoff after the first owner read. Remove
|
|
567
|
+
// only our own proof if its write raced with a replacement directory.
|
|
568
|
+
const latest = readOwnerResult(_fs, ownerPath);
|
|
569
|
+
if (
|
|
570
|
+
latest.error?.code === "ENOENT" ||
|
|
571
|
+
(latest.owner && !sameOwner(latest.owner, owner))
|
|
572
|
+
) {
|
|
573
|
+
removeOwnMarker(_fs, finishedPath, owner);
|
|
574
|
+
return { published: true, completed: true };
|
|
575
|
+
}
|
|
576
|
+
if (latest.error) throw latest.error;
|
|
577
|
+
}
|
|
523
578
|
const markerPath = path.join(lockDir, `.release-${owner.token}`);
|
|
524
579
|
const marker = readOwner(_fs, markerPath);
|
|
525
580
|
if (!sameOwner(marker, owner)) {
|
|
@@ -536,7 +591,9 @@ function completePublishedRelease(_fs, lockDir, owner, claimant, ownerAlive) {
|
|
|
536
591
|
marker.releaseAfterPathRemoved &&
|
|
537
592
|
pathStatus(_fs, marker.releaseAfterPathRemoved) !== "absent"
|
|
538
593
|
) {
|
|
539
|
-
|
|
594
|
+
if (!sameOwner(readOwner(_fs, finishedPath), owner)) {
|
|
595
|
+
return { published: true, completed: false };
|
|
596
|
+
}
|
|
540
597
|
}
|
|
541
598
|
const claimPath = path.join(lockDir, `.release-claim-${owner.token}`);
|
|
542
599
|
for (;;) {
|
|
@@ -602,13 +659,20 @@ function releaseOwnedDirectory(
|
|
|
602
659
|
ownerAlive,
|
|
603
660
|
releaseWasPublished = false,
|
|
604
661
|
) {
|
|
662
|
+
if (releaseWasPublished) {
|
|
663
|
+
// A contender can already detach this directory. Never use the direct
|
|
664
|
+
// read-owner -> rename path after publication: it could rename a new
|
|
665
|
+
// owner's lock if a contender completes the handoff between those calls.
|
|
666
|
+
// The exclusive cleanup claim serializes all published-release helpers.
|
|
667
|
+
// The owner's body has ended even when its final commit threw and left
|
|
668
|
+
// the staging path behind. Only this owner may bypass that guard; other
|
|
669
|
+
// contenders must continue waiting until commit or claimed cleanup.
|
|
670
|
+
completePublishedRelease(_fs, lockDir, owner, owner, ownerAlive, true);
|
|
671
|
+
return true;
|
|
672
|
+
}
|
|
605
673
|
if (!sameOwner(readOwner(_fs, path.join(lockDir, "owner.json")), owner)) {
|
|
606
|
-
//
|
|
607
|
-
|
|
608
|
-
// A missing or replacement lock therefore proves successful release, not
|
|
609
|
-
// ownership loss. Without that publication the strict legacy verdict stays
|
|
610
|
-
// fail-closed.
|
|
611
|
-
return releaseWasPublished;
|
|
674
|
+
// Without a published handoff, missing or replaced ownership fails closed.
|
|
675
|
+
return false;
|
|
612
676
|
}
|
|
613
677
|
// Atomically move the exact owned directory out of the acquisition path,
|
|
614
678
|
// then remove that uniquely-tokened directory. A replacement owner may
|
|
@@ -627,7 +691,7 @@ function releaseOwnedDirectory(
|
|
|
627
691
|
}
|
|
628
692
|
return true;
|
|
629
693
|
} catch (error) {
|
|
630
|
-
if (error?.code === "ENOENT") return
|
|
694
|
+
if (error?.code === "ENOENT") return false;
|
|
631
695
|
// Windows sharing transients fall back to the marker-based release.
|
|
632
696
|
}
|
|
633
697
|
}
|
|
@@ -635,18 +699,19 @@ function releaseOwnedDirectory(
|
|
|
635
699
|
try {
|
|
636
700
|
writeOwnerMarker(_fs, markerPath, owner);
|
|
637
701
|
} catch (error) {
|
|
638
|
-
if (error?.code === "ENOENT") return
|
|
702
|
+
if (error?.code === "ENOENT") return false;
|
|
639
703
|
if (error?.code === "EEXIST") {
|
|
640
704
|
const existing = readOwner(_fs, markerPath);
|
|
641
705
|
if (!sameOwner(existing, owner)) return false;
|
|
642
|
-
|
|
643
|
-
|
|
706
|
+
completePublishedRelease(_fs, lockDir, owner, owner, ownerAlive);
|
|
707
|
+
return true;
|
|
644
708
|
}
|
|
645
709
|
throw error;
|
|
646
710
|
}
|
|
647
711
|
if (!sameOwner(readOwner(_fs, path.join(lockDir, "owner.json")), owner)) {
|
|
648
|
-
|
|
649
|
-
|
|
712
|
+
// The successful marker write above already handed release to contenders.
|
|
713
|
+
// A replacement owner is therefore a completed handoff, not lock loss.
|
|
714
|
+
return true;
|
|
650
715
|
}
|
|
651
716
|
if (typeof _fs.renameSync === "function") {
|
|
652
717
|
// After publishing the marker, use the same exclusive claim protocol as a
|
|
@@ -657,8 +722,8 @@ function releaseOwnedDirectory(
|
|
|
657
722
|
// contender may win the cleanup claim before this owner does; that is a
|
|
658
723
|
// successful release, not lost ownership, because every acquirer must
|
|
659
724
|
// complete or wait behind the published marker before entering its body.
|
|
660
|
-
|
|
661
|
-
|
|
725
|
+
completePublishedRelease(_fs, lockDir, owner, owner, ownerAlive);
|
|
726
|
+
return true;
|
|
662
727
|
}
|
|
663
728
|
_fs.rmSync(lockDir, { recursive: true, force: true });
|
|
664
729
|
return true;
|
|
@@ -2443,6 +2443,13 @@ async function runAgentHeadlessInWorkspace(
|
|
|
2443
2443
|
const skillDecisionOptions = resolveHeadlessSkillDecisionOptions(options);
|
|
2444
2444
|
let skillDecisionRuntime = null;
|
|
2445
2445
|
if (skillDecisionOptions.mode !== "off") {
|
|
2446
|
+
const previousUnknownDecisionUsage = store.findLatestEvent(
|
|
2447
|
+
sessionId,
|
|
2448
|
+
"model_usage_unknown",
|
|
2449
|
+
(event) =>
|
|
2450
|
+
typeof event?.data?.operationId === "string" &&
|
|
2451
|
+
event.data.operationId.startsWith("decision:"),
|
|
2452
|
+
);
|
|
2446
2453
|
const decisionProvider =
|
|
2447
2454
|
deps.decisionProvider ||
|
|
2448
2455
|
createDecisionProvider({
|
|
@@ -2469,6 +2476,7 @@ async function runAgentHeadlessInWorkspace(
|
|
|
2469
2476
|
observe: (observation) =>
|
|
2470
2477
|
persistDecisionEvent("skill_decision_observation", observation),
|
|
2471
2478
|
sessionBudget: options.sessionBudget || null,
|
|
2479
|
+
initialUsageUnknown: previousUnknownDecisionUsage != null,
|
|
2472
2480
|
timeoutMs: skillDecisionOptions.timeoutMs,
|
|
2473
2481
|
});
|
|
2474
2482
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Q as r}from"./index-BOjTRSHE.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as o}from"./Col-BmstiyBM.js";import{a0 as t}from"./index-BOjTRSHE.js";import"./vendor-Bn1JzzAn.js";import"./index-BA0FMuDX.js";import"./icons-DG5UD-6K.js";const s=t(o);export{s as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as o}from"./Row-B6Ukqvli.js";import{a0 as t}from"./index-BOjTRSHE.js";import"./vendor-Bn1JzzAn.js";import"./responsiveObserve-DzFM_TQf.js";import"./useFlexGapSupport-CjXXcU1j.js";import"./styleChecker-BzoT0TfJ.js";import"./index-BA0FMuDX.js";import"./icons-DG5UD-6K.js";const l=t(o);export{l as default};
|