Skip to content

[DEV-112] Make dashboard task list more trustworthy: accurate PR links and meaningful run identifiers - #119

Merged
danii1 merged 2 commits into
mainfrom
feature/dev-112
Sep 2, 2026
Merged

[DEV-112] Make dashboard task list more trustworthy: accurate PR links and meaningful run identifiers#119
danii1 merged 2 commits into
mainfrom
feature/dev-112

Conversation

@danii1

@danii1 danii1 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Task: DEV-112

Summary: Make dashboard task list more trustworthy: accurate PR links and meaningful run identifiers

Implementation Details

Now let me look at the GitHub client used by conflict resolution and the existing tests around run recording:
I now have a good picture. Let me check the existing tests and docs so I follow conventions:
I have a full picture now. Let me set up the task list and check the docs:
Now implementing. First, the server-side recorder — add prUrl to run metadata:
Now record the PR URL when pr_mention runs begin (address-review has prUrl in scope):
Now the conflict-resolution run in review-polling-acquirer.ts — reuse the module's existing https://github.com/${repo}/pull/${n} pattern:
Now the estimate run harness (AC6):
Server side done. Now the UI — create the shared helper module:
Now wire it into RunsView.tsx:
Now RunResult.tsx — clickable PR references:
Now unify the run-detail header with the same helper:
Now the tests. First check how dashboard-ui tests run:
Now write the unit tests for the new helper:
Now extend the RunResult tests:
Now add integration tests to RunsView.test.tsx:
Now the server-side tests:
Now update the dashboard docs to reflect the run-list behavior:
Dependencies aren't installed in this worktree. Installing first:
My test asserted the wrong semantics — setRunPr intentionally updates the PR fields when provided. Fixing the test to assert what the recorder actually guarantees:
All green. Now lint, typecheck, and format:
The 5 warnings are pre-existing in api.ts (untouched). Verify formatter didn't mangle anything and run the full root suite:
Everything passes. Final review of the complete diff:
DEV-112 is implemented. Summary of the changes:

Data model / recorder (packages/code)

  • RunMeta.prUrl added and persisted by createRun (packages/code/src/lib/run-recorder.ts:59) — runs now carry the affected PR's URL from creation.
  • pr_mention runs record the PR URL at start (packages/code/src/lib/address-review.ts:602); conflict_resolution runs record it using the module's existing https://github.com/{repo}/pull/{n} pattern (packages/code/src/lib/review-polling-acquirer.ts:758).
  • Estimate runs now record the harness like every other origin (packages/code/src/index.ts:2224) — the last gap in harness coverage.

Dashboard UI (packages/dashboard-ui)

  • New shared helper run-work.ts: runPrHref() (recorded URL, or derived from repo+number for legacy rows) and runWorkLink() (automation id wins for scheduled/manual runs, tracker key for task/estimate runs, linked PR #N for PR-affected runs, Run {id} fallback).
  • Runs list Work column and run-detail header now use runWorkLink, so conflict resolutions and PR mentions render as clickable PR links (they were plain text), and scheduled/manual runs show the automation ID instead of the timestamp occurrence stem (the "date string").
  • RunResult links PR references to the actual PR; runs without a PR show no PR text or placeholder — a PR appears only once it actually exists (the recorder writes pr_number/pr_url only after GitHub creates it).

Tests & docs

  • 10 new tests across run-work.test.ts, RunsView.test.tsx, RunResult.test.tsx, run-recorder.test.ts, review-polling-acquirer.test.ts, covering automation-ID display, PR linking (including legacy rows), in-progress no-PR behavior, harness/PR-URL persistence, and legacy-run fallbacks.
  • docs/code/dashboard.md gains a "Read the run list" section describing the labeling and linking rules.

Verification: full workspace bun run test (1286 + 99 tests), typecheck, lint (only pre-existing warnings in untouched api.ts), and format all pass.


This PR was automatically created by @devintern/code

…accurate PR links and meaningful run identifiers
@danii1 danii1 added the devintern-authored Pull request written by DevIntern working its own backlog label Sep 1, 2026
Comment thread docs/code/dashboard.md Outdated

The overview also summarizes activity and success rates, which is useful for spotting repeated failures without checking every run individually.

## Read the run list

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@devintern-ai let's not udpate dashboard docs in this pr

Comment thread docs/code/dashboard.md Outdated

The overview also summarizes activity and success rates, which is useful for spotting repeated failures without checking every run individually.

## Read the run list

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@devintern-ai let's not udpate dashboard docs in this pr

Remove the 'Read the run list' section added to docs/code/dashboard.md
in DEV-112. Reviewer requested that dashboard docs not be updated in
this PR; the code changes for accurate PR links and meaningful run
identifiers remain unchanged.
@danii1
danii1 merged commit 8db1fe6 into main Sep 2, 2026
1 check passed
@danii1
danii1 deleted the feature/dev-112 branch September 2, 2026 04:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devintern-authored Pull request written by DevIntern working its own backlog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant