Repository navigation
Releases
FlupCode flupcode-v4.2.1
What's Changed
- fix(desktop): give Linux an icon set hicolor can find by @rldona in #570
- chore: bump version to 4.2.1 by @rldona in #571
Full Changelog: flupcode-v4.2.0...flupcode-v4.2.1
FlupCode flupcode-v4.2.0
FlupCode 4.2.0 adds two things: a task list you can clear from the details panel, and bank
statements that arrive encrypted with an empty password, which are now unlocked when attached.
New in this release
- Clear the task list. The details panel's Tasks section now has Clear completed and
Clear all, like Subagents. Removal is remembered per session, and the list the agent keeps
writing is left untouched, so a task written later still shows up. - Encrypted PDFs attach. A PDF that only carries a permission password — the usual bank
statement, which opens without asking for anything — is unlocked when attached, so the turn reads
it instead of failing. A PDF that asks for a real password is refused with a message and never
reaches the session, which is what used to break every later turn.
Installers
macOS FlupCode-mac-arm64.dmg / FlupCode-mac-x64.dmg, Windows FlupCode-win-x64.exe, Linux
AppImage, .deb and .rpm — plus the web bundle (flupcode-web.zip) and the flupcode CLI and
harness binaries.
The desktop installers are unsigned, as documented in docs/RELEASE.md; your system will ask
before opening them.
Upgrade notes
Nothing to migrate. The engine pin does not change (OpenCode 2.0.18). The desktop app updates
itself; restarting it is enough.
What's Changed
- feat(harness): clear tasks and unlock encrypted PDFs by @rldona in #568
- chore: bump version to 4.2.0 by @rldona in #569
Full Changelog: flupcode-v4.1.3...flupcode-v4.2.0
FlupCode flupcode-v4.1.3
FlupCode 4.1.3 is a patch on 4.1.2: the agents list says how each agent is set up, and model and
provider names stay current while the app is open.
New in this release
- Each agent shows its model and provider. Settings → Agents now has a line under every agent's
name with its mode, its model with the effort level, and the provider — for example
Subagent / Claude Opus 5.5 · High / GitHub Copilot— so you can check the setup without opening
the agent. An agent with no model reads "Default model". - Model and provider names stay current. Coming back to the FlupCode window rereads both
catalogs, at most once every five minutes, so a model or provider renamed while the app stays open
shows without a restart. - A lighter startup. The onboarding screen, shown only on the first run, now loads on demand.
Installers
macOS FlupCode-mac-arm64.dmg / FlupCode-mac-x64.dmg, Windows FlupCode-win-x64.exe, Linux
AppImage, .deb and .rpm — plus the web bundle (flupcode-web.zip) and the flupcode CLI and
harness binaries.
The desktop installers are unsigned, as documented in docs/RELEASE.md; your system will ask
before opening them.
Upgrade notes
Nothing to migrate. The engine pin does not change (OpenCode 2.0.18). The desktop app updates itself;
restarting it is enough.
What's Changed
- test(harness): the streaming spec reports its turn as active by @rldona in #564
- docs: a changelog for what each version brought by @rldona in #565
- feat(harness): show each agent's model and provider, and keep names fresh by @rldona in #566
- chore: bump version to 4.1.3 by @rldona in #567
Full Changelog: flupcode-v4.1.2...flupcode-v4.1.3
FlupCode flupcode-v4.1.2
FlupCode 4.1.2 is a patch on 4.1.1: two fixes reported from the app, and the test change that
stops them from ever blocking a release again.
Fixed in this release
- Cowork works without a project folder. Picking Cowork in the conversation view and sending
with "No folder" did nothing: the send was refused and the reason only appeared on the code home,
so the screen read as broken. A turn is usually reading, searching or running a command, so the
folder is now offered rather than required — the same path Code already takes — and an agent that
needs to write asks for a folder when it gets there. - The context ring no longer flashes red when you switch sessions. With no measured step in the
open session's transcript, the figure fell back to the session's own tokens — what it has spent
over every step, not the window it sends next — so the ring filled red for a moment before the
real value landed. An unmeasured session now shows an empty ring until a step reports tokens.
Also new since 4.1.0
- Agents say what they are about to do. A turn used to open with a tool call and no word. One
instruction file, loaded as engine instructions, asks every agent and subagent for one line before
the first tool of a turn, and again when the work changes direction. - Tasks are back in the details panel, first above the agents: the list the model writes, kept
per session by FlupCode's owntodotool and updated as the run moves.
Installers
macOS FlupCode-mac-arm64.dmg / FlupCode-mac-x64.dmg, Windows FlupCode-win-x64.exe, Linux
AppImage, .deb and .rpm — plus the web bundle (flupcode-web.zip) and the flupcode CLI and
harness binaries.
The desktop installers are unsigned, as documented in docs/RELEASE.md; your system will ask
before opening them.
Upgrade notes
Nothing to migrate. The engine pin does not change (OpenCode 2.0.18). The narration instruction is
written the next time FlupCode starts its engine, so restarting the app is enough.
FlupCode flupcode-v4.1.1
What's Changed
- feat(remote): ask every agent for a word before it works by @rldona in #559
- chore: bump version to 4.1.1 by @rldona in #560
Full Changelog: flupcode-v4.1.0...flupcode-v4.1.1
FlupCode flupcode-v4.1.0
What's Changed
- docs: README cover with logo, name and screenshot by @rldona in #551
- fix(harness): the details panel keeps to what it has to show by @rldona in #552
- fix(harness): one run from start to end, and no lazy layout under it by @rldona in #553
- feat(harness): the session's tasks are back in the details panel by @rldona in #554
- feat(harness): the task list follows the run by @rldona in #555
- feat(harness-server): the tasks outlive the server by @rldona in #556
- fix(harness): the picked option keeps its shade, not just the tick by @rldona in #557
- chore: bump version to 4.1.0 by @rldona in #558
Full Changelog: flupcode-v4.0.2...flupcode-v4.1.0
FlupCode flupcode-v4.0.2
FlupCode 4.0.2: sign out of an MCP server
What changes
- A "Sign out" button for MCP servers. "Disconnect" only closes the connection: FlupCode keeps the server's sign-in, so connecting again never asks for it. A server you are signed in to now shows Sign out in Settings → MCP servers. It removes the sign-in and reconnects the server, which then offers Connect with OAuth again.
Updating
- The desktop app updates itself.
- The
flupcodebinary is attached to this release. - Builds are not signed:
- macOS: use Open Anyway in System Settings → Privacy & Security, or run
xattr -dr com.apple.quarantine /Applications/FlupCode.app. - Windows: choose More info → Run anyway.
- macOS: use Open Anyway in System Settings → Privacy & Security, or run
What's Changed
- feat(harness): sign out of an MCP server from Settings by @rldona in #549
- chore: bump version to 4.0.2 by @rldona in #550
Full Changelog: flupcode-v4.0.1...flupcode-v4.0.2
FlupCode flupcode-v4.0.1
FlupCode 4.0.1: Code Mode and permissions that stick
What changes
- Fix: "Turn off Code Mode" now works. FlupCode saved an MCP server the OpenCode 1.x way, and OpenCode 2 drops the Code Mode setting from that shape, so the server stayed in Code Mode and an agent that does not allow
executestill got none of its tools. Servers are now saved the way OpenCode 2 reads them. A server saved before this release shows the warning again in Settings → MCP servers: use Turn off Code Mode there once to move it. - Fix: the permission policy is saved. In the desktop app, a change in Settings → Permissions went back to "Default" the next time Settings opened. The policy is now saved to your global OpenCode config, and the button says "Saved" only once it was written.
- A wiki. The guides are now at flupcode.com/wiki, with a new one on setting up Adaptive.
Updating
- The desktop app updates itself.
- The
flupcodebinary is attached to this release. - Builds are not signed:
- macOS: use Open Anyway in System Settings → Privacy & Security, or run
xattr -dr com.apple.quarantine /Applications/FlupCode.app. - Windows: choose More info → Run anyway.
- macOS: use Open Anyway in System Settings → Privacy & Security, or run
What's Changed
- fix(harness): write MCP servers the way OpenCode 2 keeps Code Mode off by @rldona in #543
- fix(harness): save the permission policy to the global config by @rldona in #544
- feat(wiki): VitePress site for flupcode.com/wiki by @rldona in #545
- feat(landing): serve and link the wiki at flupcode.com/wiki by @rldona in #546
- fix(landing): serve flupcode.com/wiki/ with its trailing slash by @rldona in #547
- chore: bump version to 4.0.1 by @rldona in #548
Full Changelog: flupcode-v4.0.0...flupcode-v4.0.1
FlupCode flupcode-v4.0.0
FlupCode 4.0: runs you can trust, cost you can read
FlupCode 4.0 makes a run say what really happened, shows what it cost, and puts the browser and remote access under one policy. The engine is still OpenCode 2.0.18.
What's new
- Runs you can trust.
- Stop really stops the agent, and a failed model call fails the task.
- Every task and run carries a verdict: Verified, Not verified, Needs your input or Failed.
- A failed run resumes from the task where it broke.
- Checkpoints carry the conversation, a summary and the cost, and a run can be forked from any of them.
- Cost you can read.
- One usage ledger is behind every figure, so the home card and the Cost screen agree.
- Budgets stop a run at the step that crosses them. Near a budget, a run goes one task at a time, can wait for you, or switches to the policy's fallback model.
- The Cost screen shows the quota OpenRouter and DeepSeek report.
- A browser under one policy.
- Every browser action asks per site: once, this session or always. Payment, banking and sign-in sites are refused.
- The agent can use FlupCode's own browser, your Chrome or Edge through the FlupCode Bridge extension (loaded unpacked for now), or a Preview of your dev server in the desktop app.
- A
verifytask can compare the page with its last capture.
- FlupCode without the desktop window.
flupcode servehosts the harness, and a web tab pairs with a code.- A paired phone has a Runs view where it can approve a gate and stop a run.
- The desktop app restarts its engine and harness server, keeps their logs and offers Copy Diagnostics.
- Routines that keep time: time zones, cron, missed runs, retries, and a notice after three failures.
- One interface: one navigation, one run card, one attention mark, accessible dialogs, context chips in the composer, and artifacts with versions.
What can break
- FlupCode's plugins no longer load in an OpenCode you start yourself. They load only in engines FlupCode starts, and the copies in
~/.config/opencode/plugins/are removed on the next start. - A run task that needs approval mid-turn now holds its run at "Needs approval" until somebody answers.
unattended: denyfails it within seconds instead. - A run with a budget slows to one task at a time once 80% is spent. Turn it off with
nearBudget: { serial: false }. - A task whose model call failed now ends failed. Routines that showed success this way will start failing visibly.
- Memories FlupCode extracts are not used until you approve them in the Memory panel.
- Restoring a checkpoint also takes back the conversation it was taken in. The plan says so first.
- Deleting a run also removes its checkpoints and evidence; deleting a document forgets all its versions.
- Navigation moved: "Customize" is "Settings", Agents live in Settings › Agents, and the Cost screen is at
/cost. Old links redirect. - For scripts and config:
adaptive.jev.*,allowJevandTYPESAFE_API_KEYare aliases for one release. Useadaptive.providers.<id>.*,allowModelandFLUPCODE_TYPESAFE_API_KEY.- Removed:
/harness/browser/*low-level routes,GET /harness/adaptive/metrics/sessions, andfromCheckpointon workflow runs. - In an external task's
command,{{item}}and inputs are passed as one quoted word each.
Updating
- The desktop app updates itself. On first start it migrates its database (a copy is taken first) and fills the usage ledger from your existing sessions.
- The
flupcodebinary is attached to this release.flupcode serveneedsflupcode-harness-<platform>beside it. - Builds are not signed:
- macOS: use Open Anyway in System Settings → Privacy & Security, or run
xattr -dr com.apple.quarantine /Applications/FlupCode.app. - Windows: choose More info → Run anyway.
- macOS: use Open Anyway in System Settings → Privacy & Security, or run
Full notes: docs/RELEASE-4.0-DRAFT.md.
What's Changed
- docs: audit of October 2026 and new roadmap by @rldona in #476
- fix(server): stop a run by interrupting every live task session by @rldona in #477
- fix(server): fail a task when its engine turn failed by @rldona in #478
- fix(harness): one session-cost calculation and one money format by @rldona in #479
- fix(server): quote plan steps and inputs in external task commands by @rldona in #480
- fix(server): a failed routine start stays failed, and every due routine fires by @rldona in #481
- fix(harness): terminal on the OpenCode 2 PTY, through the adapter by @rldona in #482
- docs: status documents match the October 2026 audit by @rldona in #483
- docs: decide to attach to the engine's opencode.browser protocol by @rldona in #484
- fix(remote): memory injects only approved memories, scopes its tool, refuses credentials by @rldona in #485
- fix(server): confine file and artifact reads to known project roots by @rldona in #486
- fix(desktop): open-path allowlist, renderer CSP, single instance by @rldona in #487
- fix(server): web action runs need a server-issued, single-use approval by @rldona in #488
- fix(server): keep harness secrets from children and argv, scope the plugins' bearer by @rldona in #489
- fix(server): a resumed run hands on its notes and trees by @rldona in #490
- fix(server): find checkpoints by id and collect their refs with the run by @rldona in #491
- fix(harness): one slash-command registry for the palette and the composer by @rldona in #492
- fix(harness): surface resource failures in Changes, Usage and Adaptive by @rldona in #493
- feat(server): a run names the workflow, version and inputs it executed by @rldona in #494
- fix(server): deleting a run has a defined effect on everything under it by @rldona in #495
- feat(server): add the usage ledger and its ingest route by @rldona in #496
- feat(server): attribute usage to runs, tasks, workflows and purposes by @rldona in #497
- feat(remote): send every billable engine event to the usage ledger by @rldona in #499
- feat(server): reconcile the usage ledger from engine transcripts by @rldona in #498
- refactor(harness): retire the 1.x compatibility layer and police raw engine routes by @rldona in #500
- feat(server): usage summary API with group-by and cost basis by @rldona in #501
- feat(server): a verdict on every task and run (RP-06) by @rldona in #502
- feat(server): one browser policy decides every browser action by @rldona in #503
- feat(harness): Cost & Usage Center on the usage ledger by @rldona in #505
- feat(harness): one attention scale across sessions, runs and routines by @rldona in #504
- feat(harness): run card that reads as one thing by @rldona in #506
- feat(harness): presets for the user's own browser, under FlupCode's approvals by @rldona in #507
- fix(release): release only what CI tested, for the architecture it claims by @rldona in #508
- feat(harness): resume a run from a task by @rldona in #509
- feat: artifact lineage and versions by @rldona in #511
- feat(desktop): supervise the engine and the harness, keep logs, copy diagnostics by @rldona in #510
- docs: put UX-00 in wave 7 by @rldona in #514
- feat(server): unattended mode for task sessions and a fail-closed agent floor by @rldona in #513
- feat(harness): dependable routines with zones, missed runs, retries and a failure notice by @rldona in #512
- feat(cli): flupcode serve hosts the harness, and a web app tab pairs with it by @rldona in #515
- test(harness): drop the CSP spec's routes before the page closes by @rldona in #516
- refactor(server): a BrowserDriver interface, with the recipe runner as its first driver by @rldona in #517
- refactor(server): prune the adaptive layer to what has a consumer by @rldona in #518
- fix(remote): keep engine plugins in FlupCode's own folder by @rldona in #519
- feat(server): budgets stop runs at the step that crosses them by @rldona in #520
- refactor(harness): split app.tsx into feature stores, routes and lazy screens by @rldona in #521
- feat(harness): home dashboard on engine stats and the usage ledger by @rldona in #522
- feat(remote): carry /harness/* over the remote ...
FlupCode flupcode-v3.0.1
FlupCode 3.0.1: MCP servers and Code Mode
What changes
- The MCP panel says when an agent can't see a server. OpenCode 2 runs an MCP server's tools through its
executetool ("Code Mode") by default. An agent that denies everything and lists the server's tools by name (the usual way to restrict one in OpenCode 1.x) doesn't allowexecute, so it silently got none of them. The panel now names those agents and offers Turn off Code Mode for the server. - Who can use each server is read the way OpenCode 2 reads it: from the agent's
permissionrules as well as itstoolsmap. An agent with no restrictions now counts as allowed. - A Code Mode switch in the server form. Off, each tool is offered on its own, as in OpenCode 1.x.
- Fix: turning "Start on launch" back on for a server is now saved.
Updating
- The desktop app updates itself.
- The
flupcodebinary is attached to this release. - Builds are not signed:
- macOS: use Open Anyway in System Settings → Privacy & Security, or run
xattr -dr com.apple.quarantine /Applications/FlupCode.app. - Windows: choose More info → Run anyway.
- macOS: use Open Anyway in System Settings → Privacy & Security, or run
What's Changed
- fix(harness): say when Code Mode hides an MCP server from an agent by @rldona in #474
- chore: bump version to 3.0.1 by @rldona in #475
Full Changelog: flupcode-v3.0.0...flupcode-v3.0.1