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.
@@ -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.