@axiom-lattice/protocols 4.11.0 → 6.0.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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @axiom-lattice/protocols@4.11.0 build /home/runner/work/agentic/agentic/packages/protocols
2
+ > @axiom-lattice/protocols@6.0.0 build /home/runner/work/agentic/agentic/packages/protocols
3
3
  > tsup src/index.ts --format cjs,esm --dts --sourcemap
4
4
 
5
5
  CLI Building entry: src/index.ts
@@ -8,13 +8,13 @@
8
8
  CLI Target: es2020
9
9
  CJS Build start
10
10
  ESM Build start
11
- CJS dist/index.js 48.46 KB
12
- CJS dist/index.js.map 199.08 KB
13
- CJS ⚡️ Build success in 603ms
14
- ESM dist/index.mjs 43.36 KB
15
- ESM dist/index.mjs.map 195.12 KB
16
- ESM ⚡️ Build success in 624ms
11
+ ESM dist/index.mjs 48.72 KB
12
+ ESM dist/index.mjs.map 218.13 KB
13
+ ESM ⚡️ Build success in 688ms
14
+ CJS dist/index.js 54.96 KB
15
+ CJS dist/index.js.map 222.43 KB
16
+ CJS ⚡️ Build success in 691ms
17
17
  DTS Build start
18
- DTS ⚡️ Build success in 13987ms
19
- DTS dist/index.d.ts 262.01 KB
20
- DTS dist/index.d.mts 262.01 KB
18
+ DTS ⚡️ Build success in 14294ms
19
+ DTS dist/index.d.ts 284.30 KB
20
+ DTS dist/index.d.mts 284.30 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,120 @@
1
1
  # @axiom-lattice/protocols
2
2
 
3
+ ## 6.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 80c8dca: Release the chat, task, store, and sandbox updates together.
8
+
9
+ - Chat: frosted-glass user-message navigator, breathing run status bar, streaming auto-follow that stops when the reader scrolls away, and stop notices routed through the status bar.
10
+ - Crons: workspace/project-scoped crons, tenant-validated scope, Console project selector/card/filter.
11
+ - Store: long-term Store rebuilt as a toolbar + master-detail drawer with namespace editor, JSON validation, and TTL presets.
12
+ - Workspace menu: optional `requiredTenantRoles` gating; Store, Audit Log, API Keys, Observability, and System Info are owner/admin-only.
13
+ - Execution: durable runs re-pin the shared agent to the authoritative scope, absent scheduled scope stays unscoped, subagent breaker state is isolated, first run of a locally-constructed thread is admitted, and `TaskListFilter.threadId` authorizes isolated task threads.
14
+ - Recursion: default budget 500 with `AGENT_RECURSION_LIMIT` override.
15
+ - Uploads: default request body and upload limit raised to 500 MB.
16
+ - Sandbox: default memory aligned to 1024 MiB and service body limit raised to 500 MB.
17
+ - PostgreSQL: run availability defaults to the database clock, so clock drift cannot make fresh runs briefly unclaimable.
18
+
19
+ Breaking: default recursion budget (1000 -> 500), request/upload limit (100 MB -> 500 MB), sandbox memory (512/2048 -> 1024 MiB), and durable-run scope authority change observable behavior without extra configuration.
20
+
21
+ ### Minor Changes
22
+
23
+ - ae1535e: Make eval safe on the existing worker pool: a global `eval:execution` lease
24
+ allows any replica to run one eval at a time, cancellation is a durable
25
+ `cancel_requested` flag polled by the executing worker, and aborted runs settle
26
+ as `aborted`. The compatibility progress stream now polls the shared EvalStore
27
+ instead of the owner's process-local EventEmitter.
28
+ - e71979f: Add HMAC-signed connection scopes to sandbox-plugin MCP App UIs. The compiler and `manage_plugin test` mint a run-scoped token carrying the selected `connectionKey`; the gateway verifies it and injects that one connection; pins preserve the scope. No credentials are placed in refs, pins, or logs. The signing key uses `MCP_UI_SCOPE_SECRET` when set, otherwise a domain-separated HKDF key derived from the shared `LATTICE_ENCRYPTION_KEY` (so no new required config; rotating that key invalidates pinned scopes). Connection-declaring plugins without a usable scope/connection now reject all UI tool calls with `CONNECTION_REQUIRED` (v1 plugin-level guard).
29
+ - ae1535e: Reconcile scheduler timers on every replica instead of only on the startup
30
+ leader. `DefaultScheduleClient.reconcile()` diffs active schedules against local
31
+ timers, clears stale/paused timers, and re-arms `nextRunAt` without double-arming.
32
+ The gateway restores at startup and reconciles every `SCHEDULE_RECONCILE_MS`
33
+ (default 30s); `claimScheduledRun` keeps execution exactly-once.
34
+
35
+ ## 5.0.0
36
+
37
+ ### Major Changes
38
+
39
+ - 8f9dd0d: Remove the deprecated TeamAgent/teammate feature and its UI surfaces.
40
+
41
+ ### Minor Changes
42
+
43
+ - f1f8840: Durable cross-replica public-channel replies (Phase B)
44
+
45
+ - Add a durable `ChannelReplyJob` protocol, in-memory/PostgreSQL stores, and a
46
+ `lattice_channel_reply_jobs` migration (v200) with lease-based claim, bounded
47
+ reschedule, and terminal delivery state.
48
+ - Route non-Room public ingress for adapters declaring `durableReply: true`
49
+ through a reply job plus a pending `source='run_api'` run (job written first,
50
+ with compensation on run-create failure). Lark opts in; WeCom/WeChat/Room stay
51
+ legacy because their reply transport is connection-bound/process-local.
52
+ - Add `ChannelReplyDispatcher`, which polls due jobs on any replica, waits for
53
+ the run ledger to become terminal, reads the final assistant text from the
54
+ thread checkpoint, sends it through the adapter, and marks the job delivered.
55
+ Empty output and loader/send failures retry with capped exponential backoff;
56
+ sends have a 15s deadline; missing runs converge after a 30s grace window;
57
+ cancelled runs do not send a waiting notice. Terminal jobs are pruned after
58
+ 24h.
59
+ - Keep Room/trusted dispatch and `ChannelConnectionLeader` unchanged. Durable
60
+ replies are at-least-once; outbound metadata carries `inputMessageId` for
61
+ channel-side deduplication. Ingress falls back to legacy when the dispatcher
62
+ runtime is not registered. Opt out with `CHANNEL_DURABLE_RUNS=false`.
63
+
64
+ - ea90717: `keep_latest` checkpoint pruning (M2-B2b)
65
+
66
+ - Add `CheckpointMaintenance.pruneThread` and transactional per-namespace latest-N checkpoint retention with blob retention derived from `channel_versions`.
67
+ - Add `POST .../prune { strategy: "keep_latest", keep?: 1..100 }`; `delete` is unchanged.
68
+ - Reuse strict ownership, thread-run lease, and empty-inbox guards; keep the thread row and chunk stream.
69
+
70
+ - 351b0e9: Multi-replica run cancel and queue-first HITL
71
+
72
+ - Add ledger-backed run cancel intent plus Redis owner wake-up and heartbeat fallback; abort/recover can be accepted by any replica without ingress stickiness.
73
+ - Make `input.respond` queue-first with `expected_interrupt_id` worker validation and the official LangGraph resume map; reserve answers across replicas and release in-flight reservations after enqueue.
74
+ - Unify Room and Web App native HITL resume mapping with the Console command path.
75
+ - Expose run-cancel readiness/metrics and document the A2A boundary: A2A remains a deferred adapter over the Agent runtime, not a second runtime.
76
+
77
+ - 1fde314: Pending run task queue (Phase 1)
78
+
79
+ - Make `lattice_agent_runs` the durable task queue for the new single-run API: create writes `pending`, a worker claims/executes through `Agent.executeRun`, and recovery reclaims expired rows in place and completes durable rollback work.
80
+ - Add run lifecycle `join` (bounded terminal wait), `cancel?action=interrupt|rollback`, and HITL command runs; Web App runtime mirrors the same handlers.
81
+ - Add `client.runs.join` / cancel `action` / create `command`, and single-run HITL with `ThreadStream.openRun`. `RunCreateResult` is now `{ runId, messageId?, status: "pending" }`: the old queue-first `status: "queued"` / `queued: true` shape and the required `messageId` are gone (command runs have no user message).
82
+ - Keep the legacy message queue, Room, Project Task, A2A, and legacy HITL on `source='legacy'`; the two executors share the `thread-run` lease.
83
+
84
+ - da5294d: Tenant-scoped namespaced KV store (M2-C)
85
+
86
+ - Add `StoreProtocol` (put/get/delete/search/listNamespaces/deleteExpired) with deep JSONB filters, substring query, and TTL.
87
+ - Add InMemory, Local SQLite, and PostgreSQL implementations (PG migration v195 with GIN and partial expiry indexes).
88
+ - Add `/api/store/*` routes and a single-flight store TTL sweeper.
89
+ - `index` hints are accepted but vector indexing and semantic search remain deferred.
90
+
91
+ - 03e9984: Thread commands and explicit interrupts (M3-B)
92
+
93
+ - Add normalized `AgentInterrupt` plus `Agent.getInterrupts()`/`normalizeAgentInterrupts()` for clarify, task_review, and custom interrupts.
94
+ - Expose `interrupts` in thread status using one state read.
95
+ - Add `POST /api/assistants/:assistantId/threads/:threadId/commands` with `run.start`, `input.respond`, and `agent.getTree`.
96
+ - Map multitask strategies to queue modes, add process-local 5-minute answer dedupe, and return Mermaid from `get_draw_graph()`.
97
+
98
+ - 2609f3b: Thread copy and prune-delete (M2-B1)
99
+
100
+ - Add `CheckpointMaintenance` and transactional `copyThread` / `deleteThread` to `PostgreSQLCheckpointStorage`, with a typed `CHECKPOINT_TARGET_NOT_EMPTY` conflict and metadata `thread_id` rewrite.
101
+ - Add owner-scoped, busy-guarded copy and prune-delete routes; prune clears the thread's chunk stream best-effort and retains run-ledger rows.
102
+ - Share the thread ownership resolver between read and maintenance controllers.
103
+
104
+ - 12ce057: Thread read model (M2-A)
105
+
106
+ - Add `Agent.getStateHistory` / `Agent.getStateAtCheckpoint` (bounded to 50 checkpoints).
107
+ - Add `CheckpointStorage` / `ThreadCheckpointStorage` protocols and a read-only `PostgreSQLCheckpointStorage` over the built-in `PostgresSaver` tables.
108
+ - Add tenant/assistant-scoped read-only routes for thread status, checkpoint history, checkpoint state, and checkpoint storage usage; missing checkpoints and foreign threads return 404 and unexpected errors are sanitized.
109
+
110
+ - 23902af: Per-thread TTL and expiry sweeper (M2-B2a)
111
+
112
+ - Add optional `expiresAt` to `Thread`/`CreateThreadRequest` and `listExpiredThreads` to `ThreadStore`.
113
+ - Persist `expires_at` in InMemory, Local SQLite, and PostgreSQL stores (PG migration v194 + partial index).
114
+ - Accept `ttlSeconds`/`expiresAt` when creating a thread (invalid values return 400).
115
+ - Add a lease/inbox/maintenance-guarded TTL sweeper with `THREAD_TTL_SWEEP_*` configuration.
116
+ - Copy does not inherit TTL; run-ledger rows are retained on sweep.
117
+
3
118
  ## 4.11.0
4
119
 
5
120
  ### Minor Changes