Skip to content

Commit ef8f079

Browse files
dxllivcursoragent
andcommitted
feat(tui): observable wizard engine with config-first work queue
Unify Save/startup flows behind WizardEngine with dynamic WorkQueue, config-first writes, nested dep discovery, streamed process logs, and queue panel UI. Split bridge config/package.json writes and force catalog refresh when trusted orgs change. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 49b7f3c commit ef8f079

18 files changed

Lines changed: 1477 additions & 1289 deletions

bin/bridge.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ import {
1212
readDesktopConfig,
1313
writeDesktopConfig,
1414
readDesktopDependencies,
15-
writeDesktopDependencies
15+
writeDesktopDependencies,
16+
resolveConfigPathForWrite
1617
} from './lib/config.js'
1718
import { loadCatalog, mergeInstalled } from './lib/catalog.js'
1819
import { resolveDevTarget } from './lib/playgroundContext.js'
@@ -98,7 +99,8 @@ async function main() {
9899
// payload = { config: { theme, apps, modules }, depsToAdd: { name: version }, depsToRemove: [name], settings?: { ... } }
99100

100101
if (payload.config) {
101-
writeDesktopConfig(ctx.paths.config, ctx.workspaceRoot, payload.config)
102+
const configPath = resolveConfigPathForWrite(ctx.paths)
103+
writeDesktopConfig(configPath, ctx.workspaceRoot, payload.config)
102104
}
103105

104106
if (payload.depsToAdd || payload.depsToRemove) {

go/bridge/bridge.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,25 @@ func ReadCatalog(root string, force bool) (*CatalogResponse, error) {
168168
return &cat, nil
169169
}
170170

171+
// WriteConfigOnly writes desktop.config.ts (theme/apps/modules only).
172+
func WriteConfigOnly(root string, config *Config) error {
173+
return writeBridge(root, &WritePayload{Config: config})
174+
}
175+
176+
// WritePackageJsonDeps updates desktop/package.json dependencies.
177+
func WritePackageJsonDeps(root string, toAdd map[string]string, toRemove []string) error {
178+
return writeBridge(root, &WritePayload{
179+
DepsToAdd: toAdd,
180+
DepsToRemove: toRemove,
181+
})
182+
}
183+
171184
// WriteChanges feeds the write payload to the node bridge via stdin
172185
func WriteChanges(root string, payload *WritePayload) error {
186+
return writeBridge(root, payload)
187+
}
188+
189+
func writeBridge(root string, payload *WritePayload) error {
173190
cmd := exec.Command("node", getBridgePath(root), "--write")
174191
cmd.Dir = root
175192
var stdout, stderr bytes.Buffer

0 commit comments

Comments
 (0)