Repository navigation
Release 0.22.1 - #328
Merged
Merged
Release 0.22.1#328
Conversation
|
…rs meet The poison-history entry described membrane 0.5.86 and a anima-research#56 not yet released, but 0.22.1 requires ^0.5.87, which carries both anima-research#56 and anima-research#107. It now says what happens with 0.5.87: one status table for every adapter, a 404 arrives as invalid_request (0.22.0 sheds for three of them, 0.22.1 keeps the history), a 413 arrives as context_length and still sheds, a context_length at 400 or 422 keeps the history, and account refusals arrive as auth and never shed. The operator section now says the holds are a resident's or conversation agent's, that an ephemeral run still sleeps a stated wait of up to ten minutes and ends past that, what happens when the recorded waits can't be read, that a misspelled model's 404 no longer sheds, that 💤 is the awareness emoji's default, and one more untested way back.
nissa-seru
pushed a commit
to nissa-seru/agent-framework
that referenced
this pull request
Oct 14, 2026
…search#290 Takes anima-research#290 (a context budget the agent reached comes back reached), and what landed since 3b28ee7: anima-research#254, anima-research#316, anima-research#318, anima-research#211, anima-research#246, anima-research#303, anima-research#249, anima-research#279, anima-research#251, anima-research#267 and the 0.22.1 release (anima-research#328). One conflict, in Agent.compileWithInjections, resolved as both pull requests' merge notes give it (room-203 #86391, #89240): - anima-research#290 sends a compile without a budget through compileAtLiveBudget, which settles the runtime transition, notes the compiled budget, and on an OverBudgetError restores a budget the boot applied at once as a paced descent. A dry run proves nothing about the budget: it goes straight to the compile, around compileAtLiveBudget, so it settles no descent, notes no compiled budget and restores nothing, whether it fits or is refused. This branch's settle line, which skipped a dry run, goes: anima-research#290 moved the settle into compileAtLiveBudget. - The watermark stays as this branch had it: a dry run moves none. The next commit tests a dry run under a pending at-once restore.
nissa-seru
pushed a commit
to nissa-seru/agent-framework
that referenced
this pull request
Oct 14, 2026
…operations main since ab5f118 brings anima-research#267 (coalesced content parity), anima-research#328 (0.22.1), anima-research#290 (a budget reached restored after a restart), anima-research#285 (dry-run compiles) and anima-research#325 (stop() waits for an operator's operation in flight and refuses new ones). git show --remerge-diff shows the resolution alone. anima-research#325 and this branch each had a rule for MCP operations at stop(). They become one: anima-research#325's operator set. - connectMcplServer, disconnectMcplServer and restartMcplServer are operator operations: refused once stop() has begun (refuseOperatorAfterStop, "<verb> refused: the framework is stopping"), and waited for by stop() while they run. Their work is in runConnectMcplServer (which takes a restart's claim), runDisconnectMcplServer and runRestartMcplServer. - A restart is one operation. Its refusals all come before its teardown, as before; its teardown and its connect call the inner functions, so it isn't refused by its own gate halfway through. Its claims, its "is down" message and the legacy-only ledger read stay as this branch had them. - mcpServerAdmissionClosed goes. Where it stood, the connect reads stopHasBegun(): a connect refuses before it spawns or dials once stop() has begun (so a stop() during a restart still ends the restart), and one that finishes its handshake after stop() began closes itself. - stop() waits for operator operations before its teardown, which used to be what closed a modern connect still in flight. So stop() now closes each modern connect in flight first, and the connect fails at once rather than holding the wait until its handshake's deadline. - The per-id holds stay: one operation per id, whatever stop() is doing. The other conflicts keep both sides: shutdown.js's ShutdownTimeoutError beside this branch's imports; logValue beside the protocol-family imports in server-connection.ts; and the host/command refusal reads stopHasBegun(), as anima-research#325 has it, with this branch's redactor. Tests that meet the merge: - The restart tests that act inside a restart's own teardown mock the inner runDisconnectMcplServer; a disconnect the test starts as the host is the public operation, and goes through. - A restart and a connect after stop() expect the operator refusal's text. - anima-research#325's tests that wire a fake connection pass it a configuration, as wireMcplEvents takes one here.
nissa-seru
pushed a commit
to nissa-seru/agent-framework
that referenced
this pull request
Oct 14, 2026
Main since dff7fc2: anima-research#278, anima-research#254, anima-research#316, anima-research#318, anima-research#211, anima-research#246, anima-research#303, anima-research#249, anima-research#279, anima-research#251, anima-research#267, the 0.22.1 release (anima-research#328), anima-research#290 (81b8521) and anima-research#285 (5346605). Two conflicts, both in Agent's compile methods, resolved as this PR's merge notes said: - compileContext: anima-research#290 compiles at the live budget through compileAtLiveBudget, which settles a prepared budget change itself, in place of the trailing settleRuntimeSettingsTransition. Kept, with this branch's marksBefore taken before the compile and applyCompileWatermark in place of the plain watermark assignment. - compileWithInjections: anima-research#285 makes a dry run take no watermark and go straight to the compile, and anima-research#290 sends the rest through compileAtLiveBudget. Both kept, with marksBefore and applyCompileWatermark around them as above; a dry run's null watermark skips the apply. Every other file merged without a conflict. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nissa-seru
pushed a commit
that referenced
this pull request
Oct 14, 2026
Brings in main since 0d2dd88: #251 (durable provider deadlines), #279, #249, #303, #246, #211, and through cd036e0 #267, #290, #285, #325 and the 0.22.1 release (#328). Three conflicts, all in src/framework.ts's settleAgent calls on the terminal-failure paths (the start that fails before its stream, the stream's exhausted retry, and the stream error's settle). Each takes main's error text, `statedWait === 'fail' ? this.statedWaitNotSlept(err) : err.message` (#251), and this branch's routing argument in place of #312's LogicalTurn: `routing`, the ternary's `streamRouting`, and `streamRouting`. Nothing else in main's change names the old shape (startLogical, `.logical`, LogicalTurn, activeTriggerChannels, turnLocusPins, turnEngagedChannels), and main's diff since ab5f118 touches no routing state.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is the 0.22.1 release commit, cut with
npm version patchfrommainatab5f1183, which is 0.22.0 plus the twelve changes merged since, through #251. It ends the sleep #300 describes. With membrane 0.5.87, 0.22.0 sleeps a provider's wholeretry-afterinside the turn, andstop()can't end it.@antra-tess @Anarchid You've cut every release so far, and Anarchid's #300 asked hosts to wait for this fix before taking membrane #56, so you're hearing before the tag. The tag
v0.22.1goes up on this branch's head once the corrected notes have had their read, which I expect before 09:00 UTC. The publish workflow then tests, builds and publishes it. If you see a reason to hold it, say so here before then.What this branch is
c5616d1cadds an operator section to## Unreleased.0dcd0f03isnpm version patch's commit. It folds the twelve fragments into## 0.22.1 — 2026-10-14, with the operator section at its top, and sets the version.85a607a2corrects the notes after a read against the code. The poison-history entry now describes membrane 0.5.87, which this release requires and which carries membrane fix(workspace): re-attach the mount watcher after a root inode is replaced #56 and fix(persist): per-round delta text in XML tool mode, not the cumulative preamble #107, and the operator section now covers ephemeral runs, what happens when the recorded waits can't be read, and the 404 fix. The tag goes on this commit.I'm releasing it from
ab5f1183, so merges after that commit wait for 0.22.2. This PR merges back so thatmaincarries the version and the folded changelog. It changes onlyCHANGELOG.md,package.json's version and the twelve fragments it deletes.Why a patch, and all of
mainaddedand eleven arefixed. So the release is a patch, which^0.22.0takes. connectome-host 0.10.1 declares^0.22.0, so an npm install of the host picks it up. The host's lockfiles move to 0.22.1 in a pull request there, followed by a host release.ab5f1183is the tree that was tested together. CI passed onmainat that commit. A cross-package run built and tested agent-framework and connectome-host on it, and loaded stores written by connectome-host 0.3.1 through 0.9.0. The full suite passed 1,988 of 1,988 on Node 20 and on Node 24. A release with fix(provider): a provider's stated retry-after is a durable per-(agent, model) lower bound #251 alone would be a combination nobody has run, since fix(provider): a provider's stated retry-after is a durable per-(agent, model) lower bound #251 builds on fix(failures): bound failure text in every inference-failure sink; classify the [inference-failed] notice #249.Going back
A probe packed
ab5f1183and recorded a two-hour stated wait with it. The published 0.22.0 then opened that store, ran a turn and stopped cleanly. Opened again with the candidate, the store still held the wait until the probe released it. The operator section says what isn't tested.Checks
0dcd0f03installs alone in an empty directory with its dependencies from npm, and imports.85a607a2changes onlyCHANGELOG.md.— Ada-1017 (Claude Opus 5.5). Gladys-2413 planned the release, wrote the operator section and ran the going-back probe.