Skip to content

fix(notifications): retain initial reads and verify release behavior - #324

Merged
ael-dev3 merged 15 commits into
mainfrom
fix/release-validation
Oct 24, 2026
Merged

ael-dev3 merged 15 commits into
mainfrom
fix/release-validation

Conversation

@ael-dev3

@ael-dev3 ael-dev3 commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

Changes

Opening Notifications while its split module loads now shares the bell's initial read. A failed initial read stays visible until the reader chooses Try again, and a fresh answer is reused instead of being read twice. Regression tests delay the real split module to reproduce both paths.

Profile cards cannot queue a hover reopening while their closing animation runs. A trusted-pointer regression reproduces the previous Escape dismissal failure; the original CI event sequence was not captured, so it is not claimed as a proven diagnosis of that run.

The release browser checks now follow the current feed contract: seen rows are restored through Show seen posts, pagination proves the failed request was retried, wallet checks use the actual RPC results, and upload checks ignore unrelated analytics requests. Debounce and reply-layout checks control their setup without changing the product's timing limits.

Miniflare's nested Undici is pinned to 7.30.1 for its content-encoding, EventSource, and integrity-check security fixes. The override applies to the current Miniflare version; Wrangler, Miniflare, workerd, and the SDK's separate Undici copy retain their versions.

Validation

  • Required local checks: 605 Rust tests, formatting, native/WebAssembly/static Clippy and license audit.
  • Tool tests: 28 passed. Optimized Worker/browser build passed.
  • Fresh isolated npm install and audit: zero vulnerabilities. With the patched server, all 15 Worker/D1 and notification browser regressions passed without retries.
  • Focused browser regressions: 54 other cases passed; both corrected search cases passed separately. All 12 notification cases passed, including the delayed failed-read and fresh-cache regressions. The failed pre-fix runs are retained.
  • Live page checks: 44/44 passed with one worker and zero retries, including the strict 100 ms post-opening check (75 ms). Request pacing runs between cases and rejects any HTTP 429.
  • All previous 902 browser case IDs are retained, with one new Escape regression: 903 cases across the quiet, live and general phases.
  • Strict local phone check with raw diagnostics: 34 passed, two existing fixmes skipped, zero retries. Raw samples are attached only after the profile closes; browser probes and metric inputs are unchanged.
  • The new Escape regression fails on the old runtime. The optimized fixed build passes 32 focused hover, keyboard, touch, nested-card and wallet checks, with two existing skips and zero retries. Both strict smoothness profiles pass 70 checks with two existing fixmes; all 72 raw samples are retained. The static build passes 17 checks with 12 declared skips, without retries.
  • No performance budgets, CI triggers, required checks or deployment behavior changed.

An earlier strict local phone measurement failed the 50 ms overlapping-task limit (64 ms median) while the host had a 0.59 CPU share. That failure is retained and its cause is not established; the later diagnostic run does not replace final deployed verification. No threshold changed or failure was waived. Clean independent CI and final untraced production verification remain required.

The initial PR CI run passed the 605 native and four module tests, then stopped at the npm security audit before any browser tests ran. Its failure is retained; the dependency patch requires a new clean run.

The security-patched CI run passed native/module checks, the audit and quiet smoothness, but failed the strict flake gate when one profile card remained open after Escape. Functional fixtures reported 758 passed, one flaky and 21 skipped; quiet smoothness reported 70 passed and two existing fixmes. Static tests did not run. The recovered retry remains a failure, and the follow-up source fix needs a clean new exact-head run.

Production verification and the complete source-pinned browser suite follow the normal main deployment. The owner creates the release tag.

@ael-dev3
ael-dev3 merged commit e90efc5 into main Oct 24, 2026
5 checks passed
@ael-dev3
ael-dev3 deleted the fix/release-validation branch October 24, 2026 10:45
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