Oleg Isonen 534401c66b fix: keep publish progress after closing popover (#6570)
## Summary
- Show the existing validation success toast if validation finishes
after the Publish view closes or switches to Export. Keep it quiet while
the result is visible in Publish.
- Keep publish progress running when the popover closes. Reopening shows
a pending state without restarting the countdown and updates when
publishing finishes.
- Show a completion toast only after the Publish popover closes. Keep
errors and diagnostic findings visible across panel remounts.
- Continue polling a recovered pending build after the popover closes.
Ignore old status responses and superseded manual validation results.
- Keep a manual validation report and its “See issues” button available
after closing and reopening the Publish popover.

## Checklist
- [x] Consolidate publish progress and validation state. The PR's net
non-test change is down from +560 to +457 lines.
- [x] Cover the close/reopen validation result and suppress duplicate
publish-error toasts while Publish is open.
- [x] Run focused tests, Builder typecheck, lint, formatting, and
required CI after the simplification.
- [x] Show the existing validation success toast when validation
finishes outside the Publish view; suppress it while the inline result
is visible.
- [x] Prove the open and closed outcomes with a failing-then-passing
regression test.
- [x] Clear a persisted status error when a successful refresh finds no
build, while preserving request errors.
- [x] Prove the no-build case with a failing-then-passing regression
test and recheck docs, fixtures, and 55 focused tests, typecheck, lint,
formatting, and diff checks.
- [x] Show validation completion when the user switches to Export before
the result arrives, with a failing-then-passing regression test.
- [x] Resolve reviews and pass CI on commit 1b532637a7.
- [x] Cover countdown, completion, errors, remounts, recovery,
navigation, and stale responses with regression tests.
- [x] Keep manual validation findings and the report button visible
after closing and reopening the Publish popover.
- [x] Verify the new regression test fails before the fix and passes
after it.
- [x] Pass 37 targeted tests, Builder typecheck, lint, formatting, and
diff checks.
- [x] Review documentation impact and fixture inputs. The publishing
guide already covers validation reports; no fixture inputs or generated
outputs are affected.
- [x] Resolve all existing review threads.
- [x] Pass all CI workflows on commit 428dee3d35.
- [x] Preserve validated domain selection across popover remounts.
- [x] Ignore delayed diagnostics from superseded publish attempts.
- [x] Guard publish polling across A → B → A navigation.
- [x] Show a recovered failed build after a lost publish response.
- [x] Recheck reviews and CI on commit 51573cd848.
- [x] Suppress publish success toasts whenever the Publish popover is
open, including stale project completions and the Export view.
- [x] Verify both changed regression tests fail before the fix and pass
after it.
- [x] Recheck documentation impact and pass 38 targeted tests, Builder
typecheck, lint, formatting, and diff checks.
- [x] Suppress the validation success toast while the Publish popover
shows its validated state.
- [x] Recheck documentation impact and pass 38 focused tests, typecheck,
lint, formatting, and diff checks.
- [x] Restore validated domain selections through the visible checkbox
state and verify submitted domains match.
- [x] Recheck documentation impact and pass 51 focused tests, Builder
typecheck, lint, formatting, and diff checks.
- [x] Keep the visible checkbox selection in sync when validation
finishes after the popover reopens, without resetting a later user
change.
- [x] Resolve the late-validation review thread and pass CI on commit
3de717d993.

## Verification
- Commit 3d54f6c775 passed all four CI workflows, including all 19
main-workflow jobs and six Builder E2E shards. All review threads are
resolved.
- The close/reopen validation test failed before the fix and passes
after it. The adjusted stale-poll test failed when its ownership guard
was disabled and passed when restored. All 98 Publish feature tests,
Builder typecheck, oxlint, oxfmt, and diff checks pass locally. The
source changes do not affect documentation or fixture inputs.
- Commit 1b532637a7 passed Lint PR, Check submodules, Visual regression,
and Main workflow. All six Builder E2E shards passed. The fixture size
job passed on rerun after its first attempt failed because a React
Router fixture build could not find `build/client/.vite`. All review
threads are resolved.
- The Export regression failed before the fix and passes after it. All
38 focused tests, Builder typecheck, lint, formatting, and diff checks
pass locally. No documentation or fixture inputs are affected.
- The no-build regression test failed before the fix and passes after
it. It verifies that a request error remains visible. All 55 focused
tests and static checks pass locally; no documentation or fixture inputs
are affected.
- The validation toast regression test failed before the fix and passes
after it. All 54 focused tests, Builder typecheck, oxlint, oxfmt, and
diff checks pass locally. No documentation or fixture inputs are
affected.
- Commit 3de717d993 passed Lint PR, Check submodules, Visual regression,
and Main workflow. All six Builder E2E shards passed; shard 3 passed on
rerun after an unrelated Pages drag test failed its first attempt.
Review threads are resolved.
- The late-validation regression test failed before the controlled
checkbox update and passes after it. It checks visible state, submitted
domains, and selection after the report clears. All 51 focused tests,
Builder typecheck, lint, formatting, and diff checks passed.
- The reopened domain checkboxes and submitted form values now match.
The UI regression test failed before the fix and passes after it; it
also checks that toggling a restored checkbox changes the submitted
domains.
- The Validate action already shows “Validated” after success; the
redundant toast is removed. The existing action test covers that state.
- 38 targeted tests passed locally. Builder typecheck, oxlint, oxfmt,
and `git diff --check` passed.
- Commit 428dee3d35 passed all CI workflows, including visual regression
and six Builder end-to-end shards. Latest commit 51573cd848 passed lint,
submodule, visual regression, and the main workflow. All six Builder
end-to-end shards passed; shard 5 passed on rerun after an unrelated
Form feedback test failed, and shard 2 passed on rerun after GitHub
cancelled its first attempt.
2026-10-21 11:38:52 +02:00
2026-07-12 11:27:58 +02:00
2026-02-05 10:25:17 +01:00
2026-03-20 21:09:47 +01:00
2023-09-06 21:43:29 +03:00

builder-screenshot

Webstudio is an Open Source Visual Development Platform for developers, designers, and cross-functional teams. You own the data, components, and infrastructure. You can use the hosted version or roll out your own.


Learning Resources

Social Media

License

  • Webstudio core (all functionality in this repository) is free/open-source under AGPL-3.0-or-later.
  • sdk-components-animation package (optional) is proprietary. You must accept the Webstudio, Inc. EULA located in sdk-components-animation/LICENSE before using it.
Languages
TypeScript 98.9%
PLpgSQL 0.5%
CSS 0.3%
Shell 0.2%
JavaScript 0.1%