@@ -497,13 +497,11 @@ export default function PromptDetailPage() {
497497 < span className = "text-xs text-text-dimmed" >
498498 v{ selectedVersion . version }
499499 { isCurrent && < span className = "ml-1 text-green-500" > current</ span > }
500+ { selectedVersion . labels . includes ( "override" ) && (
501+ < span className = "ml-1 text-amber-400" > override</ span >
502+ ) }
500503 </ span >
501504 ) }
502- { overrideVersion && (
503- < Badge variant = "extra-small" className = "border-amber-500/30 text-amber-400" >
504- override active (v{ overrideVersion . version } )
505- </ Badge >
506- ) }
507505 { selectedVersion && ! isCurrent && selectedVersion . source === "code" && (
508506 < Button
509507 variant = "tertiary/small"
@@ -529,12 +527,38 @@ export default function PromptDetailPage() {
529527 Reactivate as override
530528 </ Button >
531529 ) }
532- < Button variant = "tertiary/small" onClick = { ( ) => setOverrideDialogOpen ( true ) } >
533- { overrideVersion ? "Edit Override" : "Create Override" }
534- </ Button >
530+ { ! overrideVersion && (
531+ < Button variant = "tertiary/small" onClick = { ( ) => setOverrideDialogOpen ( true ) } >
532+ Create Override
533+ </ Button >
534+ ) }
535535 </ div >
536536 </ PageAccessories >
537537 </ NavBar >
538+ { overrideVersion && (
539+ < div className = "flex items-center justify-between bg-amber-500/10 px-4 py-2" >
540+ < span className = "text-xs text-amber-300" >
541+ Override v{ overrideVersion . version } is active. API calls resolve this version instead of the deployed prompt.
542+ </ span >
543+ < div className = "flex items-center gap-2" >
544+ < Button
545+ variant = "tertiary/small"
546+ onClick = { ( ) => setOverrideDialogOpen ( true ) }
547+ >
548+ Edit
549+ </ Button >
550+ < Button
551+ variant = "tertiary/small"
552+ onClick = { ( ) =>
553+ fetcher . submit ( { intent : "removeOverride" } , { method : "POST" } )
554+ }
555+ disabled = { fetcher . state !== "idle" }
556+ >
557+ Remove
558+ </ Button >
559+ </ div >
560+ </ div >
561+ ) }
538562 < PageBody scrollable = { false } >
539563 < ResizablePanelGroup
540564 autosaveId = "prompt-detail"
@@ -553,28 +577,11 @@ export default function PromptDetailPage() {
553577 < ResizablePanel id = "prompt-template" default = "250px" min = "80px" >
554578 < div className = "flex h-full flex-col overflow-hidden p-3 pb-0" >
555579 { /* Sticky header */ }
556- < div className = "mb-2 flex-shrink-0 space-y-2 " >
580+ < div className = "mb-2 flex-shrink-0" >
557581 < div className = "flex items-center justify-between" >
558582 < Header3 > Template</ Header3 >
559583 { content && < CopyButton value = { content } variant = "icon" size = "extra-small" /> }
560584 </ div >
561- { overrideVersion && (
562- < div className = "flex items-center justify-between rounded border border-amber-500/30 bg-amber-500/5 px-3 py-2" >
563- < span className = "text-xs text-amber-300" >
564- Dashboard override active (v{ overrideVersion . version } ). This version is
565- served instead of the deployed version.
566- </ span >
567- < Button
568- variant = "tertiary/small"
569- onClick = { ( ) =>
570- fetcher . submit ( { intent : "removeOverride" } , { method : "POST" } )
571- }
572- disabled = { fetcher . state !== "idle" }
573- >
574- Remove override
575- </ Button >
576- </ div >
577- ) }
578585 </ div >
579586 { /* Scrollable content */ }
580587 { content ? (
0 commit comments