@nathapp/nax 0.81.1 → 0.82.0-canary.10
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 +44 -0
- package/dist/nax.js +95038 -107430
- package/package.json +11 -6
package/CHANGELOG.md
CHANGED
|
@@ -17,6 +17,50 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
17
17
|
### Fixed
|
|
18
18
|
|
|
19
19
|
- **watchdog:** Count ACP `tool_call` / `tool_call_update` stream activity by default, and add `agent.idleWatchdog.toolCallOnlyIdleTimeoutSeconds` (default 1800s) so long-running tool-only sessions stay alive without masking runaway tool loops.
|
|
20
|
+
- **Fixed** — a same-agent fallback hop dispatched the previous model, because
|
|
21
|
+
`SessionManager` reused a live session whenever the agent name matched and
|
|
22
|
+
discarded the requested endpoint. Same-agent ladder rungs and sticky endpoints
|
|
23
|
+
inherited by warm rectification ops were both inert (#1965).
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- **Changed** — `agent.fallback.maxHopsPerStory` now bounds ladder DEPTH per
|
|
28
|
+
(story, tier, agent, role) rather than counting swap events per story, so a
|
|
29
|
+
story keeps descending its ladder across its operations instead of stranding
|
|
30
|
+
later ops on a dead endpoint.
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
|
|
34
|
+
- **Added** — `agent.fallback.map` agents are validated against `agent.protocol`
|
|
35
|
+
at config load instead of failing mid-story at dispatch.
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
|
|
39
|
+
- **Fixed** — `resolveFallbackModelId` resolved a literal model pin in
|
|
40
|
+
preference to a co-present tier, so a cooldown recorded at mark time
|
|
41
|
+
(`markUnavailable(agent, failure, tier, dispatchedModel)`, where `tier` is
|
|
42
|
+
declared and `dispatchedModel` is the hop's derived endpoint) and a
|
|
43
|
+
candidate lookup at read time (a bare `{agent, tier}` rung, no model) could
|
|
44
|
+
key on different identities for the same endpoint — a rung that just died
|
|
45
|
+
could read back as healthy. Precedence is now tier-first: when a tier is
|
|
46
|
+
present and `models` is available, the tier map is authoritative, and the
|
|
47
|
+
pin is used only when there is no tier, or the tier fails to resolve.
|
|
48
|
+
- **Fixed** — `AgentManager.configureRuntime` silently dropped `models`. An
|
|
49
|
+
`AgentManager` injected via `opts.agentManager` in `runtime/index.ts` (which
|
|
50
|
+
spreads `models: config.models` into `configureRuntime`) never had its
|
|
51
|
+
`_models` backfilled, so `resolveFallbackModelId` returned `undefined` for
|
|
52
|
+
every tier and a rung like `{agent: "native", model: "powerful"}` never
|
|
53
|
+
folded to its named tier — it dispatched the literal string `"powerful"` as
|
|
54
|
+
a model id, with no error and no log. `configureRuntime` now accepts
|
|
55
|
+
`models` and assigns it with the same guard style as its siblings.
|
|
56
|
+
|
|
57
|
+
### Migration
|
|
58
|
+
|
|
59
|
+
- **Migration** — a config that names an agent in `agent.fallback.map` which the
|
|
60
|
+
declared `agent.protocol` does not permit is now rejected at config load
|
|
61
|
+
rather than failing mid-story with `AGENT_NOT_FOUND`. A ladder mixing
|
|
62
|
+
`native` with acpx agents requires `agent.protocol: "hybrid"`; previously
|
|
63
|
+
such a config parsed and failed later, at dispatch.
|
|
20
64
|
|
|
21
65
|
## [0.51.2] — 2026-03-22
|
|
22
66
|
|