From 1dbe7bf9af12c9f70c2ff17af0714a619101cdb0 Mon Sep 17 00:00:00 2001 From: Guilhem Lemouel Date: Thu, 1 Oct 2026 03:43:31 -0700 Subject: [PATCH] fix: the widest action rows scroll, and the canvas toggles show only where they fit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Measuring the band instead of estimating it: with the canvas toggles shown the app editor's actions are 826-911px and the trail with the summary another ~500, so the row overflowed the bar at every width up to about 1470 — the 1100 I set from an estimate was wrong, and the 1350 before it was too. The toggles come out at 1500 now, and the menu entries are what keeps all three reachable below that rather than merely out of the way. The two widest rows — this editor's and the pipeline's — scroll inside their own box, which is the escape the rows they replaced had (`overflow-x-auto whitespace-nowrap`). That answers pi's finding and clears the last 23-40px of band overflow at middling widths, which predated the conversion. Measured after: zero horizontal overflow from 852px of bar to 1392. From the CI round's other findings: - The pen is offered when either the summary or the path is editable, not the path alone: a host that allowed one and refused the other could no longer edit the summary from the band. `PathEditPopover` takes `pathEditable` to match, and its label names whichever it is given. - The four editors' comments called the summary read-only, which stopped being true when the pen beside it started editing it. - The pipeline's "centre group" comment described a layout it no longer has. Co-Authored-By: Claude Opus 5 (1M context) --- .../src/lib/components/FlowBuilder.svelte | 8 +- .../src/lib/components/PathEditPopover.svelte | 23 +- .../src/lib/components/ScriptBuilder.svelte | 8 +- .../apps/editor/AppEditorHeader.svelte | 38 +-- .../raw_apps/RawAppEditorHeader.svelte | 5 +- .../(logged)/pipeline/[folder]/+page.svelte | 262 +++++++++--------- 6 files changed, 185 insertions(+), 159 deletions(-) diff --git a/frontend/src/lib/components/FlowBuilder.svelte b/frontend/src/lib/components/FlowBuilder.svelte index 85532edcb6..b2951864db 100644 --- a/frontend/src/lib/components/FlowBuilder.svelte +++ b/frontend/src/lib/components/FlowBuilder.svelte @@ -1654,9 +1654,8 @@ {/if} {#snippet flowSummary()} - +
{path} -

Only the owner can change the path

+

+ {pathEditable + ? 'Only the owner can change the path' + : 'This path cannot be changed here'} +

{/if}
diff --git a/frontend/src/lib/components/ScriptBuilder.svelte b/frontend/src/lib/components/ScriptBuilder.svelte index 8be4a05bb9..cc7fff8be9 100644 --- a/frontend/src/lib/components/ScriptBuilder.svelte +++ b/frontend/src/lib/components/ScriptBuilder.svelte @@ -2338,9 +2338,8 @@ {/if} {#snippet scriptSummary()} - +
{/snippet} {#snippet canvasToggles()} diff --git a/frontend/src/lib/components/raw_apps/RawAppEditorHeader.svelte b/frontend/src/lib/components/raw_apps/RawAppEditorHeader.svelte index cb0f958ccd..880cc5251e 100644 --- a/frontend/src/lib/components/raw_apps/RawAppEditorHeader.svelte +++ b/frontend/src/lib/components/raw_apps/RawAppEditorHeader.svelte @@ -1021,9 +1021,8 @@ {/snippet} {#snippet appSummary()} - +
- setMode(m)} /> - {#if mode === 'view' && pe.drafts.size > 0} - +
+ {#if !isOperator} + +
+ setMode(m)} /> + {#if mode === 'view' && pe.drafts.size > 0} + + + {/if} +
+ {/if} + {#if !isOperator && allPipelineScripts.length > 0} + + {#if recordingMode} {/if} -
- {/if} - {#if !isOperator && allPipelineScripts.length > 0} - - {#if recordingMode} - - {/if} - - - {/if} - {#if mode === 'edit' && saveErrors.size > 0} - - - {#snippet trigger()} - - {/snippet} - {#snippet content()} -
- Save errors -
- {#each [...saveErrors.entries()] as [path, message]} -
- {path} - - {message} - -
- {/each} + + {#snippet trigger()} + + {/snippet} + {#snippet content()} +
+ Save errors +
+ {#each [...saveErrors.entries()] as [path, message]} +
+ {path} + + {message} + +
+ {/each} +
-
- {/snippet} - - {/if} - {#if mode === 'edit' && pe.drafts.size > 0} - - {#if $workspaceStore} - + {#if $workspaceStore} + + {/if} + + {/if} + {#if mode === 'view'} + {/if} - {/if} - {#if mode === 'view'} - - {/if} -
{/snippet}