- |
+ |
{run.id.slice(0, 8)}...
|
- {run.jobName} |
-
+ | {run.jobName} |
+
{run.status}
|
-
+ |
+
+ |
+
{run.stepCount > 0 ? (
{run.stepCount}
@@ -149,12 +172,12 @@ export function Dashboard() {
-
)}
|
-
+ |
{run.progress ? (
-
+
0 ? 100 : 0}%`,
}}
@@ -169,10 +192,10 @@ export function Dashboard() {
-
)}
|
-
+ |
{formatDate(run.createdAt)}
|
-
+ |
@@ -196,7 +219,7 @@ export function Dashboard() {
@@ -206,7 +229,7 @@ export function Dashboard() {
@@ -220,12 +243,12 @@ export function Dashboard() {
{/* Pagination */}
-
+
@@ -234,7 +257,7 @@ export function Dashboard() {
type="button"
onClick={nextPage}
disabled={!hasMore}
- className="text-sm text-blue-600 hover:text-blue-800 disabled:text-gray-300 disabled:cursor-not-allowed"
+ className="text-sm text-blue-600 hover:text-blue-800 disabled:cursor-not-allowed disabled:text-gray-300"
>
Next →
@@ -244,10 +267,10 @@ export function Dashboard() {
{/* Run Details Modal */}
{selectedRun && (
-
-
+
+
-
+
Run Details
+ {Object.keys(selectedRun.labels).length > 0 && (
+
+ )}
Created:{' '}
{formatDate(selectedRun.createdAt)}
@@ -303,7 +334,7 @@ export function Dashboard() {
{selectedRun.output !== null && (
Output:
-
+
{JSON.stringify(selectedRun.output, null, 2)}
@@ -311,7 +342,7 @@ export function Dashboard() {
Payload:
-
+
{JSON.stringify(selectedRun.payload, null, 2)}
@@ -319,15 +350,15 @@ export function Dashboard() {
{steps.length > 0 && (
Steps:
-
+
{steps.map((s) => (
-
{s.name}
{
setIsSubmitting(true)
try {
- const run = await durably.jobs.processImage.trigger(data)
+ const run = await durably.jobs.processImage.trigger(data, {
+ labels: { source: 'browser' },
+ })
setImageRunId(run.id)
} finally {
setIsSubmitting(false)
@@ -57,22 +59,22 @@ function AppContent() {
return (
-
+
-
+
{/* Left: Job Trigger + Progress */}
{/* Job Selection */}
-
-
+
+
Run Job
-
+
|