Notechondria

Version: 0.1.10 Build Date: 2026-04-08T00:00

What's Changed

Social account binding and OAuth login rejection

  • Added _BindOAuthMixin, BindGoogleApiView, and BindGithubApiView backend endpoints for authenticated users to link/switch/unlink their Google and GitHub accounts.
  • Added intent parameter (login/register) to GoogleOAuthSerializer, GitHubOAuthSerializer, and _get_or_create_oauth_user. When intent=login and no matching account exists, returns 404 with code: "not_registered".
  • Added listSocialAccounts, unlinkSocialAccount, bindGoogle, and bindGithub methods to the client in all three frontend apps.
  • Added _ConnectedAccountsSection widget in settings for all three apps: shows Google/GitHub rows with Link/Switch/Unlink actions.
  • Added "Or sign in with" Google/GitHub buttons in the _AuthHub login dialog across all three apps.
  • OAuth callback handler now supports intent=bind flow via SharedPreferences persistence, and shows a SnackBar when login is rejected for unregistered accounts.

Splash animation improvements

  • Redesigned splash screen: cycle axis is now at the left center of the screen with radius spanning to the screen center.
  • Cycle rotates so the active metabolite is always at the screen center (rightmost point of the arc).
  • Increased all text sizes: metabolite labels 14-16pt (was 9-10pt), byproducts 13pt (was 8.5pt), center label 18pt (was 11pt).
  • Nodes scale up: active 10-13px (was 6-8px), inactive 7px (was 4.5px).
  • Smart label alignment: left-aligned on right side of arc, right-aligned on left side, center-aligned at top/bottom.
  • Smooth edge fade for nodes entering/leaving the visible arc.
  • App title and loading text moved to bottom-right overlay using LayoutBuilder for full-screen layout.

Slide-in animation for note view to editor

  • Note viewer dialog now uses _showSlideInDialog (slide+fade) instead of default showDialog (scale+fade), providing consistent slide animation when opening notes.
  • Increased slide distance from 8% to 30% of screen width for a more noticeable page-push effect.
  • Transition from viewer to editor now has matching slide animations: viewer slides out while editor slides in from the right.

Files Changed

  • backend/creators/api.py -- Added _BindOAuthMixin, BindGoogleApiView, BindGithubApiView, intent parameter to OAuth flow
  • backend/notechondria/api_urls.py -- Added auth/bind/google/ and auth/bind/github/ URL routes
  • frontend/editor_app/lib/core/client.dart -- Added listSocialAccounts, unlinkSocialAccount, bindGoogle, bindGithub; updated loginWithGoogle/loginWithGithub with intent param
  • frontend/editor_app/lib/core/helpers.dart -- Increased slide-in dialog offset from 0.08 to 0.3
  • frontend/editor_app/lib/components/auth_dialogs.dart -- Added Google/GitHub sign-in buttons to _AuthHub
  • frontend/editor_app/lib/components/splash_screen.dart -- Redesigned: full-screen rotating cycle, larger text, axis at left center
  • frontend/editor_app/lib/modules/settings.dart -- Added _ConnectedAccountsSection, social account management callbacks
  • frontend/editor_app/lib/modules/learner.dart -- Changed viewer to use _showSlideInDialog
  • frontend/editor_app/lib/app_shell.dart -- Added OAuth intent/bind flow, social account callbacks to settings
  • frontend/planner_app/lib/core/client.dart -- Same client updates as editor
  • frontend/planner_app/lib/components/auth_dialogs.dart -- Added Google/GitHub sign-in buttons
  • frontend/planner_app/lib/components/splash_screen.dart -- Same splash redesign as editor
  • frontend/planner_app/lib/modules/settings.dart -- Added _ConnectedAccountsSection
  • frontend/planner_app/lib/app_shell.dart -- Added OAuth intent/bind flow, social account callbacks
  • frontend/portal_app/lib/core/client.dart -- Same client updates as editor
  • frontend/portal_app/lib/components/auth_dialogs.dart -- Added Google/GitHub sign-in buttons
  • frontend/portal_app/lib/components/splash_screen.dart -- Same splash redesign as editor
  • frontend/portal_app/lib/modules/settings.dart -- Added _ConnectedAccountsSection
  • frontend/portal_app/lib/app_shell.dart -- Added OAuth intent/bind flow, social account callbacks
  • VERSION -- Bumped from 0.1.9 to 0.1.10
  • sample.env -- Updated image tags to v0.1.10.local
  • docs/versions/0.1.10.md -- This version document
  • docs/TASKS.md -- Marked completed items