0.1.91 — settings UI parity: MCP skill + GitHub Sync into portal/planner
Round 2 of the multi-app migration started in 0.1.90. Brings the MCP-skill editor and the experimental GitHub-Sync card to portal_app and planner_app so the three apps now offer the same surface.
Shared widget extraction
- New
notechondria_shared/lib/src/components/mcp_skill_section.dartexportingMcpSkillSectionandGithubSyncExperimentalCard. - Editor switched from its private
_McpSkillSectionto the shared widget; the now-unused private definition was deleted fromeditor_app/lib/modules/settings_sections.dart.
portal_app
_SecuritySectionnow acceptsmcpSkillMd+onSaveMcpSkilland rendersMcpSkillSectiondirectly under the API-key row when the callback is set.- The settings page mounts
GithubSyncExperimentalCardimmediately below the Security card when authenticated. app_shell.dartprovides a portal-flavoredonSaveMcpSkillthat PATCHes/api/v1/settings/and merges the response back into_settings.
planner_app
_SettingsPagenow acceptsonSaveMcpSkill; the Login & sync card rendersMcpSkillSectionafterActiveSessionsCard. The experimental GitHub-Sync card is appended below the card when the callback is set.app_shell.dartprovides a planner-flavoredonSaveMcpSkillwith the same_settingsmerge pattern.
Verification
flutter analyzeruns cleanly onportal_app,planner_app, andeditor_app. Only pre-existing unused-element/unused-import warnings remain; no new errors or warnings introduced by this round.
Carryover (still open)
- Custom-meta expandable list in planner's
learner_note_editor.dartand portal'snote_metadata_dialog.dart. Editor's_NoteEditorDialogalready covers all three apps viaeditor_app/lib/modules/note_editor.dart, so this only matters if the planner / portal note dialogs forked their own metadata flow. - GitHub Sync — actual push path (JWT signing, repo picker, restore
CLI). See
docs/TODO.md.