Skip to content

feat(studio): L09b export sheet with the portability check - #1082

Open
LinuxDevil wants to merge 1 commit into
mainfrom
fb-l09b-export-sheet
Open

LinuxDevil wants to merge 1 commit into
mainfrom
fb-l09b-export-sheet

Conversation

@LinuxDevil

Copy link
Copy Markdown
Owner

Summary

  • New ExportSheet (size lg): YAML/bundle format fieldset, PortabilityPanel, adapt switch shown only when analysis.adaptedInstructions !== null, secrets footnote, Cancel/Download footer.
  • New shared PortabilityPanel + portability.css: idle → loading → findings/error state machine; Try again only for LOUSHO_PASS_FAILED; location/kind chips (secret gets data-tone="danger"); onAnalysis reports the analysis or undefined.
  • AgentActionsMenu: the two export items collapse into one Export… entry that opens the sheet.
  • ImportSheet: the same panel appears once the preview is valid, keyed on the pasted text so it resets on edit; no adapt switch there.
  • Download uses runtimeClient.downloadExport(agentId, format, { adapt }) + downloadBlob, success/warning toasts; 409 LOUSHO_PORTABILITY_MISSING remounts the panel idle, clears the switch and shows the stale-spec message.
  • Stacked on feat(studio): L09a portability check pass and adapt export #1081 (L09a); L08b already merged.

Test plan

  • PortabilityPanel.test.tsx — idle→loading→findings, empty state, all location/kind labels, per-code errors, retry only on PASS_FAILED (7 tests)
  • ExportSheet.test.tsx — format switch, adapt visibility, download args, warnings toasts, 409 reset (8 tests)
  • ImportSheet.test.tsx — panel hidden until valid preview / on schema error, resets on text change
  • exportMenu.test.tsx + AgentActionsMenu.test.tsx updated for the single Export… item
  • Client suite 4017 tests, typecheck (app + e2e), eslint clean, fallow audit clean

Generated with Devin

@LinuxDevil
LinuxDevil changed the base branch from fb-l09a-portability to main November 12, 2026 07:28
Replace the two export menu items with a single Export… entry that opens
a sheet: YAML/bundle format pick, the shared PortabilityPanel (idle →
loading → findings/error, retry only on LOUSHO_PASS_FAILED), an adapt
switch shown only when the analysis produced adapted instructions, and
the download itself via downloadExport(id, format, { adapt }) with
bundle warnings as warning toasts. A 409 LOUSHO_PORTABILITY_MISSING
remounts the panel idle, drops the adapt switch and shows the stale-spec
message. The import sheet shows the same panel for pasted text (keyed on
the text so it resets on edit) once the preview is valid.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
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