@ngockhoale/ukit 3.4.68 → 3.4.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/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to UKit are documented here.
|
|
4
4
|
|
|
5
|
+
## 3.4.69 - 2026-10-25
|
|
6
|
+
|
|
7
|
+
**Narrow shared-lock cancellation repair; no new unattended-Handoff certification.**
|
|
8
|
+
|
|
9
|
+
- Fix: cancellation after a successful lock owner stamp now passes through token-checked, best-effort release before returning `aborted`; the callback remains unexecuted. Deterministic regression verifies lock absence and immediate reacquisition.
|
|
10
|
+
- Tests: managed Handoff template cases pin owner-byte preservation, exact sidecar bytes/provenance and no-write aligned behavior. Preflight fixtures now use an independent temporary Git repository with ownership-checked cleanup, avoiding default dirty-worktree/sandbox accumulation without touching retained evidence.
|
|
11
|
+
- Verification: independent original and cleanup-only reviews approved with minor findings; full release verifier passed (core 10,741 passed / three skipped, isolated handoff 351/351, artifact 39/39). Cleanup review retains a non-blocking concurrency-sensitive source-inventory assertion and fail-loud fixture cleanup caveats.
|
|
12
|
+
- Limits unchanged: native isolation dispatch, clean unattended lifecycle/native-host acceptance, historical `ukitcmd25` loss and unidentified `79/1` remain unresolved. This fix is not established as the cause of those incidents. No 3.4.68 live-gate waiver is inherited or live acceptance claimed.
|
|
13
|
+
|
|
5
14
|
## 3.4.68 - 2026-10-25
|
|
6
15
|
|
|
7
16
|
**Stable hardening release; outstanding live acceptance explicitly deferred by the owner for the internal six-person team. This is not certification of unattended Handoff.**
|
package/package.json
CHANGED
|
@@ -588,10 +588,10 @@ export async function withAsyncLock(filePath, { signal, deadlineMs = LOCK_MAX_SL
|
|
|
588
588
|
// Abort between acquire and the critical section releases the owned lock through
|
|
589
589
|
// the normal finally path and reports 'aborted' instead of running fn after the
|
|
590
590
|
// caller was cancelled.
|
|
591
|
-
if (signal?.aborted) {
|
|
592
|
-
return { ok: false, reason: 'aborted', waitedMs: Date.now() - startedAt };
|
|
593
|
-
}
|
|
594
591
|
try {
|
|
592
|
+
if (signal?.aborted) {
|
|
593
|
+
return { ok: false, reason: 'aborted', waitedMs: Date.now() - startedAt };
|
|
594
|
+
}
|
|
595
595
|
return { ok: true, value: await fn() };
|
|
596
596
|
} finally {
|
|
597
597
|
// `owned` is only true when the mkdir AND the owner stamp both succeeded, so a
|