fix(boost): polish AI Catalog UX and entity details - #4710
Conversation
|
Important This PR includes changes that affect public-facing API. Please ensure you are adding/updating documentation for new features or behavior. Changed Packages
|
|
🤖 Review · Commit: |
PR Summary by QodoFinalize responsive AI Catalog and type-aware entity experience
AI Description
Diagram
High-Level Assessment
Files changed (62)
|
Code Review by Qodo
1. Table rows no longer open assets
|
|
Important The |
882d2ad to
da973cd
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4710 +/- ##
==========================================
- Coverage 61.43% 61.41% -0.02%
==========================================
Files 2634 2634
Lines 105354 105218 -136
Branches 29501 29456 -45
==========================================
- Hits 64728 64624 -104
+ Misses 40086 40055 -31
+ Partials 540 539 -1
*This pull request uses carry forward flags. Click here to find out more. Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
|
🤖 Review · Commit: |
Keep AI asset provenance, shared taxonomy, fixtures, and provider output consistent across the OGX entity provider and backend-facing packages.
14c16dc to
6f0cca7
Compare
|
🤖 Review · Commit: |
|
🤖 Review · Commit: |
6f0cca7 to
e78c0a9
Compare
Improve responsive catalog browsing, entity details, usage guidance, source actions, accessibility coverage, and maintainability of the frontend experience.
e78c0a9 to
03c3213
Compare
|
|
🤖 Finished Review · ✅ Success · Started 3:19 PM UTC · Completed 3:39 PM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Cost: $13.25 |
|
hey @rohitkrai03 - took a quick peek at the minor "non-frontend" changes and they look OK to me. I'll circle back and do a cross-ref wrt archived openspecs and promoted But wrt review of the frontend code, I'm going to defer to you processing fullsend review comments and getting review from others on the frontend/ui team just let me know when you think that has sufficiently occurred when the time comes for you needing an owner review approval for merge thanks |
ReviewVerdict: Comment — well-implemented feature delivery with several medium-severity findings around migration documentation and stale specs that are worth addressing but do not block. This is a large, well-structured PR that delivers the AI Catalog browse and entity experience across 66 files. The code quality is high, with thorough test coverage (161 + 61 + 49 + 8 tests), careful input validation improvements (e.g., Findings1. Extension ID renames need migration documentation ·
|
| Old ID | New ID |
|---|---|
entity-card:boost/summary |
entity-card:boost/ai-asset-details |
entity-card:boost/adoption |
entity-card:boost/agent-instructions |
entity-card:boost/version-list |
entity-card:boost/usage |
entity-content:boost/usage |
(removed — replaced by entity-card above) |
Backstage extension IDs are part of the public plugin contract. Downstream deployments referencing the old IDs in app-config.yaml (to override, disable, reorder, or configure extensions) will silently lose those customizations. The minor changeset bump is semver-legal for pre-1.0 packages (0.5.x), but the changeset description should include a BREAKING migration note with the rename mapping so consumers can update their configurations.
2. Translation key removals need migration documentation · medium · cross-repo-contracts
File: workspaces/boost/plugins/boost/src/translations/ref.ts
The public boostTranslationRef removes 14+ translation keys (the entire catalog.tab.* namespace, catalog.card.summaryTitle, catalog.card.adoptionTitle, catalog.card.versionTitle, catalog.card.versionCurrent, catalog.card.copyAriaLabel, catalog.card.adoptionDownloadZip, catalog.page.subtitle) and renames several others. Consumers providing a custom TranslationResource targeting these keys will get TypeScript compilation errors (if typed) or silently lose overrides (if untyped). The changeset should list the removed/renamed keys.
3. OGX entity shape changes alter the provider output contract · medium · cross-repo-contracts
Files: workspaces/boost/plugins/ogx-entity-provider/src/providers/OgxAgentEntityProvider.ts, OgxModelEntityProvider.ts, entityHelpers.ts
Three contract-visible changes to emitted entities:
ai-catalog.rhdh.com/modelannotation removed → model now lives atspec.modelai-catalog.rhdh.com/providerlabel removed from all OGX entitiesspec.owneris now conditionally omitted (was always'unknown'whencreatedByabsent)
Downstream catalog queries, permission policies, or dashboards filtering on the removed annotation/label will silently stop matching. The minor bump is semver-appropriate for 0.x, but the changeset should document the entity shape migration.
4. Multiple in-repo specification documents are stale · medium · docs-currency
Files: workspaces/boost/openspec/specs/ai-catalog-entity-extensions/spec.md, workspaces/boost/openspec/specs/ai-catalog-dynamic-plugin/spec.md, workspaces/boost/plugins/boost/README.md, workspaces/boost/specifications/boost-frontend-architecture.md, workspaces/boost/specifications/CURRENT.md, workspaces/boost/openspec/specs/ogx-entity-provider/spec.md
At least six specification/documentation files still reference old extension IDs (entity-card:boost/summary, entity-card:boost/adoption, entity-card:boost/version-list, entity-content:boost/usage), old component names (SummaryCard, AdoptionCard, VersionListCard, UsageTab), and describe the removed RBAC-gated Usage tab as current architecture. These files are marked as "source of truth" for the current release and should be updated to reflect the new extension IDs, component names, and architectural patterns.
5. RBAC-gated UsageTab replaced with ungated UsageCard · low · authorization-change
Files: workspaces/boost/plugins/boost/src/components/catalog/entity/UsageTab.tsx (deleted), UsageCard.tsx (added)
The old UsageTab gated TechDocs and external link access behind aiCatalogAssetAccessUsageDocsPermission. The new UsageCard shows fundamentally different content (usage commands, archive downloads, server endpoints) with no permission check. Since the new card's data comes from entity spec fields already visible to catalog readers, the risk is limited. However, the aiCatalogAssetAccessUsageDocsPermission export in boost-common is now dead code with no consumers. The permission removal should be noted in the changeset.
6. workspace/theme label is incorrect · low · label-mismatch
File: N/A
The PR carries the workspace/theme label but contains no theme changes. The theme fix is explicitly separated into PR #4713. This label should be removed to avoid confusing triage.
7. HandoffTargets silently swallows catalog API errors · low · error-handling
File: workspaces/boost/plugins/boost/src/components/catalog/entity/HandoffTargets.tsx
The .catch() handler maps all refs to undefined without logging or user feedback. The codebase's convention (seen in the new UsageCard) is to surface failure state to users. Consider adding a console.warn or a visual fallback indicator.
Summary
The implementation is solid — input validation is improved, test coverage is comprehensive, and the architectural refactoring (extracting usageActions.ts, consolidating entity detail cards, dynamic entity-derived filters) is well-executed. The main action item is adding migration documentation to the changesets for the extension ID renames, translation key removals, and OGX entity shape changes so downstream consumers can adapt. The stale specification documents should also be updated to match the new architecture.
Labels: PR carries workspace/theme label but theme changes are in separate PR #4713; no theme code is modified here



Summary
Polishes the existing AI Catalog experience to align with the latest UX direction and resolve layout, responsive, metadata, and interaction issues.
What changed
Related work
Commit structure
6b5465c45— OGX provider, backend-facing contracts, shared taxonomy, fixtures, reports, and OGX/common changeset.03c3213fe— Frontend catalog/entity polish, E2E/UI tests, and Boost changeset.Validation
The build retains the existing
node:httpsexternal-dependency warning fromboost-connector-utils.