Created
June 4, 2026 10:38
-
-
Save jlmitch5/aee84291ef297ad82a323c7aebd0e1b5 to your computer and use it in GitHub Desktop.
Nexus GA — Road to Release Dashboard (2026-06-04)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Nexus GA — Road to Release</title> | |
| <style> | |
| :root { | |
| --rh-red: #EE0000; | |
| --rh-dark: #151515; | |
| --rh-gray: #6A6E73; | |
| --rh-light: #F0F0F0; | |
| --green: #3E8635; | |
| --yellow: #F0AB00; | |
| --red: #C9190B; | |
| --blue: #0066CC; | |
| --phase-done: #3E8635; | |
| --phase-active: #0066CC; | |
| --phase-future: #D2D2D2; | |
| } | |
| * { box-sizing: border-box; margin: 0; padding: 0; } | |
| body { font-family: 'Red Hat Display', 'Segoe UI', system-ui, sans-serif; background: #FAFAFA; color: var(--rh-dark); } | |
| .header { background: linear-gradient(135deg, #1A1A2E 0%, #16213E 50%, #0F3460 100%); color: white; padding: 2rem 2rem 1.5rem; } | |
| .header h1 { font-size: 1.8rem; font-weight: 700; margin-bottom: 0.3rem; } | |
| .header .subtitle { color: #A0AEC0; font-size: 0.95rem; } | |
| .header .meta { display: flex; gap: 2rem; margin-top: 1rem; font-size: 0.85rem; color: #CBD5E0; } | |
| .header .meta span { display: flex; align-items: center; gap: 0.3rem; } | |
| .container { max-width: 1100px; margin: 0 auto; padding: 1.5rem; } | |
| /* Phase Timeline */ | |
| .phase-timeline { display: flex; margin: 2rem 0; position: relative; } | |
| .phase-timeline::before { content: ''; position: absolute; top: 24px; left: 0; right: 0; height: 4px; background: var(--phase-future); z-index: 0; } | |
| .phase { flex: 1; text-align: center; position: relative; z-index: 1; } | |
| .phase .dot { width: 48px; height: 48px; border-radius: 50%; margin: 0 auto 0.5rem; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.1rem; color: white; border: 3px solid white; box-shadow: 0 2px 8px rgba(0,0,0,0.15); } | |
| .phase.active .dot { background: var(--phase-active); animation: pulse 2s infinite; } | |
| .phase.future .dot { background: var(--phase-future); color: var(--rh-gray); } | |
| .phase.done .dot { background: var(--phase-done); } | |
| .phase .label { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--rh-gray); } | |
| .phase.active .label { color: var(--phase-active); font-weight: 700; } | |
| .phase .name { font-size: 0.85rem; margin-top: 0.2rem; color: var(--rh-dark); } | |
| @keyframes pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(0,102,204,0.4); } 50% { box-shadow: 0 0 0 12px rgba(0,102,204,0); } } | |
| /* Cards */ | |
| .card { background: white; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); margin-bottom: 1.5rem; overflow: hidden; } | |
| .card-header { padding: 1rem 1.5rem; border-bottom: 1px solid #E2E8F0; display: flex; justify-content: space-between; align-items: center; } | |
| .card-header h2 { font-size: 1.1rem; font-weight: 600; } | |
| .card-body { padding: 1.5rem; } | |
| /* Feature Grid */ | |
| .feature-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; } | |
| .feature-card { border: 1px solid #E2E8F0; border-radius: 6px; padding: 1rem; transition: box-shadow 0.2s; } | |
| .feature-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); } | |
| .feature-card .name { font-weight: 600; font-size: 0.9rem; margin-bottom: 0.3rem; } | |
| .feature-card .name a { color: var(--rh-dark); text-decoration: none; } | |
| .feature-card .name a:hover { color: var(--blue); } | |
| .feature-card .status { font-size: 0.8rem; color: var(--rh-gray); } | |
| .feature-card .signal { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; } | |
| .signal-green { background: #E6F4EA; color: var(--green); } | |
| .signal-yellow { background: #FFF3CD; color: #856404; } | |
| .signal-red { background: #FECDD3; color: var(--red); } | |
| .status-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 0.7rem; font-weight: 600; margin-left: 0.5rem; } | |
| .status-release-pending { background: #DBEAFE; color: #1E40AF; } | |
| .status-in-progress { background: #FEF3C7; color: #92400E; } | |
| /* Exit Criteria */ | |
| .criteria-list { list-style: none; } | |
| .criteria-list li { padding: 0.6rem 0; border-bottom: 1px solid #F0F0F0; display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.9rem; } | |
| .criteria-list li:last-child { border-bottom: none; } | |
| .criteria-fraction { font-weight: 700; font-family: monospace; min-width: 60px; } | |
| .criteria-met { color: var(--green); } | |
| .criteria-partial { color: var(--rh-dark); } | |
| .criteria-unmet { color: var(--red); font-weight: 700; } | |
| /* Bugs Summary */ | |
| .bug-summary { display: flex; gap: 1.5rem; flex-wrap: wrap; } | |
| .bug-stat { text-align: center; } | |
| .bug-stat .num { font-size: 2rem; font-weight: 700; } | |
| .bug-stat .label { font-size: 0.75rem; color: var(--rh-gray); text-transform: uppercase; } | |
| .bug-critical .num { color: var(--red); } | |
| .bug-major .num { color: var(--yellow); } | |
| .bug-total .num { color: var(--rh-dark); } | |
| /* Risks */ | |
| .risk-item { padding: 0.8rem 1rem; background: #FEF2F2; border-left: 3px solid var(--red); border-radius: 0 4px 4px 0; margin-bottom: 0.5rem; font-size: 0.85rem; } | |
| .risk-item .age { font-weight: 700; color: var(--red); } | |
| /* Test Plan Progress */ | |
| .progress-bar-container { background: #E2E8F0; border-radius: 8px; height: 24px; overflow: hidden; margin: 0.5rem 0; position: relative; } | |
| .progress-bar { height: 100%; border-radius: 8px; transition: width 0.5s; display: flex; align-items: center; justify-content: center; font-size: 0.7rem; font-weight: 700; color: white; } | |
| .progress-merged { background: var(--green); } | |
| .progress-inflight { background: var(--yellow); } | |
| /* Activity Stats */ | |
| .activity-row { display: flex; gap: 2rem; margin-bottom: 1rem; } | |
| .activity-stat { flex: 1; text-align: center; padding: 1rem; background: #F7FAFC; border-radius: 6px; } | |
| .activity-stat .num { font-size: 1.5rem; font-weight: 700; color: var(--blue); } | |
| .activity-stat .label { font-size: 0.75rem; color: var(--rh-gray); } | |
| .footer { text-align: center; padding: 2rem; color: var(--rh-gray); font-size: 0.8rem; } | |
| .footer a { color: var(--blue); text-decoration: none; } | |
| /* Responsive */ | |
| @media (max-width: 768px) { | |
| .phase-timeline { flex-direction: column; gap: 1rem; } | |
| .phase-timeline::before { display: none; } | |
| .feature-grid { grid-template-columns: 1fr; } | |
| .bug-summary { flex-direction: column; } | |
| .activity-row { flex-direction: column; } | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="header"> | |
| <h1>Automation Orchestrator — Road to Release</h1> | |
| <div class="subtitle">Nexus GA Program Dashboard</div> | |
| <div class="meta"> | |
| <span>Target: Q3 2026</span> | |
| <span>Updated: 2026-06-04</span> | |
| <span>Features: 11</span> | |
| <span>Outcome: <a href="https://redhat.atlassian.net/browse/ANSTRAT-1646" style="color:#63B3ED">ANSTRAT-1646</a></span> | |
| </div> | |
| </div> | |
| <div class="container"> | |
| <!-- Phase Timeline --> | |
| <div class="card"> | |
| <div class="card-header"><h2>Release Phases</h2></div> | |
| <div class="card-body"> | |
| <div class="phase-timeline"> | |
| <div class="phase active"> | |
| <div class="dot">0</div> | |
| <div class="label">Current</div> | |
| <div class="name">Development</div> | |
| </div> | |
| <div class="phase future"> | |
| <div class="dot">1</div> | |
| <div class="label">Next</div> | |
| <div class="name">Stable Branch Cut</div> | |
| </div> | |
| <div class="phase future"> | |
| <div class="dot">2</div> | |
| <div class="label">Phase 2</div> | |
| <div class="name">Hardening</div> | |
| </div> | |
| <div class="phase future"> | |
| <div class="dot">3</div> | |
| <div class="label">Phase 3</div> | |
| <div class="name">GA Tag + Async</div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Exit Criteria --> | |
| <div class="card"> | |
| <div class="card-header"> | |
| <h2>Phase 1 Exit Criteria</h2> | |
| <span style="font-size:0.8rem;color:var(--rh-gray)">3 of 6 criteria progressing</span> | |
| </div> | |
| <div class="card-body"> | |
| <ul class="criteria-list"> | |
| <li> | |
| <span class="criteria-fraction criteria-partial">[3/11]</span> | |
| <div>Features in Release Pending or Closed<br> | |
| <small style="color:var(--green)">Telemetry (ANSTRAT-1748) · Runtime Settings (ANSTRAT-1790) · Credentials (ANSTRAT-1901)</small> | |
| </div> | |
| </li> | |
| <li> | |
| <span class="criteria-fraction criteria-partial">[8/11]</span> | |
| <div>Test plans merged to main<br> | |
| <small style="color:var(--green)">8 merged</small> · <small style="color:#92400E">2 in-flight MRs (!245, !242)</small> · <small style="color:var(--red);font-weight:700">1 MISSING: Integration Config (ANSTRAT-1956)</small> | |
| </div> | |
| </li> | |
| <li> | |
| <span class="criteria-fraction criteria-unmet">[0/4]</span> | |
| <div style="color:var(--red);font-weight:600">No open Critical bugs — 4 Critical bugs remain open</div> | |
| </li> | |
| <li> | |
| <span class="criteria-fraction criteria-unmet">[—]</span> | |
| <div style="color:var(--red)">Feature leads confirm GA readiness</div> | |
| </li> | |
| <li> | |
| <span class="criteria-fraction criteria-unmet">[—]</span> | |
| <div style="color:var(--red)">Release-blocker label established in Jira</div> | |
| </li> | |
| <li> | |
| <span class="criteria-fraction criteria-unmet">[—]</span> | |
| <div style="color:var(--red)">Stable-ga branch strategy defined</div> | |
| </li> | |
| </ul> | |
| </div> | |
| </div> | |
| <!-- Test Plan Progress Bar --> | |
| <div class="card"> | |
| <div class="card-header"><h2>Test Plan Coverage</h2></div> | |
| <div class="card-body"> | |
| <div class="progress-bar-container"> | |
| <div class="progress-bar progress-merged" style="width:72.7%">8 merged</div> | |
| </div> | |
| <div style="display:flex;justify-content:space-between;font-size:0.75rem;color:var(--rh-gray);margin-top:0.3rem"> | |
| <span style="color:var(--green)">■ 8 Merged</span> | |
| <span style="color:var(--yellow)">■ 2 In-flight</span> | |
| <span style="color:var(--red)">■ 1 Missing</span> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Bug Summary --> | |
| <div class="card"> | |
| <div class="card-header"><h2>Bug Health</h2></div> | |
| <div class="card-body"> | |
| <div class="bug-summary"> | |
| <div class="bug-stat bug-total"><div class="num">50</div><div class="label">Total Open</div></div> | |
| <div class="bug-stat bug-critical"><div class="num">4</div><div class="label">Critical</div></div> | |
| <div class="bug-stat bug-major"><div class="num">9</div><div class="label">Major</div></div> | |
| <div class="bug-stat"><div class="num" style="color:var(--rh-gray)">11</div><div class="label">Normal</div></div> | |
| <div class="bug-stat"><div class="num" style="color:var(--rh-gray)">13</div><div class="label">Minor</div></div> | |
| <div class="bug-stat"><div class="num" style="color:var(--green)">0</div><div class="label">Release Blockers</div></div> | |
| </div> | |
| <div style="margin-top:1rem"> | |
| <h4 style="font-size:0.85rem;color:var(--red);margin-bottom:0.5rem">Critical Bugs</h4> | |
| <div class="risk-item"><a href="https://redhat.atlassian.net/browse/AAP-77803">AAP-77803</a> — Workflow creation is not working (In Progress)</div> | |
| <div class="risk-item"><a href="https://redhat.atlassian.net/browse/AAP-77243">AAP-77243</a> — File-heavy invocations crash backend at 10 concurrent requests (New)</div> | |
| <div class="risk-item"><a href="https://redhat.atlassian.net/browse/AAP-74610">AAP-74610</a> — tool_manager write endpoints have no permission checks (New)</div> | |
| <div class="risk-item"><a href="https://redhat.atlassian.net/browse/AAP-74492">AAP-74492</a> — Agent node: file upload not working (New)</div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Risks --> | |
| <div class="card"> | |
| <div class="card-header"><h2>Program Risks</h2></div> | |
| <div class="card-body"> | |
| <div class="risk-item"><span class="age">[14d]</span> Integration Configuration (ANSTRAT-1956) has no test plan — only GA feature without coverage</div> | |
| <div class="risk-item"><span class="age">[ongoing]</span> 4 Critical bugs remain open — permission gaps, file upload broken, DB connection exhaustion</div> | |
| <div class="risk-item"><span class="age">[7d]</span> 6 backend E2E conversion PRs aging > 7 days — test infrastructure modernization stalling</div> | |
| <div class="risk-item"><span class="age">[ongoing]</span> File upload architecture undecided for GA scope — S3 PoC ready, no decision on tech preview vs GA</div> | |
| </div> | |
| </div> | |
| <!-- Feature Grid --> | |
| <div class="card"> | |
| <div class="card-header"> | |
| <h2>GA Features</h2> | |
| <div> | |
| <span class="signal signal-green" style="margin-right:0.3rem">11 Green</span> | |
| <span class="signal signal-yellow" style="margin-right:0.3rem">0 Yellow</span> | |
| <span class="signal signal-red">0 Red</span> | |
| </div> | |
| </div> | |
| <div class="card-body"> | |
| <div class="feature-grid"> | |
| <div class="feature-card"> | |
| <div class="name"><a href="https://redhat.atlassian.net/browse/ANSTRAT-1748">Telemetry</a> <span class="signal signal-green">GREEN</span><span class="status-badge status-release-pending">Release Pending</span></div> | |
| <div class="status">ANSTRAT-1748 · No new activity needed</div> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="name"><a href="https://redhat.atlassian.net/browse/ANSTRAT-1790">Runtime Settings</a> <span class="signal signal-green">GREEN</span><span class="status-badge status-release-pending">Release Pending</span></div> | |
| <div class="status">ANSTRAT-1790 · No new activity needed</div> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="name"><a href="https://redhat.atlassian.net/browse/ANSTRAT-1901">Credentials</a> <span class="signal signal-green">GREEN</span><span class="status-badge status-release-pending">Release Pending</span></div> | |
| <div class="status">ANSTRAT-1901 · Docs epic in discussion</div> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="name"><a href="https://redhat.atlassian.net/browse/ANSTRAT-1844">Authentication</a> <span class="signal signal-green">GREEN</span><span class="status-badge status-in-progress">In Progress</span></div> | |
| <div class="status">ANSTRAT-1844 · E2E tests expanding, session mgmt hardened</div> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="name"><a href="https://redhat.atlassian.net/browse/ANSTRAT-1900">Authz & Policy</a> <span class="signal signal-green">GREEN</span><span class="status-badge status-in-progress">In Progress</span></div> | |
| <div class="status">ANSTRAT-1900 · Massive RBAC push — 7 UI PRs merged</div> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="name"><a href="https://redhat.atlassian.net/browse/ANSTRAT-1899">Installation</a> <span class="signal signal-green">GREEN</span><span class="status-badge status-in-progress">In Progress</span></div> | |
| <div class="status">ANSTRAT-1899 · Push-button AAP config landed</div> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="name"><a href="https://redhat.atlassian.net/browse/ANSTRAT-1845">Automation Mgmt</a> <span class="signal signal-green">GREEN</span><span class="status-badge status-in-progress">In Progress</span></div> | |
| <div class="status">ANSTRAT-1845 · Node-level settings wired, aging PRs</div> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="name"><a href="https://redhat.atlassian.net/browse/ANSTRAT-1740">Audits / Logging</a> <span class="signal signal-green">GREEN</span><span class="status-badge status-in-progress">In Progress</span></div> | |
| <div class="status">ANSTRAT-1740 · Very active — 4 merged, Temporal export validated</div> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="name"><a href="https://redhat.atlassian.net/browse/ANSTRAT-2162">Versioning</a> <span class="signal signal-green">GREEN</span><span class="status-badge status-in-progress">In Progress</span></div> | |
| <div class="status">ANSTRAT-2162 · Test plan MR !245 in-flight</div> | |
| </div> | |
| <div class="feature-card"> | |
| <div class="name"><a href="https://redhat.atlassian.net/browse/ANSTRAT-2163">Wait/Switch/Converge</a> <span class="signal signal-green">GREEN</span><span class="status-badge status-in-progress">In Progress</span></div> | |
| <div class="status">ANSTRAT-2163 · Switch node catalog PR approved, test plan !242 in-flight</div> | |
| </div> | |
| <div class="feature-card" style="border-color:var(--yellow)"> | |
| <div class="name"><a href="https://redhat.atlassian.net/browse/ANSTRAT-1956">Integration Config</a> <span class="signal signal-green">GREEN</span><span class="status-badge status-in-progress">In Progress</span></div> | |
| <div class="status" style="color:var(--red);font-weight:600">ANSTRAT-1956 · ⚠ MISSING test plan</div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Today's Activity --> | |
| <div class="card"> | |
| <div class="card-header"><h2>Today's Activity</h2></div> | |
| <div class="card-body"> | |
| <div class="activity-row"> | |
| <div class="activity-stat"><div class="num">29</div><div class="label">PRs Merged</div></div> | |
| <div class="activity-stat"><div class="num">15</div><div class="label">PRs Opened</div></div> | |
| <div class="activity-stat"><div class="num">39</div><div class="label">Tickets Moved</div></div> | |
| <div class="activity-stat"><div class="num">22</div><div class="label">Tickets Closed</div></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="footer"> | |
| <p>Generated 2026-06-04 · <a href="https://docs.google.com/document/d/1h4jXsBUVCwF5bsHaFvhjLsklqZti2ys08cnUTESROCo/edit">Full Dashboard (Google Doc)</a> · Automation Orchestrator GA Program</p> | |
| </div> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment