Skip to content

Home Page Model Selection and Multiple Tab Support - #416

Open
JEYuhas wants to merge 10 commits into
developfrom
EY/MultiTabs
Open

Home Page Model Selection and Multiple Tab Support#416
JEYuhas wants to merge 10 commits into
developfrom
EY/MultiTabs

Conversation

@JEYuhas

@JEYuhas JEYuhas commented Apr 29, 2026

Copy link
Copy Markdown

First Draft of MultiTabs in HARP. Add tab button is in top right corner. Will be moved.

@netlify

netlify Bot commented Apr 29, 2026

Copy link
Copy Markdown

Deploy Preview for harp-plugin canceled.

Name Link
🔨 Latest commit cea85ba
🔍 Latest deploy log https://app.netlify.com/projects/harp-plugin/deploys/69f22b8adaeab30008512c4d

@JEYuhas
JEYuhas changed the base branch from main to develop April 29, 2026 16:03
@cwitkowitz cwitkowitz changed the title MultiTab first draft Home Page Model Selection and Multiple Tab Support Jun 19, 2026
This was linked to issues Jul 18, 2026
@cwitkowitz

Copy link
Copy Markdown
Collaborator

I've not thoroughly reviewed this PR, but here are some minor issues I noticed:

  • If model loading is unsuccessful, the corresponding tab should not be opened.
  • The sizing of the categorization tags is off.
  • Leftover from the previous dropdown feature, if model loading is unsuccessful, a failure tag (e.g., [SLEEPING]) is appended to the URL and causes all subsequent load attempts to fail.
  • I wonder if there is a better way to read in the list of valid models. See the model validation PR (Model Validation Infrastructure, Script, and Workflow #432) for ideas. We also may be able to use the same infrastructure to only display models that will load successfully.

@2cylu2

2cylu2 commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Thanks for the review! I changed the failed loading behavior, tag sizing, and URL state. I also agree that using the validation infrastructure to determine valid models is a good idea, so I can connect this to the validation infrastructure once #432 is merged.

@ChughVansh

Copy link
Copy Markdown

Hello!

I think it looks great! Went through the code and tried some models and everything seems to work! Here are some notes for in ModelSelectionWidget.h; all optional and would love to hear your thoughts.

  • Since model selection/loading is now handled by HomeTab, there looks to be some dead code. modelSelectionWidget inside ModelTab is never addAndMakeVisible'd (it's pinned to 0,0,0,0 in resized()), and I think it's the only place ModelSelectionWidget is instantiated in the codebase. I tried removing loadModelButton, modelPathComboBox, and the associated pieces of code (initializeLoadModelButton(), initializeModelPathComboBox(), resetModelPathComboBox(), the HoverHandler, and the ChangeListener relationship to sharedChoices) and the app still builds and runs fine i.e. nothing else in the codebase depends on them. May be worth cleaning up? Unless I'm missing something.

  • Also, it looks like lastSelectedPathIndex is read as soon as it's assigned (fed straight into modelPathComboBox.setSelectedId(-1) in resetState(), or into a debug log line in onChange). Since it's never used elsewhere for actual logic, maybe we could remove the variable from the file? That's unrelated to this PR, but since we're updating the file, I just thought that might be worth cleaning up too?

@ChughVansh ChughVansh closed this Aug 12, 2026
@ChughVansh

Copy link
Copy Markdown

sorry accidentally closed it

@ChughVansh ChughVansh reopened this Aug 12, 2026

/**
* Create callbacks for and launch the custom path popup.
* Create caollbacks for and launch the custom path popup.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

callbacks :)

@2cylu2

2cylu2 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Hello!

I think it looks great! Went through the code and tried some models and everything seems to work! Here are some notes for in ModelSelectionWidget.h; all optional and would love to hear your thoughts.

  • Since model selection/loading is now handled by HomeTab, there looks to be some dead code. modelSelectionWidget inside ModelTab is never addAndMakeVisible'd (it's pinned to 0,0,0,0 in resized()), and I think it's the only place ModelSelectionWidget is instantiated in the codebase. I tried removing loadModelButton, modelPathComboBox, and the associated pieces of code (initializeLoadModelButton(), initializeModelPathComboBox(), resetModelPathComboBox(), the HoverHandler, and the ChangeListener relationship to sharedChoices) and the app still builds and runs fine i.e. nothing else in the codebase depends on them. May be worth cleaning up? Unless I'm missing something.
  • Also, it looks like lastSelectedPathIndex is read as soon as it's assigned (fed straight into modelPathComboBox.setSelectedId(-1) in resetState(), or into a debug log line in onChange). Since it's never used elsewhere for actual logic, maybe we could remove the variable from the file? That's unrelated to this PR, but since we're updating the file, I just thought that might be worth cleaning up too?

Thanks for the review! Yes, those cleanups sound good!

@VedMistry42 VedMistry42 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Hey!
Left a request changes after building and testing locally. I found a few issues, most notably 2 crash/hang scenarios which I think need to be sorted before merging. Details are below:

  1. Crashes when retrying a failed Process
    Repro:
    -Load a model that errors out during Process (I did Demucs while the space was asleep)
    -Hit Process and dismiss the error popup
    -Hit Process again and dismiss the error popup
    -App crashes

  2. App hangs after closing a tab mid-request
    Repro:

  • Start processing any model
  • Close tab out while processing
  • Loading a new model gets stuck on "Model: Querying Controls" permanently (sometime the 1 after that too)
  1. Tutorial UI cases
  • steps that are supposed to switch tabs don't, so the UI looks frozen
  • Media Clipboard step doesn't highlight anything even though it says so
  • Interface Summary highlights the wrong region
  • Spam clicking Next creates multiple duplicate model tabs
  • finishing/closing the tutorial while on the model tab leaves that tab blank

…#416 review) (#440)

* Fix crash and app-hang when closing a tab or quitting mid-request

Closing a tab (or quitting the app) while it had an in-flight network
request could force-kill a blocked worker thread, corrupting shared
networking state and hanging all future model loads. Adds local
connection cancellation (RequestRegistry) and defers tab destruction
until any in-flight request has actually settled.

Found while reviewing PR #416.

* Fix six tutorial UI bugs (stuck steps, missing highlights, duplicate tabs, blank tab on finish)

- Tutorial steps checked the wrong tab accessor, causing it to appear
  frozen and never advance
- Media Clipboard/Interface Summary steps failed to highlight anything
- Interface Summary painted a stray box from an unrelated empty-rect bug
- Spam-clicking Next created duplicate tabs (no in-flight-load guard)
- Finishing the tutorial reset the auto-loaded tab instead of closing it,
  leaving it permanently blank

Found while reviewing PR #416.

@VedMistry42 VedMistry42 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Opened & merged #440 into this branch addressing the bugs stated previously (Crash on retrying a failed Process, App hang/crash on closing a tab or quitting mid-request, & Tutorial UI cases)

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.

Expansion of Dropdown Feature Multiple Model Tabs

5 participants