S

Knowledge Pack Files

SideButton Marketing Website Knowledge Pack Files

Browse the source files that power the SideButton Marketing Website MCP server knowledge pack.

Available free v1.0.3 Browser
$ sidebutton install sidebutton.com
Download ZIP
portal-jobs/_skill.md
22.6 KB

What This Is

Job execution history page -- lists all workflow jobs that have been dispatched to agents. Shows a filterable, searchable list of jobs with status badges, workflow names, ticket references, agent assignments, step counts, durations, and relative timestamps. Each job links to a detail page showing input parameters, step execution timeline with task progress, expandable step logs, and output/error cards. Jobs are created when workflows are dispatched to agents (via Run Workflow, Run Job, Queue dispatch, or Automation trigger). Supports cancel (running/waiting) and resend (failed/cancelled) actions.

URL Patterns

PatternDescription
/portal/jobsJob list (all)
/portal/jobs?status=runningFiltered to running jobs
/portal/jobs?status=waitingFiltered to waiting jobs
/portal/jobs?status=completedFiltered to completed jobs
/portal/jobs?status=failedFiltered to failed jobs
/portal/jobs?status=cancelledFiltered to cancelled jobs
/portal/jobs/{id}Job detail view
/portal/jobs/{id}?from_status={status}Job detail with back-link context to filtered list

Page Structure

Job List (/portal/jobs)

+--[Sidebar]--+--[Main Content]------------------------------------------+
|  Chat       |  H1: "Jobs"                                               |
|  Agents     |  "1845 jobs"                                               |
|  Jobs *     |                                                           |
|  Queue      |  [Filter Tabs: All | Running N | Waiting | Completed | Failed | Cancelled] |
|  Automations|                                                           |
|  Workflows  |  [Search: "Search tickets..."]  Workflow [▼]  Agent [▼]   |
|  Settings   |                                                           |
|             |  ITEM                              AGENT         STATUS   |
|             |  [dot] Workflow Name  TICKET  #ID                         |
|             |        [EFFORT]  N step  Nm Ns                            |
|             |                          [avatar] agent-name              |
|             |                                   [Status Badge]  time ago |
|             |                                   [Cancel/Resend]          |
|             |  ...                                                      |
|             |  Loading more...                                          |
+-------------+-----------------------------------------------------------+

Job Detail (/portal/jobs/{id})

+--[Sidebar]--+--[Main Content]------------------------------------------+
|             |  < Back to jobs                                           |
|  Jobs *     |                                                           |
|             |  H1: workflow-slug — ticket/source  [Status Badge]       |
|             |                                          [Cancel/Resend]  |
|             |  Job #N  [avatar] agent  [EFFORT]  Nm Ns                 |
|             |  Created date                                             |
|             |  pipeline-id (green monospace)                            |
|             |                                                           |
|             |  [INPUT card]                                             |
|             |    trigger_ticket_url: https://... (automation jobs)      |
|             |    trigger_project: MVP (automation jobs)                 |
|             |    trigger_assignee: account-id (automation jobs)         |
|             |    trigger_status: To Do (automation jobs)                |
|             |    trigger_issue_key: MVP-123 (automation jobs)           |
|             |    trigger_issue_type: Bug (automation jobs)              |
|             |    ticket_url: https://...                                |
|             |    hint: optional instructions                            |
|             |                                                           |
|             |  [ERROR card] (failed jobs only)                          |
|             |    Step N (step-name) failed: error message               |
|             |                                                           |
|             |  [Temporal Timeline] OR [Temporal unreachable]            |
|             |    Job: STATUS | N events | size KB | short_id           |
|             |    Init          Nms    N activities                      |
|             |    Agent Setup   Nms    N activities                      |
|             |    Execution     Nm Ns                                    |
|             |      runAndMonitor  Nm Ns                                |
|             |        workflow: agent_workflow  agent: agent-name        |
|             |    Teardown      Nms    N activities                      |
|             |                                                           |
|             |  [OUTPUT card] (completed jobs only)                      |
|             |    "Workflow X completed on agent-name"                   |
+-------------+-----------------------------------------------------------+

Key Elements

Job List

ElementSelector / RefNotes
Page headingheading "Jobs"H1
Job countBelow heading"N jobs" summary
Filter: Alllink "All"Green pill (bg-emerald-500/20 text-emerald-400) when active
Filter: Runninglink "Running"Shows count badge (e.g. "Running 3") when jobs are running
Filter: Waitinglink "Waiting"
Filter: Completedlink "Completed"
Filter: Failedlink "Failed"Blue pill when active as selected filter
Filter: Cancelledlink "Cancelled"6th status filter tab
Search textboxtextbox "Search tickets…"Searches by ticket reference (e.g. "SCRUM-329")
Workflow filtercombobox / label "Workflow" / #workflow-filter-selectNative <select>, default "All workflows". Options populate dynamically from job data
Agent filtercombobox / label "Agent"Native <select>, default "All agents"
Column header: ITEMAbove job rowsLeft column
Column header: AGENTAbove job rowsMiddle column
Column header: STATUSAbove job rowsRight column
Job rowlink (each job)Clickable, navigates to /portal/jobs/{id}
Status dot (green)Left of workflow nameCompleted
Status dot (red)Left of workflow nameFailed
Status dot (blue, pulsing)Left of workflow nameRunning
Status dot (grey)Left of workflow nameCancelled / Waiting
Workflow nameBold text in rowTitle case display name (e.g. "SE Rca Fix", "QA Validate", "Pull Repos")
Ticket referenceOrange/cyan text after namee.g. "SCRUM-329" — only present when job has a linked ticket
Job IDGrey texte.g. "#3121"
Agent avatarimg inside agent linkSmall green circle with agent avatar image
Agent name linklink "agent-name"Links to /portal/agents, shows agent hostname
Effort badge[MAX] / [HIGH] / [MEDIUM]Green pill badge showing effort level
Step countGrey text"N step" (singular)
DurationGrey text"Nm Ns" format (e.g. "6m 31s", "5m 46s") or "Ns" for short durations
Completed badgeStatus areaGreen dot + "Completed"
Failed badgeStatus areaRed dot + "Failed"
Running badgeStatus areaBlue dot + "Running"
Cancelled badgeStatus areaGrey dot + "Cancelled"
Waiting badgeStatus areaAmber dot + "Waiting"
Relative timeRight side"Nm ago", "Nh ago", "Nd ago"
Cancel buttonbutton "Cancel"On running/waiting jobs — cancels the job
Resend buttonbutton "Resend"On failed and cancelled jobs — re-dispatches the job
Resended buttonbutton "Resended"Shown after a job has already been resent — disabled/grey state
Loading moreBottom of list"Loading more..." text, infinite scroll trigger (50 items/page)

Job Detail

ElementSelector / RefNotes
Back linklink "Back to jobs"Chevron left + text, returns to job list
Workflow headingH1 textFormat: "workflow-slug — ticket-key" or "workflow-slug — queued"
Status badgeNext to heading"Completed" / "Failed" / "Running" / "Cancelled" with colored dot
Cancel buttonbutton "Cancel"On running/waiting jobs only, top-right, blue outline
Resend buttonbutton "Resend"On failed/cancelled jobs, top-right, blue outline. Changes to "Resended" after use
Job numberBelow heading"Job #N"
Agent avatar linklink > img "agent-name"Green circle avatar, links to /portal/agents
Agent nameBelow headingAgent hostname next to avatar
Effort badgeBelow heading"MAX" / "HIGH" / "MEDIUM" green pill
DurationBelow heading"Nm Ns" format (ticks live on running jobs)
Created dateBelow headingFull date string, e.g. "Created 4/2/2026, 9:33:59 PM"
Pipeline IDBelow metadataGreen/teal monospace text, e.g. "pipeline-job-4227"
Temporal Workflow IDspan "Temporal Workflow ID"Visible in accessibility tree, links to Temporal tracking
INPUT cardDark card below metadata"Input" header, key-value pairs of input parameters
INPUT trigger variablesInside INPUT cardAutomation-triggered jobs show: trigger_ticket_url, trigger_project, trigger_assignee, trigger_status, trigger_issue_key, trigger_issue_type
INPUT ticket URLInside INPUT cardClickable cyan link when input contains a URL (e.g. Jira ticket)
INPUT hintInside INPUT card"hint:" field showing dispatch instructions (e.g. "Jira webhook: jira:issue_updated")
ERROR cardRed background cardShown on failed jobs only, "Error" header + "Step N (step-name) failed" + error message
Temporal TimelineBelow INPUT/ERRORFull job execution timeline from Temporal orchestrator
Timeline summaryFirst line of timeline"Job: STATUS | N events | size KB | short_id"
Timeline: Init phaseTimeline rowDuration (ms) + activity count (e.g. "3 activities")
Timeline: Agent Setup phaseTimeline rowDuration (ms) + activity count (e.g. "4 activities")
Timeline: Execution phaseTimeline rowDuration (Nm Ns) — main execution time
Timeline: runAndMonitorSub-row under ExecutionDuration + "workflow: {workflow_id} agent: {agent-name}"
Timeline: Teardown phaseTimeline rowDuration (ms) + activity count (e.g. "5 activities")
Temporal unreachableReplaces timelineShown when Temporal workflow history is unavailable (old jobs, cancelled jobs, service down)
OUTPUT cardDark card at bottomShown on completed jobs, "Output" header + monospace green completion message (e.g. "Workflow agent_se_work completed on venmate-agent-10")

Data Model

Job

FieldTypeDescription
idnumberJob ID (auto-increment)
pipeline_idstringPipeline tracking ID (e.g. "pipeline-job-3121")
namestringDisplay name format: "{workflow_id} — {ticket_key|queued}"
statusstring"pending" / "running" / "waiting" / "completed" / "failed" / "cancelled"
effort_levelstring"max" / "high" / "medium" (optional — may be absent)
inputstring (JSON)Key-value map of input parameters (ticket_url, hint, etc.)
outputstringCompletion message (on completed jobs)
errorstringError message (on failed jobs)
ticket_urlstringFull Jira ticket URL (optional)
ticket_keystringJira ticket key e.g. "SCRUM-329" (optional)
current_stepnumberIndex of currently executing step
stepsstring (JSON)Array of pipeline step definitions
started_atstring (datetime)When job started executing
completed_atstring (datetime)When job finished
created_atstring (datetime)Job creation timestamp
slack_channel_idstringSlack channel for notifications (optional)
slack_thread_tsstringSlack thread timestamp (optional)

Temporal Timeline (Job Detail)

The job detail page fetches execution history from the Temporal orchestrator. When available, it renders a phase-based timeline. When unavailable, it shows "Temporal unreachable".

FieldTypeDescription
statusstringTemporal workflow status: "COMPLETED" / "FAILED" / "RUNNING" / "CANCELLED"
event_countnumberTotal events in workflow history (e.g. "83 events")
data_sizestringHistory data size (e.g. "14.9 KB")
short_idstringShort hex workflow run ID prefix (e.g. "019d500e")

Timeline Phases

PhaseDescription
InitWorkflow initialization (~15-20ms, 3 activities)
Agent SetupAgent environment preparation (~24-25ms, 4 activities)
ExecutionMain workflow execution — contains runAndMonitor sub-entry showing workflow ID + agent name
TeardownCleanup and reporting (~38-48ms, 4-5 activities)

Input Trigger Variables (Automation-triggered jobs)

Jobs triggered by Jira automations include trigger context in the INPUT card:

FieldTypeDescription
trigger_ticket_urlstringFull Jira ticket URL from trigger event
trigger_projectstringJira project key (e.g. "MVP")
trigger_assigneestringJira account ID of assignee
trigger_statusstringJira issue status at trigger time (e.g. "To Do", "In Review")
trigger_issue_keystringJira issue key (e.g. "MVP-1601")
trigger_issue_typestringJira issue type (e.g. "Bug", "Story")

States & Variations

StateTriggerVisual Indicator
All filter activeDefault / click "All""All" tab has green pill background
Running filter?status=runningOnly running jobs shown, Running tab active with count badge
Completed filter?status=completedOnly completed jobs shown
Failed filter?status=failedOnly failed jobs shown, Failed tab has blue pill
Waiting filter?status=waitingOnly waiting jobs shown
Cancelled filter?status=cancelledOnly cancelled jobs shown
Running count badgeRunning jobs existRunning tab shows count badge (e.g. "Running 3")
Job completedFinished successfullyGreen dot + "Completed" badge
Job failedError occurredRed dot + "Failed" badge
Job runningIn progressBlue pulsing dot + "Running" badge, live-ticking duration
Job waitingBlocked at gateAmber dot + "Waiting" badge
Job pendingNot yet started"Pending" badge
Job cancelledUser cancelledGrey dot + "Cancelled" badge
Effort: Maxeffort_level = "max"Green "MAX" pill badge
Effort: Higheffort_level = "high"Green "HIGH" pill badge
Effort: Mediumeffort_level = "medium"Green "MEDIUM" pill badge
Ticket reference presentJob linked to ticketOrange/cyan ticket key text next to workflow name
Cancel availableJob is running or waiting"Cancel" button shown in list row and detail top-right
Resend availableJob is failed or cancelled"Resend" button shown in list row and detail top-right
Already resentResend was clicked"Resended" button shown (disabled/past tense)
Detail: Temporal timelineTemporal history availablePhase-based timeline: Init → Agent Setup → Execution → Teardown with durations and activity counts
Detail: Temporal unreachableTemporal history unavailable"Temporal unreachable" text replaces timeline (old jobs, cancelled jobs, service down)
Detail: Temporal status mismatchPortal vs orchestrator differERROR card may show "Status mismatch: portal says 'failed' but orchestrator says 'COMPLETED'"
Detail: ERROR cardJob has failureRed "Error" card above timeline with "Step N (step-name) failed" + error detail
Detail: OUTPUT cardJob completedDark "Output" card below timeline with green completion message
Detail: trigger variablesAutomation-triggered jobINPUT card shows trigger_ticket_url, trigger_project, trigger_assignee, trigger_status, trigger_issue_key, trigger_issue_type
Empty: All tabNo jobs dispatched, "All" activeLightning bolt icon + "No jobs yet" heading + "Run a workflow from the agents page to create a job" hint
Empty: Running tabNo running jobs, "Running" activeLightning bolt icon + "No running jobs" heading + same hint
Empty: Waiting tabNo waiting jobs, "Waiting" activeLightning bolt icon + "No waiting jobs" heading + same hint
Empty: Completed tabNo completed jobs, "Completed" activeLightning bolt icon + "No completed jobs" heading + same hint
Empty: Failed tabNo failed jobs, "Failed" activeLightning bolt icon + "No failed jobs" heading + same hint
Empty: Cancelled tabNo cancelled jobs, "Cancelled" activeLightning bolt icon + "No cancelled jobs" heading + same hint
Agent filter hiddenNo agents registered or no jobsAgent dropdown not rendered in filter bar; only Workflow filter shown
Workflow filter emptyNo jobs existWorkflow dropdown only shows "All workflows" — options populate dynamically from job data
Infinite scrollScroll to bottom"Loading more..." appears, loads next 50 jobs

Common Tasks

1. View job list

  1. Navigate to /portal/jobs
  2. See all jobs with status, workflow name, ticket ref, agent, step count, duration, time

2. Filter jobs by status

  1. Click filter tab (Running / Waiting / Completed / Failed / Cancelled)
  2. List filters to matching jobs, URL updates to ?status={status}

3. Search by ticket reference

  1. Click the "Search tickets..." textbox
  2. Type ticket reference (e.g. "SCRUM-329")
  3. List filters to matching jobs

4. Filter by workflow

  1. Click the "Workflow" dropdown (native <select>)
  2. Select a workflow name (e.g. "SE Rca Fix", "QA Validate")
  3. List filters to jobs for that workflow

5. Filter by agent

  1. Click the "Agent" dropdown (native <select>)
  2. Select an agent name
  3. List filters to jobs for that agent

6. View job detail

  1. Click any job row in the list
  2. See workflow name, ticket ref, status, input parameters, step execution timeline

7. View Temporal timeline

  1. On job detail page, see the timeline section below INPUT/ERROR
  2. Timeline shows 4 phases: Init, Agent Setup, Execution, Teardown with durations
  3. Execution phase shows runAndMonitor sub-entry with workflow ID and agent name
  4. If Temporal is unreachable, shows "Temporal unreachable" instead

8. Cancel a running or waiting job

  1. On a running/waiting job (list or detail), click the "Cancel" button
  2. Job transitions to "Cancelled" status

9. Resend a failed or cancelled job

  1. On a failed/cancelled job (list or detail), click the "Resend" button
  2. Job is re-dispatched — button changes to "Resended" (disabled)

Tips

  • Jobs are created when workflows are dispatched via Run Workflow button, Run Job on agent, Queue dispatch, or Automation trigger
  • The effort level maps to LLM model: Max/High = Opus, Medium = Sonnet
  • Pipeline ID format is pipeline-job-{id}
  • Job list shows relative timestamps ("Nm ago", "Nh ago"); detail page shows absolute timestamps
  • The Temporal timeline shows 4 phases (Init, Agent Setup, Execution, Teardown) — Execution contains the actual workflow run with agent name
  • Workflow names appear as Title Case in the list (e.g. "SE Rca Fix") but as slugs in detail headings (e.g. "se-rca-fix")
  • Heading format on detail page: "workflow-slug — ticket-key" (when ticket linked) or "workflow-slug — queued" (from queue)
  • Agent names link to /portal/agents page
  • Automation-triggered jobs show trigger context variables in INPUT (trigger_ticket_url, trigger_project, trigger_assignee, trigger_status, trigger_issue_key, trigger_issue_type)
  • INPUT card may contain hint: field showing extra dispatch instructions or automation trigger context (e.g. "Jira webhook: jira:issue_updated")
  • Queued jobs (non-automation) show only standard params (ticket_url, hint) without trigger_* variables
  • Infinite scroll loads 50 items per page
  • Job links from filtered views include ?from_status={status} for back-navigation context

Gotchas

  • Cancel works on running AND waiting: Both running and waiting jobs can be cancelled
  • Resend → Resended: After clicking Resend, the button changes to "Resended" (disabled) to prevent double-dispatch
  • No delete: There is no UI to delete jobs from history
  • Effort badge: The effort level controls LLM model, not priority. Both MAX and HIGH badges are green
  • Status dots: Colored dots match status: green=completed, red=failed, blue=running (pulsing), amber=waiting, grey=cancelled
  • Workflow/Agent dropdowns: Native <select> elements — use select_option() to interact
  • Search scope: "Search tickets..." searches by ticket reference only, not by workflow name or agent
  • Temporal unreachable: Older jobs, cancelled jobs, and jobs during Temporal outages show "Temporal unreachable" instead of the phase timeline — OUTPUT/ERROR cards still display from portal DB
  • Temporal status mismatch: A job's portal status and Temporal status can differ — e.g., portal shows "Failed" but Temporal shows "COMPLETED". The ERROR card shows the mismatch detail
  • Cancelled jobs: Often show "Temporal unreachable" rather than a timeline — no step-level detail available
  • Live duration: Running jobs show a ticking duration counter
  • hint field: The INPUT card may show a hint: field with automation context (e.g. "Jira webhook: jira:issue_updated") — this helps trace how the job was triggered
  • Empty state per filter: Each filter tab shows its own empty state heading — "No running jobs", "No completed jobs", etc. Only the All tab says "No jobs yet". The hint text is always the same
  • Dynamic dropdown options: Workflow and Agent filter dropdowns populate dynamically from existing job data. An account with 0 jobs shows only "All workflows" and no Agent dropdown at all
  • Workflow filter dual IDs: Historical jobs use legacy agent_* prefixed IDs (e.g. agent_se_work); newer jobs use dash-separated IDs (e.g. se-work). Both appear in the Workflow filter dropdown since it populates from job data
  • Workflow filter select ID: The select element has id="workflow-filter-select" — useful for targeted automation
  • Page title format: List page: "Jobs - SideButton Fleet". Detail page: "Job #{id} - SideButton Fleet"
  • No Show details expandable: The old <details> expandable with RESOLVED INPUT/OUTPUT is gone — replaced by Temporal timeline phases