open-design/apps/web/tests/components
estelledc 1a6face04c
Some checks failed
visual-baseline / Capture visual baselines (push) Waiting to run
ci / Detect CI change scopes (push) Successful in 0s
nix-check / build (push) Failing after 1s
ci / Validate Nix flake (push) Has been skipped
ci / Preflight (push) Failing after 1s
ci / Workspace unit tests (push) Failing after 1s
ci / Daemon workspace tests (push) Failing after 1s
ci / Web workspace tests (push) Failing after 1s
ci / Browser tests (push) Failing after 1s
ci / Build workspaces (push) Failing after 1s
ci / Validate workspace (push) Failing after 0s
ci / Runtime trace (push) Has been skipped
fix(web): prune draft tokens when the plugin chip strip clears (#2881) (#3356)
ChatComposer tracks the `@…` tokens this surface authored via the
@-mention popover plugin-pick path. When PluginsSection's chip strip
clears, we wire its `onCleared` and prune *only* those tracked
insertions from the draft so the textarea no longer holds orphaned
styled mentions whose chips just unmounted.

Architecture summary (rounds 1–9 collapsed; round 10 detailed below):

  - `Array<{token, start, pluginId, insertionId?}>` tracking with
    start offsets reconciled across each keystroke via an LCS+LCP
    edit-range diff in
    `apps/web/src/utils/pluginInsertionTracking.ts` (round 3-4).
    `insertionId` is forwarded by `reconcileInsertions` so the
    producer can locate its own entry across reconciles
    (round 10).
  - All draft mutations route through a single `updateDraft`
    chokepoint that runs `reconcileInsertions` outside the
    `setDraft` updater so React StrictMode's double-invoke is
    harmless (round 4-5).
  - Boundaries delegate to the shared
    `inlineMentions.isMentionBoundary` /
    `inlineMentions.isMentionRightBoundary` helpers so the
    tracker can never diverge from the parser (round 5).
  - `setActivePlugin` is a chokepoint for every applyById path,
    filtering tracked entries to those matching the new active
    plugin so a replace-plugin flow can never let stale entries
    survive (round 6).
  - Picker rollback double-snapshots draft + tracker so apply-
    failure restores the tracker but only rewrites the draft
    when no user keystrokes arrived during the await
    (round 7-8).
  - `stripPluginInsertedTokens` collapses whitespace seam-local
    so user-authored multi-space spans elsewhere are preserved
    (round 8).
  - `setActivePlugin` is deferred past `await applyById` on
    every path, and `onCleared` filters by
    `pluginsSectionRef.current?.getActiveRecord()?.id` so a
    pending-window clear scopes to the actually-mounted
    plugin's tokens (round 9).

race in the picker rollback:

  Round 9 made `onCleared` mutate the tracker and the draft when
  it ran during a pending replace, and added the `getActiveRecord`
  filter so the strip targets the still-mounted plugin's entries
  only. The picker's failure-path rollback, however, still
  restored `prevEntries` / `prevActiveId` wholesale — assuming
  nothing else had touched the tracker during the await. If the
  user clicked the still-mounted original chip's × during the
  pending replace AND the deferred `applyById` then resolved
  with a 500, the wholesale restore (a) resurrected entries that
  `onCleared` had legitimately stripped (now stale offsets) and
  (b) left the optimistic `@<target>` orphaned in the draft with
  no chip ever having mounted — the original #2881 symptom
  recurring inside the failure window.

  Fix splits the failure rollback into two paths:

  1. **Detect "intervening clear" via `activePluginIdRef.current
     === null && prevActiveId !== null`.** `onCleared` always
     nulls the active id as its last action; our deferred
     `setActivePlugin` never ran in the failure branch. So the
     null-while-prev-not-null state is the smoking gun for an
     intervening clear during the await.

  2. **On detection, surgically remove only our optimistic
     entry and only its `@<target>`.** Locate the entry by
     `insertionId` (added to `TrackedInsertion` as an optional
     field, forwarded by `reconcileInsertions` so the id
     survives offset shifts) — this disambiguates the case
     where the user picked the same plugin from the @-popover
     more than once during the await window. Splice that entry
     out and run `updateDraft((d) => stripPluginInsertedTokens(
     d, [ourEntry]))` so the draft loses `@<target>` and any
     remaining tracked entries (the in-flight target would have
     no others, but a co-pending second pick could) get their
     offsets reconciled. `activePluginIdRef` stays at `null` —
     `onCleared`'s truth, since no chip is mounted.

  The "no intervening clear" branch is the round 7/8 path:
  restore `prevEntries`/`prevActiveId` wholesale and rewrite
  the draft only if `draftRef.current === postInsertDraft`
  (no user keystrokes during the await).

Regression coverage (additions):

  - `apps/web/tests/components/ChatComposer.plugin-clear-prunes-draft.test.tsx`
    — 18 integration specs total (17 prior + 1 new round-10):
    * `@-popover pick A → @-popover pick B (apply pending) →
      clear A's chip → resolve B with 500 → assert no orphan
      @<target>, no orphan @A, no chip mounted, no stale
      tracker entries`. Uses a deferred `Promise<Response>` so
      the apply stays in flight while the chip-clear is fired,
      then resolves with a 500 to drive the failure path. Pre-
      fix this would resurrect Airbnb's stale entry AND leave
      `@SecondPlugin` orphaned in the draft.

PluginsSection.tsx is unchanged. The host-local tracking +
draft-update chokepoint + parser-aligned boundaries + deferred
active-plugin scoping + transactional applyById + intervening-
clear-aware rollback + filtered `onCleared` keep the cross-
component contract identical to main — only ChatComposer touches
behavior, plus the utils module and two `inlineMentions` exports.

Validation:
  - pnpm exec vitest run tests/utils/pluginInsertionTracking.test.ts → 36/36 passed
  - pnpm exec vitest run tests/components/ChatComposer.plugin-clear-prunes-draft.test.tsx → 18/18 passed
  - pnpm exec vitest run -c vitest.config.ts (full apps/web suite, 228 files) → 2202/2202 passed
  - pnpm --filter @open-design/web typecheck → green
  - pnpm guard → green
2026-05-30 17:16:24 +00:00
..
home-hero Fix plugin publish and Open Design PR workflow UX (#2564) 2026-05-21 19:21:17 +08:00
Theater refactor(web): split global CSS by ownership (#2609) 2026-05-25 05:48:28 +00:00
AgentIcon.test.tsx feat(runtimes): register AMR (vela) as an ACP stdio agent (#2355) 2026-05-28 05:09:55 +00:00
agentModelSelection.test.ts feat(runtimes): register AMR (vela) as an ACP stdio agent (#2355) 2026-05-28 05:09:55 +00:00
AmrGuidance.test.tsx feat(runtimes): register AMR (vela) as an ACP stdio agent (#2355) 2026-05-28 05:09:55 +00:00
AmrLoginPill.test.tsx feat(runtimes): register AMR (vela) as an ACP stdio agent (#2355) 2026-05-28 05:09:55 +00:00
App.connectors.test.tsx fix(web): decouple privacy banner from onboarding and Settings lifecycles (#2525) 2026-05-21 14:51:59 +08:00
App.mediaProviders.test.tsx [codex] Add global onboarding flow without AMR (#2272) 2026-05-19 22:00:40 +08:00
App.previewKeepAlive.test.tsx Add preview iframe keep-alive pool (#2190) 2026-05-29 03:01:17 +00:00
assistant-message-tool-status.test.tsx Fix status detail URL parsing (#3208) 2026-05-29 03:03:46 +00:00
assistant-message-unfinished-todos.test.tsx feat(analytics): PostHog + Langfuse instrumentation for assistant feedback (#1558) 2026-05-21 19:28:51 +08:00
AssistantMessage.error-pill.test.tsx feat(runtimes): register AMR (vela) as an ACP stdio agent (#2355) 2026-05-28 05:09:55 +00:00
AssistantMessage.feedback-analytics.test.tsx fix(analytics): fill run and feedback metadata (#3194) 2026-05-28 11:05:56 +00:00
AssistantMessage.linkClick.test.tsx fix(web): route chat file links to workspace preview instead of new window (#1239) (#2576) 2026-05-23 11:48:07 +08:00
AssistantMessage.pluginInstall.test.tsx fix(web): keep Add to My plugins success affordance after panel remount (#2897) 2026-05-26 02:25:32 +00:00
AssistantMessage.test.ts chore: enforce test directory conventions (#496) 2026-05-05 15:34:22 +08:00
AssistantMessage.test.tsx feat(runtimes): register AMR (vela) as an ACP stdio agent (#2355) 2026-05-28 05:09:55 +00:00
auto-open-file.test.ts feat(web): point .jsx module previews at their HTML entry (#2748) 2026-05-23 11:49:22 +08:00
BoardComposerPopover.keyboard-submit.test.tsx add comment composer keyboard submit shortcut (#2941) 2026-05-29 08:46:15 +00:00
BoardComposerPopover.pod-chip-hover.test.tsx Consolidate chat comments preview on main (#2906) 2026-05-26 10:31:19 +00:00
BoardComposerPopover.pod-remove.test.tsx feat(web): merge Draw + Screenshot into one Studio mark tool (#3081) (#3277) 2026-05-29 06:51:38 +00:00
chat-feedback.test.tsx feat(analytics): PostHog + Langfuse instrumentation for assistant feedback (#1558) 2026-05-21 19:28:51 +08:00
chat-scroll-preservation.test.tsx feat(analytics): PostHog + Langfuse instrumentation for assistant feedback (#1558) 2026-05-21 19:28:51 +08:00
chat-todo-autoscroll.test.tsx fix(web): chat pane preserves scroll position when todo card grows (#2299) 2026-05-23 00:19:59 +08:00
ChatComposer.context-pickers.test.tsx fix(web): remove design file mentions with chips (#3204) 2026-05-30 04:50:50 +00:00
ChatComposer.import-menu.test.tsx [codex] Update home starter template categories (#2501) 2026-05-21 13:14:08 +08:00
ChatComposer.infinite-render.test.tsx Consolidate chat comments preview on main (#2906) 2026-05-26 10:31:19 +00:00
ChatComposer.plugin-clear-prunes-draft.test.tsx fix(web): prune draft tokens when the plugin chip strip clears (#2881) (#3356) 2026-05-30 17:16:24 +00:00
ChatComposer.search.test.tsx feat(web): queue chat sends (#2870) 2026-05-25 10:43:01 +00:00
ChatPane.connect-repo.test.tsx Consolidate chat comments preview on main (#2906) 2026-05-26 10:31:19 +00:00
ChatPane.conversation-title.test.tsx fix conversation title editing (#1926) 2026-05-23 00:25:05 +08:00
ChatPane.streaming.test.tsx Consolidate chat comments preview on main (#2906) 2026-05-26 10:31:19 +00:00
CommentTargetOverlay.hover-class.test.tsx feat(web): highlight captured Pod component on chip hover (#1982) 2026-05-18 16:34:19 +08:00
ConnectorsBrowser.test.tsx Add connector memory extraction flow (#2265) 2026-05-19 21:27:41 +08:00
ContinueInCliButton.test.tsx feat(web): add Finalize design package + Continue in CLI buttons (#451) (#974) 2026-05-10 11:44:32 +08:00
conversation-timestamps.test.tsx feat(analytics): PostHog + Langfuse instrumentation for assistant feedback (#1558) 2026-05-21 19:28:51 +08:00
CustomSelect.test.tsx feat(web): add custom select primitive (#1714) 2026-05-15 14:43:18 +08:00
design-system-github-evidence.test.ts Surface GitHub repo connect/import CTA in design system projects (#2820) 2026-05-24 14:20:35 +00:00
design-system-group-order.test.ts feat: pin custom design systems to top and read swatches from color tables (#2817) 2026-05-24 14:25:19 +00:00
design-system-project.test.ts fix(web): show published design systems as "Published" on project cards (#2849) 2026-05-25 03:14:26 +00:00
DesignFilesPanel.test.tsx fix(web): persist design files view state across navigation (#2303) 2026-05-30 03:39:27 +00:00
DesignFilesPanel.view-state-persist.test.tsx fix(web): persist design files view state across navigation (#2303) 2026-05-30 03:39:27 +00:00
DesignsTab.empty.test.tsx feat(designs): implement empty state with CTA for new projects and update translations (#3060) 2026-05-28 10:24:10 +00:00
DesignsTab.select-mode.test.tsx Add project bulk delete feedback (#2481) 2026-05-21 20:57:19 +08:00
DesignsTab.test.ts chore: enforce test directory conventions (#496) 2026-05-05 15:34:22 +08:00
DesignSystemFlow.test.tsx fix(web): polish design system source flows (#2933) 2026-05-25 12:38:05 +00:00
DesignSystemsSection.test.tsx Add preview iframe keep-alive pool (#2190) 2026-05-29 03:01:17 +00:00
DesignSystemsTab.test.tsx fix(web): polish design system source flows (#2933) 2026-05-25 12:38:05 +00:00
EntryShell.onboarding.test.tsx Improve onboarding AMR runtime card (#3276) 2026-05-29 07:45:23 +00:00
EntryView.test.ts Add connector memory extraction flow (#2265) 2026-05-19 21:27:41 +08:00
examples-tab-filter-counts.test.tsx fix: keep examples filter counts consistent (#949) 2026-05-08 21:41:52 +08:00
examples-tab-preview-dispatch.test.tsx fix(web): dispatch Examples preview on od.preview.type (#897) (#1001) 2026-05-09 21:32:45 +08:00
examples-tab-retry.test.tsx fix(web): dispatch Examples preview on od.preview.type (#897) (#1001) 2026-05-09 21:32:45 +08:00
ExamplesTab.test.tsx Add social sharing for template previews (#2924) 2026-05-27 10:21:35 +00:00
file-viewer-image-export.test.tsx fix(web): harden image export downloads (#3318) 2026-05-30 04:44:00 +00:00
file-viewer-markdown-copy.test.tsx feat(analytics): add project_id + project_kind to studio/artifact events (#1509) 2026-05-13 12:13:55 +08:00
file-viewer-render-mode.test.ts fix(web): prevent preview iframe from stealing focus on load (#2792) 2026-05-24 14:37:08 +00:00
FileOpsSummary.test.tsx feat(web): implement file operations summary in assistant messages 2026-05-11 23:25:38 +08:00
FileViewer.manual-edit-history.test.tsx Refine Studio preview interactions (#3000) 2026-05-28 12:52:37 +00:00
FileViewer.manual-edit.test.tsx Refine Studio preview interactions (#3000) 2026-05-28 12:52:37 +00:00
FileViewer.test.tsx fix(web): harden image export downloads (#3318) 2026-05-30 04:44:00 +00:00
FileWorkspace.design-system.test.tsx fix(web): polish design system source flows (#2933) 2026-05-25 12:38:05 +00:00
FileWorkspace.test.tsx fix(web): handle dropped file read failures (#2858) 2026-05-25 06:05:17 +00:00
GenUISurfaceRenderer.diff-review.test.tsx feat(web): native diff-review UI on GenUISurfaceRenderer (Phase 8 entry slice) 2026-05-09 15:36:38 +00:00
GenUISurfaceRenderer.schema-form.test.tsx feat(daemon): enrich API responses with surface specs and add new flags 2026-05-11 20:27:05 +08:00
GenUISurfaceRenderer.test.tsx feat(web): plugin composer surface — applyPlugin + Rail + Inputs + GenUI renderer 2026-05-09 11:47:12 +00:00
GithubStarBadge.test.tsx Proxy GitHub metadata through the daemon (#2654) 2026-05-22 14:06:07 +08:00
HandoffButton.fallback-reveal.test.tsx fix(web): make hand-off no-editors fallback perform a real reveal (#2494) 2026-05-30 06:34:12 +00:00
HandoffButton.test.tsx Consolidate chat comments preview on main (#2906) 2026-05-26 10:31:19 +00:00
HomeHero.plugin-picker.test.tsx Keep PR 2400 changes without folder pickers (#2462) 2026-05-20 22:07:30 +08:00
HomeHero.rail.test.tsx fix(web): clear prompt when removing Home example chip (#2989) (#3045) 2026-05-27 06:21:35 +00:00
HomeView.context-picker.test.tsx fix(web): resolve skill vs type-chip routing conflicts (#2972) (#3031) 2026-05-27 04:37:21 +00:00
HomeView.media-options.test.tsx Show published user design systems on home (#2572) 2026-05-21 19:21:05 +08:00
HomeView.plugin-i18n.test.tsx Garnet hemisphere (#1702) 2026-05-14 21:12:50 +08:00
HomeView.prefill.test.tsx feat(runtimes): register AMR (vela) as an ACP stdio agent (#2355) 2026-05-28 05:09:55 +00:00
InlineModelSwitcher.test.tsx Improve model picker search and shared BYOK catalogs (#3262) (#3278) 2026-05-29 07:07:40 +00:00
InlinePluginsRail.test.tsx feat(web): enhance PluginLoopHome with plugin details modal and refined plugin rail 2026-05-11 23:18:34 +08:00
ManualEditPanel.test.tsx feat(web): merge Draw + Screenshot into one Studio mark tool (#3081) (#3277) 2026-05-29 06:51:38 +00:00
MarketplaceView.test.tsx feat(web): MarketplaceView + PluginDetailView + /marketplace routes 2026-05-09 12:28:59 +00:00
McpClientSection.oauth.test.tsx fix(mcp): support no-auth local HTTP servers (#2008) 2026-05-18 17:08:46 +08:00
McpJsonHelper.test.tsx feat: add collapsible MCP JSON field-mapping helper (#1136) 2026-05-10 19:37:46 +08:00
MemorySection.test.tsx Fix memory action alignment (#3175) 2026-05-28 08:53:01 +00:00
MissingBrandFontsBanner.test.tsx feat: add "Use system fonts" dismiss to the missing-fonts banner (#2816) 2026-05-24 14:25:04 +00:00
modelOptions.test.tsx test: cover model option rendering (#948) 2026-05-08 21:38:13 +08:00
NewAutomationModal.context-picker.test.tsx [codex] Add automation templates and proposal workflows (#2193) 2026-05-19 16:35:28 +08:00
NewAutomationModal.project-picker.test.tsx fix(web): truncate long project names in the automation project picker (#3274) (#3317) 2026-05-30 04:42:21 +00:00
NewProjectModal.test.tsx fix Windows folder import from project modal (#2863) 2026-05-26 06:52:07 +00:00
NewProjectPanel.media.test.tsx fix(media): hide OpenAI OAuth-only image credentials (#3308) 2026-05-30 04:12:10 +00:00
NewProjectPanel.test.ts feat(audio): add ElevenLabs audio support (#1384) 2026-05-13 15:53:41 +08:00
NewProjectPanel.test.tsx fix(web): surface Claude Design zip import failures (#1862) (#3047) 2026-05-27 06:24:38 +00:00
pet-task-center.test.ts [codex] Add pet task center and desktop pet (#1833) 2026-05-19 15:38:39 +08:00
PetOverlay.test.tsx [codex] Add pet task center and desktop pet (#1833) 2026-05-19 15:38:39 +08:00
PluginDetailsModal.dispatch.test.tsx feat(web): standardize plugin terminology and enhance UI components 2026-05-13 12:19:29 +08:00
PluginDetailsModal.layering.test.tsx fix(web): portal plugin details modal (#3065) 2026-05-28 04:03:41 +00:00
PluginExampleDetail.unavailable-noun.test.tsx fix(web): use surface-appropriate noun in plugin/template preview unavailable copy (#3229) 2026-05-29 03:23:18 +00:00
pluginFolderActions.test.ts Fix plugin publish and Open Design PR workflow UX (#2564) 2026-05-21 19:21:17 +08:00
PluginInputsForm.test.tsx chore: pin dependency versions and harden CI caches (#2189) 2026-05-19 13:58:27 +08:00
plugins-home-facets.test.ts Polish home onboarding and community presets (#2658) 2026-05-22 14:26:56 +08:00
plugins-home-html-surface.test.tsx feat(daemon): enhance plugin preview handling and add fallback mechanisms 2026-05-12 16:45:24 +08:00
plugins-home-media-surface.test.tsx fix(web): remove passive video play badge (#3252) 2026-05-29 03:17:57 +00:00
plugins-home-preview.test.ts feat(web): enhance TasksView and plugin preview components with new features and styles 2026-05-12 18:10:37 +08:00
plugins-home-section.test.tsx Add i18n metadata for official content (#2692) 2026-05-22 16:39:32 +08:00
plugins-home-visualScore.test.ts Polish home onboarding and community presets (#2658) 2026-05-22 14:26:56 +08:00
PluginShareMenu.test.tsx feat(plugins): site-wide plugin detail pages, share-to-site links, landing deploy trigger (#2999) 2026-05-28 09:07:12 +00:00
PluginsSection.test.tsx feat(web): redesign entry view with new navigation and home layout 2026-05-12 10:56:35 +08:00
PluginsView.test.tsx Reapply "fix(web): demote Plugins and Integrations to nav rail footer (#1806)" (#2360) (#2397) 2026-05-20 18:27:48 +08:00
preview-modal-error-state.test.tsx fix(web): show explicit error/retry state when example preview HTML fails to load (#863) 2026-05-08 11:16:14 +08:00
preview-modal-fullscreen.test.tsx test(e2e): gate beta packaged runtime (#637) 2026-05-06 17:44:29 +08:00
preview-modal-image-export.test.tsx fix(web): harden image export downloads (#3318) 2026-05-30 04:44:00 +00:00
preview-modal-unavailable-state.test.tsx Hide social sharing without explicit preview URL (#3108) 2026-05-27 10:55:31 +00:00
PreviewDrawOverlay.send-disabled.test.tsx fix(web): make hand-off no-editors fallback perform a real reveal (#2494) 2026-05-30 06:34:12 +00:00
PreviewDrawOverlay.test.tsx fix(web): snapshot the srcDoc bridge frame in Mark mode so deck capture works (#3304) 2026-05-29 11:50:37 +00:00
PreviewModal.test.tsx fix: fix link handling in example preview iframe sandbox (#701) 2026-05-09 21:24:25 +08:00
PrivacyConsentModal.test.tsx feat(privacy): collapse first-run consent banner to a single "I get it" button (#2202) 2026-05-19 15:26:56 +08:00
PrivacySection.test.tsx feat: add opt-in Langfuse telemetry (#800) 2026-05-09 10:06:01 +08:00
ProjectDesignSystemPicker.test.tsx fix(i18n): refresh French locale (#2963) 2026-05-28 06:55:57 +00:00
ProjectView.api-empty-response.test.tsx fix(web): retry failed chat runs without duplicating user message (#2491) 2026-05-23 01:01:42 +08:00
ProjectView.deleteConversation.test.tsx fix(web): localize quick brief prompt (#2520) 2026-05-21 19:18:13 +08:00
ProjectView.pendingPrompt.test.tsx Keep PR 2400 changes without folder pickers (#2462) 2026-05-20 22:07:30 +08:00
ProjectView.previewKeepAlive.test.tsx Add preview iframe keep-alive pool (#2190) 2026-05-29 03:01:17 +00:00
ProjectView.projectInstructions.test.tsx Consolidate chat comments preview on main (#2906) 2026-05-26 10:31:19 +00:00
ProjectView.reattach-restore.test.tsx feat(runtimes): register AMR (vela) as an ACP stdio agent (#2355) 2026-05-28 05:09:55 +00:00
ProjectView.run-cleanup.test.tsx feat(runtimes): register AMR (vela) as an ACP stdio agent (#2355) 2026-05-28 05:09:55 +00:00
ProjectView.run-isolation.test.tsx feat(runtimes): register AMR (vela) as an ACP stdio agent (#2355) 2026-05-28 05:09:55 +00:00
ProjectView.tabs-navigation.test.tsx Consolidate chat comments preview on main (#2906) 2026-05-26 10:31:19 +00:00
QuestionForm.test.tsx feat(audio): add ElevenLabs audio support (#1384) 2026-05-13 15:53:41 +08:00
QuickSwitcher.test.tsx feat(web): add Cmd/Ctrl+P quick file switcher (#556) 2026-05-06 10:31:50 +08:00
RecentProjectsStrip.test.tsx fix(web): hide recent project pagination chrome (#2966) 2026-05-26 06:47:48 +00:00
registry.latest-release.test.ts Proxy GitHub metadata through the daemon (#2654) 2026-05-22 14:06:07 +08:00
RoutinesSection.test.tsx [codex] Add automation templates and proposal workflows (#2193) 2026-05-19 16:35:28 +08:00
SettingsDialog.execution.test.tsx Improve model picker search and shared BYOK catalogs (#3262) (#3278) 2026-05-29 07:07:40 +00:00
SettingsDialog.media.test.tsx fix(tools-dev): preserve web origin trust on web start (#2715) 2026-05-23 00:25:43 +08:00
SettingsDialog.orbit.test.tsx chore: pin dependency versions and harden CI caches (#2189) 2026-05-19 13:58:27 +08:00
SettingsDialog.test.ts fix(orbit): respect selected app language (#2522) 2026-05-21 19:17:53 +08:00
sketch-colors.test.ts Fix sketch default color in dark mode (#2488) 2026-05-21 19:18:32 +08:00
sketch-model.test.ts fix(web): render static previews for sketch json files (#1060) 2026-05-11 19:29:46 +08:00
SketchEditor.default-color.test.tsx Fix sketch default color in dark mode (#2488) 2026-05-21 19:18:32 +08:00
SketchEditor.save.test.tsx fix(web): sketch save button shows saving and saved feedback (#2500) 2026-05-23 05:03:10 +00:00
SkillsSection.test.tsx Add preview iframe keep-alive pool (#2190) 2026-05-29 03:01:17 +00:00
TasksView.history.test.tsx [codex] Add automation templates and proposal workflows (#2193) 2026-05-19 16:35:28 +08:00
TasksView.page.test.tsx feat(runtimes): register AMR (vela) as an ACP stdio agent (#2355) 2026-05-28 05:09:55 +00:00
TasksView.routines.test.tsx fix(web): focus newly created automations after save (#3035) 2026-05-27 04:44:38 +00:00
TasksView.templates.test.tsx fix(web): remove Ingest source panel from Automations tab (#2711) 2026-05-22 17:53:27 +08:00
Toast.test.tsx feat(web): add Finalize design package + Continue in CLI buttons (#451) (#974) 2026-05-10 11:44:32 +08:00
TrustBadge.test.tsx feat(web): unify plugin trust badges (#2088) 2026-05-18 19:20:01 +08:00
UpdaterPopup.test.tsx Harden packaged updater downloads and install handoff (#2677) 2026-05-22 15:44:28 +08:00
use-everywhere-agent-guide.test.ts feat(web): enhance entry view with responsive topbar and GitHub star integration 2026-05-12 11:57:41 +08:00
WorkingDirPill.test.tsx [codex] Polish home composer working-directory controls (#2468) 2026-05-21 00:22:46 +08:00
WorkspaceTabsBar.test.tsx fix: dismiss tab search on outside mouse down (#3102) 2026-05-27 14:45:35 +00:00