Releases: superplanehq/superplane
Release list
v0.30.0
What's new since v0.29.0
v0.30.0 is anchored by Software Factory's new app onboarding flow and a run-context expression for linking back into workflows, plus a wide GitLab expansion, a new Linear integration, and a round of reliability work for cross-app runs, runner tasks, and canvas versioning.
Run context
- Expressions gain a
run()function —run().id,run().url(a direct link to the run in the SuperPlane UI), andrun().started_at— available anywhere$,root(), andprevious()already work, so a Slack message or any other component can link straight back to the run that produced it.
Software Factory
- New apps get a factory-first landing page with inline setup, and installs can now ship straight to production from that new-app landing.
- Kanban cards now correlate to the right GitHub issue by number, and starting-task prompts and labels are clearer.
1 new integration
- Linear joins the integrations list with
createIssueand anonIssuetrigger, quickly followed bygetIssueandupdateIssuecomponents.
Improvements to existing integrations
- GitLab keeps expanding:
onPush/onBranchCreatedtriggers,getIssue/updateIssue/createIssueComment/updateIssueCommentcomponents,createMergeRequestplus a merge-request-reviewer component,updateMergeRequest,addIssueLabelandmarkMergeRequestReadyForReview, newonIssueComment/onMRDiffNotetriggers, expandedonIssue/onMergeRequestaction fields, and a refreshed setup guide. - GitHub adds an
updatePullRequestcomponent. - Claude/Cursor: a new Run Claude Code runner component, structured output support for both Run Claude Agent and Run Code Agent, a refactor of agent/environment selection on the Run Claude Agent component, and a fix so
runAgentsessions are reclaimed correctly when a run ends badly.
Workflow and execution
- Runs can now be cancelled asynchronously, backed by a new
ExecutionTerminatorworker, and cross-app runs can be triggered synchronously with a configurable timeout. - Node cleanup workers were refactored to be run-centric, with a dedicated completed-node-request cleanup worker (an earlier soft-delete cleanup worker was shipped and then reverted pending further work).
- The task-broker protocol picked up named
command_listentries, task files oncreate-task, and object-form commands, while runners gainedenvironmentFromand integration/secret field types, clearer waiting-for-logs and Task ID labeling, finalized terminal log sections, and propagated task errors in the finished payload. - A stalled-loop-execution fix (and its revert) landed, along with a scheduler fix so the first run no longer skips the current hour when the minute hasn't passed yet.
Canvas versioning and editing
- Returning to the live version from history preview, or using "See Current Version" mid-edit, now resyncs the staged draft correctly instead of leaving it stale.
ListCanvasVersionsreturns metadata only (with the spec loaded on selection), and canvas versions load through the newDescribeCanvasVersioncall.- Notes can be cloned on the canvas, the diff view normalizes YAML field ordering before comparing, and the commit form submits on enter.
Security
- API keys gain scopes and expiration,
CanvasServicehandlers now enforce organization scoping, and outgoing SMTP headers are sanitized to prevent CRLF injection.
Bug Fixes
- UI diff view does not normalize YAML field ordering before comparison (#6158) by @superplane-gh-integration-9000[bot]
- Components filter should take into account subheader text (#6167) by @superplane-gh-integration-9000[bot]
- Select/multi-select dropdown gets cut off when it is the last field in component config (#6163) by @superplane-gh-integration-9000[bot]
- Relatively long commit message overflows in the commit message input (#6179) by @superplane-gh-integration-9000[bot]
- Reclaim claude runAgent sessions when a run ends badly (#6097) by @WashingtonKK
- Apply dark theme on owner setup pages (#6193) by @lucaspin
- Restore dark mode surfaces (#6195) by @forestileao
- Simplify owner setup (#6198) by @forestileao
- Fail stalled loop executions (#6201) by @forestileao
- Scheduler: first run skips current hour when minute has not passed yet (#6231) by @superplane-gh-integration-9000[bot]
- Resync staged draft when returning to live version from history preview (#6249) by @lucaspin
- Clone notes on the canvas (#6250) by @superplane-gh-integration-9000[bot]
- Only resync staged draft on See Current Version during edit session (#6251) by @lucaspin
- Include runner task error in finished payload (#6273) by @forestileao
- Finalize terminal runner log sections (#6277) by @forestileao
- Submit commit form on enter (#6278) by @superplane-gh-integration-9000[bot]
- Ship Claude Code bash steps as raw user commands (#6282) by @shiroyasha
- Runners summary: task_id should be Task ID (#6279) by @superplane-gh-integration-9000[bot]
- Improve AGENTS.md with clearer structure, setup steps, and contribution guidelines (#6286) by @superplane-gh-integration-9000[bot]
- Improve global command palette dark theme for search results (#6294) by @lucaspin
- Restore missing runs icon on Console tab of app page (#6298) by @superplane-gh-integration-9000[bot]
- Add widget-level option to allow concurrent run submissions on node widget trigger buttons (#6307) by @superplane-gh-integration-9000[bot]
- Add unit test for crypto.HashPassword and VerifyPassword (#6337) by @superplane-gh-integration-9000[bot]
- Small UX adjustments on runApp and onRun components (#6299) by @lucaspin
- Use shared SecretsContext test double in http component tests (#6347) by @superplane-gh-integration-9000[bot]
- Return metadata-only from ListCanvasVersions and load spec on selection (#6351) by @lucaspin
- Correlate factory kanban cards by issue number (#6352) by @forestileao
- Enforce organization scoping on CanvasService handlers (#6354) by @lucaspin
- Sanitize SMTP headers to prevent CRLF injection (#6355) by @forestileao
- Use registryimports in integrations count script (#6367) by @shiroyasha
- Selected text in agent chat isn't readable in dark mode (#6373) by @superplane-gh-integration-9000[bot]
Improvements
- Request only one random reviewer (#6178) by @shiroyasha
- Revert "fix: fail stalled loop executions (#6201)" (#6208) by @forestileao
- Add Models API shape guidance to AGENTS.md (#6210) by @forestileao
- Revert "feat: add canvas node cleanup worker for soft-deleted nodes (#6209)" (#6212) by @forestileao
- Refactor cleanup workers to be run-centric (#6215) by @lucaspin
- Add node_id to workflow runs (#6214) by @lucaspin
- Add E2Es for cross-app runs (#6222) by @lucaspin
- Remove outdated runner machine types (#6259) by @re-pixel
- Send object-form commands to task-broker (#6255) by @0vertake
- Load canvas versions with DescribeCanvasVersion (#6350) by @lucaspin
New features
- Canvas auto-focus toggle in zoom toolbar (#6169) by @andrecalil
- Add API key scopes and expiration (#6180) by @forestileao
- Add ExecutionTerminator worker for async execution cancellation (#6199) by @lucaspin
- Refactor Run Claude Agent component agent and environment selection (#6177) by @WashingtonKK
- Add GitLab on Push and on Branch created triggers ([#6182](https://github.com/superplanehq/...
v0.29.0
What's new since v0.28.0
Console dashboard widgets
- Scorecard widget joins the panel lineup — a single-KPI view with a status-colored trend, an optional target with a progress bar, and a colored sparkline.
- Table widget gains avatar, progress bar, trend, and value + trend columns.
- Runs data sources (table/chart/number/scorecard panels, plus markdown and HTML run variables) can now be filtered by status and trigger, reusing the same vocabulary as the canvas runs sidebar.
- The timestamps tooltip was consolidated across dashboard widgets, and the console dashboard UI got a dark-mode and Storybook polish pass.
Run inspector
- Queued steps now render in the run inspector with their input and a cancel action, and run detail loading is batched and parallelized to cut added latency.
- Runner logs are now available directly in the run inspector timeline.
- Continued polish: faster live-canvas run inspection, clearer runtime actions and navigation controls, fit-to-view for run inspection nodes, focus-on-participants, and the ability to open the run inspector for older node runs.
1 new capability: broadcast messaging
- Apps can now broadcast messages to each other one-way within the same organization, via a new
broadcastMessageaction andonBroadcasttrigger backed by a new subscriptions table.
App experience
- Full-page editor: every multi-line configuration field on a component or trigger now has an expand button that opens a large modal editor, so long prompts, messages, and scripts are easier to write and review.
- Apps gain a configurable default tab.
- Markdown picks up GitHub-style alerts (
NOTE/TIP/IMPORTANT/WARNING/CAUTION) and[!SECTION]accordions, and thematic breaks now render as dividers, shared across Files and Console.
Improvements to existing integrations
- GitLab adds
createDeploymentandcreateDeploymentStatusactions plusacceptMergeRequestandapproveMergeRequest, and the project field now accepts expression values. - Claude gains a
createBatchMessagecomponent for running prompts over an array of inputs via the Message Batches API, a toggle to persist sessions after a run, and file/artifact support for its text-prompt component. - OpenAI's text-prompt component also gains file/artifact support.
- Cursor's
launchAgentnow returns artifacts, and Discord'ssendTextMessageand GitHub'scommentaction can send a file by URL. - GitHub adds a
markPullRequestReadyForReviewaction.
Fixes and polish
Continued stabilization of the staging and edit-mode work from v0.28.0: repository file staging is preserved when re-entering edit mode, staging now uses the canvas update permission, and two HTTP 500s were fixed. Elsewhere, expression autocomplete stays stable on enter and now supports GitLab project fields and Claude Run Code Agent PR URLs, SSH inline scripts stream correctly and normalize line endings, stale execution requests are ignored, runs waiting on deleted approval nodes are cancelled, agent layout controls are respected, survey questions render separately, and agent/account limit errors are handled gracefully.
Bug Fixes
- Focus run inspection canvas on participants (#6011) by @forestileao
- Position autocomplete dropdown at cursor (#6014) by @forestileao
- Fit all run inspection nodes (#6016) by @forestileao
- Hide Non-manual Triggers from Table Actions (#5957) by @andrecalil
- Speed up live canvas run inspection (#6020) by @forestileao
- Treat signup and welcome as public routes in command palette (#6022) by @andrecalil
- Improve run inspector runtime actions (#6023) by @forestileao
- Improve run inspector navigation controls (#6026) by @forestileao
- Share fullscreen expand dialog and improve Mermaid diagrams (#6035) by @AleksandarCole
- Mock canvas repository files in AppPage Storybook fixtures (#6033) by @AleksandarCole
- Focus node chips from Files and improve hover cards (#6036) by @AleksandarCole
- Replace markdown section presets with SuperPlane set (#6039) by @AleksandarCole
- Open old node run inspector (#6037) by @forestileao
- Use canvas update permission for staging (#6003) by @forestileao
- Normalize SSH script line endings (#6044) by @forestileao
- Avoid Bouncing for Default Tab (#6050) by @andrecalil
- Stream multiline SSH inline scripts (#6073) by @forestileao
- Preserve repository file staging when re-entering edit mode (#6079) by @lucaspin
- Allow expression values for Claude Run Code Agent PR URL (#6089) by @shiroyasha
- Add dark mode colors to graphql icon (#6082) by @DimitrijeGlibic
- Reduce Console Runs Calls (#6060) by @andrecalil
- Allow expression values for GitLab project field (#6111) by @WashingtonKK
- Keep expression autocomplete stable on enter (#6120) by @forestileao
- Cancel runs waiting on deleted approval nodes (#6084) by @forestileao
- GitRefRenderer exposes pull requests refs as options (#6124) by @lucaspin
- Show text selection in Firefox (#6128) by @forestileao
- Respect agent layout controls (#6129) by @forestileao
- Ignore stale execution requests (#6138) by @forestileao
- HTTP 500 /api/v1/canvases/e5367743-97e5-4c36-9956-96a91a9479d7/staging/commit (#6146) by @superplane-gh-integration-9000[bot]
- HTTP 500 /api/v1/organizations/4e45bf6c-14ef-4b4b-a775-66b49a2ebaec/integrations/84fe584e-67ba-4d00-8910-740fb9a267d1 (#6148) by @superplane-gh-integration-9000[bot]
- Allow longer HTTP timeouts (#6152) by @forestileao
- Render agent survey questions separately (#6153) by @forestileao
- Wrap long JSON viewer values (#6154) by @forestileao
- Handle agent and account limit errors (#6156) by @forestileao
- Another version of Vue Devtools seems to be installed. Please enable only one version at a time. (#6147) by @superplane-gh-integration-9000[bot]
- Remove "Pin App" from homepage - keep only star (#6151) by @superplane-gh-integration-9000[bot]
- Console Chart Reserved Keywords (#6077) by @andrecalil
- Edges that dissapear (#6150) by @superplane-gh-integration-9000[bot]
- Lint proto field number gaps (#6160) by @superplane-gh-integration-9000[bot]
- CI: flaky go mod download (#6162) by @superplane-gh-integration-9000[bot]
Improvements
- Decouple YAMLs from API types (#6017) by @lucaspin
- Add Storybook to the pipeline (#6025) by @andrecalil
- Upgrade github.com/spf13/* and sirupsen/logrus deps (#6051) by @lucaspin
- Upgrade opentelemetry dependencies (#6052) by @lucaspin
- Update golang.org/x/crypto to v0.54.0 (#6053) by @lucaspin
- Update posthog-js from ^1.368.2 to ^1.399.2 (#6054) by @lucaspin
- Upgrade react-router-dom to 7.18.1 (#6055) by @lucaspin
- Update @hey-api/openapi-ts to v0.99 (#6056) by @lucaspin
- Update jsdom to v29 (#6057) by @lucaspin
- Update @dash0/sdk-web to v0.22.x (#6058) by @lucaspin
- Migrate cel-js to marcbachmann/cel-js (#6069) by @andrecalil
- New runs UI polish (#6113) by @ropsii
New features
- Polish con...
v0.28.0
What's new since v0.27.0
v0.28.0 is an app-experience release. The canvas gets a full dark-mode pass, a redesigned runs sidebar with a dedicated run-inspection view, star/pin support, and a rewritten edit-and-versioning flow. It also lands a new S3-compatible storage integration for Hetzner, a much bigger GitLab surface area, Cloudsmith vulnerability workflows, GCP firewall management, and structured-output plus file-attachment support for both OpenAI and Claude prompt components.
App experience
- App-wide dark mode with a persisted theme preference, plus a follow-up sweep of missing styles across signup, admin, the diff modal, and the canvas itself.
- Star and pin apps so favorites stay at the top of the workflows list, and SuperPlane now remembers the last selected org across sessions.
- Redesigned runs sidebar paired with a new run inspection sidebar that lets you drill into inputs, outputs, and the input timeline without leaving canvas view.
- Simplified edit experience and versioning for apps — the enter-edit flow bootstraps in a single transaction, staged canvas changes are kept out of the live view, and the edit-mode indicator is much more noticeable. Restricted canvas actions are now guarded, unconnected action nodes warn before commit, and node implementation changes are rejected outright to avoid silent breakage.
- Apps can be created from folder headers in the workflows list.
1 new integration
- Hetzner Object Storage joins the S3-compatible storage lineup, so buckets and objects hosted on Hetzner can be managed with the same components as AWS S3.
Improvements to existing integrations
- GitLab graduates from base integration to a full one with a new
onMergeCommenttrigger and an updatedonMergeRequest, pluscreateMergeCommentandaddReactionactions. The setup flow and connection instructions were also rewritten. - Cloudsmith picks up the full vulnerability workflow —
scanPackage,getPackageVulnerabilities,quarantinePackage, and dedicated vulnerability-policy components — alongsidelistPackagesandpromotePackagesfor release-promotion pipelines. - GCP gains full firewall-rule lifecycle:
createFirewallRule,updateFirewallRule, anddeleteFirewallRule. - AWS EC2 adds
updateAlarmanddeleteAlarmto complete the CloudWatch alarm surface introduced last release. - Sentry learned to
linkGitHubIssue, connecting a Sentry issue to an existing GitHub issue directly from a workflow. - OpenAI and Claude text-prompt components now accept file attachments and a structured output config for JSON-typed responses. Both providers also expose usage metrics through the new
openai.usageMetricsandclaude.getDailyUsagecomponents. - Cursor's
launchCloudAgentnow returns conversation messages so downstream nodes can react to what the agent said.
New components and capabilities
- OIDC execution tokens let runners authenticate to third-party clouds during CI workflows without long-lived credentials.
- Runner logs are now available to the CLI and to agents, with fetches bounded by a record limit and returning cleanly after the stream goes idle.
- A standardized
Timestampcomponent replaces ad-hoc time expressions across workflows. - Run Claude Code Agent lands as a first-class component for triggering Claude Code from a canvas.
Agents
- Expanded image attachments in agent chat, and
/clearnow fully resets the agent chat session. - Agents display staged canvas changes without leaving edit mode, and streaming status reconciles cleanly when the connection blips.
- Agents no longer act unsolicited on canvas open or refresh, and agent tool results (including read/list) are compact by default to fit within provider limits.
- Agent panel state is remembered per canvas so new apps open with the chat visible rather than history.
Fixes and polish
The bulk of this release is polish for the draft, commit, and publish flow introduced in v0.26.0: version generation runs in a single transaction on commit, repository file reads are split by version/stage/live so caches stay consistent, and the canvas cache and enter-edit staging bootstrap were stabilized. Elsewhere, secret renaming now re-encrypts stored data, invite-link creation is protected against races, the auth middleware no longer panics on gateway authorization failures, the canvas websocket update loop was closed, and expression autocomplete stays anchored to its input while scrolling. Markdown file previews render, code blocks in notes are copyable and scrollable, and the diff view highlights are much clearer.
Bug Fixes
- Keep agent read results compact by default (#5796) by @forestileao
- Stop runner log fetches at record limit (#5804) by @forestileao
- Keep run sidebar selection focused (#5798) by @forestileao
- Return agent runner logs after stream goes idle (#5806) by @forestileao
- Show feedback on API token copy (#4333) by @matheuskafuri
- Reconcile agent chat streaming status (#5811) by @forestileao
- Remove stale change request CLI reference (#5814) by @forestileao
- Stop culling canvas nodes near the viewport edge (#5812) by @forestileao
- Stop agent from acting unsolicited on canvas open/refresh (#5815) by @forestileao
- Make code blocks in notes copyable, selectable, and scrollable (#5820) by @forestileao
- Clarify $ expression description in autocomplete (#5824) by @forestileao
- Preserve field value when toggling between Fixed and Expression (#5826) by @forestileao
- Keep expression autocomplete anchored to input on scroll (#5832) by @forestileao
- Increase Max Payload Size (#5834) by @andrecalil
- Filter Dash0 SDK fetch failures from Sentry (#5838) by @shiroyasha
- Prevent crash when display message metadata is missing (#5845) by @shiroyasha
- Guard synthetic keydown events (#5848) by @shiroyasha
- Move app name/description to workflows table (#5827) by @lucaspin
- Persist Building Blocks sidebar display settings (#4631) by @lucasdelafuentep
- Fit view to whole graph when switching canvas or version (#5833) by @forestileao
- Keep component sidebar fixed width with long field values (#5870) by @forestileao
- Open agent panel (not history) on new apps with a per-canvas preference (#5874) by @forestileao
- Derive AWS create-instance node state from emitted channel (#5862) by @WashingtonKK
- Create And Sort Secrets From the Canvas (#5875) by @andrecalil
- Prevent invite-link creation race (#5847) by @shiroyasha
- Clean Up/Improve Trigger Widget Confirmation (#5866) by @andrecalil
- Make /clear reset agent chat session (#5878) by @forestileao
- Avoid nil panic in UpdateGroup when group spec is omitted (#4655) by @inacionery
- Propagate DeleteIntegration transaction failures (#4509) by @AlexDio123
- Guard ssh commands split (#5888) by @shiroyasha
- Re-encrypt secret data when renaming secrets (#5885) by @shiroyasha
- Keep list field accordion controlled (#5893) by @shiroyasha
- Prevent canvas websocket update loop (#5890) by @shiroyasha
- Prevent approval mapper crash on missing records (#5889) by @shiroyasha
- Use timestamp fallback for versions without commit messages (#5899) by @lucaspin
- Sanitize describe organization errors (#5901) by @shiroyasha
- Prevent auth middleware panic on gateway authorization failures (#5898) by @shiroyasha
- Stabilize transitions after commit (#5904) by @lucaspin
- Preserve context cancellation error chain (#5908) by @shiroyasha
- Remove horizontal scroll from the members table (#5911) by @shiroyasha
- Wrap Text on the Add Secret Dialog ([#5916](https://github.com/superplanehq/su...
v0.27.0
What's new since v0.26.0
v0.27.0 is a catalog and integration release. The SuperPlane App catalog grows with seven new pre-built apps, Cloudsmith jumps from a base integration to a full one with new triggers and lifecycle actions, and AWS, GCP, and GitHub each pick up new components. It also lands a long list of polish fixes for the draft, commit, and publish flow introduced in v0.26.0, and quietly retires a lot of legacy canvas plumbing.
App catalog and install experience
The catalog now ships with several new ready-to-install apps:
- OSS Guard
- TLS Monitor
- Semantic Pull Requests
- Coolify Watcher
- Cluster Autoscaler (DigitalOcean + Grafana + Discord)
- PR Docs Review
- Auto Merge Bot
The DigitalOcean and GitHub + AWS preview-environment manifests were refreshed, and the manifest itself was reordered by category for easier browsing.
The install wizard added in v0.26.0 is more capable too. Install params are now substituted into seed files when an app is created, integration-resource fields support a useNameAsValue option for providers that key on names rather than IDs, and the app catalog can render Lucide icons alongside the existing icon sets.
Cloudsmith
Cloudsmith went from a base integration to a fully-featured one:
- New triggers:
onPackageCreatedandonSecurityScanCompleted. - New actions:
resyncPackage,tagPackage, anddeletePackage, on top of thegetPackageshipped in v0.26.0.
This makes it possible to drive package promotion, retagging, security follow-up, and cleanup directly from SuperPlane workflows.
Other integration and component additions
- AWS EC2 gained
createLoadBalanceranddeleteLoadBalancercomponents, and the existingcreateInstanceaction exposes more of EC2's launch options. - GCP Cloud Storage is now first-class, with new bucket components, and existing GCP component icons were refreshed.
- GitHub webhook triggers now cover the full set of pull request actions, so workflows can react to every state change emitted by the GitHub webhook.
- Memory variables show up in expression autocomplete, making persisted state easier to discover and reference.
- Tasks accept a configurable webhook payload size limit, so larger inbound payloads can be wired through without hitting a hard cap.
Agents
Two new agent tools tighten the edit and discovery loop:
patch-style draft updateslet agents apply small graph edits to an app draft without rewriting the whole canvas YAML.- A new
list resourcesaction lets agents enumerate provider-backed integration resources (repositories, projects, workspaces, etc.) the same way the UI does.
Agent tool descriptions are now trimmed to fit Anthropic's provider-side limit, so registering many tools no longer fails the session.
Console and node widgets
The Console dashboard panels and chart palette were polished as part of the ongoing Console rollout. Table Link cells now resolve CEL expressions, matching the rest of the Table widget, and a handful of node widget paint problems were ironed out.
Drafts, canvas, and execution reliability
This release closes a long list of edge cases in the draft, commit, and publish flow introduced in v0.26.0:
- Publish now only triggers on clean drafts and no longer silently auto-commits staged changes.
- The versions sidebar dedupes draft creation and staging requests, and the commit button stays disabled until the staging action fully completes.
- Canvas edit mode no longer issues
DescribeCanvasrequests it does not need, and stalecanvas_version_*invalidations from the same tab are ignored. - A new
canvas_version_deletedevent stops stale draft fetches after a draft is removed, and notes stay visible while viewing canvas runs. CanvasNodeRequestrows are only locked when still pending, and pending requests for deleted nodes are processed instead of getting stuck.
On the execution side, expression handling, event ordering, and cron parsing all got safer:
- Missing expression tokens resolve to
nullinstead of raising, and missing execution node references resolve to nil. previous()now resolves to the latest upstream event.- Stale execution events can no longer downgrade a node that already finished, and webhook-finalized executions reliably publish their final state.
- 5-field cron expressions are validated with the correct field ranges, fixing a long-standing parser bug.
- Multiline runner setup commands round-trip without losing line breaks.
Platform cleanup, toolchain, and observability
The frontend toolchain moved to Vite 8 and Storybook 10.4.6. On the backend, RunSpan was retired in favor of defer-style spans, a new grpcerror package centralizes gRPC error handling, and a long tail of dead canvas plumbing (changesets, view modes, save/unsaved-state UI, the legacy YAML modal, ExecutionChainPage) was removed.
Observability got a few quieter improvements: webhook workers and the magic code email worker emit dedicated metrics, expected org auth failures are no longer reported as span errors, Sentry CDN production builds emit sourcemaps, and Dash0 export noise is filtered out of Sentry.
Release engineering
SuperPlane's own release pipeline now generates a changelog and tags releases automatically — the pipeline used to produce these notes.
Bug Fixes
- Hide signup admin setting without waitlist config (#5590) by @forestileao
- Submit waitlist emails with native form (#5591) by @forestileao
- Update preview-env-digitalocean manifest entry (#5601) by @bender-rodriguez-unit1
- Update preview-env-github-aws manifest entry (#5602) by @bender-rodriguez-unit1
- Avoid DescribeCanvas requests in canvas edit mode (#5629) by @mchalapuk
- Remove core sendEmail notifications (#5635) by @forestileao
- Remove email invitation API (#5638) by @forestileao
- Add magic code email worker metrics (#5637) by @forestileao
- Keep canvas header above runs sidebar (#5642) by @forestileao
- Publish only clean drafts without auto-committing (#5632) by @lucaspin
- Only lock CanvasNodeRequest for processing when still pending (#5622) by @lucaspin
- Node Widget Improvements (#5640) by @andrecalil
- Simplify usage settings limits display (#5654) by @forestileao
- Publish agent token usage events (#5655) by @forestileao
- Preserve usage setup precondition errors (#5661) by @forestileao
- Portal rubric plan modal (#5668) by @forestileao
- Sync usage before publishing agent tokens (#5669) by @forestileao
- Track managed agent session usage (#5671) by @forestileao
- Avoid blocking agent stream completion on usage (#5672) by @forestileao
- Always refetch usage settings page (#5673) by @forestileao
- Ignore version creation invalidations on same tab (#5680) by @lucaspin
- Emit canvas_version_deleted and stop stale draft fetches after delete (#5686) by @lucaspin
- Suppress duplicate draft creation requests from versions sidebar (#5690) by @lucaspin
- Dedupe commit and publish draft staging API requests (#5692) by @lucaspin
- Keep commit button disabled until staging action fully completes (#5693) by @lucaspin
- Preserve multiline runner setup commands (#5695) by @forestileao
- Stop stale execution events downgrading finished nodes (#5696) by @forestileao
- Publish execution state after webhook-finalized executions (#5697) by @forestileao
- Keep notes visible while viewing canvas runs (#5699) by @shiroyasha
- Make previous resolve latest upstream event (#5702) by @forestileao
- Resolve missing execution node references as nil (#5707) by @forestileao
- Harden release image build prerequisites (#5698) by @forestileao
- Use ctx when listing integrations, service accounts, and invite link (#5735) by @lucaspin
- Publish stable agent token usage ids (#5682) by @forestileao
- Stop marking expected org auth failures as span errors (#5764) by @shiroyasha
- Validate 5-field cron ranges correctly (#4825) by @immanuwell
- Process pending requests for deleted nodes (#5765) by @lucaspin
- Keep agent tool descriptions within provider limit (#5769) by @forestileao
- Table Link Not Supporting CEL (#5768) by @andrecalil
- Emit sourcemaps on CDN production builds for Sentry (#5778) by @shiroyasha
- Silence Dash0 telemetry export noise in Sentry (#5784) by @shiroyasha
- Resolve missing expression tokens as null (#5786) by @forestileao
Improvements
- Remove ExecutionChainPage component (#5593) by @lucaspin
- Metrics for webhook workers (#5595) by @lucaspin
- Use gauges for worker tick batch size metrics (#5596) by @lucaspin
- Add Coolify Watcher to manifest (#5585) by @andrecalil
- Update Readme (#5636) by @markoa
- Remove dead canvas save activity log plumbing (#5643) by @lucaspin
- Remove dead canvas unsaved-state and manual save UI (#5650) by @lucaspin
- Remove unused canvas changeset apply/validate endpoints (#5657) by @lucaspin
- Move CanvasChangeset from proto to internal changesets package (#5664) by @lucaspin
- Remove dead canvas UI plumbing and unused helpers (#5665) by @lucaspin
- Remove unused canvas UI props and dead components (#5666) by @lucaspin
- Remove legacy canvas view modes and stale header modes (#5667) by @lucaspin
- Introduce grpcerror package (#5677) by @shiroyasha
- Fix Models DB Linter to not be too sensitive (#5678) by @shiroyasha
- Remove legacy YAML modal (#5706) by @lucaspin
- Remove RunSpan in favor of defer style spans (#5767) by @shiroyasha
- Upgrade Storybook to 10.4.6 (#5776) by @shiroyasha
- Upgrade frontend toolchain to Vite 8 (#5777) by @shiroyasha
New features
- Add cloudsmith onPackageCreated and onSecurityScanCompleted triggers (#5562) by @WashingtonKK
- App Installation Improvements (#5584) by @andrecalil
- Substitute install params in seed files (#5597) by @bender-rodriguez-unit1
- Add useNameAsValue for integration-resource install params (#5599) by @bender-rodriguez-unit1
- Add OSS Guard to app manifest (#5604) by @bender-rodriguez-unit1
- Add TLS Monitor to app manifest (#5605) by @bender-rodriguez-...
v0.26.0
What's new since v0.25.1
v0.26.0 is a major step toward Git-first SuperPlane Apps. Drafts now have a clearer stage, commit, and publish flow, app files and versions are more visible, and the editing experience is easier to follow across Canvas, Console, Files, and Runs.
This release also makes runners generally available, adds new workflow primitives for loops and error handling, expands Agent capabilities, and ships new integrations and components across Coolify, Cloudsmith, AWS, GCP, GitHub, and Claude.
Git-first App editing
App editing now uses a stage -> commit -> publish model. Canvas, Console, and Files changes can be staged first, committed into a draft, and then published to live, with visual indicators for uncommitted and ready-to-publish changes.
The Versions sidebar is now a permanent part of edit and preview workflows. Edit mode opens directly into the latest draft or creates one when needed, and the Files tab is wired into the same staging model used by Canvas and Console.
This release also adds the data model needed for git-backed app versions, including commit metadata, git branch fields, materialization status, and repository materialization state.
Runners and workflow control
Runners are now generally available for all organizations. Bash, JavaScript, and Python runner components no longer require an experimental feature flag.
SuperPlane also gained two important workflow primitives:
- Loop components for repeated execution paths.
- Error handling components for reacting to failed workflow nodes.
SSH commands can now be sourced from repository files, which makes larger operational scripts easier to manage than long inline command fields.
Agents
Agents can now work with more App context and more input types. They can read runtime state, access App files, list/read/stage/delete/commit repository files, and surface asynchronous activity directly in the chat.
Claude managed-agent runs now support mounted repository files and SuperPlane secrets injected through Anthropic vaults. Agent chat also supports image attachments, so users can paste or upload screenshots as part of a prompt.
The agent runtime is more resilient as well, with improved polling for final Claude messages, recovery from stalled provider sessions, session rewind behavior, and safer draft update requirements.
App install, files, and run inspection
The App install flow now includes a single-page wizard that can wire integrations into nodes and collect template parameters before creating the App.
Run inspection moved into a resizable bottom panel on the live Canvas, with a dedicated runs sidebar and cleaner run detail loading through the DescribeRun endpoint. The CLI also gained superplane runs list and superplane runs describe.
Markdown files now render as formatted Markdown in view mode, and component configuration has a read-only view for safer inspection.
New integrations and components
This release adds two new integrations:
- Coolify: list applications/services, control applications/services, and deploy applications.
- Cloudsmith: get repository and package metadata for package automation workflows.
AWS support expanded with EC2 alarms, EC2 Elastic IP management, Prometheus Managed Service workspace management, and Prometheus query components.
GCP support expanded with Managed Service for Prometheus queries, Cloud Monitoring on-alert triggers, Cloud Monitoring snoozes and PromQL alerting conditions, Cloud SQL database and instance management, and load balancer create/delete components.
GitHub gained components for adding pull request reviewers and updating issue comments.
Reliability, observability, and platform cleanup
The backend received a large observability pass: more OpenTelemetry spans, W3C trace propagation, frontend Dash0 telemetry, DB pool stats, per-integration secret write metrics, event router and node queue worker metrics, and sanitized SQL traces.
Run finalization moved into a dedicated worker, executions now use a dedicated exchange, and several N+1 query paths were removed from version listing and change request serialization.
Bug Fixes
- Long parameter value making modal unusable (#5257) by @lucaspin
- Clipping problem in the sidebar (#5261) by @shiroyasha
- Increase retry window for fetching runAgent final message (#5279) by @bender-rodriguez-unit1
- Stop emailing approvers automatically (#5284) by @forestileao
- Prevent new node when expanding the sidebar (#5291) by @andrecalil
- Respect newlines in code configuration read-only view (#5299) by @lucaspin
- Recover agent sessions after provider stalls (#5302) by @forestileao
- Collapsible var panels on widgets (#5297) by @andrecalil
- Restore trigger run node details (#5322) by @markoa
- Don't close node pane on any click on canvas (#5321) by @markoa
- Add run title field to trigger capabilities (#5329) by @markoa
- GET /api/v1/canvases returns app summaries (#5338) by @lucaspin
- Unstick agent sessions stuck in streaming state (#5335) by @forestileao
- Sync draft canvas after remote canvas_version_updated (#5341) by @forestileao
- Don't close sidebar on component drop (#4460) by @mchalapuk
- Clarify agent canvas edge fields (#5360) by @forestileao
- Keep run timestamp visible with long titles (#5363) by @AleksandarCole
- Run title expression preview (#5364) by @markoa
- Improve agent draft feedback and runs sidebar resizing (#5382) by @forestileao
- Deadlock failure metric detection (#5405) by @lucaspin
- Avoid double loading heavy permission list (#5408) by @shiroyasha
- Reduce runs request rate (#5412) by @mchalapuk
- Bump migration timestamp to fix out-of-order problem (#5418) by @shiroyasha
- Use FOR NO KEY UPDATE locking (#5406) by @lucaspin
- OTEL tracing failed to init due to semconv schema URL mismatch (#5427) by @shiroyasha
- Extend CEL for Table Widget (#5433) by @andrecalil
- Resolve matchList per item in list-mode memory components (#5357) by @andrecalil
- Parallelize UI tests (#5443) by @lucaspin
- Canvas edit-mode staging bugs (cross-tab sync, diff badge, commit flash, changeManagement diff) (#5458) by @mchalapuk
- Add Pagination for Widgets with Runs Datasource (#5467) by @andrecalil
- Eliminate N+1 queries for canvas version listing (#5477) by @shiroyasha
- Skip run finalization check if not needed (#5479) by @lucaspin
- Recover gracefully when a draft is deleted out from under the UI (#5454) by @forestileao
- Move Memory Notification to Websocket (#5482) by @andrecalil
- Use extended log entry when logging errors in EventRouter (#5485) by @lucaspin
- Decouple integration sync HTTP calls from the DB transaction (#5463) by @mchalapuk
- Suppress stale agent draft auto-open toast (#5492) by @forestileao
- Prevent agent template fields in canvas yaml (#5494) by @forestileao
- Use second-appropriate histogram buckets for duration metrics (#5496) by @lucaspin
- Sanitize SQL traces from sensitive data (#5490) by @shiroyasha
- Exclude PostHog events from Dash0 web telemetry (#5498) by @shiroyasha
- No need to publish execution message in EventRouter (#5503) by @lucaspin
- Use dedicated executions exchange (#5507) by @lucaspin
- Skip redundant org load in auth interceptor (#5515) by @shiroyasha
- Properly format chart labels (#5495) by @andrecalil
- Cache allowed organization permission checks in auth interceptor (#5516) by @shiroyasha
- React to execution.finished messages in node queue worker (#5520) by @lucaspin
- Require draft version id for agent updates (#5523) by @forestileao
- Move run finalization to RunFinalizer worker (#5508) by @lucaspin
- Defer trigger run title resolution (#5554) by @forestileao
- Load run inspection view via DescribeRun endpoint (#5559) by @lucaspin
- Deduplicate ScheduleActionCall to stop integration secret-write loop (#5537) by @mchalapuk
- Rewind recreated agent sessions (#5558) by @forestileao
- Use lightweight canvas existence check for list handlers (#5563) by @shiroyasha
- Cap forEach fan-out with env-backed emit limit (#5569) by @shiroyasha
- Route magic-code signups through welcome survey (#5578) by @forestileao
- Preserve signup UTM attribution (#5577) by @forestileao
- Keep signup waitlist link visible (#5582) by @forestileao
- Fix duplicate branch_name column (#5561) by @mchalapuk
- Hide last used login hint on signup (#5583) by @forestileao
- Stop staged spec reads for published canvas versions (#5586) by @mchalapuk
- Configure signup waitlist embed from env (#5587) by @forestileao
- Hide waitlist email copy without embed config (#5589) by @forestileao
Improvements
- Add explicit rules to oss scanner (#5274) by @shiroyasha
- Register managed agent tools with proper interface (#5289) by @forestileao
- Move agent tool guide (#5295) by @forestileao
- Remove legacy canvas templates (#5301) by @lucaspin
- Remove legacy template canvases from database (#5312) by @lucaspin
- Tighten initial limits for loops (#5354) by @shiroyasha
- Remove old editor (#5369) by @shiroyasha
- Make supergit multi-instance friendly (#5380) by @shiroyasha
- Remove SuperPlane CLI from the agent in favor of tools (#5401) by @forestileao
- Contention-free auth (#5403) by @shiroyasha
- OTEL spans for critical endpoints (#5421) by @shiroyasha
- Remove blueprint APIs and handling in workers (#5429) by @lucaspin
- Add script to verify branch migrations are the latest by timestamp (#5434) by @mchalapuk
- Remove child executions APIs + cleanup UI logic (#5441) by @lucaspin
- Propagate W3C traceparents/tracestate (#5444) by @shiroyasha
- Wire auth gates into traces (#5446) by @shiroyasha
- Remove extra 00 from the migration filename (#5448) by @shiroyasha
- Remove blueprints from the database (#5447) by @lucaspin
- Remove license check from CI (#5461) by @shiroyasha
- Add more spans to shed light on serialization bits ...
v0.25.1
v0.25.0
What's new since v0.24.0
v0.25.0 expands SuperPlane Apps with multiple named drafts, stronger execution capabilities, and a much larger integration surface for GitHub, Jira, AWS, GCP, and Dash0.
This release also improves Console authoring, Memory editing, run inspection, Agent context, and the App creation/onboarding flow, while continuing the cleanup from Canvas/Dashboard terminology to Apps and Console.
Multi-draft Apps
Apps can now have multiple named draft branches instead of a single implicit draft. Users can create, switch between, and delete drafts from the Versions sidebar, and auto-save now targets the active draft branch.
This is the first DB-native step in the Git-first App workflow: drafts now carry branch metadata and display names, while publish/delete/version APIs and the UI understand draft branches explicitly.
Runners and execution
SuperPlane now supports JavaScript and Python runner components alongside shell commands.
Workflows can select from several machine types: e1-tiny and e1-large sizes, each available on AMD64 and ARM64.
Console, Memory, and Runs
Console widgets received a large upgrade. Table widgets can style rows based on row data, number widgets can show multiple KPIs in one panel, Markdown widgets can interpolate variables from runs and memory, and runs can now be used as richer data sources with node output access.
Memory can now be edited manually in edit mode, including creating or updating manually managed memory entries through a JSON editor.
Run inspection is easier to navigate: the runs view now uses sidebar drill-down and a resizable bottom detail pane instead of pushing users through a modal for every node detail.
Agent improvements
Agent chat now supports @ mentions for App nodes. Mentions autocomplete in the composer, render as inline chips, and are sent as node links so the Agent has clearer context about the part of the workflow being discussed.
The Agent prompt was also updated for manual run configuration, improving how it handles parameterized run setup.
More integration components
GitHub gained components for combined commit status, check runs, and merging pull requests. Check run and commit status details were also improved in the UI.
Jira gained alert management components, issue workflow inspection, issue transition actions, and Jira Service Management approval handling.
GCP support expanded across Compute and Cloud Monitoring, including VM lookup, static IP management, custom image management, and alerting policy create/get/update/delete actions.
AWS EC2 gained instance metrics and update-instance components, supporting workflows that inspect performance and resize or reconfigure instances.
Dash0 setup is now simpler: SuperPlane provisions webhook notification channels through the Dash0 Notifications API when integrations are connected, removing the old manual webhook copy/paste step.
App and platform cleanup
The new App flow is now a dedicated page with a more polished onboarding and catalog experience. CLI output now points to App URLs, the frontend routes use /apps, and Dashboard naming continued moving to Console in APIs and source structure.
The release also improves asset base URL handling for Vite builds, fixes architecture-aware Docker image caching, and simplifies command descriptions and example scripts.
Bug Fixes
- Update skills refs (#5116) by @lucaspin
- Show commit message in status details (#5126) by @markoa
- Render check run trigger details (#5130) by @markoa
- Leftover canvases label in settings sidebar (#5149) by @lucaspin
- Docker image cache should take arch into consideration (#5154) by @lucaspin
- UI uses /apps on routes (#5156) by @lucaspin
- Editor style (#5190) by @shiroyasha
- Agent prompt for manual run config (#5191) by @mchalapuk
Improvements
- Use VITE_ASSET_BASE_URL for vite build (#5142) by @lucaspin
- Specify VITE_ASSET_BASE_URL during image build (#5143) by @lucaspin
- Simplify commands description (#5147) by @shiroyasha
- Update app URL in CLI outputs (#5157) by @lucaspin
- Add clean code skill (#5180) by @markoa
- Rename /dashboard API to /console (#5182) by @lucaspin
- Workflowv2/dashboard -> workflowv2/console (#5184) by @lucaspin
- Pages/workflowv2 -> pages/app (#5185) by @lucaspin
- Move files tab code into pages/app/files (#5186) by @lucaspin
- Simplify example script (#5189) by @shiroyasha
New features
- Unify new app page and polish home onboarding UI (#5113) by @ropsii
- Add GitHub combined commit status component (#5115) by @markoa
- Add GitHub check run components (#5114) by @markoa
- Add GitHub merge pull request action (#5141) by @markoa
- Table Widget Style Row (#5140) by @andrecalil
- Memory Manual Entry (#5123) by @andrecalil
- Support Multiple KPIs in Number Widget (#5124) by @andrecalil
- Machine types for runners (#5146) by @shiroyasha
- Polish dashboard panels, dialogs, and version preview bar (#5139) by @ropsii
- Console - Support Node Data in Runs as Source (#5158) by @andrecalil
- Reorganize runs UX with sidebar drill-down and bottom detail pane (#5160) by @ropsii
- Extend auth token validity on usage (#5178) by @shiroyasha
- Support Variables At the Markdown Widget (#5179) by @andrecalil
- @mention autocomplete for nodes in agent chat (#5167) by @bender-rodriguez-unit1
- JS Runner (#5183) by @shiroyasha
- Add Jira alert management components (#4815) by @felixgateru
- Multi-draft apps (#5194) by @mchalapuk
- Add gcp ip management components (#5165) by @WashingtonKK
- Add AWS EC2 get instance metrics and update instance components (#5064) by @felixgateru
- Add gcp get vm instance component (#5011) by @WashingtonKK
- Provision dash0 webhooks using notifications API (#5131) by @felixgateru
- Add gcp image management components (#5134) by @WashingtonKK
- Add Jira workflow and JSM approval actions (#4889) by @WashingtonKK
- Introduce a python runner (#5203) by @shiroyasha
- Add gcp Cloud Monitoring alerting policies (#5173) by @WashingtonKK
Full Changelog: v0.24.0...v0.25.0
v0.24.0
What's new since v0.23.0
v0.24.0 continues the move toward Git-backed SuperPlane Apps. Apps can now be provisioned with repositories, expose repository metadata and files through the API, and manage those files from both the UI and CLI.
This release also expands the component catalog with new AWS, GCP, GitHub, and Jira building blocks, improves Console authoring and dashboard interactions, enables the Agent globally, and tightens the self-hosted release path around SuperGit.
Git-backed Apps and repository files
SuperPlane Apps now have a stronger repository foundation. The backend gained repository models, provisioning, Git provider abstractions, SuperGit support, and APIs for reading repository metadata and files.
The Files experience now supports managing repository-backed files from the UI, including file lists, editors, diff dialogs, pending state, and publish flows. The CLI also gained file tree and file show commands so repository files can be inspected from scripts and
terminals.
Self-hosted deployments now include SuperGit wiring in Docker Compose and Helm, and the demo image can download and run with the required Git tooling.
App-focused CLI
The CLI now exposes App commands directly. Canvas and Console commands have moved under the App command structure, with new commands for App creation, deletion, listing, active App selection, Canvas operations, Console operations, App files, and App change requests.
This makes the CLI terminology line up better with the product model introduced in recent releases.
More integration components
This release adds several new infrastructure and service components:
- AWS EC2 components for getting instance details and managing instance power.
- GCP Compute components for VM power management, machine type updates, and VM metrics.
- GitHub commit status trigger support.
- Jira heartbeat create, update, delete, and ping components.
The UI mappers, examples, docs, and tests were added alongside the backend implementations.
Console and dashboard improvements
Console authoring received another round of polish. Panel editing, widget locking, table/chart behavior, dashboard trigger confirmation, number and table widgets, and node panels were refined.
Canvas and workflow UI details were also cleaned up, including mode controls, sidebar behavior, version rows, diff summaries, file overlays, and visual details around blocks and annotations.
Manual run parameter refinements
Manual run templates now support select-type parameters, input placeholders, and improved run modal behavior. Template payload handling and autocomplete were updated so parameterized runs are easier to configure and execute.
Agent and runtime reliability
The Agent is now enabled globally. The Anthropic prompt is synced on startup, blank canvases show the Agent intro correctly, streams continue after session errors, and Agent scope/preamble behavior was corrected for Console-aware workflows.
The release also fixes repository readiness edge cases and includes release image cleanup for self-hosted installs.
Bug Fixes
- Share builder stage for demo image (#5051) by @forestileao
- Update agent cli preamble and dashboard (console) scope (#5052) by @forestileao
- Show console draft indicator (#5055) by @forestileao
- Preserve console panel edits (#5057) by @forestileao
- Continue Anthropic streams after session errors (#5065) by @forestileao
- Show agent intro for blank canvases (#5067) by @forestileao
- Sync anthropic agent prompt on startup (#5076) by @forestileao
- Skip git head lookup for non-ready canvas repositories (#5075) by @app/cursor
- Broken Test Due To Feature Release (#5080) by @andrecalil
- Missing git in demo image (#5086) by @lucaspin
- Clarify GitHub commit status trigger (#5104) by @markoa
Improvements
- Design details cleanup (#5056) by @ropsii
- Enable Agent Globally (#5079) by @andrecalil
- Update self-hosted release to use supergit (#5078) by @lucaspin
- Run modal tweaks (#5109) by @mchalapuk
New features
- Several Console Improvements (#5038) by @andrecalil
- New git provider interface and implementations (#5054) by @lucaspin
- Input placeholder for manual run parameters (#5060) by @mchalapuk
- Select type parameters in manual run templates (#5059) by @mchalapuk
- Repository provisioning (#5061) by @lucaspin
- Add GCP VM power, machine type, and metrics components (#5062) by @WashingtonKK
- Add AWS EC2 power management and get instance components (#5008) by @felixgateru
- Canvas repository APIs (#5066) by @lucaspin
- Add Jira heartbeat management components (#4888) by @felixgateru
- Manage repository files in the UI (#5068) by @lucaspin
- New CLI commands for managing files (#5077) by @lucaspin
- Canvas UI detailing batch 2 (#5074) by @ropsii
- Add GitHub status trigger (#5099) by @markoa
- Update CLI to expose app commands (#5096) by @lucaspin
Full Changelog: v0.23.0...v0.24.0
v0.23.0
What's new since v0.22.0
v0.23.0 makes Console a first-class part of SuperPlane Apps. Console is now generally available, versioned with the rest of the app, and manageable from both the UI and CLI.
This release also tightens the editing experience across Canvas, Console, Memory, and Files, adds a global command palette, introduces parameterized manual runs, and expands the foundation for Git-backed Apps.
Console is now GA
Console has graduated from an experimental dashboard surface into a core App view. Console configuration now belongs to app versions, which means Console panels and layouts can be reviewed, diffed, drafted, and published alongside workflow changes.
Apps installed from GitHub can now include a console.yaml file next to canvas.yaml. When present, SuperPlane loads the Console view during installation; when absent, the App starts with a blank Console.
The CLI gained superplane console get and superplane console set, including YAML output, draft support, stdin/file input, and a dashboard alias for compatibility.
A more consistent editing model
Edit mode is now shared across Canvas, Console, and Memory instead of behaving differently in each view. Edit, publish, discard, and exit actions stay available as you move between tabs, making it easier to review a complete App change before publishing.
The release also cleans up the editing layout: Canvas and Console controls are better aligned, sidebars are respected in Console and Memory views, read-only mode correctly locks Console and Memory, and inline app rename/header switching flows are smoother.
Faster navigation and App creation
The new global command palette brings Cmd/Ctrl+K navigation to SuperPlane. It supports app navigation, creation actions, organization and admin routes, app settings, and contextual component search when you are inside an App.
A new App creation modal includes a template catalog, and template app metadata has been standardized so installed templates behave more predictably.
Files tab
Apps now have a dedicated Files tab. For this release, the tab centralizes the App's Canvas and Console YAML files in one place and sets the groundwork for repository-backed Apps.
The layout was also adjusted so the Files tab and sidebars do not overlap.
Console widgets
Console widgets gained formatting and sorting support for table and chart panels. The Console authoring experience also now includes a Key Nodes panel for pinning important workflow nodes, better execution/run data-source helpers, clearer duration formatting, status badges, number prefix/suffix support, and improved Markdown panel behavior.
Workflow execution and runtime logs
Manual runs can now define template parameters and ask for values at execution time. Supported parameter types include strings, numbers, and booleans, with defaults, display names, autocomplete, and generated run payloads available through {{ parameter.* }} expressions.
SSH execution now supports retries for transient failures.
Runtime logs are streamed directly from the task broker, improving live log delivery and reducing delay between task output and UI updates.
Memory improvements
Memory components now support list values.
Memory edit/read state handling was corrected and now follows the same mode behavior as the rest of the App.
Agent improvements
Agent component lookups are faster, and agents are now aware of Console updates while interacting with Apps.
Reliability and developer experience
The release includes several smaller improvements for operators and contributors:
- Canvas version role permissions are now exposed.
- JSON data encoding behavior was improved.
- Docker build image reuse and release output were cleaned up.
- Underlying
/account/limitserrors are now logged when the endpoint returns HTTP 500. - SSH and Runner command editing now use larger modals for long commands.
Bug Fixes
- Hide Widget Type Label (#4990) by @andrecalil
- Log underlying errors when /account/limits returns HTTP 500 (#4987) by @cursor[bot]
- Lock Console and Memory when in Read Mode (#5015) by @andrecalil
- No overlapping between sidebar and files tab (#5026) by @lucaspin
- Memory Read/Edit Mode Twisted (#5022) by @andrecalil
- Update template app metadata (#5034) by @forestileao
- Speed up agent component lookups (#5036) by @forestileao
- JSON Data Encoding (#4911) by @andrecalil
- Teach agent about console updates (#5046) by @forestileao
- Prevent undefined organization logo link (#5049) by @forestileao
- Expose canvas version role permissions (#5050) by @forestileao
- Share builder stage for demo image (#5051) by @forestileao
Improvements
- Allow andrecalil to auto-merge changes (#4991) by @shiroyasha
- Stream logs directly from the task broker (#4989) by @shiroyasha
- Respect sidebar on the console and memory view (#5003) by @shiroyasha
- Remove unnecessary poop from dockerfile (#5016) by @shiroyasha
- Don't print make directory (#5017) by @shiroyasha
- Make console GA (#5028) by @shiroyasha
- Big 90vw modal for editing commands in SSH and runner (#5044) by @shiroyasha
New features
- Register and load console.yaml when installing from GitHub (#4988) by @re-pixel
- Format and Sort for Table and Chart Widgets (#4992) by @andrecalil
- Global edit mode across canvas views (#5001) by @shiroyasha
- Add global command palette (#5005) by @forestileao
- List value support for memory components (#4964) by @andrecalil
- Versioned consoles (#5018) by @shiroyasha
- New app modal with template catalog (#5007) by @bender-rodriguez-unit1
- Introduce files tab in the app page (#5025) by @lucaspin
- Improve inline app rename and header switcher UX (#5010) by @ropsii
- Address Console Widgets Gap (#5023) by @andrecalil
- Consolidate canvas and console edit controls layout (#5021) by @ropsii
- Console Get/Set at the CLI (#5035) by @andrecalil
- Parameterized manual runs (#5037) by @mchalapuk
- SSH execution retry (#5043) by @shiroyasha
Full Changelog: v0.22.0...v0.23.0
v0.22.0
What's new since v0.21.0
This release makes SuperPlane easier to start from GitHub, easier to edit with confidence, and more useful as a shared operating surface for platform workflows.
The biggest visible change is the move from "canvases" to Apps across the product UI. Alongside the rename, app creation is faster: you can create an app instantly with a generated name, or launch one directly from a GitHub repository.
Better App editing
App editing now has a more complete review flow before you publish changes. v0.22.0 adds YAML diffs, visual diffs, diff summaries, an edit-mode diff toggle, and version-aware run traceability so teams can understand exactly what changed between a draft and a published version.
The editing sidebar is also back with improved layout, draft handling, sidebar history loading, and scroll preservation across version changes.
Agent modes and interactive sessions
Agents now support richer working modes for building, planning, and asking questions. Sessions can use interactive widgets, mounted resources, follow-up messages while work is still running, and improved build-mode rubrics.
The agent UI also received a performance pass, reducing unnecessary rerenders while typing and making stop/send behavior more reliable during active runs.
Runs, runners, and operational visibility
Runner logs are now rendered as structured command sections, making long-running executions easier to read. Runners can be cancelled from the UI, and administrators now have a panel for inspecting active runner tasks.
Workflow runs also record the originating version ID, which makes it easier to connect a run back to the app version that produced it.
Console and widgets
This release introduces the first version of Console, a dashboard-style surface for showing operational context through Markdown panels and widgets.
Widget tables and dashboard interactions received several usability improvements, including better table actions.
New integrations and workflow components
GitHub push triggers now support path filters and the filePathMatches() helper, so apps can react only to changes in specific files or directories.
Jira gained issue management and incident management components for automating ticket and incident workflows. Cloud infrastructure support also expanded with AWS EC2 create/delete components and a GCP delete VM instance component.
Cloudflare now uses account API tokens instead of user API tokens, improving account-scoped access management.
Core components gained support for the HTTP HEAD method, plus a new Display Action component for rendering workflow output.
Reliability and developer experience
- Integration component example payloads are now included in the CLI index.
- Migration lock handling is more resilient for long-running migrations.
- E2E test stability and agent test infrastructure were improved.
- Release Dockerfiles and packaging workflows were cleaned up.
- React refresh and
useEffectdependency issues were fixed across the frontend.
Bug Fixes
- Release docker (#4831) by @forestileao
- Release build bash files (#4833) by @forestileao
- Stabilize org settings layout when toggling change management (#4790) by @Vukotije
- Make run detail URLs clickable (#4867) by @forestileao
- Prevent agent chat rerenders while typing (#4864) by @forestileao
- Poisoned eslint baseline (#4884) by @forestileao
- Remove runs tab from canvas log sidebar (#4885) by @forestileao
- Avoid gray background flash when navigating to a run in the Runs View (#4871) by @cursor[bot]
- Keep agent stop action available while outcome building is active (#4886) by @forestileao
- Restore canvas header polish from #4816 (#4915) by @forestileao
- Agent ui width and re-render problem (#4913) by @forestileao
- Include example payloads for integration components in index CLI (#4922) by @forestileao
- Attach version id to workflow runs (#4926) by @forestileao
- Keep loaded versions visible when selecting versions (#4923) by @forestileao
- Preserve rubric markdown sections (#4928) by @forestileao
- Running command label should be running (#4937) by @shiroyasha
- Isolate edit mode sidebar state (#4939) by @forestileao
- Stabilize flaky e2e tests (#4944) by @forestileao
- Hide agent tab when feature is disabled (#4951) by @forestileao
- Wait longer for migration locks (#4952) by @forestileao
- Allow agent follow-up while running (#4953) by @forestileao
- Autoload canvas sidebar history (#4954) by @forestileao
- Preserve version sidebar scroll (#4955) by @forestileao
- Prevent stale draft diff state (#4986) by @forestileao
Improvements
- Clean release dockerfile (#4832) by @forestileao
- Fix all react-refresh/only-export-components problems (#4845) by @shiroyasha
- Fix all useEffect deps problems (#4846) by @shiroyasha
- Restore minimal gray styling and simplify mode toggle in agent ui (#4898) by @forestileao
- Improve agent ui performance (#4899) by @forestileao
- Rename canvases -> apps (#4942) by @shiroyasha
- Add agent e2e test provider (#4945) by @forestileao
- Fix failing test (#4949) by @shiroyasha
- Replace leftover canvas -> app in the settings (#4950) by @shiroyasha
- Move memory into the top navigation bar (#4959) by @shiroyasha
New features
- Add core display action component (#4827) by @shiroyasha
- Add github.onPush path filter and filePathMatches() helper (#4363) by @0vertake
- Add jira issue management components (#4784) by @WashingtonKK
- Update cloudflare to use account api tokens over user api tokens (#4783) by @WashingtonKK
- Render runner live logs as command sections (#4828) by @shiroyasha
- Canvas tool sidebar POC, dashboards view, header polish (#4816) by @ropsii
- Add jira incident action components (#4798) by @felixgateru
- Polish runs canvas view UX (#4865) by @ropsii
- Enable cancelling runners (#4824) by @re-pixel
- Agent Modes (Build + Plan + Ask) with rich widgets (#4823) by @bender-rodriguez-unit1
- Add support for HEAD HTTP method in Core component (#4891) by @WashingtonKK
- Agent session resources, dual send/stop, build-mode rubric (#4890) by @bender-rodriguez-unit1
- Dashboard and Widgets (#4875) by @andrecalil
- Re-land editing sidebar UX (rebased from #4621) (#4919) by @forestileao
- Mount rich-ui-widgets.md in agent sessions (#4901) by @bender-rodriguez-unit1
- Simplify app creation (#4946) by @shiroyasha
- Launch an app from Github (#4947) by @shiroyasha
- Rebrand Dashboard to Console in UI (#4960) by @andrecalil
- Add canvas yaml diff view (#4967) by @forestileao
- Add Delete VM Instance component for GCP (#4956) by @WashingtonKK
- Add AWS create and delete instance components (#4938) by @felixgateru
- Add canvas visual diff (#4968) by @forestileao
- Polish agent sidebar and other ux goodies (#4969) by @ropsii
- Visual diff toggle in edit mode header (#4971) by @bender-rodriguez-unit1
- Instant canvas creation with random space-themed names (#4972) by @bender-rodriguez-unit1
- Improve WidgetTable actions (#4970) by @andrecalil
- Diff summary badge with hover card (#4973) by @bender-rodriguez-unit1
- Admin panel for listing running runner tasks (#4975) by @shiroyasha
- Improve runner live log viewer UX (#4976) by @shiroyasha
Full Changelog: v0.21.0...v0.22.0