@@ -19,7 +19,6 @@ import { Label } from "~/components/primitives/Label";
1919import { DurationPicker } from "~/components/primitives/DurationPicker" ;
2020import { Paragraph } from "~/components/primitives/Paragraph" ;
2121import { Popover , PopoverContent , PopoverTrigger } from "~/components/primitives/Popover" ;
22- import { SimpleTooltip } from "~/components/primitives/Tooltip" ;
2322import {
2423 ResizableHandle ,
2524 ResizablePanel ,
@@ -60,6 +59,7 @@ import { TaskRunStatusCombo } from "~/components/runs/v3/TaskRunStatus";
6059import { ClockRotateLeftIcon } from "~/assets/icons/ClockRotateLeftIcon" ;
6160import { MachinePresetName } from "@trigger.dev/core/v3" ;
6261import { TaskTriggerSourceIcon } from "~/components/runs/v3/TaskTriggerSource" ;
62+ import { Callout } from "~/components/primitives/Callout" ;
6363
6464export const loader = async ( { request, params } : LoaderFunctionArgs ) => {
6565 const userId = await requireUserId ( request ) ;
@@ -412,12 +412,17 @@ function StandardTaskForm({
412412 </ div >
413413 </ ResizablePanel >
414414 < ResizableHandle id = "test-task-handle" />
415- < ResizablePanel id = "test-task-options" min = "285px " default = "285px " max = "360px" >
416- < div className = "h-full overflow-y-scroll" >
415+ < ResizablePanel id = "test-task-options" min = "300px " default = "300px " max = "360px" >
416+ < div className = "h-full overflow-y-scroll scrollbar-thin scrollbar-track-transparent scrollbar-thumb-charcoal-600 " >
417417 < Fieldset className = "px-3 py-3" >
418+ < Hint >
419+ Options enable you to control the execution behavior of your task.{ " " }
420+ < TextLink to = { docsPath ( "triggering#options" ) } > Read the docs.</ TextLink >
421+ </ Hint >
418422 < InputGroup >
419423 < Label variant = "small" > Delay</ Label >
420424 < DurationPicker name = { delaySeconds . name } id = { delaySeconds . id } />
425+ < Hint > Delays run by a specific duration.</ Hint >
421426 < FormError id = { delaySeconds . errorId } > { delaySeconds . error } </ FormError >
422427 </ InputGroup >
423428 < InputGroup >
@@ -428,7 +433,7 @@ function StandardTaskForm({
428433 value = { ttlValue }
429434 onChange = { setTtlValue }
430435 />
431- < Hint > The run will expire if it hasn't started within the TTL (time to live) .</ Hint >
436+ < Hint > Expires the run if it hasn't started within the TTL.</ Hint >
432437 < FormError id = { ttlSeconds . errorId } > { ttlSeconds . error } </ FormError >
433438 </ InputGroup >
434439 < InputGroup >
@@ -447,6 +452,7 @@ function StandardTaskForm({
447452 name = { queue . name }
448453 id = { queue . id }
449454 placeholder = "Select queue"
455+ heading = "Filter queues"
450456 variant = "tertiary/small"
451457 dropdownIcon
452458 items = { queueItems }
@@ -481,6 +487,7 @@ function StandardTaskForm({
481487 }
482488 </ Select >
483489 ) }
490+ < Hint > Assign run to a specific queue.</ Hint >
484491 < FormError id = { queue . errorId } > { queue . error } </ FormError >
485492 </ InputGroup >
486493 < InputGroup >
@@ -494,7 +501,7 @@ function StandardTaskForm({
494501 tags = { tagsValue }
495502 onTagsChange = { setTagsValue }
496503 />
497- < Hint > Tags enable you to easily filter runs.</ Hint >
504+ < Hint > Add tags to easily filter runs.</ Hint >
498505 < FormError id = { tags . errorId } > { tags . error } </ FormError >
499506 </ InputGroup >
500507 < InputGroup >
@@ -523,6 +530,7 @@ function StandardTaskForm({
523530 }
524531 } }
525532 />
533+ < Hint > Retries failed runs up to the specified number of attempts.</ Hint >
526534 < FormError id = { maxAttempts . errorId } > { maxAttempts . error } </ FormError >
527535 </ InputGroup >
528536 < InputGroup >
@@ -533,6 +541,7 @@ function StandardTaskForm({
533541 value = { maxDurationValue }
534542 onChange = { setMaxDurationValue }
535543 />
544+ < Hint > Overrides the maximum compute time limit for the run.</ Hint >
536545 < FormError id = { maxDurationSeconds . errorId } > { maxDurationSeconds . error } </ FormError >
537546 </ InputGroup >
538547 < InputGroup >
@@ -552,7 +561,7 @@ function StandardTaskForm({
552561 name = { idempotencyKeyTTLSeconds . name }
553562 id = { idempotencyKeyTTLSeconds . id }
554563 />
555- < Hint > By default, idempotency keys expire after 30 days.</ Hint >
564+ < Hint > Keys expire after 30 days by default .</ Hint >
556565 < FormError id = { idempotencyKeyTTLSeconds . errorId } >
557566 { idempotencyKeyTTLSeconds . error }
558567 </ FormError >
@@ -568,8 +577,7 @@ function StandardTaskForm({
568577 onChange = { ( e ) => setConcurrencyKeyValue ( e . target . value ) }
569578 />
570579 < Hint >
571- Concurrency keys enable you limit concurrency by creating a separate queue for
572- each value of the key.
580+ Limits concurrency by creating a separate queue for each value of the key.
573581 </ Hint >
574582 < FormError id = { concurrencyKey . errorId } > { concurrencyKey . error } </ FormError >
575583 </ InputGroup >
@@ -596,7 +604,7 @@ function StandardTaskForm({
596604 </ SelectItem >
597605 ) ) }
598606 </ Select >
599- < Hint > This lets you override the machine preset specified in the task .</ Hint >
607+ < Hint > Overrides the machine preset.</ Hint >
600608 < FormError id = { machine . errorId } > { machine . error } </ FormError >
601609 </ InputGroup >
602610 < InputGroup >
@@ -617,8 +625,10 @@ function StandardTaskForm({
617625 </ SelectItem >
618626 ) ) }
619627 </ Select >
620- { disableVersionSelection && (
628+ { disableVersionSelection ? (
621629 < Hint > Only the latest version is available in the development environment.</ Hint >
630+ ) : (
631+ < Hint > Runs task on a specific version.</ Hint >
622632 ) }
623633 < FormError id = { version . errorId } > { version . error } </ FormError >
624634 </ InputGroup >
@@ -869,7 +879,11 @@ function ScheduledTaskForm({
869879 </ Hint >
870880 < FormError id = { externalId . errorId } > { externalId . error } </ FormError >
871881 </ InputGroup >
872- < div className = "w-full border-b border-grid-bright" > </ div >
882+ < div className = "w-full border-b border-grid-bright" />
883+ < Hint >
884+ Options enable you to control the execution behavior of your task.{ " " }
885+ < TextLink to = { docsPath ( "triggering#options" ) } > Read the docs.</ TextLink >
886+ </ Hint >
873887 < InputGroup >
874888 < Label htmlFor = { ttlSeconds . id } variant = "small" >
875889 TTL
@@ -880,7 +894,7 @@ function ScheduledTaskForm({
880894 value = { ttlValue }
881895 onChange = { setTtlValue }
882896 />
883- < Hint > The run will expire if it hasn't started within the TTL (time to live) .</ Hint >
897+ < Hint > Expires the run if it hasn't started within the TTL.</ Hint >
884898 < FormError id = { ttlSeconds . errorId } > { ttlSeconds . error } </ FormError >
885899 </ InputGroup >
886900 < InputGroup >
@@ -899,6 +913,7 @@ function ScheduledTaskForm({
899913 name = { queue . name }
900914 id = { queue . id }
901915 placeholder = "Select queue"
916+ heading = "Filter queues"
902917 variant = "tertiary/small"
903918 dropdownIcon
904919 items = { queueItems }
@@ -933,6 +948,7 @@ function ScheduledTaskForm({
933948 }
934949 </ Select >
935950 ) }
951+ < Hint > Assign run to a specific queue.</ Hint >
936952 < FormError id = { queue . errorId } > { queue . error } </ FormError >
937953 </ InputGroup >
938954 < InputGroup >
@@ -946,7 +962,7 @@ function ScheduledTaskForm({
946962 tags = { tagsValue }
947963 onTagsChange = { setTagsValue }
948964 />
949- < Hint > Tags enable you to easily filter runs.</ Hint >
965+ < Hint > Add tags to easily filter runs.</ Hint >
950966 < FormError id = { tags . errorId } > { tags . error } </ FormError >
951967 </ InputGroup >
952968 < InputGroup >
@@ -975,6 +991,7 @@ function ScheduledTaskForm({
975991 }
976992 } }
977993 />
994+ < Hint > Retries failed runs up to the specified number of attempts.</ Hint >
978995 < FormError id = { maxAttempts . errorId } > { maxAttempts . error } </ FormError >
979996 </ InputGroup >
980997 < InputGroup >
@@ -987,6 +1004,7 @@ function ScheduledTaskForm({
9871004 value = { maxDurationValue }
9881005 onChange = { setMaxDurationValue }
9891006 />
1007+ < Hint > Overrides the maximum compute time limit for the run.</ Hint >
9901008 < FormError id = { maxDurationSeconds . errorId } > { maxDurationSeconds . error } </ FormError >
9911009 </ InputGroup >
9921010 < InputGroup >
@@ -1005,7 +1023,7 @@ function ScheduledTaskForm({
10051023 Idempotency key TTL
10061024 </ Label >
10071025 < DurationPicker name = { idempotencyKeyTTLSeconds . name } id = { idempotencyKeyTTLSeconds . id } />
1008- < Hint > By default, idempotency keys expire after 30 days.</ Hint >
1026+ < Hint > Keys expire after 30 days by default .</ Hint >
10091027 < FormError id = { idempotencyKeyTTLSeconds . errorId } >
10101028 { idempotencyKeyTTLSeconds . error }
10111029 </ FormError >
@@ -1020,10 +1038,7 @@ function ScheduledTaskForm({
10201038 value = { concurrencyKeyValue ?? "" }
10211039 onChange = { ( e ) => setConcurrencyKeyValue ( e . target . value ) }
10221040 />
1023- < Hint >
1024- Concurrency keys enable you limit concurrency by creating a separate queue for each
1025- value of the key.
1026- </ Hint >
1041+ < Hint > Limits concurrency by creating a separate queue for each value of the key.</ Hint >
10271042 < FormError id = { concurrencyKey . errorId } > { concurrencyKey . error } </ FormError >
10281043 </ InputGroup >
10291044 < InputGroup >
@@ -1049,7 +1064,7 @@ function ScheduledTaskForm({
10491064 </ SelectItem >
10501065 ) ) }
10511066 </ Select >
1052- < Hint > This lets you override the machine preset specified in the task .</ Hint >
1067+ < Hint > Overrides the machine preset.</ Hint >
10531068 < FormError id = { machine . errorId } > { machine . error } </ FormError >
10541069 </ InputGroup >
10551070 < InputGroup >
@@ -1070,8 +1085,10 @@ function ScheduledTaskForm({
10701085 </ SelectItem >
10711086 ) ) }
10721087 </ Select >
1073- { disableVersionSelection && (
1088+ { disableVersionSelection ? (
10741089 < Hint > Only the latest version is available in the development environment.</ Hint >
1090+ ) : (
1091+ < Hint > Runs task on a specific version.</ Hint >
10751092 ) }
10761093 < FormError id = { version . errorId } > { version . error } </ FormError >
10771094 </ InputGroup >
@@ -1120,7 +1137,7 @@ function RecentRunsPopover<T extends StandardRun | ScheduledRun>({
11201137 Recent runs
11211138 </ Button >
11221139 </ PopoverTrigger >
1123- < PopoverContent className = "min-w-[279px ] p-0" align = "end" sideOffset = { 6 } >
1140+ < PopoverContent className = "min-w-[294px ] p-0" align = "end" sideOffset = { 6 } >
11241141 < div className = "max-h-80 overflow-y-auto" >
11251142 < div className = "p-1" >
11261143 { runs . map ( ( run ) => (
@@ -1134,7 +1151,7 @@ function RecentRunsPopover<T extends StandardRun | ScheduledRun>({
11341151 className = "flex w-full items-center gap-2 rounded-sm px-2 py-2 outline-none transition-colors focus-custom hover:bg-charcoal-900 "
11351152 >
11361153 < div className = "flex flex-col items-start" >
1137- < Paragraph variant = "small" >
1154+ < Paragraph variant = "small/bright " >
11381155 < DateTime date = { run . createdAt } showTooltip = { false } />
11391156 </ Paragraph >
11401157 < div className = "flex items-center gap-2 text-xs text-text-dimmed" >
0 commit comments