Skip to content

feat(framework): run-view polish for a GitHub Actions target (#1053)#1058

Merged
suleimansh merged 1 commit into
mainfrom
feat/1053-run-view-target-polish
Jul 22, 2026
Merged

feat(framework): run-view polish for a GitHub Actions target (#1053)#1058
suleimansh merged 1 commit into
mainfrom
feat/1053-run-view-target-polish

Conversation

@suleimansh

Copy link
Copy Markdown
Member

Part of #1049 (Wave 2). Polishes the run view so a non-local target reads correctly instead of looking broken.

What changed

A GitHub Actions run replays its transcript in a burst at the end (fresh runner per turn), so the live feed looks stalled with nothing streaming. This teaches the run view about the run's target:

  • Persist the target. A run started with --run-on actions now records target: 'actions' on its RunMeta (.the-framework/run.json), threaded through RunStore.open. local is left off the meta, so every existing reader is byte-identical. This is the small "surface the target to the run view" piece the issue anticipated: the target reached run start via Run target: wire GitHub Actions into the "Run on" gear selector (driver axis) #1050 but was not persisted anywhere the run view could read.
  • Actions affordance. ActionsRunNotice renders above the feed for target === 'actions': "Running on GitHub Actions, updates arrive when the run finishes" while live, plus a clickable link through to the live Actions run. The URL comes from the action event the driver emits (run <html_url>), via a pure actionsRunUrl(events) helper.
  • Browser pane gated off. The right rail never offers the Browser tab for an Actions run, since there is no browser on the runner to screencast. (Belt and suspenders: an Actions run never sets browserStreamPort either, but the gate is explicit and tested.)
  • Local / remote-device runs unchanged. The notice renders nothing and the browser gate is a no-op when the target is local or unset.

Where the code contradicted the issue

  • The issue's html_url source is the action event (run <url>), not a notice event: the dispatch notice carries only the correlation id. The link reads the action event's label; noted in the helper.
  • The two just-started RunView call sites (optimistic follow before the poll surfaces the run) render without a known target, so the affordance appears once run.json lands and the poll adopts the run. Acceptable: an Actions run's orchestrator process is local, so its meta is written promptly.

The "connected to " remote-device cue is out of scope here; it belongs to sibling #1052 (the gear / connection profiles). This PR stays in the run-view / BrowserPanel area and does not touch the "Run on" gear. Whichever of #1052 / this PR merges second may need git merge origin/main.

Verify

  • pnpm typecheck (framework + framework-dashboard): clean.
  • framework-dashboard: 344 tests pass (52 files), incl. new ActionsRunNotice.test.tsx (6), actionsRunUrl cases in live-state.test.ts (4), and browser-gating cases in RightRail.test.tsx (2).
  • framework: 1143 pass / 1 skipped, incl. two new run-store.test.ts cases for target persistence.
  • Root pnpm build: green.

Closes #1053

Record a run's target on its meta and read it in the run view: an
Actions run replays its transcript in a burst at the end (fresh runner
per turn), so the live feed looks stalled. Show a "running on GitHub
Actions, updates arrive when the run finishes" affordance with a link
through to the live Actions run (from the action/notice events the
driver emits, which carry the run html_url), and gate the Browser pane
off since there is no browser on the runner. Local and remote-device
runs are unchanged.

Closes #1053
@suleimansh suleimansh added enhancement New feature or request priority: medium Worth doing, not urgent the-framework ♻️ labels Jul 22, 2026
@suleimansh suleimansh self-assigned this Jul 22, 2026
@suleimansh
suleimansh marked this pull request as ready for review July 22, 2026 23:26
@suleimansh
suleimansh merged commit 9202800 into main Jul 22, 2026
2 checks passed
@suleimansh
suleimansh deleted the feat/1053-run-view-target-polish branch July 22, 2026 23:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: medium Worth doing, not urgent the-framework ♻️

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Run-view polish for non-local run targets (Actions burst-mode + remote)

1 participant