feat: App mode saving rework (#9338)

## Summary

Change app mode changes to be written directly to the workflow on change
instead of requiring explicit save via builder.
Temporary: Adds `.app.json` file extension to app files for
identification since we don't currently have a way to identify them with
metadata
Removes app builder save dialog and replaces it with default mode
selection

## Changes

- **What**: 
- ensure all save locations handle app mode
- remove dirtyLinearData and flushing

- **Breaking**: 
- if people are relying on workflow names and are converting to/from app
mode in the same workflow, they will gain/lose the `.app` part of the
extension

## Screenshots (if applicable)

<img width="689" height="84" alt="image"
src="https://github.com/user-attachments/assets/335596ee-dce9-4e3a-a7b5-f0715c294e41"
/>

<img width="421" height="324" alt="image"
src="https://github.com/user-attachments/assets/ad3cd33c-e9f0-4c30-8874-d4507892fc6b"
/>

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9338-feat-App-mode-saving-rework-3176d73d3650813f9ae1f6c5a234da8c)
by [Unito](https://www.unito.io)
This commit is contained in:
pythongosssss
2026-03-03 19:35:36 +00:00
committed by GitHub
parent ab2aaa3852
commit 68b16e3a3f
18 changed files with 842 additions and 406 deletions

View File

@@ -1075,7 +1075,9 @@
"exportWorkflow": "Export Workflow",
"enterFilename": "Enter the filename",
"enterFilenamePrompt": "Enter the filename:",
"saveWorkflow": "Save workflow"
"saveWorkflow": "Save workflow",
"savedAsApp": "Converted to app workflow",
"savedAsWorkflow": "Converted to node graph only workflow"
},
"subgraphStore": {
"confirmDeleteTitle": "Delete blueprint?",
@@ -3352,24 +3354,18 @@
"selectDescription": "Choose inputs/outputs",
"arrange": "Preview",
"arrangeDescription": "Review app layout",
"save": "Save",
"saveDescription": "Save and finish",
"defaultView": "Set a default view",
"defaultViewDescription": "Choose how this opens",
"connectOutput": "Connect an output",
"connectOutputBody1": "Your app needs at least one output to be connected before it can be saved.",
"connectOutputBody2": "Switch to the 'Select' step and click on output nodes to add them here.",
"switchToSelect": "Switch to Select",
"saveAs": "Save as",
"filename": "Filename",
"saveAsLabel": "Save this workflow as a ...",
"defaultViewTitle": "Set the default view for this workflow",
"defaultViewLabel": "By default, this workflow will open as:",
"app": "App",
"appDescription": "Opens as an app by default",
"nodeGraph": "Node graph",
"nodeGraphDescription": "Opens as node graph by default",
"saveSuccess": "Successfully saved",
"saveSuccessAppMessage": "'{name}' has been saved. It will open in App Mode by default from now on.",
"saveSuccessAppPrompt": "Would you like to view it now?",
"saveSuccessGraphMessage": "'{name}' has been saved. It will open as a node graph by default.",
"viewApp": "View app"
"nodeGraphDescription": "Opens as node graph by default"
},
"builderMenu": {
"exitAppBuilder": "Exit app builder"