Skip to content

feat(errors): show comment and PR activity on the issues overview - #674

Merged
Makisuo merged 4 commits into
mainfrom
feat/errors-overview-activity
Aug 28, 2026
Merged

feat(errors): show comment and PR activity on the issues overview#674
Makisuo merged 4 commits into
mainfrom
feat/errors-overview-activity

Conversation

@Makisuo

@Makisuo Makisuo commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

What

The errors overview now shows per-issue activity at a glance: a new muted Activity lane on each row with the issue's comment count and its linked pull requests (count + open/merged state, via tooltip). A row nobody has touched stays empty rather than showing zeros, so severity and the incident chip remain the only eye-pulling marks.

How

  • Domain: ErrorIssueDocument gains commentCount, openPullRequestCount, mergedPullRequestCount; the v2 wire gains the snake_case twins, so the public API and MCP consumers get them too. Comment count includes agent notes. Closed-unmerged PRs are treated as abandoned and counted by neither PR field — a merged fix and an open attempt read differently, an abandoned one doesn't light up the row.
  • API: hydrateIssueRows runs two extra batched GROUP BY issue_id queries (timeline events filtered to comment/agent_note, and PR links by state), both over existing (org_id, issue_id) indexes, mirroring the open-incident batch. Every list page and mutation response flows through this one seam, so v1, v2, and MCP all pick the fields up.
  • Web: the counts ride the ErrorSignal view-model into a new LANE.activity in error-signal-row.tsx (header label stays in sync via the shared lane map). New ChatBubbleIcon in the house segment style; the PR mark reuses BranchForkIcon.

Review notes

  • New PGlite test covers the rollups end-to-end: comments + agent notes counted, open/merged PRs counted, closed excluded, untouched issues read zeros.
  • Verified visually against a local API + web preview: rows render "3 comments / 1 open PR", "1 comment / 1 merged PR" (closed link excluded), and comment-only correctly.
  • The added fields are required on the wire; existing decoders ignore unknown keys, so older clients are unaffected.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Each issue row now carries activity rollups — comment count (including
agent notes) and linked-PR counts by state — hydrated in one batched
GROUP BY per page alongside the existing open-incident batch, and
surfaced as a muted Activity lane on the errors list. Closed-unmerged
PRs are treated as abandoned and counted by neither field, so a merged
fix and an open attempt read differently at a glance while a row nobody
has touched stays empty.
…the iOS spec

The v2 contract test and the web adapter test build their own wire
fixtures, and the iOS OpenAPI spec is generated from the v2 schemas —
all three needed the comment/PR rollup fields added in the previous
commit.
The generated client requires comment_count / open_pull_request_count /
merged_pull_request_count, so the hand-written wire fixtures must carry
them like the server does.
The generated ErrorIssue/ErrorIssueDetail initializers gained required
commentCount/openPullRequestCount/mergedPullRequestCount params; the
fixture builder defaults them to zero and gives the in-progress issue
some visible activity.
@Makisuo
Makisuo merged commit a895b85 into main Aug 28, 2026
35 checks passed
@Makisuo
Makisuo deleted the feat/errors-overview-activity branch August 28, 2026 17:44
@github-actions

Copy link
Copy Markdown

🍁 Maple PR preview

Warning

Preview cleanup could not be confirmed. The Alchemy teardown outcome was skipped.

Final commit a7033eb · View workflow run

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