instar 1.3.855 → 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/monitoring/frameworkActivitySignals.js +3 -3
- package/dist/monitoring/frameworkActivitySignals.js.map +1 -1
- package/dist/monitoring/sentinelWiring.d.ts.map +1 -1
- package/dist/monitoring/sentinelWiring.js +1 -0
- package/dist/monitoring/sentinelWiring.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.856.md +20 -0
- package/upgrades/1.3.857.md +27 -0
- package/upgrades/eli16/codex-hour-activity.eli16.md +7 -0
- package/upgrades/eli16/playwright-standalone-seat-lease.eli16.md +7 -0
- package/upgrades/side-effects/codex-hour-activity.md +45 -0
- package/upgrades/side-effects/playwright-standalone-seat-lease.md +66 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
Codex live-activity detection now recognizes the hour-scale working timer that the TUI renders as `Nh Nm Ns`, in addition to its existing seconds and minutes forms. The spinner-immune output hash also ignores that hour timer as it ticks.
|
|
9
|
+
|
|
10
|
+
## What to Tell Your User
|
|
11
|
+
|
|
12
|
+
Very long Codex turns no longer lose their “still working” signal after crossing one hour, so monitoring is less likely to mistake genuine long-running work for an idle or stuck session.
|
|
13
|
+
|
|
14
|
+
## Summary of New Capabilities
|
|
15
|
+
|
|
16
|
+
Codex activity monitoring handles real seconds, minutes, and hours TUI duration formats.
|
|
17
|
+
|
|
18
|
+
## Evidence
|
|
19
|
+
|
|
20
|
+
The hour fixture uses the real Codex rendering `Working (10h 19m 44s • esc to interrupt)`. TypeScript passes, and 36 focused activity and spinner-normalization assertions pass.
|
|
@@ -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
|
+
# Codex hour-scale activity detection — plain-English overview
|
|
2
|
+
|
|
3
|
+
Codex displays a live timer while it works. Monitoring already understood the timer in seconds and minutes, but after a turn crossed one hour Codex changed the timer to a form like `10h 19m 44s`. The detector no longer recognized it, so genuinely active long work could look idle.
|
|
4
|
+
|
|
5
|
+
This change teaches the existing detector that exact hour format. It also prevents the ticking hour timer from looking like fresh model output by removing the duration before comparing successive terminal snapshots. Real new text still changes the comparison, so an unchanged, frozen working screen can still be recognized as stalled.
|
|
6
|
+
|
|
7
|
+
Nothing is enabled, configured, or migrated. It is a small parsing correction backed by the real hour-scale Codex display and focused tests for both live detection and stalled-output hashing.
|
|
@@ -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,45 @@
|
|
|
1
|
+
# Side-Effects Review — Codex hour-scale activity detection
|
|
2
|
+
|
|
3
|
+
**Date:** 2026-07-16
|
|
4
|
+
**Author:** instar-codey
|
|
5
|
+
|
|
6
|
+
## Summary
|
|
7
|
+
|
|
8
|
+
Extends the existing Codex TUI duration grammar from `Ns` / `Nm Ns` to the real `Nh Nm Ns` hour rendering. The same hour token is removed from the spinner-immune hash so a ticking clock does not masquerade as new model output.
|
|
9
|
+
|
|
10
|
+
## Decision-point inventory
|
|
11
|
+
|
|
12
|
+
- `CODEX_CLI_SIGNAL.toolCallOrSpinner` and `.liveActivity`: identify a current Codex working-status line.
|
|
13
|
+
- `stripVolatileStatus`: removes only the exact hour/minute/second duration token before change hashing.
|
|
14
|
+
|
|
15
|
+
## Seven dimensions
|
|
16
|
+
|
|
17
|
+
1. **Over-block:** the pattern still requires the literal `Working (` prefix and a complete duration ending in seconds, so ordinary prose containing hours does not become a live signal.
|
|
18
|
+
2. **Under-block:** seconds, minutes, and the observed hour form are pinned. Unknown future formats remain unchanged rather than guessed.
|
|
19
|
+
3. **Abstraction:** duration recognition remains in the shared framework signal; volatile clock normalization remains in its existing hashing boundary.
|
|
20
|
+
4. **Signal vs authority:** the status line is a liveness signal, not proof of semantic progress. Existing unchanged-pane logic can still classify a frozen spinner as stalled.
|
|
21
|
+
5. **Interactions:** idle model-name/composer text and scrollback-persistent action bullets retain their existing behavior.
|
|
22
|
+
6. **External surfaces:** none. No messages, APIs, persistent state, or credentials change.
|
|
23
|
+
7. **Rollback:** code-only revert with no migration or cleanup.
|
|
24
|
+
|
|
25
|
+
## Judgment-point check
|
|
26
|
+
|
|
27
|
+
No new semantic judgment is introduced. This is an exact finite grammar extension grounded in an observed Codex TUI rendering.
|
|
28
|
+
|
|
29
|
+
## Operator-surface quality
|
|
30
|
+
|
|
31
|
+
No operator surface changes. Monitoring becomes more truthful without asking the user to configure or operate anything.
|
|
32
|
+
|
|
33
|
+
## Multi-machine posture
|
|
34
|
+
|
|
35
|
+
Framework pane parsing is machine-local on every host. The same deterministic grammar ships to each machine; no replicated state or cross-machine authority is involved.
|
|
36
|
+
|
|
37
|
+
## Rollback cost
|
|
38
|
+
|
|
39
|
+
One code revert. There is no state to repair.
|
|
40
|
+
|
|
41
|
+
## Evidence pointers
|
|
42
|
+
|
|
43
|
+
- Real hour form: `Working (10h 19m 44s • esc to interrupt)`.
|
|
44
|
+
- 36 focused unit assertions pass across framework signals, activity classification, and spinner-immune hashing.
|
|
45
|
+
- Full TypeScript check passes.
|
|
@@ -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.
|