Skip to content

Conversation

odeimaiz
Copy link
Member

@odeimaiz odeimaiz commented Oct 15, 2025

What do these changes do?

This PR implements the first iteration of the file search feature in the frontend, allowing users to search across files in their projects using a streaming API approach. The implementation adds a new "Files" search context with real-time streaming of search results.

  • Adds file search capability with streaming results from the backend
  • Introduces new UI components for displaying and interacting with file search results: file/directory icon, name, projectId and lastModified info is shown
  • From a search result, the project where the file is located can be opened

Search and open Project card:
SearchFiles

Switching streams and reaching the end:
SearchFiles

Related issue/s

How to test

Dev-ops

@odeimaiz odeimaiz self-assigned this Oct 15, 2025
@odeimaiz odeimaiz added this to the Imparable milestone Oct 15, 2025
@odeimaiz odeimaiz added t:enhancement Improvement or request on an existing feature a:frontend issue affecting the front-end (area group) labels Oct 15, 2025
Copy link
Contributor

mergify bot commented Oct 15, 2025

🧪 CI Insights

Here's what we observed from your CI run for 0737ac4.

✅ Passed Jobs With Interesting Signals

Pipeline Job Signal Health on master Retries 🔍 CI Insights 📄 Logs
CI system-tests Base branch is broken, but retries were needed. Could be early signs of flakiness 👀 Broken 1 View View

@odeimaiz odeimaiz requested a review from Copilot October 21, 2025 07:27
@odeimaiz odeimaiz marked this pull request as ready for review October 21, 2025 07:27
@odeimaiz odeimaiz requested a review from sanderegg as a code owner October 21, 2025 07:27
Copy link
Contributor

@Copilot 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

This PR implements a file search feature in the frontend, allowing users to search across files in their projects using a streaming API approach. The implementation adds a new "Files" search context to the dashboard with real-time streaming of search results.

  • Adds file search capability with streaming results from the backend
  • Introduces new UI components for displaying and interacting with file search results
  • Refactors existing date filter and navigation components for reusability

Reviewed Changes

Copilot reviewed 22 out of 22 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
_simcore_s3.py Adds filtering logic to skip empty items in file search stream
RocketPreview.js Adds metadata constants for Sim4Life integration
BookACallIframe.js Adds metadata constants for easy!appointments integration
ConversationPage.js Adds null check before accessing conversation object
StreamTasks.js New singleton store for managing streaming tasks with abort capability
Store.js Adds "searchFiles" context to available browser contexts
Data.js Implements searchFiles method to initiate file search API call
NavigationBar.js Refactors right-side button positioning to use explicit indices
DateFilters.js Refactors method naming from protected to private and improves code consistency
File.js New model class for file data representation
StreamTask.js New class for handling streaming data from long-running tasks
Resources.js Adds searchFiles endpoint definition
PollTask.js Refactors polling initialization into overridable method
StudyBrowserHeader.js Adds header configuration for file search context
StudyBrowser.js Implements main file search logic with streaming and UI integration
SearchBarFilterExtended.js Adds files filter button and layout changes for date filters
ResourceContainerManager.js Adds file list management and display capabilities
ResourceBrowserBase.js Refactors workspace selection method to generic location opening
ListButtonLoadMore.js Improves loading icon styling with consistent padding
ListButtonBase.js Increases default item height from 35 to 40 pixels
FileButtonItem.js New component for displaying individual file items with actions
CardContainer.js Adds FileButtonItem as valid card type

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link

Copy link
Member

@pcrespov pcrespov left a comment

Choose a reason for hiding this comment

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

very nice. congratulations @giancarloromeo @odeimaiz

@giancarloromeo
Copy link
Contributor

@odeimaiz Thanks, an incredible FE for an awesome BE! A small fix will come later to fix an issue with Folders search.

@odeimaiz odeimaiz added the 🤖-automerge marks PR as ready to be merged for Mergify label Oct 21, 2025
@odeimaiz
Copy link
Member Author

@mergify queue

Copy link
Contributor

mergify bot commented Oct 21, 2025

queue

🛑 Configuration not compatible with a branch protection setting

The branch protection setting Require branches to be up to date before merging is not compatible with draft PR checks. To keep this branch protection enabled, update your Mergify configuration to enable in-place checks: set merge_queue.max_parallel_checks: 1, set every queue rule batch_size: 1, and avoid two-step CI (make merge_conditions identical to queue_conditions). Otherwise, disable this branch protection.

@odeimaiz odeimaiz merged commit 0b2ea9f into ITISFoundation:master Oct 21, 2025
141 of 148 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🤖-automerge marks PR as ready to be merged for Mergify a:frontend issue affecting the front-end (area group) t:enhancement Improvement or request on an existing feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants