instar 1.3.856 → 1.3.857

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.
@@ -0,0 +1,27 @@
1
+ # Upgrade Guide — vNEXT
2
+
3
+ <!-- assembled-by: assemble-next-md -->
4
+ <!-- bump: patch -->
5
+
6
+ ## What Changed
7
+
8
+ Standalone Playwright scripts can now voluntarily acquire and release the same
9
+ machine-local operator-seat lease used by Playwright MCP calls. Ownership-checked
10
+ release prevents late cleanup from clearing a successor's lease, while idempotent
11
+ cleanup keeps `finally` blocks simple.
12
+
13
+ ## What to Tell Your User
14
+
15
+ One-off Playwright scripts can coordinate with normal agent browser drives instead of
16
+ quietly bypassing the shared browser-seat lock.
17
+
18
+ ## Summary of New Capabilities
19
+
20
+ The `playwright-seat` command and authenticated seat-release route expose the existing
21
+ host-wide lease to trusted standalone scripts.
22
+
23
+ ## Evidence
24
+
25
+ TypeScript and the full lint chain pass. Thirty-nine focused unit/integration tests and
26
+ a real temporary-home CLI smoke cover acquire, conflict, ownership-safe release,
27
+ idempotent cleanup, and successor acquisition.
@@ -0,0 +1,7 @@
1
+ # Standalone Playwright seat lease — ELI16
2
+
3
+ Playwright MCP already takes a numbered key before using the shared browser, but a
4
+ one-off Playwright script entered through a side door and skipped the key desk. This
5
+ adds an explicit check-out/check-in path for those scripts. Check-in only works for
6
+ the holder that checked out the key, so an old script cannot accidentally erase a
7
+ new script's reservation.
@@ -0,0 +1,66 @@
1
+ # Side-Effects Review — standalone Playwright seat lease
2
+
3
+ **Version / slug:** `playwright-standalone-seat-lease`
4
+ **Date:** `2026-07-16`
5
+ **Tier:** 2
6
+ **Second-pass reviewer:** independent Codex collaboration reviewer — concur
7
+
8
+ ## Summary
9
+
10
+ Adds an ownership-checked release operation to `PlaywrightSeatLease`, an authenticated
11
+ release route, and a `playwright-seat` CLI acquire/release path so trusted standalone
12
+ Playwright scripts can participate in the existing host-wide lease.
13
+
14
+ ## Decision-point inventory
15
+
16
+ - `PlaywrightSeatLease.release` — **add** — removes the record only for the current holder.
17
+ - release route — **add** — returns conflict for a different live holder.
18
+ - CLI acquire/release — **add** — exposes the same store to standalone local scripts.
19
+
20
+ ## Over-block / under-block
21
+
22
+ The existing default-seat lease still conservatively serializes all users of that
23
+ physical seat. Standalone scripts remain voluntary participants: a script that ignores
24
+ this interface can still contend. This change does not pretend to sandbox hostile or
25
+ uncooperative local processes.
26
+
27
+ ## Abstraction and authority
28
+
29
+ Release belongs in the existing lease store and uses its existing filesystem lock;
30
+ the CLI and route are adapters, not second authorities. Ownership is an exact invariant,
31
+ not an inferred signal. A mismatched holder cannot release, and an absent record is an
32
+ idempotent success for cleanup. Callers must choose a unique ID per active drive
33
+ invocation and reuse it only for that invocation's matching release; intentional ID
34
+ reuse is intentional same-owner renewal semantics.
35
+
36
+ ## Interactions and races
37
+
38
+ Acquire and release serialize on the same lock. The ownership check and unlink happen
39
+ inside that critical section, preventing a late cleanup from deleting a successor's
40
+ lease. No scheduler, retry loop, notification, or external operation is added.
41
+
42
+ ## External surfaces and cross-machine posture
43
+
44
+ The new route is authenticated and the CLI is local. Both expose holder labels and
45
+ expiry already present in the acquire surface; no browser credentials or page data are
46
+ read. The state remains **machine-local by design** because the guarded browser profile
47
+ is a physical resource on that machine.
48
+
49
+ ## Rollback
50
+
51
+ Revert the adapters and release method. Existing lease records remain compatible and
52
+ expire normally; no migration or repair is required.
53
+
54
+ ## Verification
55
+
56
+ - TypeScript typecheck
57
+ - 39 focused unit/integration tests covering ownership mismatch, successful release,
58
+ idempotent cleanup, successor acquisition, route behavior, and registry classification
59
+
60
+ ## Second-pass review
61
+
62
+ **Verdict:** concur. The reviewer confirmed that release ownership checking and unlink
63
+ are atomic under the same host-wide lock as acquire; route authentication/write
64
+ classification, CLI conflict behavior, and machine-local posture are sound. The review's
65
+ nonblocking precision note — explicitly require a unique holder ID per invocation — is
66
+ incorporated in CLI help, docs, and this artifact.