Skip to content

Conversation

@yusufaytas
Copy link
Contributor

No description provided.

@greptile-apps
Copy link

greptile-apps bot commented Jan 4, 2026

Greptile Summary

This PR adds deeplink URLs to capability detail pages (alerts, incidents, services, teams, tickets, deployments) and telemetry panels (logs, metrics), enabling users to navigate directly to external monitoring and ticketing systems. The implementation adds "View [entity]" buttons that appear when a url field is present in the entity data.

Key changes:

  • Added external link buttons to all capability detail pages that conditionally render when url field is present
  • Modified DeploymentsPanel and TicketsPanel to navigate to detail pages instead of showing inline selection
  • Added hardcoded deeplink URLs in LogsPanel (Kibana) and MetricsPanel (Grafana) for viewing telemetry in external systems
  • Refactored deployment and service detail page layouts for better UI consistency

Issues found:

  • SVG path truncated in services page external link icon
  • Hardcoded external URLs (kibana.demo.com, grafana.demo.com) should be configurable

Confidence Score: 4/5

  • This PR is safe to merge with minor fixes needed
  • The implementation is solid and follows consistent patterns across all capability pages. The main concerns are a syntax error in the SVG path and hardcoded external URLs that should be configurable. These are non-blocking but should be addressed before or shortly after merge.
  • app/(oss)/services/[id]/page.tsx has a syntax error, app/components/LogsPanel.tsx and app/components/MetricsPanel.tsx have hardcoded URLs

Important Files Changed

Filename Overview
app/(oss)/services/[id]/page.tsx Added deeplink button and refactored service details UI layout
app/(oss)/deployments/[id]/page.tsx Added deeplink button and significantly refactored deployment detail page layout
app/components/LogsPanel.tsx Added hardcoded Kibana deeplink URL for viewing logs
app/components/MetricsPanel.tsx Added hardcoded Grafana deeplink URL and metric series URL display

Sequence Diagram

sequenceDiagram
    participant User
    participant DetailPage
    participant Panel
    participant ExternalSystem

    Note over User,ExternalSystem: Capability Detail Page Flow
    
    User->>DetailPage: Navigate to /alerts/[id]
    DetailPage->>DetailPage: Fetch alert data
    alt alert.url exists
        DetailPage->>DetailPage: Render "View alert" button
        User->>ExternalSystem: Click "View alert" button
        ExternalSystem-->>User: Open alert in external system
    end

    Note over User,ExternalSystem: Panel List Item Flow
    
    User->>Panel: View DeploymentsPanel/TicketsPanel
    Panel->>Panel: Fetch list of items
    User->>DetailPage: Click list item
    DetailPage->>DetailPage: Navigate to /deployments/[id]

    Note over User,ExternalSystem: Telemetry Panel Flow
    
    User->>Panel: View LogsPanel/MetricsPanel
    Panel->>Panel: Build query parameters
    alt User clicks deeplink
        User->>ExternalSystem: Navigate to Kibana/Grafana
        ExternalSystem-->>User: Open query in external tool
    end
    
    alt MetricSeries has URL
        Panel->>Panel: Render "View metric" button
        User->>ExternalSystem: Click "View metric" button
        ExternalSystem-->>User: Open metric in external system
    end
Loading

Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

11 files reviewed, 3 comments

Edit Code Review Agent Settings | Greptile

Reset to Default
</button>
)}
<a
Copy link

Choose a reason for hiding this comment

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

style: Hardcoded URL to https://kibana.demo.com should be configurable. Consider using an environment variable or settings configuration to make this URL dynamic per deployment.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Prompt To Fix With AI
This is a comment left during a code review.
Path: app/components/LogsPanel.tsx
Line: 173:173

Comment:
**style:** Hardcoded URL to `https://kibana.demo.com` should be configurable. Consider using an environment variable or settings configuration to make this URL dynamic per deployment.

<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>

How can I resolve this? If you propose a fix, please make it concise.

Reset to Default
</button>
)}
<a
Copy link

Choose a reason for hiding this comment

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

style: Hardcoded URL to https://grafana.demo.com should be configurable. Consider using an environment variable or settings configuration to make this URL dynamic per deployment.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Prompt To Fix With AI
This is a comment left during a code review.
Path: app/components/MetricsPanel.tsx
Line: 201:201

Comment:
**style:** Hardcoded URL to `https://grafana.demo.com` should be configurable. Consider using an environment variable or settings configuration to make this URL dynamic per deployment.

<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>

How can I resolve this? If you propose a fix, please make it concise.

className="inline-flex items-center gap-1 rounded-lg border border-[#8fdede] bg-white px-2 py-1 text-xs font-medium text-[#0f1a1d] transition hover:border-[#55cfd0] hover:text-[#0b1517]"
>
<svg className="h-3 w-3" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
Copy link

Choose a reason for hiding this comment

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

syntax: Missing a2 2 0 002 2h10 in the SVG path - the path appears incomplete compared to other external link icons in the codebase.

Suggested change
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
Prompt To Fix With AI
This is a comment left during a code review.
Path: app/(oss)/services/[id]/page.tsx
Line: 129:129

Comment:
**syntax:** Missing `a2 2 0 002 2h10` in the SVG path - the path appears incomplete compared to other external link icons in the codebase.

```suggestion
                <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" />
```

How can I resolve this? If you propose a fix, please make it concise.

@yusufaytas yusufaytas force-pushed the add-urls-to-capabilities branch from 0c82d20 to 77cb711 Compare January 4, 2026 18:13
@yusufaytas yusufaytas merged commit 8811d63 into main Jan 4, 2026
1 check passed
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.

2 participants