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.
- package/dist/cli.js +25 -0
- package/dist/cli.js.map +1 -1
- package/dist/core/PlaywrightSeatLease.d.ts +16 -0
- package/dist/core/PlaywrightSeatLease.d.ts.map +1 -1
- package/dist/core/PlaywrightSeatLease.js +24 -0
- package/dist/core/PlaywrightSeatLease.js.map +1 -1
- package/dist/core/WriteDomainRegistry.d.ts.map +1 -1
- package/dist/core/WriteDomainRegistry.js +11 -0
- package/dist/core/WriteDomainRegistry.js.map +1 -1
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +23 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +78 -78
- package/upgrades/1.3.857.md +27 -0
- package/upgrades/eli16/playwright-standalone-seat-lease.eli16.md +7 -0
- package/upgrades/side-effects/playwright-standalone-seat-lease.md +66 -0
|
@@ -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.
|