Skip to content

fix(configurator): preserve editor input and latest saved list - #111

Merged
lweberru merged 1 commit into
mainfrom
fix/configurator-configuration-list-race
Oct 16, 2026
Merged

lweberru merged 1 commit into
mainfrom
fix/configurator-configuration-list-race

Conversation

@lweberru

Copy link
Copy Markdown
Collaborator

Release blocker and proven causes

Release 38969098107 passed the complete exact-source real-model gate (114/114 plus dialogue 13/13) but its full browser build gate failed: a saved configuration retained its old name (307/308 cases passed). The failed run remains failed; it is not promotable.

Instrumented synthetic focus/input traces showed that the first session lookup replaced the entire keyed catalogue/editor subtree while a textbox was focused, before its first input event. A delayed-session regression then deterministically failed focused-node identity on both viewports. Investigation also proved that an older initial list response could overwrite a successful post-save refresh; its delayed-response regression failed on both viewports.

Fix

  • Use the existing identity-change reset boundary to advance a workspace epoch and remount scoped catalogues only on actual identity/workspace changes, not the first guest-to-known-session lookup. Logout and cross-tenant resets remain intact.
  • Bind list responses/errors to the latest request and capture each refresh abort signal.
  • Extend the existing save/reopen/revision-conflict/delete journey with controlled delayed session and initial-list responses, exact DOM identity and typed-value checks. No retries, larger timeouts or weaker assertions.
  • Document the ordering/reset invariants for contributors.

Validation

  • Pinned Node 24.21.0 / npm 11.19.0; npm run check passed: static knowledge freshness, lint, type-check, build; 809 unit tests passed, 66 environment-dependent tests skipped.
  • Deterministic affected desktop/mobile journey: 40/40 passed (20 repetitions each, not model repetitions).
  • Complete Playwright suite: 308/308 passed.
  • Before-fix deterministic failures retained as evidence; temporary instrumentation removed.
  • git diff --check passed. No Assistant facts/oracles/capabilities changed and no customer Apply/cloud mutation performed.

The normal full manual release still has to qualify and build the exact merged source before activation.

Do not remount the editor during the initial guest-to-known-session lookup. Continue to reset the draft and scoped catalogue provider on actual identity/workspace changes. Prevent obsolete initial list responses and errors from overwriting a post-save refresh.

Deterministically reproduce both orderings in the existing save/reopen/revision/delete browser journey, including stable focused-input identity. Preserve all original assertions; no retries or timeout increases.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@lweberru
lweberru merged commit d154d09 into main Oct 16, 2026
13 checks passed
@lweberru
lweberru deleted the fix/configurator-configuration-list-race branch October 16, 2026 22:09
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.

1 participant