@ai-matrx/agents 0.24.1 → 0.25.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.25.0
4
+
5
+ - **Chat's `resume_conflict` is retried, never rejoined** — even when its body names `live_request_id` + `rejoin_path`. The claim holder is usually the turn still SUSPENDING; rejoining it replayed that turn from frame one (duplicate text) and the person's continuation never ran, on all three clients. `readLiveRunRejoin` now answers only `code: run_in_progress`; `isResumeConflict` is every `409 resume_conflict`; `resumeOrRejoin` returns `{ kind: "resume_conflict" }` for it. Guard: `matrx/rejoin.test.ts` › "chat's resume_conflict is retried, never rejoined" (red on 0.24.x).
6
+ - **A rejoin with no journal ends the same way in every client** (`./matrx`). New `settleRunPickup(pickup, { reloadSavedTurn, onStillRunning? })` — THE mapping from a pick-up result to what the screen does: `resumed`/`rejoined` → `streamed`; bare `resume_conflict` → `retry`; `followed`/`followed_workflow` that ended (or found no live operation left) → reload the saved turn, `{state: "settled", status, reloaded}` (the run's REAL status — a reload that throws is reported as `reloaded: false` + `error`); a follow that gave up → `still_running` (host recovery, default reload what is saved) — never a failure. Live 2026-10-01: the extension ended such a turn with an EMPTY bubble and the desktop called it a failed request.
7
+ - New for hosts whose rejoin stream rides their own wire (extension offscreen fetch, desktop request loop): `readLiveStreamUnavailable(error)` → `{ runId }` | null, and `followUnavailableRejoin(transport, rejoin, unavailable, { organizationId, … })` — the exact no-journal branch `resumeOrRejoin` takes (now its implementation). Types `MatrxRunPickup`, `MatrxRunPickupSettlement`, `MatrxFollowedOutcome`, `MatrxLiveStreamUnavailable`.
8
+ - Guard: `matrx/rejoin.test.ts` › "followUnavailableRejoin + settleRunPickup" — 11 scratch-copy mutants (status dropped, no reload, streamed reloads, conflict as streamed, onStillRunning ignored, reload error swallowed, run_id dropped, org unbound, cursor reset, terminal op followed, nothing-live not reloaded) each red.
9
+ - Consumer action: keep (or restore) your bounded retry for `resume_conflict`; on a rejoin's `409 live_stream_unavailable`, call `followUnavailableRejoin` then `settleRunPickup` with your saved-turn reload; settle every `resumeOrRejoin` outcome through `settleRunPickup`.
10
+
11
+ ## 0.24.2
12
+
13
+ Automatic changed-only republish (docs/metadata drift since the last tag — see
14
+ `git diff npm/matrx-agents/v0.24.1..npm/matrx-agents/v0.24.2 -- apps/shared/matrx-agents`).
15
+ No source changes intended and no consumer action required.
16
+
3
17
  ## 0.24.1
4
18
 
5
19
  Automatic changed-only republish (docs/metadata drift since the last tag — see