Skip to content

fix(shell): centralize compact navigation overflow#420

Merged
ucguy4u merged 1 commit into
mainfrom
codex/issue-418-nav-overflow-policy
Jun 28, 2026
Merged

fix(shell): centralize compact navigation overflow#420
ucguy4u merged 1 commit into
mainfrom
codex/issue-418-nav-overflow-policy

Conversation

@ucguy4u

@ucguy4u ucguy4u commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR introduces changes to shell navigation behavior.
Goal: centralize compact-phone destination overflow so root navigation density stays consistent and feature routes do not fork their own affordances.

Core outcome:

  • adds one shared compact navigation policy with a four-tab phone budget
  • routes lower-frequency destinations through a central More overflow entry on narrow screens

Changes

Code

  • Added:
    • shared compact navigation policy and overflow layout config in navigation_provider.dart
    • widget coverage for overflow rendering and selection in app_shell_navigation_policy_test.dart
  • Updated:
    • app_shell.dart to render direct destinations plus a shared overflow entry on compact widths
    • provider tests for compact vs wide navigation behavior
    • mobile UI standards with the default compact policy

Logic

  • phones under the shared compact breakpoint keep Coins, Mind, Beats, and Stream visible
  • Arena and Quest move behind one shared More destination on compact layouts
  • larger layouts continue to render the full primary destination set from the same shared source of truth

API Changes (if any)

  • None.

Database Changes (if any)

  • None.

Observability / Logging

  • None.

Performance Impact

  • Latency: no meaningful change expected
  • Throughput: no meaningful change expected
  • Memory/CPU: negligible UI-only impact

Risks

  • compact navigation now relies on the overflow sheet for Arena and Quest
  • future root destinations must be added through the shared policy or the budget can drift
  • Rollback plan:
    • revert this PR to restore six persistent bottom-nav destinations on phones

Testing

  • Unit tests:
    • flutter analyze lib/core/providers/navigation_provider.dart lib/core/app/app_shell.dart test/core/providers/navigation_provider_test.dart test/core/app/app_shell_navigation_policy_test.dart
  • Integration tests:
    • none
  • Manual testing:
    • not run

Deployment Notes

  • Config changes:
    • none
  • Order of deployment:
    • normal app deployment

Related Commits

  • fix(shell): centralize compact navigation overflow

Notes

- define one shared compact navigation policy for phone layouts
- move Arena and Quest behind a shared More entry on narrow screens
- add provider and widget coverage for overflow rendering and selection
- document the default compact navigation policy in mobile UI standards

Keeps destination truth centralized while reducing persistent bottom-nav density on phones.
@github-actions

Copy link
Copy Markdown

Plugin Module Size Gate

Policy: modules over 3 MB must be delivered as plugins; plugin modules over 5 MB must document cache management.

Module Size Type Status
No changed Dart/Flutter modules detected n/a n/a OK

@ucguy4u ucguy4u merged commit b24b992 into main Jun 28, 2026
8 of 12 checks passed
@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown

🚀 PR Quick Check Summary

Check Status Description
PR Validation ✅ success Title format, docs, bundled model guardrail
Code Quality ❌ failure Analyze, formatting
Core Tests ✅ success Core package unit tests

💡 Note: Full app tests, coverage reports, and security scans run on merge to main.

View Details

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.

[AGENT] UIUX-007: Centralize navigation overflow and hamburger policy

1 participant