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 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 27, 2026, 12:14 PM |
DevIndex: Apply load mask for initial Turbo Mode soft hydration

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.
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.