Skip to content

feat(apollo-vertex): Roadmap Status page with live Jira data#962

Open
hfrancis31 wants to merge 1 commit into
mainfrom
feat/vertex-roadmap-status
Open

feat(apollo-vertex): Roadmap Status page with live Jira data#962
hfrancis31 wants to merge 1 commit into
mainfrom
feat/vertex-roadmap-status

Conversation

@hfrancis31

Copy link
Copy Markdown
Collaborator

Summary

  • Adds a /design-system-status page surfaced as "Roadmap status" in the sidebar, positioned directly under Introduction
  • Reads live from the VS Horizontal UX Jira board (label = "horizontal-ux") and displays three sections: Recently Delivered, Coming Soon, and Backlog
  • Coming Soon cards are sorted with In Review first, In Progress after
  • Delivered section is curated: only tickets with the ds-delivered Jira label appear
  • Epic name shown on cards when the ticket has a parent Epic
  • Link resolution for delivered tickets: explicit Vertex: <url> in description (supports both plain text and Jira smartlinks) → convention slug lookup → Jira URL fallback

Environment variables required

Add to .env.local locally and to the Vercel project for production:

JIRA_BASE_URL=https://uipath.atlassian.net
JIRA_EMAIL=<your-email>
JIRA_API_TOKEN=<your-api-token>

How to add tickets to the Delivered section

Add the ds-delivered label to the Jira ticket. No code change needed.

How to set the Vertex link on a delivered card

Add Vertex: https://... as a line in the Jira ticket description.

Test plan

  • Visit /design-system-status and confirm three sections render with live data
  • Confirm "In Review" cards appear at the top of Coming Soon
  • Confirm the Delivered section shows only the ds-delivered-labelled ticket(s)
  • Confirm epic names appear on cards that have a parent Epic
  • Confirm clicking a delivered card with a Vertex: URL navigates to the Vertex page (not Jira)
  • Confirm page loads gracefully without env vars (shows setup error state)

🤖 Generated with Claude Code

Adds a /design-system-status page (nav: "Roadmap status", positioned
directly under Introduction) that reads live from the VS Horizontal UX
Jira board and displays three sections: Recently Delivered, Coming Soon,
and Backlog.

- lib/jira.ts: Jira Cloud REST API v3 client with cursor pagination and
  ADF text extraction (handles plain text and smartlink inlineCard nodes)
- lib/jira-resolve.ts: maps raw issues to ProcessedCard objects, resolves
  delivered links via explicit Vertex URL > convention slug > Jira fallback,
  extracts epic from parent field
- app/api/jira/route.ts: GET handler returning board data as JSON
- app/design-system-status/page.mdx + _components/status-board.tsx:
  async server component rendering the three-column card board
- app/_meta.ts: adds "Roadmap status" nav entry below Introduction

Credentials required: JIRA_BASE_URL, JIRA_EMAIL, JIRA_API_TOKEN in
.env.local (local) or Vercel environment variables (production).
Board filter: label = "horizontal-ux"; delivered filter: label = "ds-delivered".

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 23, 2026 20:47
@hfrancis31
hfrancis31 requested a review from a team as a code owner July 23, 2026 20:47
@github-actions github-actions Bot added app:apollo-vertex size:XL 500-999 changed lines. labels Jul 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Dependency License Review

  • 1950 package(s) scanned
  • ✅ No license issues found
  • ⚠️ 2 package(s) excluded (see details below)
License distribution
License Packages
MIT 1720
ISC 89
Apache-2.0 55
BSD-3-Clause 27
BSD-2-Clause 23
BlueOak-1.0.0 8
MPL-2.0 4
MIT-0 3
CC0-1.0 3
MIT OR Apache-2.0 2
(MIT OR Apache-2.0) 2
Unlicense 2
LGPL-3.0-or-later 1
Python-2.0 1
CC-BY-4.0 1
(MPL-2.0 OR Apache-2.0) 1
Unknown 1
Artistic-2.0 1
(WTFPL OR MIT) 1
(BSD-2-Clause OR MIT OR Apache-2.0) 1
CC-BY-3.0 1
0BSD 1
(MIT OR CC0-1.0) 1
MIT AND ISC 1
Excluded packages
Package Version License Reason
@img/sharp-libvips-linux-x64 1.2.4 LGPL-3.0-or-later LGPL pre-built binary, not linked
khroma 2.1.0 Unknown MIT per GitHub repo, missing license field in package.json

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds a new Apollo Vertex documentation page that surfaces “Roadmap status” using live data from the VS Horizontal UX Jira board, including basic card processing (sectioning, badges, epic display) and delivered-link resolution rules.

Changes:

  • Added Jira integration utilities to query issues and extract text from Jira ADF descriptions.
  • Added issue processing + delivered-link resolution (explicit Vertex: link, convention-based slug lookup, Jira fallback).
  • Added a new /design-system-status page (and sidebar entry) rendering a three-section status board, plus an /api/jira endpoint.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
apps/apollo-vertex/lib/jira.ts Fetches Jira issues via JQL with pagination; includes ADF text extraction helper.
apps/apollo-vertex/lib/jira-resolve.ts Transforms raw Jira issues into board sections/cards and resolves delivered links.
apps/apollo-vertex/app/design-system-status/page.mdx Adds the new “Roadmap status” MDX page that mounts the status board.
apps/apollo-vertex/app/design-system-status/_components/status-board.tsx Implements the status board UI, error state, and server-side data fetch.
apps/apollo-vertex/app/api/jira/route.ts Adds a JSON API endpoint that returns the processed board data.
apps/apollo-vertex/app/_meta.ts Adds “Roadmap status” to the sidebar under Introduction.

Comment on lines +214 to +219
} else if (section === "coming-soon") {
// Review/In Review sorts before In Progress — closer to landing
const sl = statusName.toLowerCase();
if (sl === "in review" || sl === "review") comingSoon.unshift(card);
else comingSoon.push(card);
} else {
@@ -0,0 +1,235 @@
import Link from "next/link";
Comment on lines +212 to +215
description="Shipped in the last 30 days. Links go directly to the Vertex page."
icon={<CheckCircle2 className="size-5 shrink-0 text-success" />}
cards={data.delivered}
empty="Nothing shipped in the last 30 days."
title: Roadmap status
---

import { StatusBoard } from './_components/status-board'
Comment on lines +5 to +16
export async function GET(_req: NextRequest) {
try {
const issues = await fetchJiraIssues();
const jiraBaseUrl = process.env.JIRA_BASE_URL ?? 'https://uipath.atlassian.net';
const data = processIssues(issues, jiraBaseUrl);
return NextResponse.json(data, {
headers: { 'Cache-Control': 'no-store' },
});
} catch (e) {
const message = e instanceof Error ? e.message : String(e);
return NextResponse.json({ error: message }, { status: 500 });
}
@github-actions

Copy link
Copy Markdown
Contributor

📊 Coverage + size by package

Per-package bundle size on this PR (no JS/TS source changes detected under packages/* or web-packages/*).

Package Coverage New-line coverage Packed (gzip) Unpacked vs main
@uipath/apollo-core 9.0% 43.84 MB 57.45 MB ±0
@uipath/apollo-react 37.6% 7.40 MB 28.30 MB ±0
@uipath/apollo-wind 41.1% 399.2 KB 2.59 MB −22 B
@uipath/ap-chat 85.8% 43.43 MB 55.93 MB ±0

"Coverage" is each package's own coverage.include scope (e.g. apollo-core instruments only scripts/). "Packed"/"Unpacked" come from npm pack --dry-run and only cover built packages — "—" means not measured this run (package not affected / not built). "vs main" is the packed (gzipped) delta against the last successful main build (the package-sizes artifact from the Release workflow); "—" there means no main baseline was available this run. The baseline is main's latest build, not this PR's exact merge-base, so it includes any drift since the branch diverged. Packages with no vitest config are omitted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app:apollo-vertex size:XL 500-999 changed lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants