Repository navigation
feat(ui): refine mobile sidebar controls, gestures, and title sizing - #208
Conversation
|
Review-only companion: andrebrait#75 |
|
Condensed adversarial review completed: no blocking findings. Addressed safe-area spacing and a toolbar min-size interaction, and clarified Escape dismissal documentation. The optional file-drag interception suggestion was not adopted: attachment handling remains with the existing composer/drop flow. Latest-upstream desktop/mobile smoke confirms the header control opens the panel below the bar, with no duplicate in the composer. CI identified the old SSR-only compact-toolbar title assertion; it is being removed because that location is deliberately obsolete, rather than re-pinning markup. The integrated production build will run the full regression suite before deployment. |
Squashed from origin/fix/session-info-topbar (e92e38f) onto upstream/main.
|
Deployment gate: integration build passed at 05f0c65 (latest upstream c4f89b6 plus all open PRs #200 and #208). The integration script verified origin/deploy/integration after pushing. Production artifact: /opt/ompweb-patched/releases/05f0c6565f97. Upstream Linux/Windows CI is green. Codex on the matching companion completed against e92e38f without major issues; CodeRabbit is still reviewing. Deploying the verified integration release, then verifying the actual frontend on port 30179 and API on 30185. |
Squashed from origin/fix/session-info-topbar (adc77f3) onto upstream/main.
|
Final release gate: shared head adc77f3 has green Linux and Windows CI (run 37249200246). Integration d382f13 passed production build, lint, and the full test suite and is verified pushed to origin/deploy/integration. Review handling: Codex completed without major issues. CodeRabbit focus finding fixed and browser-verified; its right-panel overlap finding was disproved with deployed bounding-box and inert-overlay evidence. Both companion review threads are resolved. Deploying artifact /opt/ompweb-patched/releases/d382f13739f7, then checking the actual production frontend and final /session focus restoration. |
|
Final deployment verified after restart: both ompweb-pwa.service (30179) and ompweb-api.service (30185) are active on d382f13. The recorded deployment receipt and current release agree. Actual deployed frontend smoke (not a dev preview): session-information button is in the top-right header only; desktop 1440px button at (1368,4), mobile 320px button at (232,0) with a 44px touch target. The stats panel opens below the header and fits the viewport. /session focuses the panel, and Escape restores the composer. Shared PR head: adc77f3. Linux/Windows CI green. Condensed adversarial review completed; Codex completed without major issues; both CodeRabbit threads resolved (one verified false positive, one fixed and smoke-tested). origin/deploy/integration is verified pushed at d382f13, so the open PR remains carried by future integration rebuilds. |
|
Follow-up mobile refinements are being implemented in an isolated worktree, without modifying the primary checkout or concurrent worktrees: header relocation becomes mobile-only, the fixed right toggle becomes borderless/full-height, the left mobile drawer becomes full-screen with a visible close control, and the title is centered/widened. Recovered the previously omitted effort-icon/layout work into its own PR: #209. Both PRs will be carried by a fully rebuilt integration before deployment; no one-off preview deployment. |
|
Responsive refinements are now published on shared head 5450ccc; Linux and Windows CI are green. The single condensed adversarial review found two header issues (Settings observer re-attachment and Compact-mode CSS specificity), both fixed and browser-verified. Full local suite passed 1,131 tests with 5 platform skips and no failures; typecheck and lint have no errors. Canonical competing effort work is #210, not closed duplicate #209; message actions are #212. Integration prs verified all current heads (#200, #208, #210, #212) without rewriting any other contributor worktree. Rebuilding all four contributions for the single production API/UI service on port 30185. No one-off preview deployment. |
…r chrome Squashed from origin/fix/session-info-topbar (5450ccc) onto upstream/main.
|
Latest requested composer correction is published in 283409c: model remains left; effort/Fast/Slow/microphone/Send-or-Stop form the right-hand cluster. The existing spacer now precedes effort, mobile no longer hides it or adds a second auto margin before Send, and wrapped rows justify to the right. Browser geometry checks passed at 1280/390/320px. Codex Escape finding fixed and tested against the actual global shortcut hook: a visible context panel consumes Escape even after focus leaves it, without aborting a run; other popup priority and closed-panel abort behavior are preserved. No verification scaffolds remain in the commit. Rebuilding every live contribution before deployment. |
…r chrome Squashed from origin/fix/session-info-topbar (283409c) onto upstream/main.
|
Final deployment gate: shared head 283409c is green on Linux and Windows (run 37263321226). The combined integration build, lint, and full test suite passed at 9559aa0, and origin/deploy/integration is verified pushed. The current contribution set exactly matches the recorded squash sources: #200 9dbf567, #208 283409c, #210 fa2d4f9, #212 c596539. No competing contribution is omitted. CodeRabbit completed the requested responsive review without actionable comments; Codex Escape finding is fixed, browser-proven, and its review thread resolved. Deploying only through integration deploy to the single production ompweb-api.service on port 30185. The API restart may interrupt this session; after resume I will verify the actual live mobile/desktop controls, full-screen left drawer, centered title, and right-group alignment. |
|
Live deployment verified: the single production ompweb-api.service on 30185 is active on integration 9559aa0; the retired ompweb-pwa service remains inactive. Current release and deployment receipt agree. Actual production browser checks passed:
The complete current contribution set (#200, #208, #210, #212) is preserved in this fully built and pushed integration. Linux/Windows CI is green; condensed and bot review findings are resolved. No one-off deployment or temporary verification page is shipped. |
…r chrome Squashed from origin/fix/session-info-topbar (fb925ca) onto upstream/main.
…r chrome Squashed from origin/fix/session-info-topbar (fb925ca) onto upstream/main.
|
Live verification: deployed through the complete integration at 64af91c, carrying #200, #208, #210, #212 and #213 at their current heads. Single ompweb-api unit active; retired ompweb-pwa remains disabled/inactive. Actual browser on port 30185: 320/390/768/1024/1440px confirms header-owned opener, in-panel right-aligned X, keyboard closure/focus restoration, correct mobile-only context placement, and no horizontal overflow. Mobile pointer close and modal Escape pass; full-screen left drawer remains intact. Linux/Windows upstream CI green. Requested reviews continue on identical fork companion andrebrait#75. |
|
Review round complete for fb925ca: both Codex and CodeRabbit finished on identical companion andrebrait#75 without actionable findings. CodeRabbit confirms covered commit fb925ca; its generic docstring warning is not a project gate, and its sandbox ESLint install timed out. Local typecheck/lint and full suite passed, and Linux/Windows CI is green. Live integration verification already recorded above. |
|
Follow-up: restore the missing bottom border on the mobile close-button cell. One mobile-only CSS declaration using var(--border); 44px touch-target dimensions and desktop styles unchanged. Actual browser regression fails before (0px border), passes after at 320/390/640px (1px solid); 768/1440px remain borderless. Auto/Compact/Accessible CSS modes verified. Typecheck/lint passed with existing warnings; full suite 1,131 passed, 5 skipped. Will deploy through the complete integration. |
…r chrome Squashed from origin/fix/session-info-topbar (5380ce4) onto upstream/main.
|
Border correction is deployed through the complete five-PR integration at 71a3c6c. Actual browser at port 30185 confirms continuous 1px mobile border at 320/390/640px with unchanged 44x44 close button; desktop 768/1440 remains borderless. Pointer close returns keyboard focus. Single ompweb-api is active; retired ompweb-pwa remains inactive/disabled. Linux/Windows CI and Codex review passed. CodeRabbit declined due to its review cooldown; retry is scheduled for the announced reset rather than treating its older review as coverage. |
…r chrome Squashed from origin/fix/session-info-topbar (5380ce4) onto upstream/main.
…and title sizing Squashed from origin/fix/session-info-topbar (a723131) onto upstream/main.
…and title sizing Squashed from origin/fix/session-info-topbar (f12d622) onto upstream/main.
|
Live integration 78cb732 is deployed, carrying the current heads of #200, #208, #210, #212, #213 and #214. Trusted Chromium touch input on port 30185 verifies all four mirrored edge gestures at 320/390/640px, owning-drawer focus, realistic small-step swipes, native chat scrolling, and protection of the actual reasoning menu and slash picker. A sandboxed iframe fixture scrolls natively and closes through its parent-owned edge. Short/long title fixtures at 390/1440/1920 show content-sized short names and bounded expansion; the restored session title is visibly no longer stretched. Linux/Windows CI is green at f12d622; source suite 1,140 passed, 5 skipped. Codex popup finding was fixed by its suggested selector extension and resolved. Updated-head bot review requests remain pending on identical companion andrebrait#75. |
…and title sizing Squashed from origin/fix/session-info-topbar (146c1de) onto upstream/main.
|
Final correction deployed through complete integration c707a78. Actual trusted touch input on port 30185 confirms all four gestures, swipe-close over the real Git changes collection, Explorer-after-Git closing, and continued composer-menu protection. Short/long title sizing remains content-sized and bounded. Current Linux/Windows CI is green; full source suite 1,141 passed, 5 skipped. Both bot reviews completed, actionable findings are resolved, and the final bot-requested ownership fix follows the requested-fix re-review exception. Optional wiring-test nit was intentionally declined per policy. All six current contributions remain integrated. |
Keep the opener in the header and dismissal inside the panel, preserving keyboard focus and reachable controls in narrow layouts.
146c1de to
73aa57f
Compare
Moved from kahme247#208, where it landed by mistake.
…and title sizing Squashed from origin/fix/session-info-topbar (68846b1) onto upstream/main.
|
Published adjustment is deployed through full integration c497a5f. Trusted touch input on port30185 confirms all four gestures at320/390/640 with starts x140/240 inside the screen, not at a device edge. Native horizontal and vertical scrolling remain unclaimed; the real Git collection closes from an interior swipe. The real project menu is dismissed by the first touch without also navigating, and a second deliberate swipe closes its drawer. Source suite1,146 passed,5 skipped; Linux/Windows CI and complete integration build passed. Requested Codex/CodeRabbit review results are still being handled on identical companion andrebrait#75. |
…and title sizing Squashed from origin/fix/session-info-topbar (fb5f536) onto upstream/main.
|
Refinement fb5f536 is deployed through the complete six-PR integration 4e0d172 (integration branch pushed). Actual live Chromium touch input passes curved and shorter swipes, initial correction in both directions, and vertical wobble scrolling without opening a drawer. System popup priority also passes; no page exceptions observed. Full source suite: 1,154 passed, 5 skipped; Ubuntu and Windows CI are green. Codex and CodeRabbit reviewed the identical companion head with no new actionable findings. Physical Android/iOS OS-level gesture arbitration remains a manual-device verification limit. |
Summary
Verification
Recognizer references: react-swipeable's pinned implementation, Hammer pan recognition, MDN touch-action, and Chrome scrolling guidance. Reuse their dominant-axis and recognition-latching approach inside the existing app-specific hook; no dependency added. Browser/OS gesture-navigation arbitration on physical Android/iOS devices is not reproduced by Chromium emulation; buttons remain available.
Review-only companion with identical head/base: andrebrait#75. Deployment uses the complete integration alongside all other current contributions.