Skip to content

Open runs from the chat, and list each chat's runs in a pill - #3022

Draft
Mbeaulne wants to merge 1 commit into
MB/tangent-project-card-reworkfrom
MB/tangent-chat-runs
Draft

Mbeaulne wants to merge 1 commit into
MB/tangent-project-card-reworkfrom
MB/tangent-chat-runs

Conversation

@Mbeaulne

@Mbeaulne Mbeaulne commented Nov 9, 2026 •

Copy link
Copy Markdown
Collaborator

Intent

Keep a chat's pipeline runs in view while you work, and make the agent's run cards open the run straight away.

Current behavior

  • When the agent starts or reports a run, it shows a run card in its reply. Clicking that card sends the agent a message asking it to open the run, instead of opening it.
  • There's no way to see a chat's runs at a glance. You scroll back through the chat or open the project card, which lists every run in the project.

What changes

  • Run cards open the run. The page now draws the agent's tangent-ui:pipeline-progress cards itself, instead of the agent bundle's version. A click opens the run beside the chat, and ⌘-click opens the run page in a new tab. The card shows the run's live task status, such as "Succeeded — 3/3 tasks".
  • A runs pill above the chat box, beside the agents and files pills, such as "3 runs · 1 running":
    • A pulsing green dot shows while a run is going, and a red dot appears if any run failed.
    • Clicking it lists "Runs in this chat", newest first, each with a status dot. Click a run to open it beside the chat.
    • "×" dismisses a run from the pill, and "Clear finished" dismisses every run that isn't still going. Dismissing only hides it here; it stays in the project's runs.
  • Which runs belong to a chat: any run opened in that chat's canvas, by you or the agent, and any run the agent shows a card for. The list is kept on the chat's Tangent session, so it survives a reload, everyone in the chat sees the same one, and the agent knows about those runs too.

How to test

  1. Open a project in Tangent and ask the agent to run a pipeline. When it shows a run card, click the card. The run opens beside the chat, and no message is sent to the agent.
  2. Above the chat box, a "1 run" pill sits beside the agents pill, with a pulsing green dot while the run is going.
  3. Open another run from the project card, so it opens in this chat's canvas. The pill now says "2 runs".
  4. Click the pill. Both runs are listed with status dots. Click one and it opens beside the chat.
  5. Make a run fail, or open one that already failed. The pill shows a red dot.
  6. Dismiss a finished run with "×". It leaves the pill but is still under Runs in the project card.
  7. Reload the page and confirm the pill shows the same runs, minus the dismissed one.
  8. Open a sub-agent's tab. The same pill is there too.

Checks run on this branch: typecheck, lint, Prettier on the changed files, and knip are clean, and the 759 tests in the Tangent, project-service and UI folders pass, including new ones for the card, the pill, and noting runs down. Not yet tried in the browser.

Related Issue and Pull requests

Type of Change

  • New feature

Line Breakdown

Category Added Removed
Production code 453 7
Comments 30 0
Tests 250 0
Total 733 7

Checklist

  • I have tested this does not break current pipelines / runs functionality
  • I have tested the changes on staging

Screenshots (if applicable)

None yet.

Additional Comments

  • Limits: a run the agent starts without showing a card or opening it won't appear in the pill. A run submitted from the editor's Submit button appears once it's opened. Adding a run to the project from the card's "+" doesn't put it in a chat until it's opened there.
  • Shared code: useRunsExecutionStats fetches several runs' task status at once, sharing useRunExecutionStats's cache and polling.

🤖 Generated with Claude Code

The agent's run cards asked the agent to open a run when clicked. The page
now draws those `tangent-ui:pipeline-progress` cards itself: a click opens
the run beside the chat, ⌘-click opens it in a new tab, and the card shows
the run's live task status.

A runs pill now sits beside the chat's agents and files pills, such as
"3 runs · 1 running", with a pulsing green dot while a run is going and a
red one if any failed. It lists the runs the chat started or brought in,
newest first; each opens beside the chat, and can be dismissed from the
pill without leaving the project's runs. A run joins a chat when it opens
in that chat's canvas or the agent shows a card for it, and the list is
kept on the chat's Tangent session, so it survives a reload and everyone in
the chat sees the same one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown

🎩 Preview

A preview build has been created at: MB/tangent-chat-runs/518cd40

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant