Notechondria
Version: 0.1.57 Build Date: 2026-04-22T18:00
What's Changed
Cross-app dedup — planner_app onto the shared mixins (step 4 of 8)
-
planner_app's
_AppShellStatenow mixes inAppShellLogMixin<AppShell>,AppShellAuthActionsMixin<AppShell>,AppShellOAuthMixin<AppShell>. 348 lines of inline duplicate method bodies dropped fromplanner_app/lib/app_shell.dart:launchOAuth,handleOAuthCallback,log,appendUiLog,register,verify,resendVerification,login,requestPasswordReset,confirmPasswordReset— 10 methods that previously lived in identical (modulo log prefix) form across all three apps. -
125 private call sites renamed in
planner_app/lib/to match the mixins' public API (_log→log,_applyAuthPayload→applyAuthPayload, etc.). -
planner's
NotechondriaClientnowimplements AuthClient, with a newcheckSessiondeclaration in the abstract + anHttpNotechondriaClientimplementation pasted from editor's to keep the contract tight. WithoutcheckSessionthe auth client interface couldn't be satisfied. -
{bool showMessage}on_syncAllLocalDatarenamed to{bool announce}across planner modules to avoid shadowing the mixin'sshowMessagemethod (same shadowing fix editor_app needed in 0.1.54). -
Editor regression noticed and fixed: a
_logout→logoutrename had been missed ineditor_app/lib/core/build_helpers.dart's settings-callback wiring. editor_app smoke test had been passing against an old analysis cache; this commit makes both apps' smoke tests pass on a fresh run. -
planner's
app_shell.dartshrinks 3861 → 3522 lines. Still over the §1.5 cap — the next round (per-concern extensions) gets it under, and the round after promotes the rest of the duplicates to shared mixins.
Files Changed
frontend/planner_app/lib/app_shell.dart— 348 lines of duplicates dropped, three mixins applied.frontend/planner_app/lib/core/client.dart— abstract + concretecheckSessionadded.frontend/planner_app/lib/core/local_trash.dart—_trashRefreshrename matching editor.frontend/planner_app/lib/main.dart—part 'core/logging.dart'removed (the file no longer exists; logging is now shared).frontend/planner_app/lib/modules/{course,settings}.dart—{bool announce}rename ononSyncLocalDatatypedef and call sites.frontend/editor_app/lib/core/build_helpers.dart—_logout→logoutregression fix.