@sema-agent/core
Version:
Stateless, task-oriented AI agent core
134 lines (133 loc) • 4.22 kB
JSON
{
"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"
}