Repository navigation
Redesign app UI and streamline VPN connection controls - #263
Merged
Merged
Conversation
added 30 commits
November 3, 2026 12:51
…ber ordinary plans
…w routing Keep one scroll surface with reachable actions on short and large-text screens. Explain routing owned by complete Raw configurations without changing ordinary routing preferences. Validation: 223 connect, routing and launch tests passed; flutter analyze reports no issues.
…olumn pages Separate browsing from explicit selection and preserve full-page draft guards. Isolate damaged routing assets and ignore stale loads. Keep server geography retired and Smart direct-region selection unchanged. Validation: 178 server tests and 223 connect/routing/launch tests passed; flutter analyze reports no issues. Native UI acceptance remains the final stage.
Expose read-only runtime diagnostics, preserve platform capability gates, keep mobile viewer controls touchable and improve muted text contrast. Validation: 402 advanced/settings/shared/data tests passed with one existing platform-dependent skip; layer dependencies and flutter analyze passed. Native acceptance is deferred to the final stage.
…eset Keep local preferences, permissions and backup bindings during resource cleanup. Retain stop confirmation, producer suspension and transactional file/database rollback; document the new single-column navigation and data contracts. Validation: advanced/settings/shared/data suite passed 402 tests with the existing Linux arm64 locale skip; cleanup, backup and preference regressions passed; flutter analyze and layer dependencies passed.
…r catalogs Build auxiliary entry-count catalogs per row. Preserve database stream failures and strict rejection of a selected damaged custom route without silently changing traffic mode. Validation: two real SQLite regression tests passed; flutter analyze reports no issues.
Keep Material/Shad theme mapping, native sizing and typography checks. Allow failed probes in tray selections while preserving unreadable-resource and busy-state rejection. Validation: 19 theme and tray tests passed.
…g imports Let go_router record a pushed page before switching to Settings, coalesce requests and recheck modal admission. Keep incoming links queued until a manual import/editor workflow closes, then deliver them once in FIFO order. Validation: all 40 main navigation tests passed, including pre-frame branch switching, draft preservation and late popup cancellation.
Read the active route match and verify its Page key before adding phone root Settings. Imperative preview routes have no GoRouterState association and must never enter its ancestor lookup. Validation: reproduced the original hang with a bounded 10-second real-router test; PageAppBar 5/5, main 42/42 and import 32/32 passed. Native iPhone replay displayed the same Raw preview, saved it and returned normally; flutter analyze passed.
Use one shared switch wrapper so native accessibility agrees with actual interaction. Keep import previews neutral until committed, report saved subscription resource types, clarify cleanup scopes and shorten the Chinese empty-state hint. Validation: shared switch semantics reproduced red then passed; 274 related page tests and 39 import/cleanup/switch tests passed. flutter analyze reports no issues. Native accessibility and final wording are rechecked in the final UI stage.
Validate the production UI on isolated iPhone 16e and iPad Pro 13 simulators and the ordinary macOS audit instance. Verify single-column pages, JSON dirty/error handling, backup restore, plan switching, unknown-latency startup and real simulator Core traffic. Keep macOS VPN off and preserve the existing SE instance. Final validation: flutter test (2068 passed, 5 existing conditional skips); flutter analyze (no issues); layer dependency check; git diff --check; signed iOS Simulator build and production-entry macOS debug build. Native evidence and explicit device/system limitations are recorded in ../references/onexray-redesign-20261103/research/native-ui-acceptance.md.
Match the approved prototype's type rhythm, semantic colors, CTA shapes, inputs, switches and tabs through the shared Material and Shad themes. Preserve the original AppFontFamily and shadcn bundled Geist/GeistMono without adding NotoSansSC or changing individual page structures. Validate with 2068 passing tests and 5 existing conditional skips, clean analysis and layer checks, signed iOS Simulator and macOS debug builds, and final native theme screenshots on phone, tablet and an isolated macOS instance. Keep macOS VPN off and restore the production macOS entry after the audit.
added 25 commits
November 4, 2026 16:26
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
added 2 commits
November 5, 2026 15:01
Linux uses Copy link instead of Share, which adds a wrapped tool row at phone width. A taller viewport lets the capped footer expand, so only the remaining height belongs to the editor. Assert that allocation and footer anchoring rather than assuming fixed chrome height.
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
Replace the wide detail workspace with consistent navigation and single-column pages across mobile, tablet and desktop.
Evidence
After: Single-column native page checks and editor-frame regressions pass; category selection uses a distinct blue fill with readable text.
3eb98a9f: static analysis reports no issues; 68 selector/theme/server tests and 41 connection/provider regressions pass. Production Debug builds fromlib/main.dartpass for iOS Simulator, macOS and Android APK.git diff --check.Merge Danger
Door: Two-way
No database schema migration is introduced. Previous managed logs are intentionally cleared at the next admitted start and cannot be recovered.
Blast Radius: Cross-platform
Navigation, drafts, connection admission and the Flutter/native bridge change together; rebuild the app and Widget extension together. iOS 15 devices are no longer eligible for this version. Background actions deliberately reuse the last prepared configuration rather than recompiling current database selections. The provider exception changes downstream eligibility; the upstream GPL client retains its general configuration and subscription features.