Skip to content

Conversation

christianvogt
Copy link
Contributor

@christianvogt christianvogt commented Jun 19, 2025

Part of https://issues.redhat.com/browse/RHOAIENG-16880

Description

Type checking was not currently run for packages in the monorepo. This change adds a type-check script to each package. Introduced Turbo Repo to orchestrate type checking.

Turbo repo can run the type checking tasks in parallel and cache the results so that the type check is only run in packages, or their dependencies, when relevant files have changed.

In order for turbo to create a dependency graph, each package must define their own dependencies. Therefore I removed all frontend monorepo packages from the root package.json to the individual package.json per package.

Added cypress as a separate package to make it easier to type check and separate it from the app source.

Updated backend to also use turbo. (in future will look to combine the backend in the monorepo)

Updated github test action to include type-check and cache the .turbo directory for both frontend and backend for faster runs. You can check out the action logs to see the misses and hits for the cache.

Turbo will cache the results of the type check run and if the cache is missed it will run type checking for that package. Since type checking can depend on types changing outside of a package, we must tell turbo that type checking depends on a package's dependencies. We want type checking of each package to run in parallel, but we don't want to use the turbo dependsOn: "^type-check" task option because that would run dependent type checks in sequence. To get past this, I figured out that I can create a no-op task. By making type-check depend on ^no-op, turbo will evaluate no-op script in each dependent package in sequence of the dependency graph. But since no-op doesn't exist, the check is essentially skipped very quickly and therefore immediately the real type checking occurs. But by doing this little trick, turbo includes the files of dependent packages as part of the cache key. Thereby creating a cache miss if any dependent package file changes. Without this little trick, only files within a package would be considered as part of the cache key.

How Has This Been Tested?

PR checks (see github actions log)

npm run test:type-check

Testing cache validation:

  • run npm run test:type-check at least once to establish the cache
  • make a change to a cypress test
  • run type-check and observe a cache miss for cypress package
  • make a change to a file in frontend/src
  • run type-check and observe a cache miss for all packages but the plugin-core package

Test Impact

N/A

Request review criteria:

Self checklist (all need to be checked):

  • The developer has manually tested the changes and verified that the changes work
  • Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
  • The developer has added tests or explained why testing cannot be added (unit or cypress tests for related changes)

If you have UI changes:

  • Included any necessary screenshots or gifs if it was a UI change.
  • Included tags to the UX team if it was a UI/UX change.

After the PR is posted & before it merges:

  • The developer has tested their solution on a cluster by using the image produced by the PR to main

Summary by CodeRabbit

  • New Features

    • Introduced Turbo as a task runner for type checking in both backend and frontend.
    • Added dedicated type-checking scripts and configurations across backend, frontend, and internal packages.
    • Implemented a new automated type-checking job in the workflow, ensuring type checks complete before other tests.
  • Chores

    • Updated workspace and dependency management for improved tooling and monorepo compatibility.
    • Enhanced .gitignore to exclude Turbo artifacts.
    • Refined and modularized linting and type-checking scripts for parallel execution.
  • Style

    • Adjusted ESLint rules and import ordering for improved code consistency.

@christianvogt christianvogt requested a review from lucferbux June 19, 2025 20:23
Copy link
Contributor

coderabbitai bot commented Jun 19, 2025

Walkthrough

This update introduces Turbo as a task runner for type checking in both backend and frontend, adds type-checking scripts and configurations across multiple packages, and updates the workflow to include a dedicated type-check job. It also adjusts linting, dependency management, workspace settings, ESLint rules, and TypeScript configurations, while refining npm scripts for parallel execution and modularity.

Changes

File(s) Change Summary
.github/workflows/test.yml Adds a Type-Check job using Turbo, updates job dependencies to require type-checking before tests.
.gitignore Adds .turbo directory to ignore list.
package.json Refactors lint/type-check scripts to use npm-run-all, adds parallelization, introduces type-check scripts for backend and frontend.
backend/package.json, frontend/package.json Sets [email protected], switches type-check to Turbo, adds Turbo as a devDependency, adjusts dependencies and workspace scope (frontend).
backend/turbo.json, frontend/turbo.json, frontend/src/turbo.json Adds Turbo configuration files defining tasks and input scoping.
frontend/packages/kserve/package.json, frontend/packages/modelServing/package.json Adds type-check scripts and dependencies sections for internal packages.
frontend/packages/plugin-core/package.json, frontend/src/package.json Adds type-check scripts and dependencies for plugin-core and src packages.
frontend/src/tests/cypress/package.json, frontend/src/tests/cypress/tsconfig.json Adds Cypress test package and TypeScript config, sets up type-checking and import mapping.
frontend/packages/plugin-core/src/core/useResolvedExtensions.ts Adds TODO comment and ESLint directive for an import, no functional changes.
frontend/.eslintrc.js Refines import order, expands rule overrides, removes no-console rule, broadens file patterns.
frontend/packages/tsconfig/tsconfig.json Changes baseUrl, adds files array, adjusts included/excluded files.

Sequence Diagram(s)

sequenceDiagram
    participant Developer
    participant CI Workflow
    participant Turbo
    participant Backend
    participant Frontend

    Developer->>CI Workflow: Push code / PR opened
    CI Workflow->>Type-Check Job: Start type checking
    Type-Check Job->>Turbo: Run turbo run type-check
    Turbo->>Backend: Run tsc --noEmit (type-check)
    Turbo->>Frontend: Run tsc --noEmit (type-check)
    Type-Check Job-->>CI Workflow: Type checking complete
    CI Workflow->>Tests: Run tests (after type-check passes)
Loading

Suggested labels

lgtm, area/quality

Poem

In burrows deep, the Turbo runs,
Checking types before tests are spun.
Linting, fixing, hopping fast,
No stray carrots left unpassed!
With scripts and configs all aligned,
This codebase hops ahead—refined!
🐇✨


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d394205 and 8f985cc.

⛔ Files ignored due to path filters (2)
  • backend/package-lock.json is excluded by !**/package-lock.json
  • frontend/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (17)
  • .github/workflows/test.yml (5 hunks)
  • .gitignore (1 hunks)
  • backend/package.json (3 hunks)
  • backend/turbo.json (1 hunks)
  • frontend/.eslintrc.js (3 hunks)
  • frontend/package.json (3 hunks)
  • frontend/packages/kserve/package.json (1 hunks)
  • frontend/packages/modelServing/package.json (1 hunks)
  • frontend/packages/plugin-core/package.json (1 hunks)
  • frontend/packages/plugin-core/src/core/useResolvedExtensions.ts (1 hunks)
  • frontend/packages/tsconfig/tsconfig.json (1 hunks)
  • frontend/src/__tests__/cypress/package.json (1 hunks)
  • frontend/src/__tests__/cypress/tsconfig.json (1 hunks)
  • frontend/src/package.json (2 hunks)
  • frontend/src/turbo.json (1 hunks)
  • frontend/turbo.json (1 hunks)
  • package.json (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (17)
  • .gitignore
  • frontend/packages/plugin-core/src/core/useResolvedExtensions.ts
  • frontend/packages/plugin-core/package.json
  • frontend/turbo.json
  • backend/turbo.json
  • frontend/src/package.json
  • frontend/packages/kserve/package.json
  • frontend/.eslintrc.js
  • frontend/packages/tsconfig/tsconfig.json
  • frontend/src/tests/cypress/tsconfig.json
  • frontend/src/turbo.json
  • frontend/src/tests/cypress/package.json
  • frontend/packages/modelServing/package.json
  • backend/package.json
  • package.json
  • .github/workflows/test.yml
  • frontend/package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Cypress-Setup
  • GitHub Check: Lint
✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@christianvogt christianvogt removed the request for review from DaoDaoNoCode June 19, 2025 20:24
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (6)
frontend/packages/plugin-core/src/core/useResolvedExtensions.ts (1)

8-10: Refactor shared utility import
Relying on an internal path and disabling lint rules couples this package to another. Move allSettledPromises to a shared utilities module or expose it as a published package to remove the workaround.

frontend/packages/tsconfig/tsconfig.json (1)

28-30: Simplify JS include pattern.

Use "${configDir}/**/*.js" instead of "${configDir}/**/**.js" for clarity and broader matching.

- "include": ["${configDir}/**/*.ts", "${configDir}/**/*.tsx", "${configDir}/**/*.jsx", "${configDir}/**/**.js"],
+ "include": ["${configDir}/**/*.ts", "${configDir}/**/*.tsx", "${configDir}/**/*.jsx", "${configDir}/**/*.js"],
frontend/src/turbo.json (1)

5-10: Exclude nested Cypress files explicitly.

To ensure all files under __tests__/cypress are ignored, use !__tests__/cypress/** instead of !__tests__/cypress.

 "inputs": [
   "$TURBO_DEFAULT$",
-  "!__tests__/cypress"
+  "!__tests__/cypress/**"
 ]
frontend/packages/kserve/package.json (1)

12-15: Use workspace specifier for dependencies.

Pinning to "*" can lead to unpredictable versions. Prefer "workspace:*" for consistent local package resolution.

   "dependencies": {
-    "@odh-dashboard/internal": "*",
-    "@odh-dashboard/model-serving": "*"
+    "@odh-dashboard/internal": "workspace:*",
+    "@odh-dashboard/model-serving": "workspace:*"
   }
.github/workflows/test.yml (1)

5-5: Clarify DO_NOT_TRACK usage
The global DO_NOT_TRACK: 1 flag is introduced here—please document which CI tools or scripts respect this variable and confirm it has no unintended side-effects on caching or telemetry.

package.json (1)

50-53: Modularize and parallelize type-check scripts
Defining test:type-check, test:type-check:backend, and test:type-check:frontend cleanly scopes type checking per package. For future simplification, consider replacing the npm-run-all invocation with a root-level turbo run type-check to leverage Turbo’s full dependency graph.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d28ea66 and 64d4854.

⛔ Files ignored due to path filters (2)
  • backend/package-lock.json is excluded by !**/package-lock.json
  • frontend/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (17)
  • .github/workflows/test.yml (4 hunks)
  • .gitignore (1 hunks)
  • backend/package.json (3 hunks)
  • backend/turbo.json (1 hunks)
  • frontend/.eslintrc.js (3 hunks)
  • frontend/package.json (3 hunks)
  • frontend/packages/kserve/package.json (1 hunks)
  • frontend/packages/modelServing/package.json (1 hunks)
  • frontend/packages/plugin-core/package.json (1 hunks)
  • frontend/packages/plugin-core/src/core/useResolvedExtensions.ts (1 hunks)
  • frontend/packages/tsconfig/tsconfig.json (1 hunks)
  • frontend/src/__tests__/cypress/package.json (1 hunks)
  • frontend/src/__tests__/cypress/tsconfig.json (1 hunks)
  • frontend/src/package.json (2 hunks)
  • frontend/src/turbo.json (1 hunks)
  • frontend/turbo.json (1 hunks)
  • package.json (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Type-Check
  • GitHub Check: Cypress-Setup
  • GitHub Check: Lint
🔇 Additional comments (26)
.gitignore (1)

24-25: Ignore Turbo cache directory
Adding .turbo to .gitignore ensures Turbo’s cache artifacts aren’t committed to version control.

frontend/packages/plugin-core/package.json (1)

6-8: Add type-check npm script
Defines tsc --noEmit for package-level type checking, aligning with the repository-wide Turbo configuration.

frontend/turbo.json (1)

4-7: Configure Turbo tasks for type checking
The no-op placeholder and type-check dependency chain are set correctly for caching across workspaces.

frontend/src/__tests__/cypress/tsconfig.json (1)

2-2: Extend base TS config correctly.

Using extends: "@odh-dashboard/tsconfig/tsconfig.json" aligns the Cypress tests with the monorepo’s centralized configuration.

frontend/packages/tsconfig/tsconfig.json (2)

21-21: Update baseUrl to package root.

Changing baseUrl from ${configDir}/src to ${configDir} correctly scopes module resolution to the config package directory.


26-27: Confirm intentional use of both include and files.

Per TS behavior, specifying "files" overrides "include". Verify this is intended for a config-only package with no TS source, so only the two declaration files are compiled.

frontend/packages/kserve/package.json (1)

6-8: Add type-check script.

Introducing "type-check": "tsc --noEmit" aligns this package with the monorepo’s standardized type-check workflow.

backend/package.json (4)

7-7: Lock npm version for reproducibility.

Adding "packageManager": "[email protected]" ensures consistent installs across environments.


33-33: Delegate test:type-check to Turbo.

Switching from direct tsc to "turbo run type-check" leverages caching and parallelism as intended.


35-35: Add standalone type-check script.

Defining "type-check": "tsc --noEmit" supports direct validation and inter-package dependencies in Turbo.


75-75: Introduce Turbo as a dev dependency.

Adding "turbo": "^2.4.2" enables use of Turbo CLI for orchestrating tasks in the backend workspace.

frontend/src/package.json (2)

5-7: LGTM! Type-check script follows best practices.

The addition of the type-check script using tsc --noEmit is appropriate for TypeScript type checking without generating output files, aligning with the PR's goal of introducing type checking across packages.


26-28: LGTM! Internal dependency correctly added.

The addition of the @odh-dashboard/plugin-core dependency with wildcard version "*" is appropriate for internal monorepo packages.

frontend/src/__tests__/cypress/package.json (1)

1-21: LGTM! Well-structured Cypress test package.

The new Cypress test package follows the established patterns:

  • Appropriate type-check script using tsc --noEmit
  • Correct imports mapping for the #~/* internal module pattern
  • Proper internal dependency declaration with wildcard versioning

This separation enables better type checking and aligns with the monorepo restructuring goals.

frontend/packages/modelServing/package.json (2)

6-8: LGTM! Type-check script added consistently.

The type-check script follows the same pattern as other packages in the monorepo, ensuring consistent type checking across all packages.


13-16: LGTM! Dependencies correctly added.

The addition of internal dependencies @odh-dashboard/internal and @odh-dashboard/plugin-core with wildcard versioning is appropriate for monorepo packages.

frontend/.eslintrc.js (3)

214-217: LGTM! Import grouping updated for internal pattern.

The addition of the #~/** pattern for internal imports correctly supports the new imports mapping introduced in the Cypress package and aligns with the monorepo restructuring.


470-470: LGTM! Cypress directory properly excluded.

The exclusion of src/__tests__/cypress/** prevents lint rule conflicts with the newly separated Cypress package that has its own configuration.


482-482: LGTM! Package file matching expanded appropriately.

Changing from ${pkg}/src/** to ${pkg}/** allows ESLint to process all files in monorepo packages, supporting the broader package structure introduced with the type checking changes.

frontend/package.json (4)

7-7: LGTM! Package manager version specified.

Specifying the package manager version ensures consistent npm behavior across different environments and aligns with modern Node.js best practices.


10-10: LGTM! Workspace correctly extended.

Adding src/__tests__/cypress to workspaces properly includes the new Cypress test package in the monorepo workspace configuration.


40-40: LGTM! Type checking migrated to Turbo.

The change from direct TypeScript compiler commands to turbo run type-check enables parallel execution and caching benefits as outlined in the PR objectives.


167-167: LGTM! Turbo dependency added.

The addition of Turbo as a devDependency supports the new build orchestration system for type checking across the monorepo.

.github/workflows/test.yml (2)

40-69: Approve: New Type-Check job configuration
The Type-Check job correctly restores dependency caches, caches Turbo’s .turbo artifacts with primary and fallback keys, and invokes npm run test:type-check. This aligns with the PR’s goal of parallel, cached type checking across packages.


332-333: Approve: Enforce type checking before final Tests
Adding Type-Check to the needs list of the Tests job ensures type errors are caught early in the pipeline, matching the PR’s objective.

package.json (1)

45-47: Approve: Parallel lint scripts via npm-run-all
Switching to run-p test:lint:* consolidates and parallelizes backend and frontend linting. Confirm that test:lint:backend and test:lint:frontend cover all intended files.

Copy link

codecov bot commented Jun 19, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 82.54%. Comparing base (a4e3849) to head (8f985cc).
Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #4381      +/-   ##
==========================================
+ Coverage   82.53%   82.54%   +0.01%     
==========================================
  Files        1761     1761              
  Lines       36885    36885              
  Branches    10935    10935              
==========================================
+ Hits        30443    30447       +4     
+ Misses       6442     6438       -4     
Files with missing lines Coverage Δ
...ages/plugin-core/src/core/useResolvedExtensions.ts 86.66% <ø> (ø)

... and 8 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a4e3849...8f985cc. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@jenny-s51 jenny-s51 left a comment

Choose a reason for hiding this comment

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

Tested locally per the PR instructions, Turbo caching and parallel type-checking working as expected across all packages.

Great work @christianvogt - this is an awesome improvement to code quality that will scale really well in the monorepo.

@lucferbux
Copy link
Contributor

Spent some time learning a little bit more about turborepo and test it locally, it works really well, great job here @christianvogt

Can you rebase? Once the conflict is solved I'll approve it

@christianvogt
Copy link
Contributor Author

@lucferbux i rebased the PR and also removed the extra type check run which was previously included with unit tests now that type checking is a separate step.

@lucferbux
Copy link
Contributor

/lgtm

Cool output btw

Screenshot 2025-07-09 at 18 09 22

@lucferbux
Copy link
Contributor

/approve

Copy link
Contributor

openshift-ci bot commented Jul 9, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jenny-s51, lucferbux

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@christianvogt
Copy link
Contributor Author

rebased on top of #4381 due to lint check running OOM.

d0w pushed a commit to d0w/odh-dashboard that referenced this pull request Jul 29, 2025
* run type checking in all packages with turbo

* remove type-check from unit test script as it is run separately
openshift-merge-bot bot pushed a commit that referenced this pull request Aug 11, 2025
* add feature flag (#4431)

* Add model metrics for KServe refactor (#4346)

* added lmeval improvements (#4438)

* serving runtime version status label and tests (#4398)

* Rhoaieng 26502 (#4440)

* Enable pipelines tests affected by RHOAIENG-24702

* enable test affected by RHOAIENG-27515

* Lint fixes

* Add feature flag for Feature store (#4437)

* Fixed bug where storage class select wouldn't appear in NIM Modal (#4427)

* Enhance ManageNIMServingModal to support OpenShift default storage class and improve storage class selection logic

- Added support for OpenShift default storage class in ManageNIMServingModal.
- Updated logic to prefer ODH default storage class over OpenShift default when both are available.
- Introduced a new prop `showDefaultWhenNoConfig` in StorageClassSelect to control visibility and enablement of storage class options based on configuration availability.
- Added comprehensive tests for ManageNIMServingModal and StorageClassSelect to cover new functionality and edge cases.

* removed debug logging

* removed extension on ts import

* fixed awkward logic

* fix: PVC resizing doesn't trigger a redeployment (#4334)

* fix: PVC resizing doesn't trigger a redeployment

* one annotation solution

* updated tests

* fixed lint

* NIM isolation

* generic version

* fix: lint

* deleted comment

* Serving refactor: Add tokens and hardware accelerators (#4441)

* Add tokens and hardware accelerators

* Remove unused kserve auth function

* Cypress e2e Test - Verify a model version can be registered via versions view (#4444)

* add test for registering via version view

* add page object with timeout

* enhance test

* add empty state object, update test

* update test object

* use common mr login function

* create versions page object

* remove duplicate v2 check

* add database checks

* update login pattern to standard approach

* sanitise queries

* add uid to object storage model

* update and apply nav method

* add feature flag tag

* fixed provider filter in resources (#4443)

* fixed provider filter in resources

* updated mocks for start basic workbench card

* made new component hidden from enabled page

* removed deprecated usage of useQueryParams

* Allow empty requested/limit for CPU and memory when hardware profile is disabled (#4407)

* Serving refactor: Show deployments of all projects in global page (#4451)

* Show deployments of all projects in global page

* Fix padding issue

* Fix spacing issue

* Fix deployment status bug (#4446)

* Cypress e2e Test - Verify model registry permissions can be managed (#4456)

* add new registry permissions test

* lint fix

* new line lint

* Change "Launch application" to "Open application" (#4409)

* change launch application to open application

* change link

* remove readme change

* Update Model Registry Plugin with latest upstream changes. (#4455)

* Update model-registry to 21197e57471e2a7fc6a09e178147540e8e218a94

* Revert changes

* Update model-registry to 6545c37be18e2ead22e2d0ba83ae7874c3bd8680

* Revert overriden files

* Pipeline failure feedback 2 (#4436)

* moved over changes from pipeline-failure-feedback manually into newest branch; also adjusted title and description upon erroring out

also: now only showing errors that have actual messages (reduce noise)

* working on finishing this up...now that i have an actual cluster/backend to use again :)

* removing the ignoreTimeout; not using anymore per UX

* cleaning up code

* removing timeout hacks that sped up development

* using server timeout directly now

* adjusted comment; next: remove the new css

* adding an overrideTimeout

* linter fix + removing unneeded timeOut alert

* fixed unit test

* (using cursor) added a div with an id for the mock tests; they are passing locally now

* used cursor to add section to ignore ChunkLoadErrors

* linter fix

* style (scss) changes removed

* Add toast notification upon successful datascience pipeline configuration (#4350)

* add polling

* fix linking

* remove unused util

* fix lint

* protect against null array

* change to use notificationwatchercontext

* fix autolint

* add test

* add testids

* change error msg

* remove comment

* fix linting

* adjust redundant const

* change time check

* use dspipelinekind metadata namespace

* use dspaloaded and server timeout functions

* fix lint

* add polling

* fix linking

* remove unused util

* fix lint

* protect against null array

* change to use notificationwatchercontext

* fix autolint

* add test

* add testids

* change error msg

* remove comment

* fix linting

* adjust redundant const

* change time check

* use dspipelinekind metadata namespace

* adjust notifications to not show during modal

* remove info notification

* fix imports

* check for undefined

* fix tests

* fix notifs

* add cypress tests

* e2e test (#4403)

* Microcopy updates for "project-scoped" items (#4448)

* microcopy updates

* ChunkLoadError fix

* microcopy updates

* Remove list and listitem imports

* Update test with global-scoped name

* li ul changes

* lint error fix

* adjust the content tags

* Update manageAcceleratorProfiles.cy.ts

* edit label microcopy (#4458)

* split frontend lint task into two separate runs (#4461)

* run type checking in all packages with turbo (#4381)

* run type checking in all packages with turbo

* remove type-check from unit test script as it is run separately

* Updates and enhancements for 'Verify the filters on Resources page' e2e test (#4463)

* enhance test with backend validation

* use inline types

* check namespace

* implement rhoai specific checks

* add self-managed step

* add navigate method

* update tags and apply lint

* Add more approvers (#4464)

* Fix type errors for array in es2021 (#4467)

* Add stopping status to model deployments (#4421)

* RHOAIENG-29339: Filter out outdated notebook image tags and only validate UI version dropdown for images with 2+ non-outdated versions\n\nThis change updates the Cypress workbench image/version test to:\n- Filter out outdated notebook image tags (using the opendatahub.io/image-tag-outdated annotation)\n- Only validate the UI version dropdown when there are 2 or more non-outdated versions for an image\n- Skip UI validation for images with only 1 non-outdated version, matching current UI behavior\n\nThis ensures the test is robust and cluster-agnostic, and resolves failures due to outdated or single-version images.\n\nJira: https://issues.redhat.com/browse/RHOAIENG-29339 (#4471)

* Quarantine model serving tests due to [Product Bug: RHOAIENG-29340]

* Small change for quarantine branch RHOAIENG-29340

* Remove accidentally added web-ui directory from index

* Update Hardware profile admin page (#4400)

* Update hardware profile CRD, add local queue and workload priority class options

* Added kueue fields to the details popover in HWP select

* easier to use feature flags via a button in the header (#4237)

* moved over a lot; the button is showing again.  need to control when/how the banner shows again tho

* better; need a break: next: compare tests (since files changed....)"

* tweaks re pr review

* tests are at lest running.....

* yay passing :)

* lint/prettier fixes

* unit test fix

* linter fix (unused import)

* lint fix (added space)

* fixing linter test error; (test runs locally just fine of course)

* fixing merge error

* Retrieve default local queue name from DSC (#4462)

* Remove deleted crd from kustomization file (#4478)

* Temporarily restore dashboard HWP crd (#4480)

* Serving refactor: Add modelmesh as a platform shortcircuit option (#4459)

* Add modelmesh as a platform shortcircuit option

* Fix eslint oom

* Add dependencies to package.json

* Update icon

* Internal model serving endpoint (#4475)

* Update Label url to Internal

* Updated Internal label test in cypress

* Upgrade cluster storage modal (#4457)

* upgrade cluster storage to include model context

* remove isGeneralPurpose useEffect

* remove redundant annotation setting

* feat: Enhance the dashboard to support deploying NIM with a PVC (#4447)

* v1

* fix: lint

* hide on edit

* refactor: DEFAULT_MODEL_PATH

* model pvc dropdown

* deletion logic

* fix: lint

* fix for current tests

* fix:lint

* lint

* defaultMockInferenceServiceData

* added testid's

* tests + info

* coderabbitai

* deleted comment

* no model is selected + relativeTime

* Change how model deployment links appear (#4442)

* Change how model deployment links appear

* Cypress fixes

* Adjustments from feedback

* Move instances of isModelStopped into a util

* Move duplicated code into shared resource

* Rebase fixes

* Integrate stop start changes

* Small fixes

* Fix issue with metrics link

* Quick fix for stopping

---------

Co-authored-by: Griffin-Sullivan <[email protected]>

* Remove Product Bug references and @Bug tags from model serving tests (#4488)

- Removed '[Product Bug: RHOAIENG-29340]' from describe blocks
- Removed '@Bug' tags from all test configurations
- Fixed linter formatting issues for tag arrays
- Tests are now unquarantined and ready for execution

* RHOAIENG-25339: Update application of hardware profiles in all workloads (#4413)

* conditionally set resources

* added unit tests

* bring back lost changes

* fixed unit tests

* fixed mock tests

* remove logic to unset resources for harware profiles

* added new annotation

* added new annotation to the serving runtime

* Revert "fixed mock tests"

This reverts commit 805f14d6294b429f5c4e0647f1606fdcc7141f8c.

* fix lint

* added a check for acc profile

* fix mock tests

* fixed more tests

* fix mode serving mock test

* added a better check

* fixed tests

* removed console

* fixed unit test

* Feature flag modal re-organization (#4481)

* starting on separating feature flags into groups

* comments and scaffolding

* starting with cursor...added tabs

* better

* better

* better

* better

* flags redistributed onto tabs now; easier to find the active ones

* no longer having indeterminate  checkboxes

* cleanup

* cleanup

* restoring package.json

* added scrolling to *just* the content of the tab that needs it (tried to use patternfly but capability not there)

* did find a patternfly way; with chatgpt (better than cursor in this case)

* working on test

* removed debugging code

* removing PageSection (review feedback)

* linter fix (removing unused import)

* Create a set of Cursor rules for Cypress e2e Development  (#4485)

* chore: initial changes for Cypress E2E rules and setup

* docs(cypress-e2e): update rules for linting scripts, cy.get usage, and tagging per PR feedback

* docs(cypress-e2e): clarify lint/fix commands for root, frontend, and backend per feedback

* docs(cypress-e2e): update lint/fix instructions to frontend-only for E2E tests

* Feature Store Initial Setup (#4487)

* Add types, mocks, feature store project context, empty state and project selector for feature store. (#5)

* Add types and mocks for feast

* Add feature store project context and project selector

* feat(RHOAIENG-28417):added feature store code block common component

* feat(RHOAIENG-28415):added single label and tags with overflow and show all tags component

* feat(RHOAIENG-28413): added feature store side navigation routes

* feat(RHOAIENG-28413):uncommented the feature store flag check for routes

* feat(RHOAIENG-28413):rearranged the nav items below experiments in the navbar and minor content changes in name

* feat(RHOAIENG-28413):added core loader in the routes for feature store

* fix(context):added featurestore context in app file

* removed unused component

* fix(feast-context): moved the feast context to the feast routes level

* style: addressed review comments (text and spacing)

---------

Co-authored-by: Pushpa Padti <[email protected]>

* Add missing frontmatter to cypress-e2e.mdc rule file

- Added description, globs, and alwaysApply fields to match jira-creation.mdc format
- Enables proper rule configuration and LLM-driven relevance detection
- Addresses reviewer feedback about missing frontmatter section

* Fix globs field to be empty array instead of null

- Changed 'globs:' to 'globs: []' to ensure it parses as empty array
- Prevents type errors in rule-runner which expects a list
- Addresses PR reviewer feedback

* Fix bug when stopping model with confirmation modal (#4492)

* Update cluster storage connected resources (#4469)

* Update cluster storage connected resources

* update ConnectedResourcesProps

* RHOAIENG-27574: Filter Hardware profiles if kueue disabled (#4490)

* added filter logic

* added unit tests

* fixed lint

* moved the filter logic

* enum

* renamed

* updated tests

* removed unnecessary const

* fix dupl issie

* RHOAIENG-30110: The workload priority is not maintained when switching between local queue and not selectors. (#4496)

* fixed the bug

* added gutter

* added unit tests

* Kueue extras (#4489)

* Set default hwp namespace in notebooks to dashboard namespace, remove non-legacy hwp from model mesh, move hwp annotations from serving runtime to inference service

* Small fix

* Additional fixes

* Add test IDs for deployed model names in ModelMesh and plugin components (#4499)

* Add test IDs for deployed model names in ModelMesh and plugin components

- Add 'deployed-model-name' test ID to InferenceServiceTableRow for ModelMesh deployments
- Add 'deployed-model-name' test ID to DeploymentsTableRow for plugin-based deployments
- Fix syntax error in testSingleModelAdminCreation.cy.ts test file
- Update Cypress tests to use new test ID selectors

Supports RHOAIENG-29747 and RHOAIENG-29977

* Fix mock tests by restoring metrics-link test IDs while adding model name selectors

- Restore original metrics-link-{name} test IDs for backward compatibility with existing tests
- Add data-model-name='deployed-model-name' attributes as additional selectors
- Update findModelServerDeployedName method to use new generic selector
- Add findModelDeployedName method for table-based model selection

This fixes the mock test failures while maintaining both specific (metrics link) and general (model name) test selectors.

* Revert PR changes to InferenceServiceTableRow.tsx

* Update test selector to use data-testid instead of data-model-name

* Add deployed-model-name test ID to InferenceServiceTableRow

- Add data-testid='deployed-model-name' to both Link and span elements
- Preserve existing metrics-link functionality
- Update page object to use new test ID selector
- Add uncaught exception handler for JavaScript parsing errors
- Support both loaded and unloaded model states

* Update model serving tests: remove exception handling and fix project deletion timeout

- Remove unnecessary Cypress.on('uncaught:exception') handling from all model serving tests
- Set 5-minute timeout for project deletion due to RHOAIENG-19969
- Add TODO comments to review timeout once RHOAIENG-19969 is resolved
- Support proper test retries by waiting for project deletion completion
- Clean up test code to be more focused and maintainable

* Address review comments: use findByTestId and remove redundant data-model-name

- Update findModelDeployedName() in page object to use findByTestId('deployed-model-name') for consistency
- Remove redundant data-model-name attribute from InferenceServiceTableRow component
- Keep only data-testid='deployed-model-name' for test selection

Addresses review feedback from Griffin-Sullivan on PR #4499

* Update frontend/src/__tests__/cypress/cypress/pages/modelServing.ts

Co-authored-by: Griffin Sullivan <[email protected]>

* Remove unused findModelDeployedName method from page object

- Method was not used anywhere in the codebase
- Clean up unnecessary code for better maintainability

* Rename findModelServerName to findModelMetricsLink for clarity

- Renamed findModelServerName(name: string) to findModelMetricsLink(name: string) in ModelServingSection
- This method actually finds metrics links using metrics-link-${name}, not model server names
- Updated all test file references to use the new method name
- Kept the original findModelServerName() method for input fields unchanged
- Addresses naming confusion between different findModelServerName methods

Updated files:
- testSingleModelContributorCreation.cy.ts
- testSingleModelAdminCreation.cy.ts
- testDeployOCIModel.cy.ts
- testModelServingTolerations.cy.ts

---------

Co-authored-by: Griffin Sullivan <[email protected]>

* Remove dashboard hardware profiles CRD (#4500)

* Add 'Last Deployed' column to model deployments (#4468)

* Add 'Last Deployed' column to model deployments

* Adjust extension and modify for model mesh

* Add generic component for last deployed

* Cypress fix

* Fix sorting for models refactor

* Adjust to only show timestamp for 'Started' models

* fixed filtering behavior for model registry page (#4482)

* fixed filtering behavior for model registry page

* fixed tests

* added filtering for model version table

* removed file extension

* upversion dashboard (#4503)

* Workbench Test Maintenance - implement dynamic notebook image selection with backend fallback (#4502)

* feat: implement dynamic notebook image selection with backend fallback

- Replace hardcoded 'jupyter' image validation with dynamic selection
- Add selectNotebookImageWithBackendFallback utility function:
  - Try UI selection first (createSpawnerPage.findNotebookImage)
  - Fall back to backend query if UI element not found
  - Uses opendatahub.io/notebook-image-name annotation for display name
- Update workbench tests to use scoped validation (notebookRow.shouldHaveNotebookImageName)
- Centralize all OC commands in imageStreams.ts utility per Cypress E2E rules
- Handle environment variables (APPLICATIONS_NAMESPACE) internally in utilities
- Fix async/sync mixing issues in Cypress command chaining

Resolves: RHOAIENG-30224

* feat: complete dynamic image selection for testWorkbenchVariables.cy.ts

- Replace all hardcoded 'code-server' validations with dynamic approach
- Both tests now use selectNotebookImageWithBackendFallback for UI-first selection
- All 4 workbench instances now validate using getImageStreamDisplayName
- Handle complex test structure with multiple workbenches per test
- Proper async chaining for nested workbench creation flows
- All 6 workbench test files now consistently use dynamic image selection

All workbench tests (11 total) now passing with dynamic image selection:
✅ testWorkbenchControlSuite.cy.ts (2 tests)
✅ testWorkbenchCreation.cy.ts (2 tests)
✅ testWorkbenchImages.cy.ts (1 test)
✅ testWorkbenchNegativeTests.cy.ts (2 tests)
✅ testWorkbenchStatus.cy.ts (1 test)
✅ testWorkbenchVariables.cy.ts (2 tests) - COMPLETED
✅ workbenches.cy.ts (1 test)

Resolves: RHOAIENG-30224

* refactor: remove unused helper functions from imageStreams.ts

Address CodeRabbit AI feedback by removing dead code:
- Remove verifyNotebookImageDisplayName (unused)
- Remove validateNotebookRowImageName (unused)
- Remove shouldHaveNotebookImageNameFromImageStream (unused)
- Remove selectTestImageStream (unused)

All tests use getImageStreamDisplayName directly with manual validation,
making these helper functions redundant. This cleanup reduces code
duplication and maintains only the functions actually used:

✅ getImageStreamDisplayName - Core function used in all tests
✅ selectNotebookImageWithBackendFallback - Main selection function
✅ getAvailableNotebookImageStreams - Used by fallback logic
✅ getNotebookImageNames - Used by testWorkbenchImages.cy.ts

File size reduced from 273 lines to ~150 lines with no functionality lost.

* test: add @Workbenches tag to workbenches.cy.ts test

Add missing @Workbenches tag to the 'Verify users can create a workbench
and connect an existent PersistentVolume' test case.

This ensures the test is included when running workbench tests with
tag filtering (e.g., --env grepTags='@Workbenches').

* Add back hardware profiles crd (#4507)

* Add back hardware profiles crd

* Add description

* Deploy a Model from a PVC (#4449)

* deploy a model from pvc

* existing uri bug fix

* simplify useEffect and hide uri when pvc found

* Refactor: Avoid destructuring from process.env (#4510)

* add documentation on extensibility (#4501)

* add documentation on extensibility

* add link under 'developer readmes'

* add cypress tests for missing links (#4513)

* add cypress tests for help links

* Refactor: Avoid destructuring from process.env

---------

Co-authored-by: Lucas Fernandez <[email protected]>

* Serving refactor: Backport nim platform (#4493)

* Add refactor platform card

* Update NIM context to be generic

* Updating naming

* Add tests

* import consistency updates

* cleaner isPlatformEnabled

* Feature Store Context and API setup (#4509)

* Feature Store Context and API setup:
* Backend proxy setup
* Routes
* Context
* Hooks
* API
* Unit tests

* remove title icon

* import updates and few changes

* adding unit tests

* PR review updates

* Invalid project selector

* adding prefix in proxy

* Add fix to image streams notebook enabling annotation (#4522)

* Splitting feature store types.ts (#4529)

* Add skeleton for accelerator profile while loading (#4454)

* change loading checks and update components

* add state for component

* fix lint

* Update AcceleratorProfileSelectField.tsx

* fix loading state issues

* remove imports

* add test case

* DevFeatureFlag removal (#4517)

* Status refresh for the Model Registry's Deployments (#4466)

* MR status refresh

* fix lint: imports

* address comments

* Globals page exports routes with metrics too (#4519)

* Globals page exports routes with metrics too

* better metric link logic

* Initial folder structure for llama stack ui (RAG/Gen AI v3) (#4535)

* feat: integrate model registry into the deployment (#4450)

* PVC Serving E2E Test (#4494)

* Add E2E test for deploying from PVC

* pr fixes

* remove feature flag flip

* PVC serving microcopy updates (#4516)

* PVC serving microcopy updates

* Add HelperTextItem

* change to popover

* warning title change

* fix: update title and label text in Enable NIM dialog to reference personal key (#4536)

Signed-off-by: Olga Lavtar <[email protected]>

* Refactor RegisterCatlogModel and Remove useEffect (#4420)

* Refactor RegisterCatlogModel and remove useEffect

* model name fix for cypress test

* simplify the hook

* mapping suggestion fix

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* remove timeout from test

Co-authored-by: Robert Sun <[email protected]>

* timeout removal

Co-authored-by: Robert Sun <[email protected]>

* timeout removal

Co-authored-by: Robert Sun <[email protected]>

* remove the prefilled values test

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Robert Sun <[email protected]>

* aggregate get/list/watch permissions to project admins/contributors (#4497)

* chore: e2e Test Maintenance - Jul 24th 25' (#4538)

* RHOAIENG-30472: Standardize deleteKueueResources function options to match deleteOpenShiftProject pattern

- Add standardized options parameter with timeout, wait, and ignoreNotFound properties
- Implement same pattern and defaults as deleteOpenShiftProject for consistency
- Fix async/sync code mixing issues that caused Cypress errors
- Update test files to use new options parameter syntax with proper comma placement
- Maintain backward compatibility while improving code consistency

* Add exception handler for webpack-dev-server fallback errors in E2E tests

- Ignore 'Unexpected token <' errors that occur due to webpack-dev-server fallback
- Prevents E2E tests from failing due to these development environment issues
- Added alongside existing ChunkLoadError handler for consistent error handling

* Add quarantine steps to model serving E2E tests

- Add quarantine steps to testModelStopStart.cy.ts
- Add quarantine steps to testSingleModelAdminCreation.cy.ts
- Add quarantine steps to testSingleModelContributorCreation.cy.ts
- Fix formatting issues with tag arrays per prettier requirements

* Update frontend/src/__tests__/cypress/cypress/utils/oc_commands/distributedWorkloads.ts

Co-authored-by: Noam Manos <[email protected]>

* Improve robustness of Kueue resource deletion commands

- Replace && with || : ; to ensure all deletion attempts run independently
- Prevents cleanup from stopping if one resource doesn't exist
- Addresses review feedback from @manosnoam in PR #4538

Co-authored-by: Noam Manos <[email protected]>

---------

Co-authored-by: Noam Manos <[email protected]>

* Add version labels to refactored code (#4523)

* Add version labels to refactored code

* Add generic component

* Modify servingruntime to servingdetails, create shared version component

* Added entire repo for llama-stack-modular-ui (#4541)

* Added entire repo for llama-stack-modular-ui

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Removed .github

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Added .eslintignore

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Added gh actions

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Fix for lint errors

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Removed gh actions

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Ignoring tests in llama-stack-modular-ui directory

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

---------

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* [feat] Add real amd mock endpoints for Query and Chat completion (#4543)

This commit contains the following:
1. Mock and real endpoints for query.
2. Allows query when no DB is present.
3. Allows query when DB is present.

Signed-off-by: Varsha Prasad Narsing <[email protected]>
Co-authored-by: Matias Schimuneck <[email protected]>

* Add area/llama-stack-modular-ui label for PRs (#4551)

* Serving refactor  global models page backport (#4531)

* Add global models page backports

* Remove unused backport file

* Quarantine distributed workloads test - add bug tag and JIRA reference RHOAIENG-30510 (#4550)

* Unquarantine serving tests from RHOAIENG-30376 (#4554)

* add llama stack github action workflow (#4546)

* add llama stack workflow

* fix package.json in llama-stack-modular-ui

* change the workflow name

* feat: Add comprehensive OpenAPI documentation for Llama Stack Modular… (#4547)

* feat: Add OpenAPI documentation for Llama Stack Modular UI BFF

- Add comprehensive OpenAPI 3.0 specification for BFF endpoints
- Include /api/v1/query endpoint for RAG and chat completion
- Add vector database management endpoints
- Include model management endpoints
- Fix CORS configuration for healthcheck endpoint to enable Swagger UI
- Document only public-facing models and remove authentication requirements
- Add common schemas and responses in separate lib/common.yaml file

The OpenAPI documentation can be visualized using Swagger UI or any OpenAPI viewer.
Run the BFF with: make run STATIC_ASSETS_DIR=../frontend/dist MOCK_LS_CLIENT=true ALLOWED_ORIGINS="*"

* docs: Improve OpenAPI specification clarity and security definitions

- Add explicit security: [] to healthcheck and config endpoints for public access
- Clean up proxy endpoint descriptions by removing redundant authentication text
- Improve formatting consistency in OpenAPI specification
- Clarify which endpoints are public vs require authentication

---------

Co-authored-by: Matias Schimuneck <[email protected]>

* Bump form-data in /frontend/packages/model-registry/upstream/frontend (#4521)

Bumps [form-data](https://github.com/form-data/form-data) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md)
- [Commits](https://github.com/form-data/form-data/compare/v4.0.3...v4.0.4)

---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Manaswini Das <[email protected]>

* config: enable typecheck for source files, disable only for test files (#4562)

- Enable typecheck linter for regular source code files
- Disable typecheck only for test files (*_test.go) to avoid Ginkgo framework errors
- Maintain proper type checking for production code while allowing test framework functions

* Removed all code related to chatbot openshift auth and chatbot sharing visuals (#4561)

* Removed all code related to oAuth

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Fixed eslint

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Fixed eslint

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Fixed eslint

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Fixed eslint

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Fixed eslint

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Fixed eslint

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Fixed eslint

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

---------

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* exclude llama-stack-modular-ui in tsconfig.json (#4566)

* Removed out of date documentation files (#4567)

* make rwo tag always show (#4524)

* Quarantine model serving tests for Product Bug RHOAIENG-30799

- Added [Product Bug: RHOAIENG-30799] to describe blocks for all model serving tests
- Added @Bug tag to all affected test cases
- Quarantined tests in:
  - testSingleModelAdminCreation.cy.ts
  - testSingleModelContributorCreation.cy.ts
  - testModelPvcDeployment.cy.ts
  - testModelStopStart.cy.ts
  - testMultiModelAdminCreation.cy.ts
  - testDeployOCIModel.cy.ts
  - testSingleServingRuntimeCreation.cy.ts

* module federation documentation (#4556)

* Feature view api (#4553)

* Feature View
* Table
* Routes
* API Hooks
* Empty state

* Ensuring API availability for feature store

* Feature view tags overflow fix

* empty owner placeholder

* Coderabit updates

* Updating feature view online offline label

* cypress tests

* Update failed unit test

* Test updates

* Uncommenting mock status

* Port start / stop models to the plugin (#4533)

* Model Registry - ODH Enablement (#4540)

* Lucas' test MR container

* Update params.env

* Update deployment.yaml

* Update deployment.yaml

* Fix issue with overlay

* Get target ports referenced by name

* Revert namespace

* Avoid using labels in this overlay

---------

Co-authored-by: Andrew Ballantyne <[email protected]>
Co-authored-by: Lucas Fernandez <[email protected]>

* Serving refactor global cypress test fixes (#4555)

* Add global models page backports

* Remove unused backport file

* fixes

* small test update

* Remove comments

* Fix more tests

* Fix last deployed tooltip mouseenter

* feat: adapt base images to red hat and migrate from ubi8 to ubi9 (#4565)

* Cypress e2e Test - Verify models can be deployed from model registry (#4564)

* add new deploy test

* increase timeout

* handle empty registry condition

* deploy secret

* handle single registry condition

* improve timeout mechanism

* minor enhancements

* combine mr utils

* add page object

* lint

* remove initial validation

* move clickRegisterModelButton to new util

* update tests

* follow up missing changes in commit (#4576)

* Upgrade mod arch upstream (#4579)

* Update model-registry to b4c43a0dfc6864f9a630a011e71f48c48b695df1

* Revert changes that override upstream

* RHOAIENG-28909: Add Storage Class Provisioner "disk.csi.azure.com" to Storage Enums (#4528)

* added disk.csi.azure.com

* added RWOP

* added unit tests

* added RWX

* rwo only

* New LMEval E2E tests for TrustyAI (#4511)

* New LMEval E2E tests for TrustyAI

This commit adds comprehensive LMEval tests and related E2E utilities:

- Add 2 scenarios for LMEval using static and dynamic models
- Add LMEval job utilities for configuration and job verification
- Add ModelTestSetup utility for any e2e test setup
- Add YAML support to ESLint: eslint-plugin-yml, yaml-eslint-parser
- Update LMEval form components with missing test IDs

Signed-off-by: manosnoam [email protected]

* Fix CodeRabbitAI comments

Signed-off-by: manosnoam <[email protected]>

* Multiple fixes to address Reviewers comments

Signed-off-by: manosnoam <[email protected]>

* fix(lm-eval): Dynamically detect port for InferenceService connections

LMEval jobs were failing with ConnectionRefusedError because they were
connecting to InferenceService models on the default port 80, while the
ServingRuntime was configured to listen on a different container port.

This fix fetches the ServingRuntime associated with each
InferenceService and extracts the containerPort from its definition.
The port is then used to construct the correct internal cluster URL.

Signed-off-by: manosnoam <[email protected]>

* Update LMEval mock tests and page object

Signed-off-by: manosnoam <[email protected]>

* Split LMEval tests into static and dynamic test files

Signed-off-by: manosnoam <[email protected]>

* Fix CodeRabbitAI suggestions

Signed-off-by: manosnoam <[email protected]>

* Rebase lmeval_e2e branch

Signed-off-by: manosnoam <[email protected]>

* Quarantine testLMEvalDynamic due to bug RHOAIENG-30642

Signed-off-by: manosnoam <[email protected]>

* Fix accessibility violations (A11y) with plain buttons in LMEval form

Signed-off-by: manosnoam <[email protected]>

* Add testId to LMEvalTaskSection

Signed-off-by: manosnoam <[email protected]>

* Rename lmEval.ts to lmEvalFormPage.ts

Signed-off-by: manosnoam <[email protected]>

* Fix e2e.ts before hook to skip test suites based on tags

Signed-off-by: manosnoam <[email protected]>

* Update LMEval E2E page objects and tests

- Remove complex dropdown logic, enhance model selection
- Move cleanup function, remove fallback project name
- Enhance YAML parsing with error handling
- Login before test, to avoid session race conditions with devFeatureFlags
- Remove Tag for bug RHOAIENG-30642
- Update README.md

Signed-off-by: manosnoam <[email protected]>

---------

Signed-off-by: manosnoam [email protected]
Signed-off-by: manosnoam <[email protected]>

* E2E Test for Token Authentication (#4572)

* add E2E test to validate token authentication

* copy tokens from UI

* remove comment

* Serving refactor: fix project details tab cypress tests (#4580)

* Make test ids more consistent

* Update project test too

* Feature store entities (#4568)

* feat(RHOAIENG-28420):added constants and feature store route for entitiy details page

* feat(RHOAIENG-28420,RHOAIENG-28421):added hooks for feature store entities

* feat(reusable-components):added a common timestamp component,scrollable links popover and import changes

* feat(reusable-toolbar):added a common toolbar component

* feat(entities-detail-page):added entitities detail and list view component

* feat(entities-table):added entity table component and row component

* fix(lint):addressed linting errors  for relative imports

* fix(jest-test-cases):added hook test cases and fixed test cases for error utils and api integration

* fix(components): added route fixes, empty state and error state for entity details page

* feat(cypress):added cypress mocks and test cases

* fix:added common route function

* fix(review):added spec file for utility functions and rearranged the options in the filter to match the column

* Remove bug tags from model serving tests (#4585)

* add bug tag

* add description tag

* remove bug tags

* lint fix

* add ticket to oci test

* Add dashboard support for the pipelines Kubernetes native API (#4484)

* add section

* store

* adjust types

* remove console

* add crd connection

* begin kfp upstream changes

* revert kfp changes

* remove dataid word

* begin kfp upstream changes

* add support for new versions

* add mock tests

* fix tests and add k8s name checking

* fix lint

* adjust tests and add auto scroll

* fix unit test

* add deel equal

* add component for k8s checkbox

* change to smooth

* Add deploy button, dropdown button, and connection autofill button as extension in MR midstream (#4453)

* Add deploy button and dropdown button as extension in MR midstream

* Add autofill connection button as extension when registering model

* rebase

* Update the extensions

* Rebase and update

* Update plugin context for the MR app to unblock midstream standalone mode

* address feedback

* Revert change to mandatoryNamespace

Signed-off-by: Mike Turley <[email protected]>

* Attempt to give lint job more memory

Signed-off-by: Mike Turley <[email protected]>

---------

Signed-off-by: Mike Turley <[email protected]>
Co-authored-by: Mike Turley <[email protected]>

* Update MR e2e test `testArchiveModels' (#4586)

* update test

* add should_be_enabled

* add page object

* linter fixes

* lint

* add selectors

* Add edit model modal to refactor (#4573)

* consolidate hooks

* deprecate hooks

* replace hooks with default hook

* fixed tests

* remove auto patch code for admin page

* delete deprecated hooks

* clean up

* fixed issue

* updated comment

* Feature store toolbar component (#4593)

* Feature store toolbar component

* solving linting

* fix:resolved linting issues

---------

Co-authored-by: Claudia Alphonse <[email protected]>

* Doc upload in chatbot (#4612)

* Converted to new designs

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Removed some eslint ignore statements

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Added document upload functionality

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* Refactor

Signed-off-by: Agnieszka Gancarczyk <[email protected]>

* test fix

* test fix

---------

Signed-off-by: Agnieszka Gancarczyk <[email protected]>
Co-authored-by: pnaik1 <[email protected]>

* Increasing memory allocation to 8GB for lint tests (#4616)

* feat: Add OpenAPI serving to BFF (#4560)

- Add OpenAPI handler with JSON, YAML, and Swagger UI endpoints
- Support external references in OpenAPI specification
- Integrate OpenAPI routes with existing routing system
- Preserve static file serving functionality with STATIC_ASSETS_DIR
- Add comprehensive API documentation endpoints:
  * /openapi.json - OpenAPI specification in JSON format
  * /openapi.yaml - OpenAPI specification in YAML format
  * /swagger-ui - Interactive Swagger UI interface
  * /openapi - Redirect to Swagger UI

The BFF now serves both frontend static files and provides
comprehensive OpenAPI documentation for the API endpoints.

* Link refactor deploy buttons to existing deploy modal (#4542)

* Link refactor deploy buttons to existing deploy modal

* Adjustments from feedback

* Add toolbar for refactored global models page

* Small bug fixes

* Refine some areas

* Remove references to refresh

* Clean up code and fix deploy button in global no models

* Kueue microcopy changes (#4620)

* Adds user_token auth mode to llama stack module (#4596)

* Updates authentication to follow pattern used by model registry. Now supports user_token mode.

* fix: properly disable authentication if auth_method=disabled

* refactor: optimize TokenClientFactory performance and make API path prefix configurable

- Move TokenClientFactory creation from per-request to app-level initialization
- Add configurable APIPathPrefix to EnvConfig with default /api/v1
- Add --api-path-prefix command-line flag and API_PATH_PREFIX env var
- Replace hardcoded ApiPathPrefix constants with dynamic path generation methods
- Update middleware to use app.tokenFactory instead of recreating per request
- Update isAPIRoute function to be App method using configurable prefix
- Update all tests to work with new configurable approach
- Maintain backward compatibility with default /api/v1 prefix

This improves performance by eliminating per-request object creation and
provides flexibility for different deployment scenarios.

---------

Co-authored-by: Akram Ben Aissi <[email protected]>

* E2E test for model deployment with Kserve Raw (#4583)

* Cypress E2E test for model deployment with Kserve Raw -20579

* refactored code

* Addressed review comments

* Add [Product Bug: RHOAIENG-31261]  and Bug Tag to Quarantine the test

* update checkInferenceServiceState utility method to check deployment mode

* Update deployment mode conditions

* remove getDeploymentModeLength() function.

* refactored code

* refactored code

* fixed tests

* add feature page (#4574)

* add feature page

* feat:added test cases,tooltip, common filter changes

* feat:added fature views api in the odh cypress file

* fix:reused the generic filter component and removed the unused featurestoolbar

* changed the test id for the toolbar

---------

Co-authored-by: Claudia Alphonse <[email protected]>

* Unquarantine missed serving test from RHOAIENG-30799 bug (#4617)

* Feature services (#4571)

* Feature service

* Added project col

* Coderabbit comments

* Tests added

* Feature view links

* feature service dates

* Feature service toolbar

* fixing lint

* Lint fix

* fixing tests

* Fixing tests 2

* Replace project column

* Adding back type and mocks

* typo fix

* TruncatedText truncation for tooltips in HardwareProfileSelection helper description (#4578)

* fix tooltip

* adjust other overflow

* update truncate text

* adjust truncation options

* add scroll
:

* use panel

* add back in support for no truncation

* adjust text

* fix truncation for simpleselect

* change back to truncated text

* fix mouse enter hook

* Dspa caching rebased (#4621)

* dspa cache enablement; squashing all the commits:
 (rebasing on derek's branch: story-21309)

  * using cacheEnabled (instead of cache: {enabled: <value>})
  * autoscrolling when the alert shows up now so alert is not hidden
      *turning off autoscroll unless user interacted with it
  * added 'Loading...' text
  * renamed View->Manage for the modal
  * added toast
  * added tests
     * added to cypress mock test
  * playing with titles/text sizes
  * adjusting layout depending on the context
     * alert looks better and takes up entire width now, no matter the layout mode

* linter fix (import order )

* fixing tests

* updated tests; did lint fixes; removed the lint:changed from package.json

* fixing import

* working on package files....

* restoring package-lock.json

* restored base package files

* starting on review comments:  fixed one layout issue and using 'useNotificaton' instead of the context

* fixing button alignment in the modal

* small tweaks:  style removed, test code adjusted per review

* fixed import

* linter fix

* test fix

* fixing test (to use useNotification hook instead of registerNotification)

* removing tag that cursor added

* fixing more tests

* adding in a StackItem to add a margin without adding explicit css; tested that the auto-scroll to view the alert is still functional

* Refractor ChatbotMain.tsx file (#4624)

* remove @app alias

* create separate folder

* add hooks

* add unit test for hooks

* Rhoaieng 28422 - 	Entities tab - feature views (#4626)

* feat:added entity param for the feature views tab

* feat:added cypress test for feature views tab and updated usefeature views hook spec test

* feat:added feature view tab for entities

* feat:added classname and a fixed test case

* [feat] Allow context message to be an input from the user (#4603)

This change allows users to input context message from the user
instead of hardcoding it.

To test the change, use the mock client and run the command:

curl -X POST http://localhost:8080/api/v1/query \
  -H "Content-Type: application/json" \
  -d '{
    "content": "What is machine learning?",
    "vector_db_ids": ["my-vector-db-identifier"],
    "llm_model_id": "ollama/llama3.2-3b",
     "system_prompt": "You are a technical consultant. Provide concise, actionable insights based on the available context."
  }'

Signed-off-by: Varsha Prasad Narsing <[email protected]>

* Feature service details (#4628)

* Feature service

* Added project col

* Feature service toolbar

* Replace project column

* Feature service details

* tests update

* Coderabbit comments

* Fallback for no tags

* Fix case sensitivity: rename featureServiceDetails.tsx to FeatureServiceDetails.tsx

* Details page empty states

* Empty message update

* solving tests

* resolving conflicts

* revert

* revert comment

* Package and feature flag setup for model training (#4615)

* serving refactor: cypress project details model fixes (#4601)

* Add checking runtimeTemplates for deploy button

* Fix accessibility error

* More consistent testids

* Add testid for project details table too

* Add missing testid for change platform button

* Minor fix to make deploy button a link in the section overview

* fix type and short circuit some template api calls

* Fix deploy button not having a project in global

* Fix templates load state

* final fixes

* Add PR review guidelines and best practices (#4486)

* Add PR review guidelines and best practices

* Fix indentation, wording, add to PR template

* Fix Markdown formatting issues

* Fix MD007 issues

* Add more details about when to and when not to use useCallback

* Add code examples

* make content clearer and add examples

* Serving refactor cypress: Re-add deploy from registry button link (#4623)

* Make and use nav back to registry button

* Fix gap being gone when aria-disabled true

* chore(deps): Upgrade PatternFly to 6.3.0 release (#4435)

fix lint

chore(deps): bump versions to latest prerelease candidates

chore(deps): bump versions to latest prerelease candidates

chore(deps): bump versions to latest prerelease candidates, update table components

chore(deps): fix lint

chore(deps): fix lint

chore(deps): bump to stable release versions

chore(deps): add isHamburgerButton prop for page toggle animation

chore(deps): fix tabs bug, add TODO for table, remove BarsIcon as child of PageToggleButton

chore(deps): remove BarsIcon from imports in Header.tsx

chore(deps): apply usePageInsets prop instead of util classes to match page margins

chore(deps): bump to latest patch release versions

chore(deps): revert hasAnimations on opt-in components

chore(deps): revert hasAnimations on opt-in components

chore(deps): revert hasAnimations on opt-in components

chore(deps): revert Header.tsx to apply isHamburgerButton

* test: create unit tests for internal api handlers and cmd package (#4619)

* Feature view tab for features (#4631)

* Add CY_RETRY option for Cypress test retry configuration

- Add new CY_RETRY environment variable to control test retry behavior
- Document all Cypress environment configuration in testing.md
- Reference main documentation from cypress README to avoid duplication

Signed-off-by: manosnoam <[email protected]>

* Fix uncaught exception handler conflict in e2e.ts

Multiple uncaught:exception handlers were interfering in e2e.ts,
causing timeout errors to be ignored instead of failing tests.
For example, pipelines/topology.ts had a timeout error handler that was
overriding the global one, causing tests to run for 1.5+ hours
(until Jenkins killed them).

Fixed by consolidating into a single uncaught exception handler.

Signed-off-by: manosnoam <[email protected]>

* Add support for both process.env and --env variables for all CY_ vars

Signed-off-by: manosnoam <[email protected]>

* Make modular architecture workspace enabled so it works with plugins (#4595)

* Move 'Use existing settings' to top of Hardware Profile select list (#4627)

* change order

* add unit test

* move to new describe block

* add not exist assertion

* Add params.env to modular architecture overlay so the operator can inject the image (#4575)

* fix: Update NIM enable test to be more resilient (#4590)

* feat: implement robust NIM application enablement test with automatic manifest application

- Add comprehensive NIM application enablement test with automatic manifest application
- Create dedicated nimCommands.ts file for NIM-specific functions
- Implement robust NIM card detection and enable button handling
- Add proper error handling for cases where NIM is already enabled
- Improve test reliability with proper timeouts and element detection
- Add NIM manifest fixture for testing
- Resolve async/sync mixing issues and improve scrolling behavior
- Add @SanitySet3 tag for test categorization
- Fix linting issues and improve code formatting

* fix: resolve linting issues in NIM test files

- Fix unnecessary else after return in NIMCard.ts
- Fix prettier formatting issues in testEnableNIM.cy.ts
- Fix indentation and spacing in nimCommands.ts
- Add proper function name for test function to resolve func-names warning
- Ensure all files pass eslint and prettier checks

* refactor: simplify NIM test by removing already-enabled checks

- Remove all logic around checking if NIM was already enabled
- Simplify executeNIMTestSteps function to return void instead of boolean
- Remove unnecessary conditional logic and skip statements
- Clean up the test flow since deleteNIMAccount in before() handles cleanup
- Make the test more straightforward and focused on the enablement flow

* refactor: improve NIM test with better step logging and page object encapsulation

- Replace cy.log() with cy.step() for test steps to improve test reporting
- Add reload() method to ExplorePage class for better encapsulation
- Use explorePage.reload() instead of direct cy.reload() calls
- Keep informative cy.log() calls for context that don't represent test steps
- Improve test readability and maintainability

* refactor: move direct DOM selectors to NIMCard page object methods

- Add findDrawerPanel() method to NIMCard class for drawer panel selector
- Add findActionList() method to NIMCard class for action list selector
- Add findEnableButton() method to NIMCard class for enable button selector
- Replace direct cy.get() calls with page object methods in test
- Improve encapsulation and follow mandatory coding guidelines for UI interactions

---------

Co-authored-by: Noam Manos <[email protected]>

* Model serving fix cypress platform selection errors (#4602)

* Reuse same platform error alert

* Add error alert for details page too

* Verify Required type and add system instruction (#4638)

* add required file

* add required type and system instructions

* add source toggle button

* fix test

* microcopy change for pipeline caching section; no functional changes (#4643)

* microcopy change for pipeline caching section; no functional changes

* updated relevant test that checked the text

* RHOAIENG 29677 -Feature Views details section (#4635)

* feat:updated mocks and cypress tests for feature services,views,entities

* feat:added apis getfeatureviewbyname, added routes for data sources, and updated jest test files

* feat:added hooks changes for feature store

* feat:updated props in featurestorecodeblock, and constant changes for feature store objects

* feat:added filter utils function to handle feature views, and types and utils files

* feat:added filtering changes for project column for entities

* feat:added filtering changes for project column for features

* feat:added filtering changes for project column for feature services

* feat:added filtering changes for project column for feature views and removed the unused toolbar for feature views

* feat:added feature views details tab, details page and the consuming tab component

* feat:added feature view tabs component, and feature view schema and transformation component

* feat:added feature view lineage tab and feature view materialization tab component

* fix:test cases fixes

* fix(review-comments):resolved code rabbit and other review comments

* fix(review-comments):added fallback for not interaction code block

* fix(store-type-filter-feature-view):added custom filtering fix for the feature view for the store type filter

* fix(review-comments): added feature view materialization component with sorting, replaced the table less header for entity details part with flex

* fix:added compact variant for materialization component

* fix:added minor textual changes and test id changes

* cypress config file

* cypress config file added to tsconfig for cypress

* Migrate /images POST, PUT, and DELETE endpoints to frontend (#4470)

* PVC Model Path Helper Text Update (#4651)

* helper text

* pull out connected resources

* Add reviewers in llama-stack-modular-ui (rag-playground) (#4625)

* Add ChristianZaccaria as reviewer in llama-stack-modular-ui (rag-playground)

* Add Bobbins228 and Ygnas as reviewers in rag-playground

* Fix the pipelines run metrics table (#4652)

* Ignore store_session_info when displaying pipeline run metrics

This is an implementation detail not directly set by the user, so it
does not need to be displayed.

Signed-off-by: mprahl <[email protected]>

* Fix displaying pipeline run metrics with zero values

If a metric had a `0` value, the code would call `toString` on `boolValue`
which is undefined and caused the UI to crash until the pipeline run was
archived.

Signed-off-by: mprahl <[email protected]>

---------

Signed-off-by: mprahl <[email protected]>

* Update start / stop models with UX improvements (#4645)

* remove model name (#4653)

* Update Tekton output-image tags to version v2.35.1-odh (#4430)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* updated tekton (#4432)

* upversion dashboard (#4434)

* Upversion Dashboard

---------

Signed-off-by: Olga Lavtar <[email protected]>
Signed-off-by: Agnieszka Gancarczyk <[email protected]>
Signed-off-by: Varsha Prasad Narsing <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: manosnoam [email protected]
Signed-off-by: manosnoam <[email protected]>
Signed-off-by: Mike Turley <[email protected]>
Signed-off-by: mprahl <[email protected]>
Co-authored-by: Katelynn Perry <[email protected]>
Co-authored-by: Griffin Sullivan <[email protected]>
Co-authored-by: Purva Naik <[email protected]>
Co-authored-by: Fede Alonso <[email protected]>
Co-authored-by: Pushpa Padti <[email protected]>
Co-authored-by: Theia <[email protected]>
Co-authored-by: mtalvi <[email protected]>
Co-authored-by: Emily Samoylov <[email protected]>
Co-authored-by: Conor O'Malley <[email protected]>
Co-authored-by: Robert Sun <[email protected]>
Co-authored-by: Juntao Wang <[email protected]>
Co-authored-by: Ashley McEntee <[email protected]>
Co-authored-by: Derek Xu <[email protected]>
Co-authored-by: Lucas Fernandez <[email protected]>
Co-authored-by: Jill Pelavin <[email protected]>
Co-authored-by: Arsheen Taj Syed <[email protected]>
Co-authored-by: Christian Vogt <[email protected]>
Co-authored-by: Anthony Coughlin <[email protected]>
Co-authored-by: Anthony Coughlin <[email protected]>
Co-authored-by: Nana Nosirova <[email protected]>
Co-authored-by: Sri Sai Sowjanya Darna <[email protected]>
Co-authored-by: Griffin-Sullivan <[email protected]>
Co-authored-by: Anish Surti <[email protected]>
Co-authored-by: Claudia Alphonse <[email protected]>
Co-authored-by: Lucas Fernandez <[email protected]>
Co-authored-by: Dipanshu Gupta <[email protected]>
Co-authored-by: Eder Ignatowicz <[email protected]>
Co-authored-by: olavtar <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Noam Manos <[email protected]>
Co-authored-by: Agnieszka Gancarczyk <[email protected]>
Co-authored-by: Varsha <[email protected]>
Co-authored-by: Matias Schimuneck <[email protected]>
Co-authored-by: Andrew Ballantyne <[email protected]>
Co-authored-by: Matias Schimuneck <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Akram Ben Aissi <[email protected]>
Co-authored-by: Andrew Ballantyne <[email protected]>
Co-authored-by: Mike Turley <[email protected]>
Co-authored-by: Anish Surti <[email protected]>
Co-authored-by: Alex Creasy <[email protected]>
Co-authored-by: Jenny <[email protected]>
Co-authored-by: IAN MILLER <[email protected]>
Co-authored-by: Gary Harden <[email protected]>
Co-authored-by: Christian Zaccaria <[email protected]>
Co-authored-by: Matt Prahl <[email protected]>
Co-authored-by: odh-devops-app[bot] <140140902+odh-devops-app[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
@coderabbitai coderabbitai bot mentioned this pull request Aug 13, 2025
6 tasks
antowaddle pushed a commit to antowaddle/odh-dashboard that referenced this pull request Aug 15, 2025
* run type checking in all packages with turbo

* remove type-check from unit test script as it is run separately
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants