Skip to content

A run from another machine says so on the rail and the Overview, and is listed once across shared archives (#1648) - #1677

Merged
suleimansh merged 1 commit into
mainfrom
other-host-runs
Aug 24, 2026
Merged

A run from another machine says so on the rail and the Overview, and is listed once across shared archives (#1648)#1677
suleimansh merged 1 commit into
mainfrom
other-host-runs

Conversation

@suleimansh

Copy link
Copy Markdown
Contributor

🤖 automated

Closes #1648.

What the user sees. A run that another machine's daemon started now carries a laptop glyph at the end of its rail row, with the tooltip Started on rom-thinkpad-x280, by that machine's daemon. On the Overview's Agents currently working card the row says from rom-thinkpad-x280 outright — there is room there. And the pooled Recent agents list shows a run once, even when two registered checkouts (gemstack + tf-trust-e2e) share the archive that holds it.

How. The record already carries host (#716); what the dashboard lacked was this daemon's own hostname to compare against. The daemon now marks such a record otherHost on the way to the dashboard — the same seam the bridge's cloudWaiting mark uses (markOtherHost, folded with it into forDashboard in dashboard-rpc/reads.ts). That step is now applied to onRecentAgents too, which it never was — so the pooled rail could not have said "waiting" for a parked cloud run before this. buildOverview passes the host of a working-now entry, buildRecentAgents dedupes on run id.

A word in the meta line was the first cut; the rail's fixed width truncated it to from…, hence the glyph (the device glyph's pattern).

Gap 2 of the issue (a cloud run's record freezes at the hand-off) is what #1669 shipped as cloudRunState: a run with a PR reads done / merged, one inside the 12 h window reads in cloud, so nothing is left of it here.

Verified. Typecheck, node + 806 vitest tests green; the five new tests each go red with their fix disabled. Dogfooded on this daemon against the real shared archive: onRecentAgents returns 30 rows / 30 unique ids with 4 marked otherHost (Rom's web runs of 2026-08-22), the uncapped gemstack list marks 19, the Overview's two active runs (mine) carry no host, and the rail renders the glyph + tooltip.

SPEC.md updated for every touched file (agent-store, dashboard-rpc/reads, dashboard/overview, AgentHistory, Agents, their test specs) plus FEATURES-SPEC.md.

…il, the name on the Overview card, one row per run across shared archives (#1648)

The data branch is shared precisely so other machines' runs show up here, but
a row from Rom's daemon looked exactly like one of this daemon's own, and two
checkouts of one repository listed every run twice. The daemon now marks a
record whose host is not this machine on the way to the dashboard (the same
seam as the bridge's waiting mark, now applied to the pooled recents too), the
rail row carries a glyph naming that machine, the Overview's working-now card
spells it out, and the pooled recents list a run once.
@suleimansh
suleimansh merged commit bfcb642 into main Aug 24, 2026
2 checks passed
@suleimansh
suleimansh deleted the other-host-runs branch August 24, 2026 00:04
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.

A cloud run from another machine is indistinguishable from yours, and its record ends at the hand-off

1 participant