Action dialogs and selection fields reload repeatedly instead of reusing session data #15

Closed
opened 2026-11-05 19:05:36 +01:00 by Alex · 0 comments
Owner

Delivery status

All five commits (044888a, 53e680d, 3630678, afb0eb2, 6df1532) are now pushed to origin/main. Remote HEAD was verified as 6df1532cca8632c0c2c6066faf1b9ec2ab5de076.

The scoped implementation and local source/browser/worker verification described below are complete and delivered. Closing this implementation/fix issue. Remaining native desktop and live-cloud acceptance is tracked centrally in #10; no native/live-cloud pass is claimed. Older paragraphs describing an unpushed change or per-issue confirmation hold are superseded by this delivery status.

User reports that repeatedly opening the VM dropdown and Edit triggers loading every time, and asks to check other fields too. Inspect VM, image/volume, network action preparation, launch/resize flavors and paged choice fields. Add bounded session-scoped caching and coalesce concurrent identical reads where appropriate. Invalidate after writes, inventory generation changes, reconnect/profile/credential/region changes and expiry; preserve fresh backend validation before every mutation. Do not cache mutations, console URLs or console output, and do not persist sensitive dialog data. Validate reopen, concurrent callers, cancellation, invalidation and affected UI flows outside the source repository.

Implemented locally

Commit 6df1532 (pushed to origin/main) covers the user's extended request to inspect all dropdown fields, including networking.

  • Added a bounded memory-only read cache (30-second validity, 64 entries) in OperationClient. It covers instance/network preparation, image/volume/snapshot/launch preparation, flavor pages and paged choices.
  • Identical pending reads coalesce. Closing the first dialog does not cancel the read needed by an immediately reopened dialog. Callers receive independent clones, so unsaved field edits do not alter cached values.
  • Cache reuse is bound to profile, view, activation, credential revision, project/region scope and inventory generations. Writes clear it before/after outcomes; explicit inventory refresh and view destruction clear it. Errors and malformed preparation responses are not cached. Console URLs/log output are never cached; fresh backend mutation validation remains unchanged.
  • Picker mounting no longer waits a fixed 250 ms. Only changed search text is debounced. Refresh list bypasses a completed cached page.
  • Shared Select and row menus now use one viewport/chrome placement helper with available height and left-aligned options. Home/End skip disabled Select options. Native demo select fields were inspected: their options are local fixtures, with browser-native menus and no OpenStack fetch on opening.

Validation

Svelte check passed with zero errors/warnings; Vite build passed. Out-of-repository cache checks covered TTL/LRU, form-copy isolation, all preparation kinds, flavor/choice reuse, force refresh, a cancelled first caller, profile/view/activation/credential/scope/inventory invalidation, writes, failed/malformed responses, invalidated in-flight reads not repopulating the cache, and uncached console/log calls.

Browser checks of the real CloudProfile and OperationClient with synthetic IPC covered repeated VM Edit/interface/resize/volume/IP/security-group/console fields, network/subnet/port editing including VNIC options, image/volume actions and launch availability zones. Identical preparations were requested once across reopenings; choice pages were reused, explicit refresh fetched anew, and opening local dropdowns performed no operation/choice request. Additional checks covered cancellation then immediate Edit reopen while preparation was delayed, grouped/disabled options, Home/End/wrap navigation, window chrome, tall menus and small viewports.

No new dependencies, test suites or generated artifacts were committed. Desktop packaging/runtime confirmation on the user's system remains outstanding; issue remains OPEN for that confirmation. Behavior is documented in docs/ACTION-DATA-CACHE.md.

## Delivery status All five commits (`044888a`, `53e680d`, `3630678`, `afb0eb2`, `6df1532`) are now pushed to `origin/main`. Remote HEAD was verified as `6df1532cca8632c0c2c6066faf1b9ec2ab5de076`. The scoped implementation and local source/browser/worker verification described below are complete and delivered. Closing this implementation/fix issue. Remaining native desktop and live-cloud acceptance is tracked centrally in [#10](https://git.knoll-systems.de/Alex/openstack-dashboard-app/issues/10); no native/live-cloud pass is claimed. Older paragraphs describing an unpushed change or per-issue confirmation hold are superseded by this delivery status. User reports that repeatedly opening the VM dropdown and Edit triggers loading every time, and asks to check other fields too. Inspect VM, image/volume, network action preparation, launch/resize flavors and paged choice fields. Add bounded session-scoped caching and coalesce concurrent identical reads where appropriate. Invalidate after writes, inventory generation changes, reconnect/profile/credential/region changes and expiry; preserve fresh backend validation before every mutation. Do not cache mutations, console URLs or console output, and do not persist sensitive dialog data. Validate reopen, concurrent callers, cancellation, invalidation and affected UI flows outside the source repository. ## Implemented locally Commit `6df1532` (pushed to origin/main) covers the user's extended request to inspect all dropdown fields, including networking. - Added a bounded memory-only read cache (30-second validity, 64 entries) in OperationClient. It covers instance/network preparation, image/volume/snapshot/launch preparation, flavor pages and paged choices. - Identical pending reads coalesce. Closing the first dialog does not cancel the read needed by an immediately reopened dialog. Callers receive independent clones, so unsaved field edits do not alter cached values. - Cache reuse is bound to profile, view, activation, credential revision, project/region scope and inventory generations. Writes clear it before/after outcomes; explicit inventory refresh and view destruction clear it. Errors and malformed preparation responses are not cached. Console URLs/log output are never cached; fresh backend mutation validation remains unchanged. - Picker mounting no longer waits a fixed 250 ms. Only changed search text is debounced. Refresh list bypasses a completed cached page. - Shared Select and row menus now use one viewport/chrome placement helper with available height and left-aligned options. Home/End skip disabled Select options. Native demo select fields were inspected: their options are local fixtures, with browser-native menus and no OpenStack fetch on opening. ## Validation Svelte check passed with zero errors/warnings; Vite build passed. Out-of-repository cache checks covered TTL/LRU, form-copy isolation, all preparation kinds, flavor/choice reuse, force refresh, a cancelled first caller, profile/view/activation/credential/scope/inventory invalidation, writes, failed/malformed responses, invalidated in-flight reads not repopulating the cache, and uncached console/log calls. Browser checks of the real CloudProfile and OperationClient with synthetic IPC covered repeated VM Edit/interface/resize/volume/IP/security-group/console fields, network/subnet/port editing including VNIC options, image/volume actions and launch availability zones. Identical preparations were requested once across reopenings; choice pages were reused, explicit refresh fetched anew, and opening local dropdowns performed no operation/choice request. Additional checks covered cancellation then immediate Edit reopen while preparation was delayed, grouped/disabled options, Home/End/wrap navigation, window chrome, tall menus and small viewports. No new dependencies, test suites or generated artifacts were committed. Desktop packaging/runtime confirmation on the user's system remains outstanding; issue remains OPEN for that confirmation. Behavior is documented in docs/ACTION-DATA-CACHE.md.
Alex closed this issue 2026-11-05 19:40:11 +01:00
Sign in to join this conversation.
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Alex/openstack-dashboard-app#15
No description provided.