release: version packages - #99
Merged
Merged
Conversation
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
anchorage-showcase-single-tenant | afcffd6 | Aug 22 2026, 01:18 PM |
github-actions
Bot
force-pushed
the
changeset-release/dev
branch
from
August 22, 2026 13:00
670f3b3 to
8aca945
Compare
github-actions
Bot
force-pushed
the
changeset-release/dev
branch
from
August 22, 2026 13:16
8aca945 to
afcffd6
Compare
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 PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to dev, this PR will be updated.
Releases
@proofoftech/breakwater@0.13.0
Minor Changes
b85a872: Add a supported connector invocation boundary for trusted hosts and workflows. Direct calls now preserve Mastra validation and Breakwater grants without fabricated tool contexts, and validation failures expose no rejected values or schema messages.
fa0d11d: Add an optional content-policy boundary for agent signals. Breakwater exposes
createContentPolicyGate(), a reusable opaque input-policy gate for host code outside Mastra's processor chain, and FlowSafe's thread signal routes accept a structuralcontentPolicycallback that inspects Mastra's canonical escaped XML before delivery, persistence, wake, or run start — covering direct ingestion, providers, schedules, and notification dispatch. Denial is terminal and evaluator failure stays recoverable on every lane; neither exposes policy names, reasons, content, or causes.Signal attributes whose keys are not XML names are now dropped when a signal is ingested, and a schedule whose stored target cannot be rendered settles a terminal discard receipt instead of failing every later tick with the same broken target.
Provider deliveries now distinguish a terminal refusal from one the deployment could not decide: an undecided webhook is answered with 503 so the sender redelivers, and every delivery carries a dedupe key derived from the signed bytes and the subscription so a redelivery coalesces into a still-pending notification instead of duplicating it. Webhook and poll results report
denied,failed, anddeferredcounts.8f4daae: Require
@mastra/core1.53.0 exactly (previously 1.50.0). The peer is exact, so every consumer must move to 1.53.0 as well; this is breaking for consumers pinned to 1.50.0. 1.53.0 is the newest release whose published output still bundles for Cloudflare Workers and Vite: 1.54.0 through 1.60.0 inline Node-only dynamic imports (execa,@ast-grep/napi) that fail to bundle ([BUG]@mastra/core1.54+ breaks on Cloudflare Workers due to tsdown dynamic import rewrite mastra-ai/mastra#20638).@mastra/cloudflare-d1stays at 1.1.1. FlowSafe's@proofoftech/breakwaterpeer floor rises to>=0.13.0in step, that being the first Breakwater release built against the same core.FlowSafe's durable agent runner now refuses every inherited entry point that can drive execution outside
RunnerRuntime, mint a run id below the caller, or hand back runs the caller does not own: the run-recovery entry points 1.53.0 adds toDurableAgent(recover,recoverActiveRuns,listActiveRuns); the resume family (resume,resumeStream,resumeGenerate,approveToolCall,declineToolCall,approveToolCallGenerate,declineToolCallGenerate), which since 1.53.0 rehydrate from snapshot storage on a run-registry miss; the agent-level discovery memberlistSuspendedRuns; the network family (network,resumeNetwork,approveNetworkToolCall,declineNetworkToolCall), which drives the multi-agent loop's own workflow on the default engine; the AI SDK v4 legacy pair (generateLegacy,streamLegacy), which runs the agent's tools while skipping the authorization check every supported entry point calls; andsendToolApproval, whose continuation branch starts a run under a generated run id rather than resuming.deleteRunSnapshotsis refused on a separate ground: the snapshot rows it deletes belong to deployment-scoped retention rather than to any caller. Nineteen entry points in all. That leavesresumeViaRuntimeas the only resume path and the guardedstream/generate/prepareas the only execution entry points. Surface tripwires now classify everyDurableAgentprototype member and every inheritedAgentmember, so a future peer bump surfaces new entry points on either.This is a behavior change for any consumer that called those methods on a FlowSafe durable agent: they now throw instead of executing. Their TYPE signatures narrow too — the overridden members return
Promise<never>, and the generic overloads several of them carried (network,generateLegacy,streamLegacy,sendToolApproval) collapse to a single refusing signature, so a call that no longer type-checks is the intended signal rather than a regression. Nothing in the supported agent-host surface reaches them — route clients through the agent-host run routes.Patch Changes
@mastra/corepeer dependency.@proofoftech/flowsafe@0.19.0
Minor Changes
fa0d11d: Add an optional content-policy boundary for agent signals. Breakwater exposes
createContentPolicyGate(), a reusable opaque input-policy gate for host code outside Mastra's processor chain, and FlowSafe's thread signal routes accept a structuralcontentPolicycallback that inspects Mastra's canonical escaped XML before delivery, persistence, wake, or run start — covering direct ingestion, providers, schedules, and notification dispatch. Denial is terminal and evaluator failure stays recoverable on every lane; neither exposes policy names, reasons, content, or causes.Signal attributes whose keys are not XML names are now dropped when a signal is ingested, and a schedule whose stored target cannot be rendered settles a terminal discard receipt instead of failing every later tick with the same broken target.
Provider deliveries now distinguish a terminal refusal from one the deployment could not decide: an undecided webhook is answered with 503 so the sender redelivers, and every delivery carries a dedupe key derived from the signed bytes and the subscription so a redelivery coalesces into a still-pending notification instead of duplicating it. Webhook and poll results report
denied,failed, anddeferredcounts.0447466: Signal delivery through a Flowsafe durable agent no longer starts an unowned
run below the host seam; an unbranded agent on an active thread keeps core's own
behavior as a degraded configuration.
This changes the public signal contract:
/signal/queuepersists in both active and idle states. Success now returnsdecision.action: 'persist'without arunId; active-thread auto-drain isremoved, so the message surfaces on the next host-started turn.
/signal/statenow applies the queue route's owner gates and can returnprincipal-mismatchorpersistence-forbidden./signal/notificationcreates the notification record for every acceptedprovider delivery. Owners receive core's
{ record, decision, ... }resultunder the top-level
recordfield, with the signal-routing decision exposedseparately as
deliverywhen core returns one. Non-owners receive a flatNotificationRecordunderrecordplusdelivery: { action: 'deferred', reason: 'dispatcher' }; they never send asignal directly. Low-priority owner notifications use summarize-later and
have no immediate
delivery.degraded: 'not-runtime-driven'from successful,non-skipped state and owner-notification responses, regardless of thread state.
Skipped state and an early
memory-unavailablestate response carry no marker./signal/message,/signal,/signal/schedule, and/signal/notifications/dispatchnow persist on a stale-active-id fall-throughinstead of waking. A forbidden fallback returns
persistence-forbidden; amemory-less fallback returns
memory-unavailable. The notification dispatchlane counts either discard as failed and performs no persisted write. A
non-owner
/signalrequest forifActive: 'persist'degrades todiscardfor active delivery: when the thread was active, the response is
persistence-forbiddenwithout asignalIdbecause the gate refused andnothing was delivered; when the thread was idle, the caller's own
ifIdleoutcome is returned unchanged with
signalId. Owners still forwardpersist. Non-owner active deliveries carry non-rendered metadata so acompletion drain cannot preserve a leftover through the terminal path.
memory-unavailablediscard decision when theresolved agent has no memory, after the content gate. A default or
ifIdle: 'persist'message or signal is delivered into an active run withoutmemory; an active persist that no memory could write answers
memory-unavailable. A persist-behavior/signal/schedulefire insteadsettles a canonical
discardreceipt withoutcome: 'discarded'and noreason, where it previously settled
persisted.Owner
/signal/notificationis the other exception: its model-visible memorywrite is best-effort because the inbox record is already durable. The shipped
starter host does not configure agent memory, so its other persist outcomes
return
memory-unavailableuntil the host adds memory configuration./signal/notificationingestion now requires notification storageand returns
409without it. Those rows bypass the agent's delivery policy andreadiness hook; the host must run
createNotificationDispatchTick()todeliver them. The starter runs it every 60 seconds, giving up to one tick of
latency. A host without the tick records but never delivers them; the spike
has no tick and its provider probes assert only the inbox row.
through
streamUntilPersisted(). Directstream()resolves to a failedoutput; direct
generate()rejects.stream(),generate(),prepare(), andstreamUntilPersisted()synchronously refuse a live id, andprepare(X)keeps
Xlive until cleanup.streamUntilPersisted()also refusesuntilIdle. If the runner's two terminal-publication attempts and core's ownfire-and-forget attempt all fail, the output never closes and the thread stays
active until eviction or a new host start.
signals/router.tsstate and notification channels carry these newresponse shapes.
Migrate run starts to the host routes or
streamUntilPersisted(). Treat queuesuccess as
{ action: 'persist' }without arunId, and read queued messages onthe next host-started turn.
8f4daae: Require
@mastra/core1.53.0 exactly (previously 1.50.0). The peer is exact, so every consumer must move to 1.53.0 as well; this is breaking for consumers pinned to 1.50.0. 1.53.0 is the newest release whose published output still bundles for Cloudflare Workers and Vite: 1.54.0 through 1.60.0 inline Node-only dynamic imports (execa,@ast-grep/napi) that fail to bundle ([BUG]@mastra/core1.54+ breaks on Cloudflare Workers due to tsdown dynamic import rewrite mastra-ai/mastra#20638).@mastra/cloudflare-d1stays at 1.1.1. FlowSafe's@proofoftech/breakwaterpeer floor rises to>=0.13.0in step, that being the first Breakwater release built against the same core.FlowSafe's durable agent runner now refuses every inherited entry point that can drive execution outside
RunnerRuntime, mint a run id below the caller, or hand back runs the caller does not own: the run-recovery entry points 1.53.0 adds toDurableAgent(recover,recoverActiveRuns,listActiveRuns); the resume family (resume,resumeStream,resumeGenerate,approveToolCall,declineToolCall,approveToolCallGenerate,declineToolCallGenerate), which since 1.53.0 rehydrate from snapshot storage on a run-registry miss; the agent-level discovery memberlistSuspendedRuns; the network family (network,resumeNetwork,approveNetworkToolCall,declineNetworkToolCall), which drives the multi-agent loop's own workflow on the default engine; the AI SDK v4 legacy pair (generateLegacy,streamLegacy), which runs the agent's tools while skipping the authorization check every supported entry point calls; andsendToolApproval, whose continuation branch starts a run under a generated run id rather than resuming.deleteRunSnapshotsis refused on a separate ground: the snapshot rows it deletes belong to deployment-scoped retention rather than to any caller. Nineteen entry points in all. That leavesresumeViaRuntimeas the only resume path and the guardedstream/generate/prepareas the only execution entry points. Surface tripwires now classify everyDurableAgentprototype member and every inheritedAgentmember, so a future peer bump surfaces new entry points on either.This is a behavior change for any consumer that called those methods on a FlowSafe durable agent: they now throw instead of executing. Their TYPE signatures narrow too — the overridden members return
Promise<never>, and the generic overloads several of them carried (network,generateLegacy,streamLegacy,sendToolApproval) collapse to a single refusing signature, so a call that no longer type-checks is the intended signal rather than a regression. Nothing in the supported agent-host surface reaches them — route clients through the agent-host run routes.Patch Changes
terminalflag as their delivery-rejected siblings, so a dropped-forever throw is distinguishable from a deferred one without re-deriving the classification.@mastra/corepeer dependency.@proofoftech/fleet-control@0.3.4
Patch Changes
anchorage-agent-starter@0.0.15
Patch Changes
b85a872: Add a supported connector invocation boundary for trusted hosts and workflows. Direct calls now preserve Mastra validation and Breakwater grants without fabricated tool contexts, and validation failures expose no rejected values or schema messages.
8f4daae: Require
@mastra/core1.53.0 exactly (previously 1.50.0). The peer is exact, so every consumer must move to 1.53.0 as well; this is breaking for consumers pinned to 1.50.0. 1.53.0 is the newest release whose published output still bundles for Cloudflare Workers and Vite: 1.54.0 through 1.60.0 inline Node-only dynamic imports (execa,@ast-grep/napi) that fail to bundle ([BUG]@mastra/core1.54+ breaks on Cloudflare Workers due to tsdown dynamic import rewrite mastra-ai/mastra#20638).@mastra/cloudflare-d1stays at 1.1.1. FlowSafe's@proofoftech/breakwaterpeer floor rises to>=0.13.0in step, that being the first Breakwater release built against the same core.FlowSafe's durable agent runner now refuses every inherited entry point that can drive execution outside
RunnerRuntime, mint a run id below the caller, or hand back runs the caller does not own: the run-recovery entry points 1.53.0 adds toDurableAgent(recover,recoverActiveRuns,listActiveRuns); the resume family (resume,resumeStream,resumeGenerate,approveToolCall,declineToolCall,approveToolCallGenerate,declineToolCallGenerate), which since 1.53.0 rehydrate from snapshot storage on a run-registry miss; the agent-level discovery memberlistSuspendedRuns; the network family (network,resumeNetwork,approveNetworkToolCall,declineNetworkToolCall), which drives the multi-agent loop's own workflow on the default engine; the AI SDK v4 legacy pair (generateLegacy,streamLegacy), which runs the agent's tools while skipping the authorization check every supported entry point calls; andsendToolApproval, whose continuation branch starts a run under a generated run id rather than resuming.deleteRunSnapshotsis refused on a separate ground: the snapshot rows it deletes belong to deployment-scoped retention rather than to any caller. Nineteen entry points in all. That leavesresumeViaRuntimeas the only resume path and the guardedstream/generate/prepareas the only execution entry points. Surface tripwires now classify everyDurableAgentprototype member and every inheritedAgentmember, so a future peer bump surfaces new entry points on either.This is a behavior change for any consumer that called those methods on a FlowSafe durable agent: they now throw instead of executing. Their TYPE signatures narrow too — the overridden members return
Promise<never>, and the generic overloads several of them carried (network,generateLegacy,streamLegacy,sendToolApproval) collapse to a single refusing signature, so a call that no longer type-checks is the intended signal rather than a regression. Nothing in the supported agent-host surface reaches them — route clients through the agent-host run routes.5cbe01d: Align the package and documented Node.js runtime floor with the required
@mastra/corepeer dependency.Updated dependencies [80a801c]
Updated dependencies [b85a872]
Updated dependencies [fa0d11d]
Updated dependencies [0447466]
Updated dependencies [da6a0aa]
Updated dependencies [8f4daae]
Updated dependencies [66c19f1]
Updated dependencies [5cbe01d]
showcase@0.0.21
Patch Changes
8f4daae: Require
@mastra/core1.53.0 exactly (previously 1.50.0). The peer is exact, so every consumer must move to 1.53.0 as well; this is breaking for consumers pinned to 1.50.0. 1.53.0 is the newest release whose published output still bundles for Cloudflare Workers and Vite: 1.54.0 through 1.60.0 inline Node-only dynamic imports (execa,@ast-grep/napi) that fail to bundle ([BUG]@mastra/core1.54+ breaks on Cloudflare Workers due to tsdown dynamic import rewrite mastra-ai/mastra#20638).@mastra/cloudflare-d1stays at 1.1.1. FlowSafe's@proofoftech/breakwaterpeer floor rises to>=0.13.0in step, that being the first Breakwater release built against the same core.FlowSafe's durable agent runner now refuses every inherited entry point that can drive execution outside
RunnerRuntime, mint a run id below the caller, or hand back runs the caller does not own: the run-recovery entry points 1.53.0 adds toDurableAgent(recover,recoverActiveRuns,listActiveRuns); the resume family (resume,resumeStream,resumeGenerate,approveToolCall,declineToolCall,approveToolCallGenerate,declineToolCallGenerate), which since 1.53.0 rehydrate from snapshot storage on a run-registry miss; the agent-level discovery memberlistSuspendedRuns; the network family (network,resumeNetwork,approveNetworkToolCall,declineNetworkToolCall), which drives the multi-agent loop's own workflow on the default engine; the AI SDK v4 legacy pair (generateLegacy,streamLegacy), which runs the agent's tools while skipping the authorization check every supported entry point calls; andsendToolApproval, whose continuation branch starts a run under a generated run id rather than resuming.deleteRunSnapshotsis refused on a separate ground: the snapshot rows it deletes belong to deployment-scoped retention rather than to any caller. Nineteen entry points in all. That leavesresumeViaRuntimeas the only resume path and the guardedstream/generate/prepareas the only execution entry points. Surface tripwires now classify everyDurableAgentprototype member and every inheritedAgentmember, so a future peer bump surfaces new entry points on either.This is a behavior change for any consumer that called those methods on a FlowSafe durable agent: they now throw instead of executing. Their TYPE signatures narrow too — the overridden members return
Promise<never>, and the generic overloads several of them carried (network,generateLegacy,streamLegacy,sendToolApproval) collapse to a single refusing signature, so a call that no longer type-checks is the intended signal rather than a regression. Nothing in the supported agent-host surface reaches them — route clients through the agent-host run routes.Updated dependencies [80a801c]
Updated dependencies [b85a872]
Updated dependencies [fa0d11d]
Updated dependencies [0447466]
Updated dependencies [da6a0aa]
Updated dependencies [8f4daae]
Updated dependencies [66c19f1]
Updated dependencies [5cbe01d]