feat: Support source name deeplinks on additional pages - #2758
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: 5f40fb6 The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Greptile SummaryExtends source-name deep links across additional observability pages.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| packages/app/src/DBChartPage.tsx | Resolves the source embedded in chart configuration before passing it to the chart editor. |
| packages/app/src/DBServiceMapPage.tsx | Adds trace-source name resolution and guarded URL canonicalization for the service map. |
| packages/app/src/KubernetesDashboardPage.tsx | Resolves log and metric source names before correlation and distinguishes form catch-up from user selection. |
| packages/app/src/ServicesDashboardPage/ServicesDashboardPage.tsx | Resolves trace-source names and revises synchronization between effective configuration, form state, and URL parameters. |
| packages/app/src/SessionsPage.tsx | Resolves session-source names and synchronizes the selected source ID back to the URL. |
| packages/app/tests/e2e/features/source-name-deeplink.spec.ts | Adds end-to-end coverage for source-name deep links, canonicalization, missing sources, and cross-page transitions. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
URL[Source name in URL] --> Resolver[Resolve source by name or ID]
Resolver --> ID[Canonical source ID]
ID --> Form[Page form state]
Form --> Query[Dashboard or chart query]
ID --> CanonicalURL[Canonicalized URL parameter]
Reviews (4): Last reviewed commit: "Merge branch 'main' into drew/extend-sou..." | Re-trigger Greptile
E2E Test Results✅ All tests passed • 266 passed • 1 skipped • 1084s
Tests ran across 4 shards in parallel. |
a0de344 to
93bc47d
Compare
🟡 Tier 3 — StandardIntroduces new logic, modifies core functionality, or touches areas with non-trivial risk. Why this tier:
Review process: Full human review — logic, architecture, edge cases. Stats
|
Deep Review
🔴 P0/P1 — must fix
Verified by direct read: mounted at 🟡 P2 — recommended
🔵 P3 nitpicks (9)
Reviewers (9): correctness, julik-frontend-races, adversarial, kieran-typescript, testing, maintainability, security, project-standards, agent-native. Testing gaps:
Cleared / not reported: Unverified: |
This is not something that's reachable in practice since nothing on the page changes the URL directly. Back/Forward navigation and manual address box changes still trigger a change in the form state. |
teeohhem
left a comment
There was a problem hiding this comment.
Tested and works as expected!
Summary
This PR extends the functionality added in #2746 (accepting source names in the
sourceURL param) to additional pages: chart explorer, service map, services dashboard, K8s dashboard, sessions).To prevent render loops when syncing between form state and URL state (in particular when navigating away from a page), I've upgrade React to get access to useEffectEvent. The syncing effects on the changed pages are now triggered on either param changes or form changes, not both.
Screenshots or video
Screen.Recording.2026-07-31.at.8.10.47.AM.mov
How to test on Vercel preview
Try navigating to the following pages using source names for their source-related URL params:
config.source)source)source)logSource,metricSource)sessionSource)References