Profiles / withastro
Flue
Flue's approval recipe stores exact arguments and ends the response while a person decides.
Operator Stance / as of 2026-10-13
- Use it for
- TypeScript agent services whose teams will own application authorization.
- Avoid it for
- Deployments whose policy requires npm provenance.
- Watch next
- Check the next stable for npm provenance and public runtime regression tests.
Where it stands, 2026-10-13
On 12 October 2026, Flue 2.3.0 repaired execution faults, but the runtime package has no npm attestation linking it to its public source tag and publishing workflow. Deploy it only if your policy permits packages without npm provenance. For authorization, use the application-owned approval gate below.
For TypeScript agent services on Node or Cloudflare, install one exact Flue version. The older 2.2.2 cut is attested, with the execution faults described below.
npm install -E @flue/runtime@2.3.0 @flue/vite@2.3.0 @flue/cli@2.3.0
Match any SDK, React and telemetry packages to that version.
Sandbox output streaming (onOutput) is preview-only:
2.2.0-next.1 lacks later stable repairs;
stable 2.3.0 does not include it.
The 2.2.0-next.1 GitHub prerelease was published on 25 September 2026.
Use it only for a deliberate streaming trial in your command UI.
Run your own upgrade checks before deploying. Track the root changelog at each version tag; GitHub’s Latest release still names 2.2.2, although npm latest is 2.3.0. GitHub’s Latest badge alone leaves you on the older cut. Flue 2.3.0 deleted the public runtime, SDK and telemetry regression tests. Keep lockfile integrity hashes and test abort repair, timeouts, redaction and bounded history in your application.
Approve the stored action through a route you control. Flue’s
documented gate stores exact arguments, ends the response with pending_approval
and executes those arguments on authenticated approval.
Use it for refunds, publishing and deletion; your application owns the route,
expiry and idempotent effects.
There is no built-in approval API.
A skill’s allowed-tools restricts nothing;
use MCP annotations as hints to require approval, never skip it.
The human can decide on a specific action without keeping a tool call waiting.
Stop the runaway reminder. On 2.2.x, a guarded finish hook could append
the same reminder until the response hit its loop ceiling; 2.3.0 re-renders
before the callback.
On 2.3.0, test allowed and refused agents,
a child process that ignores SIGTERM,
and a guarded reminder that runs once.
Fail closed when agent identity is missing.
Run local() inside a trusted container or VM; it supplies no isolation.
Set a trace-content policy before exporting. Tracing
captures prompts, instructions and tool payloads by default.
Set content: false or a redacting transform. If you trusted the
2.1.0 README’s opposite advice,
inspect backend access and retention before exporting more.
Integration checks
Pin Flue’s Pi dependencies, pi-ai and pi-agent-core, as well as Flue itself. 2.3.0
removed Flue’s Claude-ID rewrite,
leaving one less patch to maintain. But pi-ai and pi-agent-core now admit
^1.1.0,
so installs on this date could resolve to Pi 1.2.0
without another Flue release. Record both resolved versions; use 1.1.0
overrides if that is your tested baseline. For AI Gateway Claude,
skip 2.2.0 and 2.2.1: their model-ID regressions were fixed in 2.2.2.
Budget for provider and latency changes when migrating. Azure users must
rename provider keys and model-specifier prefixes from azure-openai-responses
to azure.
Keep API ID azure-openai-responses and AZURE_OPENAI_* variables unchanged.
Mark 2.3.0 on your dashboards: tool durationMs now excludes Flue’s
hooks and result storage.
A lower number after upgrading is not evidence of faster execution.
Use SDK pagination for long chats. Since 2.2.0,
history, historyBefore and observe support bounded windows; generation-bound
cursors return 410 after reset.
Handle resets and pass the now-required settlements to
readSubmissionReply().
React still observes the whole conversation.
Choose a native PDF route before delegating document work. Since 2.2.0, Anthropic, OpenAI and Azure Responses, and Google APIs receive PDFs natively; other APIs receive a text placeholder.
Keep Cloudflare Sandbox on the blueprint’s dependency line. The
2.3.0 blueprint installs ^0.11.0.
SDK 1.0.0 no longer exports Sandbox or getSandbox(),
the API Flue’s adapter wraps.
Block that major upgrade until a compatible adapter ships.
Pi has absorbed a provider workaround, and Flue’s approval pattern turns a live wait into a stored decision. Let application code handle the routine checks. Spend human review on the refund or release being authorized and on the upgrade trade.
What is unresolved
- Package origin and runtime regression coverage in a later stable. Require an npm attestation linking that release to its public tag and workflow, and public tests for the contracts your application uses.
- We did not test Flue 2.3.0 with Pi 1.2.0. Provider and tool contract tests would qualify your resolved pair for your application.
- Whether output streaming reaches stable or the preview resumes.
A tagged stable
onOutputimplementation settles stable availability; a newnextpublication or removal of its dist-tag settles the preview’s status. - Cloudflare Sandbox 1.x support through Flue. A matching tagged blueprint and adapter would establish an upgrade path. Validate it on your deployment.
- Conversation deletion remains a request in Discussion #855. A tagged deletion API with documented retention semantics would establish what Flue can erase.
Verification
open source commits / evidence floor: commit / updated 2026-10-13
Verified claims
- Flue v0.4.0--v0.5.3: Initial Profile, Observability Wave, and Sandbox Architecture / verified 2026-10-13
- 2026-10-13-flue-2-3-0-returns-flue-to-export-style-releases-squashed-commits-from-a-source-tree-not-on-git / verified 2026-10-13
- 2026-10-13-flue-2-3-0-carries-no-npm-provenance-published-from-a-maintainer-account-not-the-ci-trusted-pub / verified 2026-10-13
- 2026-10-13-flue-2-3-0-moves-flue-onto-pi-1-x-azure-provider-id-renamed-tool-durations-redefined-and-the / verified 2026-10-13
- 2026-10-13-flue-2-3-0-makes-the-local-sandbox-actually-kill-a-timed-out-command-s-whole-process-group / verified 2026-10-13
- 2026-10-13-flue-2-3-0-gives-execution-interceptors-the-agent-s-name-on-every-step-which-per-agent-policy / verified 2026-10-13
- 2026-10-13-flue-2-2-0-to-2-2-2-carried-two-regressions-ai-gateway-claude-ids-fixed-the-same-afternoon-and / verified 2026-10-13
- 2026-10-13-flue-npm-next-is-dormant-at-2-2-0-next-1-older-than-latest-missing-later-stable-fixes-with-sand / verified 2026-10-13
- 2026-10-13-flue-flue-s-cloudflare-sandbox-adapter-targets-the-0-x-sdk-cloudflare-s-sandbox-sdk-1-0-dropped / verified 2026-10-13
- 2026-10-13-flue-trace-content-is-still-on-by-default-the-flue-opentelemetry-readme-said-the-opposite-until / verified 2026-10-13
- 2026-10-13-flue-the-allowed-tools-correction-shipped-in-2-1-1-the-field-is-still-unenforced / verified 2026-10-13
- 2026-10-13-flue-2-2-0-documents-an-approval-gate-pattern-and-states-that-flue-has-no-built-in-approval-api / verified 2026-10-13
- 2026-10-13-flue-2-2-0-adds-bounded-history-reads-pdf-attachments-and-server-timestamps-and-makes-readsubmi / verified 2026-10-13
- 2026-10-13-flue-github-latest-still-points-to-2-2-2-while-npm-latest-is-2-3 / verified 2026-10-13
- 2026-10-13-pi-coding-agent-provider-changes-chatgpt-sign-in-on-the-openai-provider-short-lived-anthropic-credentials / verified 2026-10-13
Featured in
- The Handoff Has an API / 2026-10-13
- Before the First Turn / 2026-09-21
- Approvals Belong to the App / 2026-08-20
- Extensible All the Way Down / 2026-08-17
- Two Reasons Not to Trust the Click / 2026-08-10
- Newer, Numbered Lower / 2026-08-03
- Rules Became Judgment / 2026-07-27
- Foreground Attention Is No Longer the Control / 2026-07-02
- Patched for Whom / 2026-07-01
- Governance, Sold Separately / 2026-06-24
- Protected on Paper / 2026-06-23
- Who's Allowed to Say Yes / 2026-06-16
- The Policy You Wrote Wasn't the Policy You Had / 2026-06-03
Source policy: what Frontier watches and accepts as evidence
Edited and maintained by Bitter Frontier.