- Add SavedAccount/AccountStore and rework ServerProvider around a list of saved accounts: switch/remove/add, swipe-to-cycle on the avatar button, per-account browsing prefs (sort/view/filters/cache), and a session-generation guard so a stale fetch from an abandoned account can't land in the newly active one - Migrate existing single-account installs into the new schema automatically so upgrading users stay logged in - Settings gains an Accounts section; LoginView gains an "add account" mode pushed on top of the main shell instead of replacing it - Give every Scrollbar in the app a thicker, draggable, Android-style thumb via a shared ScrollbarTheme instead of the default hairline - Splash screen: use the monochrome app icon (tinted per theme) and a smaller spinner - Update CLAUDE.md and .claude/context/*.md to reflect the accumulated multi-account, sharing, and UI changes across this session, and add a standing instruction to keep these docs current going forward Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1.4 KiB
Noo — Nextcloud Client
A Flutter (Material 3) client for Nextcloud: browse files, view photos, check activity, manage shares/trash. Auth uses Nextcloud's Login Flow v2 — the app never collects a password directly, only a server address.
Detailed, topic-specific context lives in .claude/context/. Read the
relevant file(s) before working in that area rather than loading all of them:
architecture.md— folder layout, state management, navigation/screen flowserver.md— Nextcloud API/WebDAV integration, login flow, session persistencestyling.md— theming, Material 3 conventions, fonts, reusable chrome widgetsstandards.md— code style, comment conventions, linting, testing
Common commands
flutter test # run tests
flutter analyze # static analysis / lints
Keeping docs current
After making a change that affects architecture, server integration,
styling conventions, or code standards, update the relevant file(s) in
.claude/context/ in the same session — don't leave documentation to drift
from the code. This applies whether the change is a new feature, a
refactor, or a convention shift (e.g. a new reusable widget, a changed
state-management pattern, a new dependency). If a change doesn't fit any
existing topic file, add a section rather than skipping the update.