Changelog
All notable changes to System Initiative will be documented in this file.
October 27th to November 2nd, 2025
✨ Added
- Added ability to install schemas via the Public API.
- Added a feature flag enabling Azure assets for the public beta.
- Added ability to filter possible subscriptions by component and schema in the web app.
- Added ability to import and discover Azure resources in the MCP server.
- Added support for authentication functions in Conduit.
- Added display of previous attribute values in the Attributes Panel.
🔄 Changed
- Improved workspace snapshot eviction logic to avoid race conditions.
- Updated func run log viewer to automatically display plain text for very large logs.
- Refined UI consistency across colors and borders for a cleaner experience.
- Updated
set_ai_agent_executedendpoint in the Public API to return a 204 status code. - Updated MCP attribute tools to no longer be hardcoded for AWS.
- Allowed re-using function names when attaching them to different schemas.
- Improved Public API search to allow case-insensitive schema name lookups.
- Updated layer-cache to skip NATS publishing when retrying writes.
- Allowed editing create-only properties on imported components within a change set.
🐞 Fixed
- Fixed an issue where the Func Run Details page made too many requests for data.
- Fixed an issue where overlay functions weren’t available to users in the web app.
- Fixed an issue where the debug panel in the component details page didn’t refresh after component changes.
- Fixed orphaned update actions in the web app.
- Fixed navigation in the web app where jumping to a component from a view redirected back to the default view.
- Fixed an issue where the refresh button wasn’t consistently available in all scenarios.
- Fixed an issue where the Apply Change Set button wasn’t properly disabled while loading.
- Fixed database connection eviction logic to close idle and long-lived connections correctly.
October 20th to 26th 2025
✨ Added
- 🚀 Initial release of
si-conduit, a new tool for authoring schemas via files on disk. - Added ability to delete function attachments via the Public API.
- Added ability to search in the views dropdown list in the web app.
- Added ability to view full history and function executions for a component via the Component Details page.
- Added support to manage System Initiative workspaces via the Public API.
- Added ability to subscribe to another prop on the same component.
🔄 Changed
- Enhanced cache-busting logic for Deployment MVs in the web app.
- Enhanced Auth API workspace routes to be fully managed by API tokens.
- Increased the module upload size limit in SDF.
- Removed the need for cycle checks in management edge creation.
- Retired
si-fsas an active product.
🐞 Fixed
- Fixed the MCP
validateCredentialstool to remove token-specific information. - Fixed issues with explore controls and context menu in the web app.
- Fixed a bug in the create template modal in the web app.
- Fixed an issue where index retrieval errors in the web app resulted in 500 errors to users.
- Fixed an issue where the web app now alerts users when a change set can’t merge due to DVU still in progress.
- Fixed a bug where old schema versions appeared in the Add Component modal.
- Fixed an issue where management function runs tried to load for invalid components.
- Fixed navigation issues when bulk editing on HEAD.
- Fixed malformed user input handling in the Attributes Panel.
- Fixed an issue in the Auth Portal where users could navigate to a workspace without a valid token.
- Fixed an issue where failing to fetch change sets caused users to get stuck in the lobby.
- Fixed error handling in the Attributes Panel for greater stability.
- Fixed issues preventing incomplete subscriptions in the product.
- Fixed an issue where failed functions didn’t send an update event to indicate failure.
October 13th to 19th 2025
✨ Added
- Added ability to control management functions via overlays.
- Added support for moving a list of components to a view via the Public API.
- Added support for
useWorkingCopyincreate_componentrequests via the Public API.
🔄 Changed
- Updated Hetzner Cloud server and SSH key assets for better interoperability.
- Updated MCP server to use the new Search API for template generation and component upgrade tools.
- When adding actions or management functions to schemas (via the Public API) not owned by you, they are now attached as overlay functions.
- Persisted Deployment MVs in SQLite for better stability.
- Changed the Web App to use DeploymentMVs for schema updates when module indexes change.
- Enhanced error messages to make diagnosing PG connection closures easier.
🐞 Fixed
- Fixed an issue where the rebaser retried fetching missing snapshots.
- Fixed a confusing UX quirk where the Workspace Token was used for two different purposes.
- Fixed an issue where the Public API didn’t trigger an MV build when unlocking a schema.
- Fixed an issue where pinning a component didn’t work correctly.
- Fixed an issue where the MCP tool mistakenly generated a template when listing components.
- Fixed a vulnerability where Workspace Integrations could be accessed by another user without permission.
October 6th to 12th 2025
✨ Added
- Added a new Search API endpoint to the Public API.
- Updated the Qualifications function API endpoint in the Public API to allow using secrets.
- Added ability to collapse panels in the Func Run Details page.
- Added ability to search by
isUpgradableandhasDiffvia the Public API. - Enabled MCP tools for authoring schemas and functions.
- Added ability to select all components in a group and multi-select ranges of components in the web app.
- Added Hetzner to the Add Component filter list.
- Added ability to unlock a function via the Public API.
- Added ability to edit a template and its associated management function via the MCP server.
🔄 Changed
- Updated the snapshot eviction logic to remove the grace period.
- Optimized the frontend to use bulk queries for patches.
- Displayed
schemaIdandschemaVariantIdin the component debug panel. - Updated onboarding flow to skip for invited users if someone in the workspace has already completed it.
- Changed web app patching priority based on user activity.
- Ran compute validation jobs in parallel for faster processing.
- Updated hover and selected states in GridTiles for better usability.
- Removed redundant buttons that reopened the onboarding flow.
🐞 Fixed
- Fixed an issue where possible connections weren’t cache-busted correctly.
- Fixed issues where Map and Explore in the web UI conflicted over query string parameters.
- Fixed an issue when importing or discovering Hetzner Cloud servers.
- Fixed issues with left and right arrow key navigation in the Add Component modal.
- Fixed an issue where onboarding didn’t trigger for new users.
- Fixed increased retry intervals in Actions to prevent overloading.
- Fixed an issue where autosubscribe could create graph cycles.
- Fixed unnecessary workspace snapshot loading to improve performance.
September 29th to October 5th 2025
✨ Added
- Added ability to create action functions as overlays to schemas.
- Added a Hetzner Cloud asset pipeline.
- Added WsEvents to the Public API for creating functions to keep the web app updated.
- Updated the Public API to install a schema variant automatically if not installed when unlocking.
- Added extra telemetry information to PgPool connection eviction logic.
- Added support for Hetzner Cloud.
- Returned workspace details when a user calls the API
whoamiendpoint. - Exposed the function kinds available for each type of function in a schema variant.
🔄 Changed
- Updated the MCP server to adhere to correct API types for optional parameters.
- Updated DeploymentMVs to only build the default variant for a schema.
- Changed AWS assets so refresh functions no longer trigger API limits on actions, and remove the resource if the refresh fails with
ResourceNotFound. - Allowed users to use special characters in workspace names in the Auth Portal.
- Allowed the rebaser to trigger request retry loops for specific error messages.
🐞 Fixed
- Fixed an issue where the web app showed the AI Agent banner if the wrong token was retrieved.
- Fixed an issue in the Auth Portal where the save button text was incorrect for manually verified users.
- Fixed misleading behavior in the Auth Portal where setting
1mwas interpreted as 1 minute, not 1 month. - Fixed an issue where the web app retried 500/503 index responses properly.
- Fixed an issue where restoring a component from the component details page on HEAD didn’t redirect to the new change set.
- Fixed an issue where bulk editing on HEAD didn’t create the change set correctly.
- Fixed an issue where building the deployment MV failed if the previous version was missing.
- Fixed an issue where multiple selected components in a
toDeletestate were confusing in the UI. - Fixed an issue where components marked as toDelete on HEAD leaked into change set reviews.
- Fixed an issue with using duplicate component + default subscriptions together.
- Fixed an issue where abandoning a change set via web app or Public API failed if the snapshot didn’t exist.
September 22nd to 28th 2025
✨ Added
- Added more user-facing documentation in the onboarding flow.
- Users can now see the code and arguments for a queued action in the web app.
- Added Azure CLI back to the execution environment.
- Added extra telemetry information for Edda.
🔄 Changed
- Upgraded the Axios dependency in the MCP server.
- Implemented a better MV rebuild system.
- Upgraded the Auth API to TypeScript 5.x.
- Removed generation of composable assets from Clover.
- Cleaned up ArgumentTargets from the graph after connection removal.
- Cleaned up parentage code from the codebase after connection removal.
- Cleaned up inferred connections from the codebase after connection removal.
🐞 Fixed
- Fixed an issue in the Auth Portal where users weren’t redirected to their default workspace.
- Fixed an issue in the Auth Portal to prevent 404s when accessing the download link.
- Fixed an issue where a function used in a subscription failed to load in the UI.
- Fixed an issue in the Auth API to return the correct
workspaceIdfor navigation. - Fixed an issue where users could be pushed to the lobby incorrectly due to background activity.
- Fixed an issue where the lobby exit event waited for all processes to complete.
- Fixed an issue in the Auth API Dockerfile for TypeScript 5.x compatibility.
- Fixed an issue in Public API to show optional values correctly in API responses.
- Fixed an issue where the App and Webworker made too many requests.
- Fixed an issue where create change set in Luminork didn’t wait for MV to build.
September 15th to 21st 2025
✨ Added
- Added support in Public API to access component codegen data.
🐞 Fixed
- Fixed a bug in Public API when creating authentication components.
- Fixed an issue in the web app where collaborator change set names were displayed incorrectly.
September 8th to 14th 2025
✨ Added
- Added more telemetry collection to the onboarding flow.
- Enabled review screen navigation — back and forward buttons are now available if there are items to review.
- Split out abandon, apply, and force_apply MCP tools for finer control.
🔄 Changed
- Updated the onboarding flow for the web application.
- Simplified the Public API for creating qualifications and codegen functions.
- Compressed deployment task requests in Edda for efficiency.
- Updated Public API to allow upgrading components by Schema Category for more fine-grained control.
- Made additional UX changes to the onboarding flow.
- Removed all sockets from Clover-based assets and redeployed them.
🐞 Fixed
- Fixed an issue where DVU status messages incorrectly sent component updated notifications.
- Fixed a race condition in the web worker.
- Fixed an issue where users could get stuck in the lobby if the
checkOnboardingApicall failed. - Fixed an issue where buttons changed size during loading states.
September 2nd to 7th 2025
✨ Added
- Added Component Details skeletons for smoother loading.
- Added more tracking to the Onboarding workflow.
- Added authoring endpoints to Public API.
- Added a new search endpoint for schemas in the public API.
- Added support for generating a template to the MCP server.
🔄 Changed
- Updated to use the new RBE binaries.
- Updated Nav bars to use the v2 change set routes.
- Updated the search components endpoint in the public API to support filtering by upgradable.
- Released v1.1.2 of the Public API SDKs.
- Made it impossible to create Socket Connections.
🐞 Fixed
- Fixed a bug where leaving the name blank on the secret form could block submission.
- Fixed the MCP server to correctly send shutdown events.
- Fixed a race condition in watchedForm that could ignore user data mutations.
- Fixed the abandon change set URL in the new UX.
- Fixed an issue in the Auth Portal where users could be placed in a dev workspace instead of a production one.
- Fixed an issue where adding secrets via Public API was unnecessarily difficult.
- Fixed an issue where multi-select showed the context menu attached to the incorrect component.
August 25th to 30th 2025
Note: Public release of the new Application platform.
✨ Added
- Added observability values in the frontend for better monitoring.
- Added toolbox helpers to support ops work.
- Added more metadata to pending event publish errors for easier debugging.
- Added a Public API endpoint to record when a user has executed an AI agent at least once.
- Added a flag in the UX to warn users if they haven’t yet connected to the AI agent.
🔄 Changed
- Updated the MCP Server to use Public API as its source of schema attributes and documentation.
- Optimistically update the Actions List on HEAD for a faster UI experience.
- Terminate the web worker if the app is out of date, preventing users from being stuck in the lobby.
- Bypassed the deployment MV index for Frigg to ensure Public API stays current.
- Released v1.0.9 of Public API SDKs.
- Extended index update payloads with patch data.
- Moved the create change set button to use the v2 route.
🐞 Fixed
- Fixed attribute value
before_valueevents. - Fixed how empty values in DVU were being treated, which caused incorrect diffs.
- Fixed flickering UX warning caused by websocket reconnection.
- Removed the old first-time modal in Function Editor that was still firing incorrectly.
August 18th to 24th 2025
✨ Added
- Added tags map support to the property tree, preparing for future enhancements.
- Added a note in change sets so users know when they’re actively working inside one.
- Added the new Subscriptions UI (behind a feature flag).
- Added a basic onboarding flow (behind a feature flag).
- Added empty states for Default Subscriptions for a clearer experience.
- Added audit logging for default subscription create/delete events and attribute API calls.
- Added erase, restore, and generate SI links tooling to the MCP server.
- Added PostHog tracking to the MCP server.
- Added back the debug screen (behind a feature flag).
🔄 Changed
- Improved system status messaging for better clarity.
- Improved logic for running actions to reduce unnecessary rebaser trips.
- Updated discovery and import management functions.
- Expanded Public API’s PropSpec to include property documentation and more.
- Improved the map regeneration experience.
- Changed multi-select and context menus in the grid for easier navigation.
- Updated Public API endpoints (
get_schema,get_default_variant) to use a new schema system. - Removed the old IAM permissions check.
- Removed outdated SDF routes.
- Enhanced the MCP server to automatically clean up after itself.
🐞 Fixed
- Fixed issues with the Apply Change Set button (disabled incorrectly, showing at the wrong times, or flashing too quickly).
- Fixed problems in the approvals flow (missing buttons, modal not opening).
- Fixed crashes from invalid connection states in Pinga.
- Fixed overly restrictive subscription blocking.
- Fixed wording of simulated change sets.
- Fixed handling of attribute updates — errors now display to users.
- Fixed issues with the Map and selected components, including multi-select.
- Fixed styling and grouping in Default Subscriptions.
- Fixed issues where data reactivity wasn’t updating correctly.
- Fixed rendering on resource values and bulk edit attribute screens.
- Fixed actions not responding correctly when running or dispatched.
- Fixed missing prop suggestions when regenerating components.
- Fixed errors flushing audit logs in the rebaser.
- Fixed issues with pending events publishing.
- Fixed a bug in Add Component modal when double-clicking.
- Fixed a bug where the new onboarding flow could trap users in the lobby.
- Fixed broken section headers on the component details page.
- Fixed issues where the MCP server could set incorrect attributes.
August 11th to 17th 2025
✨ Added
- Added a duplicate components endpoint to Public API.
- Added ability to save from the CodeEditor modal.
- Added ability to group by incompatible components in a workspace.
- Added visibility into the number of change sets being finalized when the lobby is loading.
- Exposed the component upgrade API in Public API.
- Added tracking to the Public API
whoamicall (an MCP hotpath). - Added support for AWS IAM assets in the MCP server.
- Added ability to generate a template from Public API.
🔄 Changed
- Made Uninstalled Schema MVs consumable via the web worker.
- Updated Component Qualifications panel styling and improved sorting of qualifications.
🐞 Fixed
- Fixed an issue in the context menu when navigating to the map.
- Fixed an issue where leaving bulk edit mode could leave the context menu floating at position
0,0. - Fixed an issue where users could be sent to the lobby on an
IndexUpdatedmessage. - Fixed an issue with the Component Secrets panel and its validations.
- Fixed a race condition where removeOldIndex ran during cold start, causing foreign key issues in SQLite.
- Fixed handling of MV Index
202responses by re-queuing change set requests. - Fixed an issue where we were suggesting the secret prop of all components instead of the actual secret.
- Fixed an issue where the browser used stale indexes, serving outdated data.
- Fixed 404 errors from Mjolnir on HEAD.
- Fixed an issue with the search bar causing filtered components to lose reactivity.
August 4th to 10th 2025
✨ Added
- Added import and discovery capabilities to the MCP server.
- Added workspace approvals back into the new UI (still behind a feature flag).
- Added the ability to set default subscriptions for arrays and maps in the graph, and consume default subscriptions when creating a new component in the DAL.
- Added history view to the bulk edit page.
🔄 Changed
- Updated the page layout for bulk editing.
- Updated Cypress tests for the new UX.
🐞 Fixed
- Fixed an issue where the Add Item button for arrays refreshed instead of allowing additional entries.
- Fixed an issue where visiting a component details page on HEAD incorrectly created a new change set.
- Fixed an issue where the Home page was not redirecting correctly.
- Fixed an issue where new workspaces were not getting the correct token.
- Fixed an issue where running an import function didn’t trigger validations.
- Fixed an issue when adding a key to a map in the Attributes Panel.
- Fixed an issue where the map failed when encountering a missing edge.
July 28th to August 3rd 2025
✨ Added
- Added ability to run refresh action functions as part of change sets, enhancing the import flow.
- Added ability to specify a new name prefix when duplicating components.
- Added the ability to add and remove components from a view.
- Added a new SI MCP Server.
- Added sticky headers to arrays and maps in the Attributes Panel.
- Added visibility into how many components are filtered out of a search.
- Added support for secrets prop tree in bulk edit.
- Exposed Component Diff Status on the grid tile (shows Added and Modified tags).
- Added a region prop suggestion to generated AWS-based templates.
- Added ability to create DAL subscriptions for scalar values.
- Added a grid/map and component-level warning when a workspace is using socket connections.
🔄 Changed
- Improved management function detail output.
- Enhanced the right-click context menu.
- Updated keyboard shortcuts modal layout.
- Ensured consistency across the Public API and SDF when passing attributes.
- Changed how the visualize connections button works — it now hides all unconnected items on the map.
- Applied more consistency fixes for buttons.
- Enabled the new UX by default for all users (behind a feature flag).
- Disabled the ability to toggle back to the old UI once feature-flagged into the new experience.
🐞 Fixed
- Fixed a bug when restoring a component.
- Fixed a bug where clicking an action in the approval modal led to a dead end.
- Fixed search queries not being up to date when TanStack loaded from cache.
- Fixed an issue where the workspace token wasn’t correct.
- Fixed an issue where pin was incorrectly shown in the map context menu.
- Fixed an issue where pasting a value into the resourceId field broke import.
- Fixed an issue where interacting with a readonly attribute on HEAD created a change set unnecessarily.
- Fixed a bug where groupBy logic was inverted.
- Fixed an issue where links in the actions panel weren’t working.
- Fixed an issue where adding or removing a component from a view didn’t redirect to the created change set.
- Fixed an issue with bulk editing secrets.
- Fixed an issue where we sometimes tried to load a workspace with the wrong web token.
- Fixed an issue where the Add Component modal was slow when typing.
July 21st to 27th 2025
✨ Added
- Added a restyled component details page for a refreshed look.
- Added the ability to group by having a resource.
- Added the ability to re-run a qualification.
- Exposed RunTemplate as a top-level component action.
- Added support to set array and map items as subscriptions.
- Introduced a new way to show prop validation failures inline with attributes.
- Added the ability to take action on a component directly from the component details page.
- Added the ability to visualize component connections on the map.
- Introduced the first pass at bulk editing props.
- Added smooth pan to selected component on the map.
🔄 Changed
- Improved bulk insert to speed up cold starts.
- Delivered more performance improvements when fetching data via Mjolnir.
- Retained search filtering after navigating away from a search.
- Changed the component details page right-hand panel.
- Debounced the search function to avoid multiple runs at once.
- Changed how template-generated code output is created and added the ability to create templates from the UI context menu.
- Redesigned the component connections panel.
- Ensured styles of the component details, grid, and map are consistent.
- Updated the management function UX for better usability.
🐞 Fixed
- Fixed the search query to correctly match what’s in the search bar.
- Fixed an issue where regenerating a component could lose prop-to-prop subscriptions.
- Fixed the change set approval modal not closing after merge to HEAD.
- Fixed an issue where the migrate connections endpoint in SDF wasn’t restricted to the admin API.
- Fixed issues to make SQLite interactions more robust.
- Fixed a bug where multi-select actions didn’t work on the map.
- Fixed a bug where duplicating components failed to reset prop subscriptions correctly.
- Fixed an issue to preserve attribute order in templates.
July 14th to 20th 2025
✨ Added
- Added ability in the web app to save an attribute change on mouse blur.
🔄 Changed
- Improved the suggestions experience in the web app.
- Updated CodeMirror themes in the web app to GitHub Dark and Light.
- Removed sync recursion on
AttributeValue::viewin DAL.
🐞 Fixed
- Fixed an issue in the web app where the actions list was not displayed correctly.
- Fixed an issue in the web app where skeletons for the map were not shown properly.
- Fixed an issue in the web app to correctly display when an array is a subscription and prevent changes to it.
Previous changes
All old changes are tracked in our weekly demo videos on our YouTube channel