23 · Operate · Activity

What your workspace is doing, right now.

23 / 23

Every workflow run, in one place. Live, filterable, ambient. Inbox is what needs you; Activity is what's happening regardless — the runtime lens on every figment and workflow you own.

23.1Two panes

Inbox asks. Activity reports.

The operational side of the workspace splits along one axis: is the system asking you a question, or just telling you what it's doing? We keep those two modes in separate nav slots so neither drowns the other.

§18 · Inbox

Things waiting on you.

Every item is a question with a reply. Approvals, drafts to review, decisions to make, a stuck run that needs human input. Badge counts unresolved items. A zero inbox is the goal.

interactive blocks work user-scoped
§23 · Activity

Things the system is doing.

Every row is a run — past, present, or future-scheduled. No reply expected. Badge counts currently-running flows. A busy activity feed is healthy; emptiness just means nothing's firing right now.

observational ambient workspace-scoped

A run that needs human input generates an Inbox item and stays visible in Activity. One entity, two lenses. Dismissing the Inbox item advances the run; the Activity row updates in place.

23.2Shell position

Fifth cardinal — between Studio and Library.

Nav order reads as a verb sequence: Inbox (what's asked) → Studio (dialogue) → Activity (what's running) → Library (what you've built) → Marketplace. Activity sits in the middle because it's the live tether between talking and shipping.

Activity

2 live

Every workflow run across every figment. Filter by status, workflow, or trigger. Rows tick in real time.

Activity surface →

The badge beside Inbox counts items needing reply. The badge beside Activity counts runs currently running or waiting — it pulses, matching the per-row live indicator, so ambient glance tells you "things are in flight" without requiring a click.

23.3Anatomy

Filters, list, focused run.

Three panes, same grammar as §18 Inbox: left narrows the set, center is the list, right focuses one. Picking a row fills the right pane with the run's graph and metadata — the same anatomy a single workflow detail page shows, just reachable across every workflow at once.

184 runs · last 7 days 2 live
Now
Earlier today
Yesterday

The list is the same wf-run-row vocabulary as a workflow's own history, plus a workflow-name column on the left. No new row component. A run in Activity is the same run it'd be on the workflow page — both surfaces read the same event stream.

23.4Row grammar

Five states. The dot carries the weight.

Same five run states as §04 Workflow — Running, Waiting, Completed, Failed, Cancelled. Live states pulse. Terminal states are static. Failed rows keep the red dot but never shout — the severity is in the status word, not the row background. Cancelled reads like "neutral retire."

Running weekly-digest manual · Sam Galanakis compose_digest 12s
Waiting email-triage event · gmail.onLabelAdded approve_draft · user 2m
Completed meeting-prep schedule · weekdays 08:30 4 briefs drafted · 3.1s 3h
Failed weekly-digest manual · Sam Galanakis fetch_threads · gmail · 429 1h
Cancelled weekly-digest manual · Sam Galanakis compose_digest · cancelled by user yesterday

The row's three useful signals are status (left dot + word), what triggered it (mono sub-line), and where it is in the graph (bits). Everything else — runtime id, elapsed time, input shape — lives in the focused detail on the right, so the list stays scannable.

23.5Edges

Empty is a valid state.

A workspace with nothing firing isn't broken — just quiet. The empty state acknowledges that and points at the nearest cause (no workflows yet, or workflows exist but haven't run). Same dot-as-weight principle: no visual panic, just information.

Empty · no workflows

No workflows yet.

Activity fills in as workflows run. Ask the assistant to build one, or install a template from Marketplace.

Empty · quiet window

Nothing's running right now.

Your 4 workflows are scheduled but dormant. Next scheduled run: weekly-digest in 14h.

If the filter excludes everything (say, "Status: Failed" with zero failed runs), the empty state names the filter, not the workspace: "No failed runs. Clear filter to see everything." — same pattern as Library's empty cells.

23.6Glyph

A small pulse told in line.

The nav icon is a single line tracing a step graph — a miniature of the activity curve the page renders in full. At rest it's the ink line only. When one or more runs are live, an amber dot pulses at the upper-right — the same live rhythm the list uses. Follows the §22 Glyph family: 14×14, 2px stroke, round caps, one filled accent.

14 · rail Resting
14 · rail · live Live run
20 · header Page header
32 · empty state Muted

The step-up line reads the same metaphorically as the workflow's own bits row: things happening in sequence, rightward. The pulsing dot is a single visual word — "something is in flight" — shared between the nav icon, the row status, and the badge counter.

23.7Relationships

Activity is the lens, not the source.

Runs live on workflows. Inbox items live on runs (when a run is waiting on a user). Activity reads the union. These cross-links keep each surface honest about where data originates.

from Activity

to Workflow

Clicking a row's Open workflow lands on §04 Workflow detail, with the run pre-focused. URL encodes ?run=rt-….

from Workflow

to Activity

Workflow detail's run-history header offers See in Activity — jumps to Activity pre-filtered to this workflow. Context preserved.

from Inbox

to Activity

An Inbox item sourced from a Waiting run has a "View run" pin in its source pane that opens Activity focused on that run. Dismissing the Inbox item advances the run.

The rule: runs are owned by workflows; Activity is a join view over all workflows. Nothing lives in Activity that couldn't be reached via a workflow detail page — this surface is a convenience, never the canonical home for any piece of state.

23.8Scope

Shipped v1, not v2.

Activity starts as a read-only observational surface. Writes (rerun, cancel, requeue) live on the focused run pane only — no bulk ops. These land v1:

  • List runs across all owned workflows, last 7 days, live.
  • Filter by status · workflow · trigger kind · time window.
  • Focus pane with graph + metadata strip + "Open workflow" deep-link.
  • Cancel a Running or Waiting run.
  • Live polling tied to §04 Workflow's 5s cadence; falls back to WS events when available.
  • Nav badge = count of Running + Waiting across workspace.

Deferred to v2:

  • Free-text filter bar (§09 Command Palette covers cross-surface for now).
  • Sparklines / throughput chart above the list.
  • Custom time ranges beyond the 7-day default.
  • Rerun with input overrides.
  • Saved filter views.
  • Team-scoped visibility (workflows owned by collaborators).