Skip to content

Conversation

@ashwinvaidya17
Copy link
Contributor

πŸ“ Description

  • Merge feature branch into main

✨ Changes

Select what type of change your PR is:

  • πŸš€ New feature (non-breaking change which adds functionality)
  • 🐞 Bug fix (non-breaking change which fixes an issue)
  • πŸ”„ Refactor (non-breaking change which refactors the code base)
  • ⚑ Performance improvements
  • 🎨 Style changes (code style/formatting)
  • πŸ§ͺ Tests (adding/modifying tests)
  • πŸ“š Documentation update
  • πŸ“¦ Build system changes
  • 🚧 CI/CD configuration
  • πŸ”§ Chore (general maintenance)
  • πŸ”’ Security update
  • πŸ’₯ Breaking change (fix or feature that would cause existing functionality to not work as expected)

βœ… Checklist

Before you submit your pull request, please make sure you have completed the following steps:

  • πŸ“š I have made the necessary updates to the documentation (if applicable).
  • πŸ§ͺ I have written tests that support my changes and prove that my fix is effective or my feature works (if applicable).
  • 🏷️ My PR title follows conventional commit format.

For more information about code review checklists, see the Code Review Checklist.

MarkRedeman and others added 30 commits November 26, 2025 10:54
* initial backend commit

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* app -> src

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* Remove empty file

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* move code

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* fix style backend

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* rename media endpoint

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

---------

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>
add unit tests for endpoints

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>
These won't be needed yet
* Use src folder inside run.sh

* Set openapi_url path

* Update to react 19

* Specify bash language in readme
* add training + inference endpoint

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* remove model api

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* cleanup code

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* update async execution

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* improve training worker loop and predict endpoint

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* fix style

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* fix style to use python3.10 generics

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* add tests for services

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* style fix

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* style fix

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* style fix

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* style fix

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* style fix

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

---------

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>
* Add github actions for ui and server of geti inspect

* Exclude UI from pre-commit prettier configuration

The UI uses a different prettier configuration that does not seem to be
picked up by pre-commit.

* Add newline to .prettierignore

* Apply prettier to `geti-inspect.yaml`

* Generate OpenAPI spec before running UI checks

* Checkout with lfs

* Fix lint issues by removing wip components

* Try installing git lfs in the playwright docker image

* Fix unused noqa
* Add OpenAPI route

* Remove MSW browser worker

* Rename infernece to inspect

* Update navbar title

* Rename infernece to inspect
* rename models/ to pydantic_models/

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* switch to use async session context manager

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* fix unit tests

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* add pipeline endpoints

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* fix frame aquisition worker and rename pipiline endpoints

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* add sources and sinks endpoints

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* stream loading working

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* add webrtc endpoints

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* fix workers: stream loading + inference + dispatcher

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* fix sinks

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* style

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* add unit tests and address comments

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* add tests

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* fix example schema

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* add todo

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

---------

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>
* chore: Add path alias to icons

* feat: Add sidebar with dataset, models and stats
* feat: Display placeholders for images

* refactor: Fix scrollbar

* chore: Remove learn more
* chore(inspect): Update UI scripts

* chore: Update github actions

* chore: Update port to 8000
)

chore(inspect): Configure project(s) mocks for playwright
* chore: Add project route

* feat: Add project management

* revert ui lock change

* chore: Remove not needed code for project management
…ts from the UI (#2980)

chore(inspect): Update allowed origins
… training progress (#2984)

* feat: Allow user to upload images

* feat: List uploaded images

* chore: Extract components to separate files and add ready to train and training progress

* chore: comment thumbnail url generation
chore(inspect): Update openapi page title
)

* chore(inspect): Renamed app to application

* chore(inspect): Rename app to application in github actions
…of email (#2990)

refactor: Update photo placeholder to use indicator instead of email
Improve error and suspense handling in router

By moving all of the routes into a single root route we can make sure
that all routes are rendered inside of an layout that has a suspense and
error boundary.
Signed-off-by: Ashwin Vaidya <ashwin.vaidya@intel.com>
πŸ› fix(inspect): Fix unable to start train job
* add trainable models endpoint

* fix

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* add test

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* add copyright

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

---------

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>
* add thumbnails endpoint

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* add tests

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* generate thumbnails as background task

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

* update docstring

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>

---------

Signed-off-by: Ma, Xiangxiang <xiangxiang.ma@intel.com>
ActiveChooN and others added 2 commits December 9, 2025 14:59
* Implemented new status bar

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Added tests

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Fixed timers

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Fixed linter

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Fixed linter

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Minor fixes

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Fixed comment

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Fixed comments

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Fixed linter

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Fixed comment

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Fixed comments

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Moved export hook to a separate file

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

---------

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>
* remove item from view modal

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>

* download button

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>

* new end list hook

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>

* LoadMoreList component

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>

---------

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>
Copilot AI review requested due to automatic review settings December 9, 2025 15:30
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 229 out of 448 changed files in this pull request and generated 1 comment.


πŸ’‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

style={{
// Enable hardware acceleration
transform: 'translate3d(0, 0, 0)',
'--zoom-scale': zoom.scale,
Copy link

Copilot AI Dec 9, 2025

Choose a reason for hiding this comment

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

[nitpick] CSS custom property value should be converted to a string. While JavaScript may coerce the number, explicit conversion with .toString() or template literal is more reliable and matches CSS custom property best practices.

Suggested change
'--zoom-scale': zoom.scale,
'--zoom-scale': `${zoom.scale}`,

Copilot uses AI. Check for mistakes.
ActiveChooN and others added 2 commits December 10, 2025 11:10
feat(inspect): add contextual help for compression types in export model dialog

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>
…3201)

* fix pipeline visualization

Signed-off-by: Max Xiang <xiangxiang.ma@intel.com>

* fix tests

Signed-off-by: Max Xiang <xiangxiang.ma@intel.com>

* make max_epochs optional

Signed-off-by: Max Xiang <xiangxiang.ma@intel.com>

* make max_epochs optional

Signed-off-by: Max Xiang <xiangxiang.ma@intel.com>

* add pipeline overlay on/off

Signed-off-by: Max Xiang <xiangxiang.ma@intel.com>

* make fps more reactive

Signed-off-by: Max Xiang <xiangxiang.ma@intel.com>

* address comment

Signed-off-by: Max Xiang <xiangxiang.ma@intel.com>

* enable/disable pipeline overlay

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>

* COLOR_RGB2BGR

Signed-off-by: Max Xiang <xiangxiang.ma@intel.com>

* enabled -> overlay

Signed-off-by: Max Xiang <xiangxiang.ma@intel.com>

---------

Signed-off-by: Max Xiang <xiangxiang.ma@intel.com>
Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>
Co-authored-by: Colorado, Camilo <camilo.colorado@intel.com>
Copilot AI review requested due to automatic review settings December 10, 2025 11:33
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 229 out of 448 changed files in this pull request and generated 1 comment.


πŸ’‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

# - Multiple training jobs to run concurrently
# - Event loop to remain responsive for shutdown signals
if len(running_tasks) < MAX_CONCURRENT_TRAINING:
running_tasks.add(asyncio.create_task(training_service.train_pending_job()))
Copy link

Copilot AI Dec 10, 2025

Choose a reason for hiding this comment

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

The fire-and-forget task creation could lead to unhandled exceptions being silently ignored. Consider storing task exceptions and logging them. For example: task = asyncio.create_task(training_service.train_pending_job()); task.add_done_callback(lambda t: logger.error(f'Task failed: {t.exception()}') if t.exception() else None)

Suggested change
running_tasks.add(asyncio.create_task(training_service.train_pending_job()))
task = asyncio.create_task(training_service.train_pending_job())
task.add_done_callback(
lambda t: logger.error(f"Task failed: {t.exception()}", exc_info=True) if t.exception() else None
)
running_tasks.add(task)

Copilot uses AI. Check for mistakes.
* limit next page request

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>

* load paginated projects

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>

---------

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>
* reorder anomaly-map

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>

* selection card style

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>

* field validations

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>

* disable remove source/sink when connected to a pipeline

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>

---------

Signed-off-by: Colorado, Camilo <camilo.colorado@intel.com>
Copilot AI review requested due to automatic review settings December 11, 2025 13:58
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 231 out of 454 changed files in this pull request and generated no new comments.


πŸ’‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Update Playwright to 1.57

I've also ran `npm audit fix` to fix minor security vulnerabilities
related to our linting tools.

Signed-off-by: Mark Redeman <mark.s.redeman@intel.com>
* Add early stopping

Signed-off-by: Ashwin Vaidya <ashwin.vaidya@intel.com>

* Fix test

Signed-off-by: Ashwin Vaidya <ashwin.vaidya@intel.com>

---------

Signed-off-by: Ashwin Vaidya <ashwin.vaidya@intel.com>
Copilot AI review requested due to automatic review settings December 12, 2025 12:59
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 230 out of 454 changed files in this pull request and generated no new comments.


πŸ’‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

* feat(model): ensure associated training job is deleted when a model is removed

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Fixed linter

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Fixed linter

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Update application/backend/src/services/model_service.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

---------

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@ActiveChooN ActiveChooN requested a review from a team as a code owner December 15, 2025 11:47
* feat(export): fix INT8_PTQ and INT8_ACQ export by passing a datamodule to export
* feat(export): enhance INT8_PTQ and INT8_ACQ export by integrating dataset snapshot as datamodule
* fix(export): Undo changes to export_mixin library file.
* refactor(model_service): remove unused import of DatasetSnapshot
* refactor(model_service): reorder import statements for consistency
* fix(model_service): remove trailing space in export comment
* Update application/backend/src/services/model_service.py

Signed-off-by: Rajesh Gangireddy <rajesh.gangireddy@intel.com>
* fix(model_service): remove trailing space in export_model method
* refactor(model_service): streamline export_model method by removing redundant comments
* fix(model_service): remove unnecessary blank line in export_model method
* Update application/backend/src/services/model_service.py
Signed-off-by: Rajesh Gangireddy <rajesh.gangireddy@intel.com>
---------

Signed-off-by: Rajesh Gangireddy <rajesh.gangireddy@intel.com>
Copilot AI review requested due to automatic review settings December 15, 2025 12:37
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 228 out of 454 changed files in this pull request and generated 1 comment.


πŸ’‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +25 to +27
// TODO:
// 1. Add scale restrictions - min max
// 2. Add translate restrictions - min max
Copy link

Copilot AI Dec 15, 2025

Choose a reason for hiding this comment

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

These TODO comments indicate incomplete functionality for zoom restrictions. Consider creating tickets to track this technical debt or implementing the scale and translate restrictions.

Copilot uses AI. Check for mistakes.
MarkRedeman and others added 2 commits December 17, 2025 09:07
* Enable training on XPU using SingleXPUStrategy

Setting the SingleXPUStrategy fixes the error message,
```
Failed to train pending training job: Device should be xpu, got cpu
instead
```

After this another error would show up,
```
Cannot re-initialize XPU in forked subproces. To use XPU with
multiprocessing you must use the `spawn` method
```

This requires us to set the start method of our `main.py` file.

Signed-off-by: Mark Redeman <mark.s.redeman@intel.com>

* Move `set_start_method` to main block

Signed-off-by: Mark Redeman <mark.s.redeman@intel.com>

---------

Signed-off-by: Mark Redeman <mark.s.redeman@intel.com>
* feat(inspect): enhance training status adapter with SSE progress tracking

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Fixed comments

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

* Fixed typing

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>

---------

Signed-off-by: Dmitry Kalinin <dmitry.kalinin@intel.com>
Copilot AI review requested due to automatic review settings December 17, 2025 14:41
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 228 out of 454 changed files in this pull request and generated 2 comments.


πŸ’‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

import { paths } from './openapi-spec';
import spec from './openapi-spec.json' with { type: 'json' };

const handlers = await fromOpenApi(JSON.stringify(spec).replace(/}:/g, '}//:'));
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The regex replacement replace(/}:/g, '}//:') modifying the OpenAPI spec appears to be a workaround. Add a comment explaining why this transformation is necessary for MSW to properly handle the spec, as this is not immediately obvious.

Suggested change
const handlers = await fromOpenApi(JSON.stringify(spec).replace(/}:/g, '}//:'));
// MSW's OpenAPI parser struggles with paths that have an operation suffix
// immediately after a path parameter, e.g. `/api/models/{model_name}:activate`.
// To work around this, we rewrite `}:` to `}//:` in the serialized spec so that
// `@mswjs/source/open-api` can parse these routes, and then later escape the
// colon at runtime in `post` via `path.replace('}:', '}\\:')`.
const handlers = await fromOpenApi(
JSON.stringify(spec).replace(/}:/g, '}//:')
);

Copilot uses AI. Check for mistakes.
mock_bin_repo = MagicMock()

# Capture arguments to validate content and filename
async def _save_file(filename: str, content: bytes) -> str: # type: ignore[override]
Copy link

Copilot AI Dec 17, 2025

Choose a reason for hiding this comment

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

The # type: ignore[override] comment suggests a type mismatch. Consider using proper type annotations that match the expected signature instead of suppressing the type checker.

Suggested change
async def _save_file(filename: str, content: bytes) -> str: # type: ignore[override]
async def _save_file(filename: str, content: bytes) -> str:

Copilot uses AI. Check for mistakes.
MarkRedeman and others added 2 commits December 18, 2025 10:36
Signed-off-by: Mark Redeman <mark.s.redeman@intel.com>
…ch (#3228)

add javascript-typescript

Signed-off-by: Barabanov, Alexander <alexander.barabanov@intel.com>
Copilot AI review requested due to automatic review settings December 18, 2025 15:47
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 228 out of 455 changed files in this pull request and generated 1 comment.


πŸ’‘ Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +3 to +9
export const downloadImageAsFile = async (media: MediaItem) => {
const response = await fetch(`/api/projects/${media.project_id}/images/${media.id}/full`);

const blob = await response.blob();

return new File([blob], media.filename, { type: blob.type });
};
Copy link

Copilot AI Dec 18, 2025

Choose a reason for hiding this comment

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

The fetch request doesn't check for HTTP errors. Add response.ok validation and throw an error for failed requests to prevent silent failures.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants