UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

134 lines (133 loc) • 4.22 kB
{ "repo": "core", "version": "7.23.5", "from": "0a77a55f973aa9bc0d816abcf25cccb21039bda6", "to": "v7.23.5", "added": [], "removed": [], "changed": [], "narrowed": [ { "id": "F3", "source": "behaviorFlips.summary", "text": "NARROWING of the retry ladder, no key change (#933): a fetch throw the RUNTIME raised while BUILDING the request (a base URL carrying userinfo, a malformed URL/method/header name, a GET with a body) is classified by `classifyFetchThrow` (`src/brain/errors.ts:328`) as `invalid_request` — not `network` — and never retried; `AssistantMessage.isApiErrorMessage` is deliberately absent on this class (nothing reached the wire). A base URL with userinfo is refused at brain CONSTRUCTION by `assertBaseUrlWithoutCredentials` (`src/brain/route-adjudicator.ts:91`) in all three factories and in the shared `resolveRequestRoot` for `Model.baseUrl` (rules −2; the message never echoes the password). Structural discriminator, two evidence forms: a transport error carries a `cause` with a connect code, or the `fetch failed` shell sentence; a bare `TypeError` with neither is a build refusal. WHO IS AFFECTED: an operator who saw a ~3-minute retry ladder on a deterministic configuration error (deploy on cli 1.0.121)." }, { "id": "F7", "source": "behaviorFlips.summary", "text": "NARROWING, `Monitor` tool (#938): the shell faces' execute-time canonical recheck (`createShellCanonicalRecheck`, `src/tools/fs/fs-bash.ts`, extracted verbatim from the Bash tool) is mounted on `Monitor` from the same `readBoundary` option; a watch whose established operands resolve outside the roots or onto a deny row is refused as the whole call result before `registerMonitor` (no task_id, no stream), with a pre-spawn cancellation guard. WHO IS AFFECTED: a deployment that watched a symlinked or globbed deny-listed file through Monitor at zero refusals." } ], "closedSetMembers": [ { "set": "FetchThrowClass", "at": [ "src/brain/errors.ts:327" ], "newSet": true, "added": [ "request_unbuildable", "transport" ], "removed": [], "breaking": false, "criteriaCovered": false } ], "closedSetsUnreadable": [], "typeKeys": [ { "type": "MonitorToolOptions", "at": [ "src/tools/monitor.ts:61" ], "added": [ "readBoundary" ], "removed": [], "breaking": false, "criteriaCovered": false }, { "type": "WorkflowRunSummary", "at": [ "src/core/workflow-run-store.ts:35" ], "added": [ "errorCode" ], "removed": [], "breaking": false, "criteriaCovered": true } ], "declarationMoves": [ { "name": "PROBE_REASON_MAX", "kind": null, "onSurface": false, "from": [ "src/core/checkpoint-store.ts" ], "to": [ "src/core/checkpoint-store.ts", "src/core/untrusted-text.ts" ] } ], "mintMoves": [], "criteriaObserves": [ { "kind": "taskEventField", "name": "tool_end.isError", "assertions": [ "G2.a", "G2.b", "G4.a", "G4.b" ] }, { "kind": "taskEventField", "name": "tool_end.structured", "assertions": [ "G1.b" ] }, { "kind": "typeMember", "name": "PersistedRule.rule", "assertions": [ "G3.a" ] }, { "kind": "typeMember", "name": "ReversibilityVerdict.boundaryDeclined", "assertions": [ "G3.b" ] }, { "kind": "typeMember", "name": "WorkflowRunSummary.errorCode", "assertions": [ "G1.a" ] } ], "consumersHint": { "cli": [], "server": [ "MonitorToolOptions", "WorkflowRunSummary" ], "sdk": [ "WorkflowRunSummary" ], "note": "scanned cli@c38ebaf9 server@3793eaf4 sdk@ace0d09 — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it" }, "breakingCount": 0, "breakingItems": [], "toResolvedAt": "a11cee1b37ecec0004b3b2e31a6d5d51370dfa52" }