@llblab/pi-telegram 0.24.1 → 0.24.2

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/AGENTS.md CHANGED
@@ -149,6 +149,7 @@ The core product loop is mobile continuation: start or supervise work in the ter
149
149
 
150
150
  - Treat queue handling, compaction interaction, and lifecycle-hook state transitions as regression-prone areas; validate them after changing dispatch logic
151
151
  - Keep the standard `npm run typecheck` gate strict about unused locals and parameters so stale imports and abandoned adapters fail validation instead of accumulating silently
152
+ - Keep push/PR CI on minimum Node `22.19.0` across Ubuntu, macOS, and Windows with typecheck, tests, and package dry-run on every OS; run audit once on Ubuntu, require the native Windows named-pipe roundtrip to execute, and keep Unix-only skips explicit by protected boundary.
152
153
  - Route important runtime failures through the recent runtime event recorder so `/telegram-status` remains useful for post-mortem debugging. Keep the compact TUI status bar bounded to the generic `error` state; detailed error messages belong only in diagnostics/logs, never inline beside the status label.
153
154
  - Treat remaining Markdown-to-HTML rendering as Telegram UI/compat output work, not generic Markdown rendering or assistant reply delivery
154
155
  - Preserve literal code content in Telegram rendering
package/BACKLOG.md CHANGED
@@ -2,31 +2,19 @@
2
2
 
3
3
  _This backlog tracks only open release-relevant work: hotfixes, bounded maintenance, live runtime verification, evidence-gated Telegram client follow-ups, and upstream Pi API blockers. Completed outcomes and validation evidence belong in `CHANGELOG.md`, not in this queue._
4
4
 
5
- ## P1 — Cross-Platform Runtime Persistence Optimization
5
+ ## P1 — Native Windows Runtime Smoke
6
6
 
7
- Context: `owners.json`, `state.json`, and `logs.jsonl` protect different ownership, recovery, and diagnostics boundaries. Their optimized persistence paths must preserve multiple concurrent Pi instances, classic singleton ownership, Threaded Mode leader election, exact owner/generation/epoch fencing, crash recovery, and native Windows behavior. Deterministic regressions, docs, and all local release gates pass; native Windows remains the final environment-only proof.
7
+ Context: Deterministic ownership, persistence, recovery, process, and named-pipe coverage passes on native hosted Windows. A live Telegram client remains the only unverified platform boundary and may be exercised in a later release cycle rather than tied to a specific version.
8
8
 
9
9
  Open work:
10
10
 
11
- - [ ] Run the current diff through native Windows classic and Threaded Mode smoke: connect, ownership handoff, leader/follower registration, stale recovery, live downgrade, diagnostics rotation, and shutdown cleanup. Record named-pipe and atomic-file evidence explicitly rather than treating Linux tests as cross-platform proof.
11
+ - [ ] Run a current build through native Windows classic and Threaded Mode smoke: connect, ownership handoff, leader/follower registration, stale recovery, live downgrade, diagnostics rotation, and shutdown cleanup. Record concrete named-pipe, atomic-file, and Telegram-client evidence.
12
12
 
13
- Done when: native Windows evidence confirms that the measured filesystem-write reductions do not weaken singleton or leader/follower authority, recovery, diagnostics, or shutdown behavior.
14
-
15
- ## P1 — Evidence-Backed Telegram Client Follow-Ups
16
-
17
- Context: The release should avoid speculative live-test matrices. Future Telegram-client quirks should be handled only when concrete evidence or a minimized fixture exists.
18
-
19
- Open work:
20
-
21
- - [ ] Capture any new Telegram client or Bot API behavior that contradicts the documented Threaded Mode contract, including a live local/autonomous `…typing` observation when convenient.
22
- - [ ] Add a focused regression or documented client caveat only for confirmed behavior.
23
- - [ ] Keep one-off environment names, thread names, and operator-specific observations out of repository context unless they demonstrate a general product issue.
24
-
25
- Done when: new client quirks are either fixed with targeted coverage or documented as evidence-backed exceptions, without keeping broad manual smoke matrices in the backlog.
13
+ Done when: native Windows live evidence confirms singleton and leader/follower authority, recovery, diagnostics, downgrade, and shutdown behavior.
26
14
 
27
15
  ## Blocked — Same-Thread Telegram `/new`
28
16
 
29
- Blocked: upstream Pi core API. Issue: https://github.com/earendil-works/pi/issues/5952
17
+ Blocked: upstream Pi core API remains unavailable. Issue #5952 was auto-closed by intake policy rather than resolved: https://github.com/earendil-works/pi/issues/5952
30
18
 
31
19
  Context: Threaded Mode manual followers are separate visible Pi processes. Same-thread `/new` is a different feature: replacing the current Pi session inside the same Telegram thread. Extension-only hacks are rejected because they would desynchronize Pi lifecycle/TUI semantics.
32
20
 
package/CHANGELOG.md CHANGED
@@ -2,15 +2,19 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.24.2: Context Compression Hotfix
6
+
7
+ - `Project Context`: Consolidated the `0.24.1` release narrative into final domain outcomes, reduced the backlog to concrete open work, and made minimum-Node Ubuntu/macOS/Windows CI a durable engineering contract. Impact: future agents receive a smaller, current project model without losing release behavior or platform-validation requirements.
8
+
5
9
  ## 0.24.1: Persistence I/O And Cross-Platform Validation Hotfix
6
10
 
7
- - `Cross-Platform CI`: Replaced Ubuntu-only validation with a fail-fast-disabled Ubuntu, macOS, and Windows matrix on minimum Node `22.19.0`; every runner performs typecheck, tests, and package dry-run, while audit remains a single Ubuntu gate. The first hosted run hardened awaited bounded timers for Node 22, maps filesystem-style endpoints onto native Windows pipes, bounds long macOS domain-socket paths through a private hashed fallback, scopes POSIX assertions to Unix, and uses native test paths. Impact: Unix socket/atomic-file behavior and Windows named-pipe/process behavior now receive preventive push/PR coverage rather than release-time assumptions.
8
- - `Test Cooling`: Added test-only transaction timing controls, a shared bounded Node-eval fixture for config/lock/log races, and one table-driven synthesis/transcription registry contract while preserving each named behavior. Removed 19 declaration-only exports after composition/package/test/docs reachability proof; no single-reference exports remain. Impact: the lock suite drops from roughly nine seconds to three, repeated process plumbing shrinks, and production retries, failure assertions, compatibility, and recovery paths remain unchanged.
9
- - `Release History`: Retrospectively reviewed all 85 changelog sections, consolidated only evidence-backed noisy releases, removed intermediate refactor/validation/backlog chronology, and preserved every version heading plus shipped behavior, breaking changes, migrations, limitations, compatibility boundaries, and material operator evidence. Impact: changelog source shrinks from 188,115 to about 135,000 characters while already compact historical sections remain intact.
10
- - `Global Config Concurrency`: Added regressions for a two-store same-profile settings-versus-stale-polling race and for unrelated global/named-profile disk changes arriving after a store load. Documented recursive delta merge, monotonic offset, same-leaf commit-order, and non-transactional editor boundaries. Semantically unchanged merges now adopt the latest disk snapshot in memory without replacing `telegram.json`. Impact: the transaction delta merge now carries explicit coverage that polling progress remains monotonic without erasing global assistant or voice settings written by another live Pi instance.
11
- - `Diagnostics Log I/O`: Batch same-turn `logs.jsonl` events by captured profile path into one transaction without adding a timer, preserve cross-process ordering/failure isolation, and rotate between batched records before an authorized writer crosses the 5 MiB threshold. Individual-record/reset-metadata overshoot remains explicit and non-owner writers defer rotation. Impact: ordinary diagnostic bursts avoid per-event guard churn without turning one large batch into an unbounded current log.
12
- - `State Snapshot I/O`: Coalesce diagnostics snapshot requests across a bounded 100 ms window and compare `state.json` without its observational `writtenAtMs` timestamp before publishing a replacement, while retaining the exact-owner commit fence and the existing stale-view disk reload. Impact: unchanged domain state and repeated equivalent diagnostics projections no longer create temporary files or atomic full-snapshot renames.
13
- - `Ownership Lease I/O`: Kept one-second exact ownership checks and the serialized expected-owner transaction while moving durable heartbeat refreshes to a separate two-second cadence and widening stale detection to eight seconds. Concurrent abandoned-guard recovery now treats disappearance after observation as a lost-candidate race instead of surfacing `ENOENT`; fake-clock and observed-owner regressions pin the stale boundary, single winner, losing candidates, and waking old leader. Impact: steady-state `owners.json` atomic rewrites are halved without weakening singleton/leader fencing or the Unix-socket and Windows-named-pipe ownership model.
11
+ - `Cross-Platform Validation`: Added minimum-Node Ubuntu, macOS, and Windows CI for typecheck, tests, and package shape, with audit once on Ubuntu. Awaited timers remain live on Node 22, Windows uses native pipes and paths, and long macOS socket endpoints map idempotently to short private hashes. Impact: every PR now exercises the supported OS transport and filesystem boundaries.
12
+ - `Test Cooling`: Added test-only transaction timing controls, one bounded Node-eval fixture for config/lock/log races, and a table-driven voice registry contract. Removed 19 unreachable exports after package/composition/docs proof. Impact: duplicated process plumbing shrinks and the lock suite falls from roughly nine seconds to three without changing production retries, compatibility, or recovery coverage.
13
+ - `Release History`: Consolidated noisy chronology across all 85 historical sections while preserving every version, shipped behavior, migration, limitation, compatibility boundary, and material operator result. Impact: the changelog becomes substantially smaller without rewriting already concise releases.
14
+ - `Global Config Concurrency`: Recursive transactional deltas preserve unrelated global/profile writes, keep polling offsets monotonic, and resolve same-leaf conflicts by serialized commit order. Semantically unchanged merges adopt the latest disk snapshot without replacing `telegram.json`. Impact: concurrent polling and Settings updates no longer erase each other or create no-op file churn.
15
+ - `Diagnostics Log I/O`: Batch same-turn `logs.jsonl` events per captured profile inside one transaction, preserving order and failure isolation without a timer. Authorized writers rotate between records at the 5 MiB threshold; one-record/reset-metadata overshoot stays explicit and non-owners defer rotation. Impact: bursts avoid per-event guard churn without weakening bounded diagnostics behavior.
16
+ - `State Snapshot I/O`: Coalesce diagnostics snapshots over 100 ms and skip `state.json` replacement when only observational `writtenAtMs` differs. Exact-owner commit fencing and stale-view disk reload remain intact. Impact: equivalent runtime state no longer creates temporary files or atomic full-snapshot renames.
17
+ - `Ownership Lease I/O`: Preserve one-second exact-owner checks and serialized expected-owner transactions while refreshing durable heartbeats every two seconds with an eight-second stale boundary. Concurrent recovery treats a vanished observed guard as a lost race and still admits one fenced winner. Impact: steady-state `owners.json` rewrites are halved without weakening singleton, leader/follower, Unix-socket, or Windows-pipe authority.
14
18
 
15
19
  ## 0.24.0: Canonical Profiles And Extension-Local Ownership
16
20
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llblab/pi-telegram",
3
- "version": "0.24.1",
3
+ "version": "0.24.2",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"