Repository navigation
Reader upkeep: browser audit drift, development guide and vendor pruning - #196
Open
callumalpass wants to merge 8 commits into
Open
callumalpass wants to merge 8 commits into
callumalpass wants to merge 8 commits into
Conversation
The pointer close handler called a bare close(), which resolved to window.close() because the dock's closer only exists inside the keyboard effect. Clicking a tab's close button therefore never reached Reader's dirty-tab confirmation. Call dock.close like the Delete key does.
Keep this branch's pin-derived SDK test, and drop the beta.209 production archive and metadata the repin superseded.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dock.close, and shared disclosure menus now escape scrolling ancestors through the same portal/viewport-positioning mechanism as library row menus.Commits
de2b46b9docs: explain current Reader development and SDK refreshes376c90bechore: retain only current Reader SDK originals and pins086ebee8test: align Reader browser audits with current library and editor flowsbaa666abfix(reader): route the tab close button through the dock's close guard (preserved unchanged)a03b73b4fix(reader): share viewport-positioned portals for disclosure menusaac1edf7test(reader): expose navigator tabs before native docking gestures3fbcfd57fix(reader): preserve focus reset when a row menu target changesValidation
All commands below pass on final head
3fbcfd57789fc855b70bd5cdba4780ac0fb20908. Finite code/build gates userpnpm; browser fixtures run locally in isolated Chromium. Browser runs setTMPDIR="$PWD/.scratch/menu-fix"andPLAYWRIGHT_BROWSERS_PATH="$PWD/.scratch/reader-upkeep/playwright-browsers".rpnpm check— lint, Prettier format check, architecture checks/tests, typecheck, 175 publisher tests, workspace tests (Reader: 204 files / 1,125 tests) andpnpm i18n:checkall pass.rpnpm --pull apps/reader/dist build— full workspace build passes, including i18n and offline-shell verification.rpnpm --pull apps/reader/dist --filter @mdbase-reader/app build:feedback-test— configured feedback build passes.pnpm --filter @mdbase-reader/app test:browser— all 40 full-audit checks pass with an external 600-second upper bound. A diagnostic completing run also usedDEBUG=pw:api; assertions/timings were not relaxed.READER_AUDIT_ANNOTATIONS_ONLY=1 pnpm --filter @mdbase-reader/app test:browser— passes, including actual Hide column clicks, start/end alignment, a short scrolling table at the viewport's right/bottom edges, Tab/Shift+Tab, Escape focus restoration and outside-click dismissal.READER_AUDIT_READING_ONLY=1 pnpm --filter @mdbase-reader/app test:browser— passes.pnpm --filter @mdbase-reader/app test:html-svg— passes.pnpm --filter @mdbase-reader/app test:pdf-touch— passes both native-handle and workspace/persistence checks.READER_FEEDBACK_TEST_ORIGIN=http://127.0.0.1:8891 pnpm --filter @mdbase-reader/app test:feedback— desktop/mobile acceptance passes; every delivery is intercepted.git diff --check origin/main..HEAD— passes; worktree is clean.At 390px the existing responsive design intentionally hides table column headers. The browser regression checks the reachable shared annotation-view menu at that width, including real action activation and Escape focus restoration. Desktop regressions exercise both column alignments and the table at the actual right/bottom viewport edges. Screenshots were inspected in both cases.
Stall diagnosis and limits
The reported renderer-residency stall did not recur: the full audit visited twenty HTML documents, measured residency rising from one to four and remaining at four, and verified evicted-location recovery. A separate repeatable stall occurred later in
mouse.movewhile the old docking audit dragged a navigator tab hidden byreader-shell.css; the test setup above fixes that unreachable gesture while retaining real mouse and native-touch docking assertions. The final full run passes both.Early portal-scoped selector/fixture failures were corrected. One tool-runtime reset stopped the owned local server and interrupted remote clients; owned stale leases were cleaned up and interrupted checks rerun. These attempts are not counted as passes.
User-visible behavior: dirty-tab close confirmation works, and shared menus stay available outside scrolling containers and flip/clamp within the viewport instead of using separate hard-coded placements. No UI text, dependency pins, persisted formats, authorization policy or SDK surface changed. No SDK gap or remaining product defect was found in this lane. Existing nonblocking bundle-size/source-map, architecture-size and test-act warnings remain out of scope.
Qualification is Chromium with local disposable fixtures and emulated phone/touch input, not WebKit, native hardware, production or a real collection. No deployment, SDK refresh or real feedback delivery was performed. No merge or review request is included.