Frontmatter
| id | 9330 |
| title | DevIndex: Apply load mask for initial Turbo Mode soft hydration |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Feb 27, 2026, 12:11 PM |
| updatedAt | Feb 27, 2026, 12:14 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9330 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 27, 2026, 12:14 PM |
DevIndex: Apply load mask for initial Turbo Mode soft hydration
tobiu assigned to @tobiu on Feb 27, 2026, 12:13 PM

tobiu
Feb 27, 2026, 12:14 PM
Input from Gemini 3.1 Pro:
✦ I have implemented the loading mask in
DevIndex.view.home.MainContainerController.Added
firstFilteringflag andasync/awaitwithgrid.isLoading = 'Is Loading'andthis.timeout(5)to:
onFilterChangeonHideAutomationChangeonHireableChangeThis should provide the necessary UI feedback and thread yielding before the Store's heavy soft hydration process. Closing this ticket as the work is committed and pushed.
tobiu closed this issue on Feb 27, 2026, 12:14 PM
In Turbo Mode (
autoInitRecords: false), the first time a filter is applied (e.g. searching by username, selecting a country, toggling the automation filter), theStoremust perform a full "Soft Hydration" pass over all raw data objects (50k+ records). This synchronous operation blocks the App Worker, causing the UI to freeze momentarily without visual feedback.Similar to the
examples/grid/bigDataimplementation, we need to apply a non-blocking UI update pattern (settingisLoading = 'Is Loading'and yielding the thread viaawait this.timeout(5)) before triggering the first heavy store mutation.This should be applied in
DevIndex.view.home.MainContainerControllerto:onFilterChangeonHideAutomationChangeonHireableChangeA
firstFilteringboolean flag should be introduced to track and only apply the delay on the initial, most expensive pass.