You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Create bootstrapStore using VueUse useAsyncState for parallel async operations
- Move API init, nodeDefs fetch, settings, i18n, and workflow sync to early bootstrap
- Fix deadlock: wait for ready OR error since useAsyncState doesn't set isReady on rejection
- Extract ensureNodeDefsLoaded helper in app.ts to eliminate duplicate code
- Add timing telemetry for bootstrap performance measurement
perf: move non-DOM composables to script setup level
Moved useGlobalLitegraph, useContextMenuTranslation, useVueFeatureFlags
from onMounted to script setup level in GraphCanvas.vue.
These composables don't use onUnmounted hooks, so they can run earlier.
Amp-Thread-ID: https://ampcode.com/threads/T-019bf1e3-1b3a-713d-8eaf-5f3eee1493b8
Co-authored-by: Amp <amp@ampcode.com>
perf: parallelize pre-canvas bootstrap operations
Start i18n and settings waits in parallel, then wait for settings first
(critical path) before running CORE_SETTINGS registration. Run i18n wait
and newUserService in parallel since newUserService only needs settings.
Amp-Thread-ID: https://ampcode.com/threads/T-019bf1e3-1b3a-713d-8eaf-5f3eee1493b8
Co-authored-by: Amp <amp@ampcode.com>
refactor: simplify bootstrapStore and defer auth-dependent loading
- Remove unused timing telemetry from bootstrapStore
- Add multi-user login check before loading settings/workflows
- Settings and workflows now defer if authentication is required
- Extract loadSettings/syncWorkflows as guarded methods
- Update related stores and services to handle auth dependencies
Amp-Thread-ID: https://ampcode.com/threads/T-019bf274-0436-725d-999b-232e2198131b
Co-authored-by: Amp <amp@ampcode.com>
refactor: simplify bootstrapStore usage and remove type assertion
- Add explicit generic type to useAsyncState instead of using 'as' assertion
- Use store properties directly instead of storeToRefs in ensureNodeDefsLoaded
- Move bootstrapStore import to top-level instead of dynamic import
Amp-Thread-ID: https://ampcode.com/threads/T-019bf280-28ae-71bc-b33f-acd4484ffd96
Co-authored-by: Amp <amp@ampcode.com>
fix: revert logout to use page reload to prevent stale store state
Replace router.push() with window.location.reload() in SidebarLogoutIcon
to ensure Pinia stores (bootstrapStore, settingStore) are fully reset.
Using router navigation caused isSettingsReady/isNodeDefsReady flags to
persist, making new users inherit the previous user's cached state.
Added TODO comments documenting the sticky state issue for future
refactoring to proper store reset methods.
test: update tests for relaxed duplicate setting and cleanup behavior
Amp-Thread-ID: https://ampcode.com/threads/T-019bf29e-0329-751d-80e2-771ea372a56e
Co-authored-by: Amp <amp@ampcode.com>
fix: remove duplicate api.init() from bootstrapStore
The websocket was being initialized before status event handlers were registered, causing the initial status message to be missed. Queue size showed 'X' instead of 0.
api.init() is already called in app.ts addApiUpdateHandlers() after registering handlers.
Amp-Thread-ID: https://ampcode.com/threads/T-019bf2db-6aa1-7210-aeed-f161486f950a
Co-authored-by: Amp <amp@ampcode.com>
0 commit comments