You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
a persisted compaction checkpoint may now be a rollover (kind: "rollover") as well as a summary; summaries decode as before. (c30de48; measured by test/fixtures/compaction-checkpoint.json)
none for a caller -- every tag, table default and key prefix keeps its exact value; the fixture records them so a later change cannot pass unmeasured. (fb22c34; measured by test/fixtures/namespace-manifest.json)
a delegation whose child was interrupted now fails the parent's tool call with SubagentInterruptedError carrying the partial text, instead of succeeding with the partial text as the answer. (dc2d6d6; measured by test/fixtures/namespace-manifest.json)
none for a caller -- every error _tag keeps its value; the fixture records the bare set so a rename cannot pass unmeasured. (3e3d1d0; measured by test/fixtures/error-tags-manifest.json)
the Cloudflare host gains a dispatch-intent table affe_dispatch beside affe_history; existing tables keep their names and shapes. (aa506e5; measured by test/fixtures/namespace-manifest.json)
one identifier, affe-agent/internal/ParentEvents, joins the namespace manifest; it is a harness-provided reference and never crosses a wire. DelegatedEvent is a new event tag, additive under the tolerant decoder, emitted only for a child made with Inherit.events: "parent"; nothing changes on the wire for a caller who does not opt in. (9a9c255; measured by test/fixtures/namespace-manifest.json)
AgentObservationLagError is a new error tag in the remote error union and the error-tags manifest, delivered as an SSE failure frame or RPC stream error with status 503 where a status is needed; existing tags and statuses are unchanged. An observer of events or stream that falls more than 2048 envelopes or 8 MiB behind is now ended with it instead of retaining without bound; a consumer that keeps up sees no change. (df360f9; measured by test/fixtures/error-tags-manifest.json)
UnsupportedConversion is a new error tag in the error-tags manifest, raised only by the optional affe-agent/effect-uai adapter when a conversion cannot be represented faithfully; no existing tag, status or wire shape changes, and a caller who does not import that subpath cannot encounter it. (133d14f; measured by test/fixtures/error-tags-manifest.json)
AgentTraceLimitError is a new error tag in the error-tags manifest, raised only by an Agent.start handle's events when its retained trace outgrows its bound; the submission, canonical history and durable delivery are unaffected, and no existing tag or wire shape changes. (33afe17; measured by test/fixtures/error-tags-manifest.json)
AgentToolProgressLimitError is a new error tag in the error-tags manifest, and one submission may now publish at most 8 MiB of tool progress (lowerable through toolProgress.maxBytes), failing the offending call and its run rather than truncating the snapshot; a tool that stays under the ceiling sees no change, and no existing tag or wire shape changes. (893fd9a; measured by test/fixtures/error-tags-manifest.json)
RunCompleted gains an optional exhaustion field and AgentSubmission.Result an exhaustion: Option<Exhaustion> naming which built-in ceiling ended a run ("turns", "tool-calls", "duration", "tokens", "cost"); it is absent for an ordinary stop, a custom policy's own reason and an interruption, the field is optional so a journal written before it still decodes, and stopReason is unchanged in both content and meaning. (959bd9a; measured by test/fixtures/run-completed.json)
AgentExhaustedError is a new error tag in the error-tags manifest, raised only by onExhaustion: "fail"; AgentLoop.Limits.finalTurn and Presets.PolicyOptions.finalTurn are replaced by onExhaustion: "stop" | "final-answer" | "fail", where "final-answer" is the old finalTurn: true except that it now declines for maxDuration, and the default remains stop. (c57b3dd; measured by test/fixtures/error-tags-manifest.json)
ToolExecution.Alone now rejects the whole batch -- a sibling of an Alone call no longer runs and gets the new ToolBatchRejectedError -- and the AgentOutput tool is Alone, so an answer beside another call is refused and the model asked again; AgentLoop.State has a new required outputReported field, and an agent with an output stops on a committed answer rather than on the call's presence. (ddd72c8; measured by test/fixtures/error-tags-manifest.json)
a new ToolScheduling kernel module and affe-agent/ToolScheduling/Current reference (default: no constraint), and a durable submission now journals an execution-strategy activity so a recovered attempt runs its tools with the strategy it was admitted with rather than the replacement process's. (5b79340; measured by test/fixtures/namespace-manifest.json)
a durable submission journals a contract-digests activity at its first execution and refuses a replay whose tools changed or were removed with ToolContractChangedError (a new error tag); a recorded new_context result that does not decode now fails the turn instead of being ignored. (bc40db7; measured by test/fixtures/error-tags-manifest.json)
a new ToolExposure kernel module and Agent field (default eager(), unchanged requests); under a visibility rule or progressive exposure the model is sent a toolChoice.oneOf subset and a call outside it is refused with the new ToolNotExposedError. (2772b6f; measured by test/fixtures/error-tags-manifest.json)
a corrupt persisted compaction checkpoint no longer fails the turn; it is discarded, reported as CompactionCheckpointDiscarded, and rebuilt. Old checkpoints are rebuilt once under the new fingerprint. (0b289f9; measured later, in 33a3b4c)
subagent delegation is now refused past 8 levels by default (SubagentDepthExceededError); pass maxDepth to change it. (a165708; measured by test/fixtures/namespace-manifest.json)
CloudflareHost.make now requires principal and authorization, and RelayServer.layer requires authorization; the allow-everything defaults and the header-as-principal default are gone. (9342c8e; type-level only, nothing on a wire to measure)
AgentSession.Snapshot has a required version field (1), written by snapshot and by exports; snapshots without one still decode as version 1, and an unknown version is refused. (4acc464; measured later, in 33a3b4c)
the default Memory.recall rendering adds a line when more memories matched than were shown; DeliveryLogConformance gains a paging case, so a log that ignores read limit now fails it. (3783b93; measured later, in 33a3b4c)
Code Mode's per-call outcome can now be "uncertain" or "not-started" when a program is interrupted; consumers matching the three old values should handle both. (a35673a; measured later, in 33a3b4c)
a durable non-idempotent tool call now journals a start marker activity; a submission whose process died inside (or just before) such a handler ends with DurableToolUnresolvedError instead of running the handler again. (1a770eb; measured later, in 33a3b4c)
ToolContracts is exported from affe-agent/durable, with CompatibleWith; ToolContractChangedError's message prints the full recorded digest and names the declaration. (d730666; measured by test/fixtures/namespace-manifest.json)
a recovered durable run's undecided permission calls now run under the stricter of the policy it was admitted with and the current one, or are refused if a changed policy cannot be re-created; a regexp matcher with matching flags now describes as regexp/:. (725551e; measured by test/fixtures/error-tags-manifest.json)
a recovered durable attempt now runs its calls under the stricter of the host scheduling it was admitted under and the current host's, or is refused (ToolSchedulingChangedError) if a changed Serialize cannot be re-created. (5e13679; measured by test/fixtures/error-tags-manifest.json)
Agent.describe tool entries gain source; tools bound through ToolSource carry a ToolSourceId annotation, a new frozen namespace identifier. (1455d5e; measured by test/fixtures/namespace-manifest.json)
the built-in control tools' contract digests are now frozen by fixture; changing one is a journal change that must declare compatibility or accept refused replays. (33a3b4c; measured by test/fixtures/code-mode-outcomes.json, test/fixtures/compaction-checkpoint-discarded.json, test/fixtures/control-tool-digests.json, test/fixtures/memory-recall-truncated.json, test/fixtures/snapshot-unversioned.json, test/fixtures/tool-activity-names.json)
a durable run that asks for an answer from inside a tool call (a subagent forwarding its child's approval, or a handler that asks) now fails with DurableElicitationInToolCallError instead of hanging. (9a1b01c; measured by test/fixtures/error-tags-manifest.json, test/fixtures/namespace-manifest.json)
the journal's permission-policy and host-scheduling records are frozen by fixture; a regexp matcher with matching flags describes as regexp/:. (57106e8; measured by test/fixtures/admission-descriptions.json)
AgentOutput.fromTool refuses a provider-defined tool, at compile time and with a TypeError at construction (e30f31f; type-level only, nothing on a wire to measure)
the durable channel table gains a nullable claimed_by column (sqlStoreWithTable migrates an older table; a self-managed table must add it), and a drain claims rows instead of deleting them (9efd2c5; measured by test/fixtures/channel-input-table.json)
a host's eventLog for a durable session with a delivery log reads the whole log (oldest is its first event) instead of the host's bounded tail (470a6c0; measured by test/fixtures/durable-event-log.json)
AgentBusyError carries the incumbent's submissionId when the refusing side knows it, on every client (1436537; measured by test/fixtures/busy-error.json)
a durable session store constructed with blobs writes history files over maxInlineBytes as content-addressed blob references (rows without the option are unchanged) (7092a8e; measured by test/fixtures/history-blob-row.json)
a relay configured with sendRate refuses a sender over its rate with RelayRateLimitedError, a new member of the relay's wire error union (f6e49b9; measured by test/fixtures/namespace-manifest.json)
the five frozen control-tool digests moved (struct JSON Schemas now render additionalProperties: true under Effect rc.115), so durable replays recorded under the old digests are refused by name (02dc9fd; measured by test/fixtures/control-tool-digests.json)