Skip to content

Remove ui-desks interface#3852

Draft
shaunandrews wants to merge 2 commits into
trunkfrom
codex/remove-ui-desks
Draft

Remove ui-desks interface#3852
shaunandrews wants to merge 2 commits into
trunkfrom
codex/remove-ui-desks

Conversation

@shaunandrews

@shaunandrews shaunandrews commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Proposed Changes

  • Removes the experimental ui-desks interface from Studio so the app no longer exposes or carries the alternate desk/canvas experience.
  • Keeps the supported Studio renderer paths intact: default Studio continues to use the legacy renderer, while the agentic UI flag uses the maintained @studio/ui renderer.
  • Cleans up now-unused desk state so existing app configs stop carrying obsolete desk data after migration.
  • Drops the desk-only dependency footprint, including tldraw, along with stale UI-mode flags and user-facing desk wording.

Most of this PR is deletion. The main new logic is the 06-remove-desks-config migration, which removes obsolete top-level desks data from the Desktop app config after the ui-desks interface is gone.

The migration:

  • Checks whether app.json exists and has an own top-level desks property.
  • Treats missing, invalid, or non-object config as "nothing to migrate".
  • Locks app config with lockAppdata() before writing.
  • Re-reads the config while locked, removes only desks, and preserves the rest of the file.
  • Always calls unlockAppdata() in finally, including write failures.

The focused tests cover:

  • needsToRun() returning true only when desks exists.
  • Missing or invalid config safely skipping the migration.
  • Removing only desks while preserving unrelated app config.
  • Unlocking app data if the write fails.

Do we want the migration at all?

Keeping it makes the removal tidy by deleting orphaned ui-desks state from app.json. Removing it would make this PR closer to a pure code deletion, and may be reasonable because only a small number of people likely used ui-desks and any saved desk data is unlikely to be worth preserving or explicitly cleaning up. The stale desks key would be inert once the interface and IPC/storage paths are gone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant