feat: unified workspace adaptive card form#8
Conversation
There was a problem hiding this comment.
Pull request overview
This PR refactors the workspace editor into a unified Adaptive Card form (ShortcutFormPage), centralizing template/data JSON generation and adding caching to reduce repeated template construction. It also updates related draft persistence behavior and expands import/export and template coverage with new tests.
Changes:
- Consolidates workspace create/edit UI into a single form page and removes the legacy editor/navigation/launch-form pages and commands.
- Introduces shared template/data JSON builders plus a template cache, and updates form flows for folder browsing + companion app selection.
- Improves draft-store lifecycle (clear events + stale-write prevention) and adds/updates unit tests for template and import/export behaviors.
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| QuickShell/Services/ShortcutEditorState.cs | Removed legacy editor state helpers (replaced by unified form flow). |
| QuickShell/Services/ShortcutEditorNavigationState.cs | Removed legacy navigation state (no longer needed with unified form page). |
| QuickShell/Pages/ShortcutLaunchFormPage.cs | Removed separate terminal/launch form page (functionality moved into unified form). |
| QuickShell/Pages/ShortcutEditorPage.cs | Removed legacy editor page and launch-row commands (superseded by unified form). |
| QuickShell/Commands/ShortcutLaunchCommands.cs | Removed commands tied to the legacy editor/launch list. |
| QuickShell/Pages/ShortcutFormPage.cs | Main refactor: unified form logic, template caching, companion app browse action, and draft-cleared handling. |
| QuickShell/Pages/PendingShortcutEditPage.cs | Terminology update from “project” to “workspace” in UI text. |
| QuickShell/Pages/ImportConflictPage.cs | Terminology update from “project” to “workspace” in tooltips. |
| QuickShell/Commands/DuplicateShortcutCommand.cs | Changes duplicate behavior to open the unified form prefilled with a duplicate seed. |
| QuickShell/Commands/DeleteShortcutCommand.cs | Updates not-found messaging to “Workspace”. |
| QuickShell.Core/Services/WorkspaceValidation.cs | Updates legacy-warning strings to “workspace”. |
| QuickShell.Core/Services/ShortcutLaunchFormJson.cs | Updates command row JSON to use template bindings rather than embedding command text. |
| QuickShell.Core/Services/ShortcutFormTemplateJson.cs | New shared builder for template JSON + data JSON + renderability assertions. |
| QuickShell.Core/Services/ShortcutFormTemplateCache.cs | New template cache keyed by command count and terminal application id. |
| QuickShell.Core/Services/ShortcutFormDraftStore.cs | Adds “Run editor” save path that preserves additional launches/metadata on edits. |
| QuickShell.Core/Services/ShortcutDraftStore.cs | Adds cleared event + generation-based protection against stale async writes recreating draft file. |
| QuickShell.Core.Tests/ShortcutLaunchFormJsonTests.cs | Updates expectations for templated command bindings. |
| QuickShell.Core.Tests/ShortcutImportExportTests.cs | New import/export round-trip and conflict tests. |
| QuickShell.Core.Tests/ShortcutFormTemplateJsonTests.cs | New tests validating template/data JSON structure and token expansion. |
| QuickShell.Core.Tests/ShortcutDraftStoreTests.cs | New draft-store clear/generation regression tests. |
| QuickShell.Core.Tests/FakeShortcutRepository.cs | Allows injecting config directory; updates reset messaging text. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 51787d59d2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
bcaf5ee to
8141c01
Compare
Replace separate editor and launch-form pages with ShortcutFormPage, shared template JSON with caching, consolidated draft save logic, and browse actions for folder and custom companion apps. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Signed-off-by: Anthony Thompson <tonythethompson@hotmail.com>
Merge create/edit into ShortcutFormPage, address Copilot and Codex review feedback for companion reconciliation, duplicate command, template cache key, and remove obsolete launch form page routing. Co-authored-by: Cursor <cursoragent@cursor.com>
3fdd084 to
dccf8ac
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
BuildFormChoicesJson now omits catalog presets that are not installed, matching IsPresetInstalled and fixing CI on runners where VS Code is on PATH but not at standard install locations. Co-authored-by: Cursor <cursoragent@cursor.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Summary
Test plan