Repository navigation
Make reader signup prompts dismissible and coordinated - #77
Conversation
PR reader API performanceResult: INCONCLUSIVE 1 improved · 1 inconclusive · 6 within threshold. Zero request failures across all six runs. Base Three independent runs per revision, each on a fresh GitHub-hosted ARM64 runner. 16 users, 60 seconds/run, 1,000 synthetic articles, cache off, five PgBouncer slots. Latency comparisonAll latency values are in milliseconds; lower is better. Values are medians of three runs.
Additional latency and throughput metricsEach cell shows base → PR. Latencies are in milliseconds.
Individual runs
How to interpret this reportRegressed / Improved: a p95 regression needs >20% and >20 ms increase in the medians and at least two head samples versus the base median. Improvements use the inverse threshold. Within threshold means the change did not meet both thresholds. Inconclusive: a within-revision p95 range >35% of its median and >20 ms is too noisy for a confident latency verdict. Inconclusive latency comparisons are non-blocking: the check passes without claiming an improvement. Confirmed regressions and test/report errors fail the PR gate. Throughput is descriptive: paced users do not measure maximum capacity. This uncached public API test does not establish production health, browser performance or worker capacity. Separate runners can differ in hardware or host load; repetitions and noise checks reduce but cannot eliminate that uncertainty. Full HTML/CSV reports and logs · attempt 1 |
Code Review ✅ Approved🟡 Medium risk · Coordinates reader invitations and session dismissals across web and browser extensions. Makes reader signup prompts dismissible with a Not now button and coordinates signup, topic onboarding, and Dev Card invitations through a shared provider to prevent competing dialogs. Dismissed prompts are suppressed for the session, existing Dev Card refusals and signed-in completion states are preserved, and the banner sits above mobile navigation with touch-sized controls. Comprehensive validation across 787 web unit tests, 29 extension unit tests, browser journeys in Chrome and Edge, and desktop/mobile screenshots confirms the implementation. No issues found. OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
|



What changes and why?
After three articles, guests could receive a signup banner with no dismissal control while other account prompts competed for their attention. Add Not now and coordinate signup, topic onboarding, and Dev Card invitations through one shared reader provider.
/dev-cardcreator route.Validation
Updated against master after #76 and the separate reader touch-fixture prerequisite #87. Hosted CI passes on
4424c0c895800a6660ef94ee7194359b20e3a491, includingCI required, all CodeQL analyses and both Sonar checks. Auto-merge remains disabled.Rollout notes
Existing
devfeed:dev-card-promo-dismissedsession values now suppress the signup banner too. If browser storage is blocked, a full reload resets the in-memory refusal. Updated web and extension builds are needed for consistent behavior. This PR does not deploy or publish extensions.Ready for review