Rework GitHub Gist integration: sync-all, gist picker for publish
Details
Replace the individual gist source picker with a "Sync All Gists" button that
pulls every user gist as a collection in a single operation. Replace the inline
"Publish as Gist" dialog in both Snippets and Notes with a gist picker modal
that lets users add files to existing gists or create new ones.
Snippets plugin:
- GistSyncService: add SyncAllGistsAsync() for bulk gist discovery/sync,
add AddSnippetToExistingGistAsync() for adding files to existing gists
- GistSourcesViewModel: remove add-source flow (IsAddingSource, gist picker
list, LoadAvailableGistsAsync), add SyncAllGists command with progress
- GistSourcesOverlay: remove gist picker panel, update empty state text,
replace footer with "Sync All Gists" button + progress indicator
- New GistPickerViewModel + GistPickerOverlay: two-tab picker (add to
existing gist from local GistSources, or create new gist)
- SnippetsViewModel: replace ShowPublishGistDialog/CancelPublishGist/
ConfirmPublishGist with PublishToGistAsync using the new picker
- SnippetsView: remove inline publish panel, add GistPickerOverlay
Notes plugin:
- GistPublishService: add ListUserGistsAsync() with pagination and
AddToExistingGistAsync() with duplicate filename handling
- New GistPickerViewModel + GistPickerOverlay: two-tab picker (add to
existing gist from GitHub API, or create new gist)
- NotesViewModel: replace fire-and-forget PublishToGistAsync with picker
workflow that returns gist URL on confirm
- NotesView: add GistPickerOverlay
Snippets 1.9.0 → 1.10.0, Notes 1.65.2 → 1.66.0
Fix RSS article list panel resize behavior
Details
Use proper ColumnDefinition with pixel width (340, min 280, max 600)
instead of Auto column with Border.Width — GridSplitter cannot resize
Auto columns. Add hover styling and resize cursor to the splitter for
a visible drag handle.
Fix empty feed selector dropdown
Details
The flyout was being populated via a Button.Click handler, but the
MenuFlyout renders before Click fires. Switch to the flyout's
Opening event so items are populated before the flyout is displayed.
Fix article list panel: resizable, ellipsis, feed selector dropdown
Details
- Article list panel now resizable via GridSplitter (min 280, default
340, max 600) instead of fixed ThemeDetailPanelWidth
- List items use Grid for star+title layout so TextTrimming works
correctly (ellipsis instead of overflow), increased item margin
- Feed selector dropdown now shows all default categories (Tech,
News, Business, Science, Design) as bold headers, with feeds
indented under their category, and Uncategorized feeds at bottom
- Each feed in the dropdown has a right-click context menu for
Rename Feed, Set Category, and Remove Feed
- Category headers are clickable to filter by that category
Replace sidebar with feed selector dropdown in toolbar
Details
Remove the sidebar entirely — feeds are now selected via a dropdown
button in the toolbar. The dropdown shows "All Feeds" at the top,
then each category as a bold header (clicking selects all feeds in
that category), with individual feeds indented underneath.
- Add SelectedCategory property for category-based filtering
- Add SelectCategoryCommand and FeedSelectorLabel computed property
- Category filtering is client-side (filters loaded articles by
feed IDs belonging to the selected category)
- Feed selector button shows current selection label with caret
- Focus mode star also updated from emoji to PathIcon glyph
Get notified about new releases