release: Upgrade version to v1.3.31 - #1097
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
frontend/src/components/modals/SettingsModal.vue currently passes a callback that references emit before it is initialized in <script setup>, which can cause a runtime ReferenceError when the modal tries to close.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR prepares the v1.3.31 release by updating version references across the repo and delivering a batch of UI/UX improvements and feature additions (primarily around AI chat, reading behavior, feed actions, and visual consistency) that correspond to the referenced issues (#1072–#1096).
Changes:
- Bump version strings to 1.3.31 across app/runtime, docs, build config, and website/frontend packages.
- Add new settings + UI: remember article reading position toggle, and AI chat quick prompts; expand AI chat with profile switching, copy actions, and shortcuts into settings.
- Multiple UI consistency fixes (settings modal layering, dropdown styling, toast sizing, dark-mode accent fills, article/feed navigation scroll behavior, tray menu localization refresh).
File summaries
| File | Description |
|---|---|
| website/package.json | Bumps website package version to 1.3.31. |
| website/package-lock.json | Updates lockfile version metadata to 1.3.31. |
| tools/new-release.ps1 | Preserves original file BOM/encoding when updating versioned files. |
| skills/mrrss-assistant/references/api.md | Updates generated API reference version marker to 1.3.31. |
| README.md | Updates release badge version to 1.3.31. |
| README_zh.md | Updates release badge version to 1.3.31 (Chinese readme). |
| main.go | Rebuilds tray menu for language changes; improves zh locale detection. |
| main-core.go | Updates Swagger annotation API version to 1.3.31. |
| internal/version/version.go | Updates application version constant to 1.3.31. |
| internal/handlers/settings/settings_base.go | Registers new settings keys (quick prompts, remember position). |
| internal/handlers/chat/chat_handlers.go | Allows selecting an AI profile per chat request. |
| internal/config/settings_schema.json | Adds schema entries for new settings (remember position, quick prompts). |
| internal/config/settings_keys.go | Adds new settings keys to the allowlist. |
| internal/config/defaults.json | Adds defaults for new settings. |
| internal/config/config.go | Wires new defaults into config accessors. |
| internal/ai/profile_provider.go | Adds GetConfigForProfile and centralizes profile→config mapping. |
| frontend/tailwind.config.js | Adds text-tertiary token mapping. |
| frontend/src/types/settings.generated.ts | Updates generated settings types for new keys. |
| frontend/src/types/models.ts | Adds feed.link homepage field (prefers real website URL). |
| frontend/src/style.css | Adds tertiary text + dark-mode accent fill overrides for filled surfaces. |
| frontend/src/i18n/locales/zh.ts | Adds/updates translations for new UI strings and settings. |
| frontend/src/i18n/locales/en.ts | Adds/updates translations for new UI strings and settings. |
| frontend/src/composables/ui/useModalClose.ts | Raises large modal z-index to cover floating panels (AI chat). |
| frontend/src/composables/core/useSidebar.ts | Prefers feed.link when opening a feed website. |
| frontend/src/composables/core/useSettings.generated.ts | Wires new settings through generated parsing/initialization/payload. |
| frontend/src/composables/article/useArticleActions.ts | Updates context-menu icon mapping for “go to feed”. |
| frontend/src/components/settings/base/SettingControl/SelectControl.vue | Aligns select styling by removing overridden background mode. |
| frontend/src/components/modals/SettingsModal.vue | Adds initial-tab support; layout/search/scroll anchoring adjustments. |
| frontend/src/components/modals/settings/statistics/StatisticsTab.vue | Uses shared BaseSelect for interval dropdown styling consistency. |
| frontend/src/components/modals/settings/reading/InteractionSettings.vue | Adds remember-reading-position toggle setting UI. |
| frontend/src/components/modals/settings/ai/AIProfileSelector.vue | Widens selector to keep profile names readable. |
| frontend/src/components/modals/settings/ai/AIFeatureSettings.vue | Adds quick prompts management UI and stabilizes scroll. |
| frontend/src/components/modals/settings/ai/AIChatQuickPromptsSettings.vue | New component for managing custom AI chat prompt list. |
| frontend/src/components/modals/feed/parts/FeedContentOptions.vue | Fixes spacing around feed extraction options. |
| frontend/src/components/modals/feed/FeedFormModal.vue | Adds “Reload Feed” action in edit mode and progress polling. |
| frontend/src/components/modals/discovery/DiscoverAllFeedsModal.vue | Fixes selection count binding; removes duplicate footer actions/states. |
| frontend/src/components/common/Toast.vue | Sizes toast to content with responsive max width. |
| frontend/src/components/common/select.css | Improves selected-option hover feedback and transitions. |
| frontend/src/components/common/ContextMenu.vue | Adds icon mapping entries used by updated actions. |
| frontend/src/components/article/parts/ArticleBody.vue | Aligns article body width with header/summary layout. |
| frontend/src/components/article/imageGallery/components/ImageGalleryHeader.vue | Unifies hover cursor and icon coloring in gallery toolbar. |
| frontend/src/components/article/ArticleToolbar.vue | Adds “Copy Title” action. |
| frontend/src/components/article/ArticleList.vue | Restores/maintains list scroll position when navigating back/closing card view. |
| frontend/src/components/article/ArticleContent.vue | Gates scroll-position restore/save behind new remember-position setting; passes AI chat settings. |
| frontend/src/components/article/ArticleChatPanel.vue | Adds profile switching, settings shortcut, copy message, and suggested prompts. |
| frontend/src/App.vue | Supports opening Settings modal directly to a requested tab. |
| frontend/src/App.test.ts | Updates toast viewport width expectation for new spacing. |
| frontend/package.json | Bumps frontend package version to 1.3.31. |
| frontend/package-lock.json | Updates lockfile version metadata to 1.3.31. |
| docs/SERVER_MODE/swagger.json | Updates swagger JSON version field to 1.3.31. |
| config/defaults.json | Adds defaults for new settings (non-internal defaults mirror). |
| CHANGELOG.md | Adds v1.3.31 release notes mapping changes to fixed issues. |
| build/linux/Taskfile.yml | Updates build packaging version to 1.3.31. |
| build/linux/nfpm/nfpm.yaml | Updates Linux packaging version to 1.3.31. |
| build/config.yml | Updates build metadata version to 1.3.31. |
Review details
Files not reviewed (2)
- frontend/package-lock.json: Generated file
- website/package-lock.json: Generated file
- Files reviewed: 52/55 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| // Modal close handling; nested modals are placed above this layer automatically. | ||
| const { zIndex: modalZIndex } = useModalClose(() => emit('close'), LARGE_MODAL_Z_INDEX); |
Fixed #1072
Fixed #1073
Fixed #1074
Fixed #1075
Fixed #1076
Fixed #1077
Fixed #1078
Fixed #1079
Fixed #1080
Fixed #1081
Fixed #1082
Fixed #1083
Fixed #1084
Fixed #1085
Fixed #1086
Fixed #1087
Fixed #1088
Fixed #1089
Fixed #1090
Fixed #1091
Fixed #1092
Fixed #1093
Fixed #1094
Fixed #1095
Fixed #1096