Skip to content

feat(web): rebuild the releases list around deploys - #1089

Merged
Makisuo merged 2 commits into
mainfrom
releases/deploy-list
Sep 26, 2026
Merged

Makisuo merged 2 commits into
mainfrom
releases/deploy-list

Conversation

@Makisuo

@Makisuo Makisuo commented Sep 26, 2026 •

Copy link
Copy Markdown
Collaborator

Stack 2/4. Based on #1087.

What

  • Live now strip: the version each service serves in the latest bucket. A service is marked behind when newer releases reached the services it usually ships with, but not that service. A service that never co-deploys with another is never marked behind.
  • Before → after error rate and p95 against the replaced version, for the release's worst service: flagged first, then the largest error jump, then the busiest. Multi-service rows mark that service with a dot.
  • Issues column: issues first seen or regressed while each release was the newest on its service.
  • The Traffic column is removed. A release on more than 3 services shows a count and names only the flagged ones, since in a monorepo every row listed the same 10 services.

API

GET /v2/error_issues gains an additive introduced_after filter: first_seen_at >= X OR last_regressed_at >= X. The list page makes one request per window (limit 100) and attributes issues client-side. If the window has more than 100 matching issues, the page shows a note.

Tests

  • release-model.test.ts: releaseHeadline, attributeIssues, and liveVersions (behind detection plus the independently-deployed case)
  • ErrorIssueReadModelsService.test.ts: the new filter keeps fresh and regressed issues and drops ongoing ones

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

@coderabbitai

coderabbitai Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 5df1b0df-2d17-495d-bf88-162d155d3011

📥 Commits

Reviewing files that changed from the base of the PR and between 194a6c0 and 9679739.

📒 Files selected for processing (14)
  • apps/api/src/routes/v2/error-issues.http.ts
  • apps/web/src/components/releases/release-detail-panels.tsx
  • apps/web/src/components/releases/release-health.tsx
  • apps/web/src/components/releases/release-issues-panel.tsx
  • apps/web/src/components/releases/release-model.test.ts
  • apps/web/src/components/releases/release-model.ts
  • apps/web/src/components/releases/releases-live-now.tsx
  • apps/web/src/components/releases/releases-table.tsx
  • apps/web/src/components/releases/use-release-issue-counts.ts
  • apps/web/src/components/services/services-table.tsx
  • apps/web/src/routes/releases/index.tsx
  • packages/backend/src/services/errors/ErrorIssueReadModelsService.test.ts
  • packages/backend/src/services/errors/ErrorIssueReadModelsService.ts
  • packages/domain/src/http/v2/error-issues.ts
 __________________________________________________________________________________________________________________________________________________________________________________________________________________
< In software, we rarely have meaningful requirements. Even if we do, the only measure of success that matters is whether our solution solves the customer's shifting idea of what their problem is. - Jeff Atwood >
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@maple-review-bot

maple-review-bot Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Maple review

Nothing to review

Warning

This review ended early; what follows is what it established.

The review could not be completed: no changed-file diff was read, only surrounding repository context, so nothing about this pull request can be vouched for.

What was checked
  • Read only pre-existing repository code (error-issues.http.ts, packages/db/src/schema/errors.ts, releases.ts), not the diff under review

0f3c6d5 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple to ask about one.

@maple-review-bot

maple-review-bot Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Note

A newer push replaced 2978c10 before its review finished. The latest commit is reviewed in a new comment.

@Makisuo
Makisuo added this pull request to stack #1092 September 26, 2026 23:08
@maple-review-bot

maple-review-bot Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

Maple review

Confidence 4/5 · likely safe to merge
No defect found in the new derivations; the untested part is the v2 fetch and attribution wiring in use-release-issue-counts.ts.
quality 100/100 · no findings · tests partial · risk medium

Rebuilds the releases list around deploys: a "Live now" strip with sibling-behind detection, before→after error rate and p95 for the worst service, and an Issues column fed by a new additive introduced_after v2 filter. The derivations and the backend filter are consistent with their tests; safe to merge.

  • liveVersions marks a service behind for newer releases its live siblings already serve
  • releaseHeadline picks the flagged service for a multi-service row's figures
  • attributeIssues credits issues to the newest release of their service
  • introduced_after filter added to GET /v2/error_issues
What was checked
  • liveVersions behind-detection re-derived by hand against all three new cases; the sibling-cutoff filter drops releases newer than what a sibling serves
  • attributeIssues slack boundary: an issue at 09:58 credits the 10:00 release, one before the oldest release in the window is dropped, not miscredited
  • introduced_after reaches the query as a decoded v2 Timestamp and is passed as gte(firstSeenAt, since) OR gte(lastRegressedAt, since) (ErrorIssueReadModelsService.ts:239)

9679739 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple to ask about one.

Base automatically changed from releases/predecessor-compare to main September 26, 2026 23:19
- A "Live now" strip shows the version each service serves in the latest
  bucket. A service is marked behind when newer releases reached the services
  it usually ships with but not it; independently deployed services never are.
- Error rate and p95 read before -> after against the replaced version, for the
  worst service of the release (flagged first, then largest error jump).
- A new Issues column counts issues first seen or regressed while each release
  was the newest on its service.
- The Traffic column is gone, and a release on more than three services reads
  as a count that names only the flagged ones.

The issue counts come from a new introduced_after filter on the v2 error issue
list: first_seen_at or last_regressed_at at or after the given instant.
Rendering against real deploys showed every service marked "1 behind" while a
new push was still rolling out on its first three services. A newer release
now counts only once some sibling is serving it.

Also: long commit subjects stretched the release column past the card (it now
truncates), and the worst-service dot beside the error rate rendered
zero-wide inside a plain inline span.
@Makisuo
Makisuo force-pushed the releases/deploy-list branch from 9679739 to 007a1b7 Compare September 26, 2026 23:19
@Makisuo
Makisuo merged commit fd89746 into main Sep 26, 2026
13 checks passed
@maple-review-bot

Copy link
Copy Markdown

Note

Maple is reviewing this pull request at 007a1b7. This comment updates with the review when it finishes.

@Makisuo
Makisuo deleted the releases/deploy-list branch September 26, 2026 23:19
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