UNPKG

@sema-agent/core

Version:

Stateless, task-oriented AI agent core

82 lines (81 loc) • 3.18 kB
{ "repo": "core", "version": "7.24.2", "from": "f93e37f388d831881d2ebf4f9c28eca1499896a3", "to": "v7.24.2", "added": [ { "name": "joinRequestUrl", "kind": "function", "tier": "stable", "at": [ "src/brain/route-adjudicator.ts:370", "src/index.ts:3212" ], "criteriaCovered": false, "breaking": false } ], "removed": [], "changed": [], "narrowed": [ { "id": "F1", "source": "behaviorFlips.summary", "text": "NARROWING of a rendered string (#974, P1): `displayUrlOf` speaks query NAMES only where the query is PURE — every `name=value` pair decoded to its fixed point (≤3 rounds; a malformed escape leaves its `%`) is plain text `[A-Za-z0-9._~[\\]-+,*!'()$ ]`; any impure pair (a value carrying an un-encoded URL, an e-mail, a bare segment with `@`/`:`/`/`, residual `%`) collapses the WHOLE query to one `«redacted»`. WHO NEEDS IT: a deployment whose gateway root carries a query value with an embedded URL whose password contains `&` — the fragment after `&` and before `=` landed in the NAME position and was rendered verbatim (server report, main reproduced 8 forms, test 3 boundaries). WHO IS AFFECTED: operators reading refusals for roots with a legitimate structured value (`?redirect_uri=https://…`, `?email=a@b.com`) now get the differing SEGMENT position instead of its name." }, { "id": "F2", "source": "behaviorFlips.summary", "text": "NARROWING at construction (#961, P2): a request root may no longer carry a `#fragment` — `assertServableRequestRoot` and `joinRequestUrl` refuse it with a `displayUrlOf`-rendered message that names `#…` without its content; and joining an endpoint onto the root is a URL operation: the suffix joins the PATH, the query rides byte-preserved after it. WHO NEEDS IT: Azure-style gateways (`?api-version=`) whose requests previously went out as `…/v1?api-version=x/chat/completions`. WHO IS AFFECTED: a deployment whose `baseUrl` carried a fragment now fails loudly at construction instead of silently calling the root path." } ], "closedSetMembers": [], "closedSetsUnreadable": [], "typeKeys": [], "declarationMoves": [], "mintMoves": [], "criteriaObserves": [ { "kind": "taskEventField", "name": "tool_end.structured", "assertions": [ "G3.a" ] }, { "kind": "typeMember", "name": "Checkpoint.version", "assertions": [ "G4.a", "G4.b" ] }, { "kind": "typeMember", "name": "Model.baseUrl", "assertions": [ "G2.a", "G2.b" ] }, { "kind": "typeMember", "name": "RouteRefusalDetail.requestBaseUrl", "assertions": [ "G1.a", "G1.b", "G1.c" ] } ], "consumersHint": { "cli": [], "server": [], "sdk": [], "note": "scanned cli@9405bc53 server@5ad9cfda sdk@6fe2f08 — a name listed is MENTIONED there today, which is evidence of consumption, not proof of it" }, "breakingCount": 0, "breakingItems": [], "toResolvedAt": "111dfebb7ef8517bbb3d2217dfb60277488a010d" }