Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,14 +104,14 @@ Common entry points are below. Confirm they still exist in the current checkout;
| Download Go dependencies | Repository root | `go mod download` |
| Install locked frontend dependencies | `frontend/` | `npm ci` |
| Discover build tasks | Repository root | `task --list` |
| Desktop development | Repository root | `task dev` |
| Desktop development | Repository root | `task dev` (uses the repository-pinned Wails CLI) |
| Backend tests | Repository root | `go test -timeout=5m ./internal/...` |
| Go static checks | Repository root | `go vet ./...` |
| Frontend unit tests, single run | `frontend/` | `npm run test:unit` |
| Frontend lint without autofix | `frontend/` | `npx --no-install eslint .` |
| Frontend build | `frontend/` | `npm run build` |
| End-to-end tests | `frontend/` | `npm run test:e2e` |
| Desktop build | Repository root | `wails3 build` or `task build` |
| Desktop build | Repository root | `task build` |

- Start with tests for the affected packages or files, then run broader checks when the scope warrants them. Add regression tests for bug fixes and behavior changes; cover relevant failures and boundary conditions without relying on live services or real credentials.
- Use a non-watching test command for automated verification. Inspect scripts before running them: lint and format scripts may apply fixes across the tree.
Expand Down
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,25 @@ All notable changes to MrRSS will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.3.37] - 2026-09-21

### Added

- Select articles in normal, card, and table layouts, select all currently visible articles, and batch-mark the selection as read or unread through a bounded API that preserves reader-service synchronization. (#1210) (@baifengs)
- Optionally keep the desktop window hidden in the system tray when the application starts with the operating system, while preserving normal visibility for manual launches. (#1215) (@EnterMan123)
- Show an unread-state badge on multimedia gallery cards and remove it as soon as the article is marked read. (#1214) (@EnterMan123)

### Changed

- Align the data-directory and chat-response-preference layouts with neighboring settings, present chat-history retention as a nested setting, and use distinct icons for consecutive article-display options.
- Pin local Wails tasks to the runtime version, install frontend dependencies from the lockfile, and wait for the Vite server before launching the desktop process in development mode.

### Fixed

- Scope card-view image discovery to article content so AI chat icons do not enter the image viewer. (#1212) (@EnterMan123)
- Close article context menus when clicking modal overlays or other content that stops bubbling events. (#1213) (@EnterMan123)
- Limit settings search to visible setting labels so hidden modal text, status messages, and placeholders do not produce unreachable results. (#1216) (@EnterMan123)

## [1.3.36] - 2026-09-20

### Added
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ This project and everyone participating in it is governed by our [Code of Conduc

- Go 1.27 or higher
- Node.js (LTS version)
- Wails CLI: `go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha2.117`
- Wails CLI: `go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-beta.20`

**Linux only:** Install system dependencies:

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<strong>English</strong> | <a href="README_zh.md">简体中文</a>
</p>

[![Version](https://img.shields.io/badge/version-1.3.36-blue.svg)](https://github.com/DevXDojo/MrRSS/releases)
[![Version](https://img.shields.io/badge/version-1.3.37-blue.svg)](https://github.com/DevXDojo/MrRSS/releases)
[![License](https://img.shields.io/badge/license-GPLv3-green.svg)](LICENSE)
[![Go](https://img.shields.io/badge/Go-1.27+-00ADD8?logo=go)](https://go.dev/)
[![Wails](https://img.shields.io/badge/Wails-v3%20alpha-red)](https://wails.io/)
Expand Down Expand Up @@ -105,7 +105,7 @@ sudo apt-get install libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev gcc pkg-c
3. **Install Wails v3 CLI**

```bash
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha2.117
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-beta.20
```

4. **Build the application**
Expand Down
4 changes: 2 additions & 2 deletions README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<a href="README.md">English</a> | <strong>简体中文</strong>
</p>

[![Version](https://img.shields.io/badge/version-1.3.36-blue.svg)](https://github.com/DevXDojo/MrRSS/releases)
[![Version](https://img.shields.io/badge/version-1.3.37-blue.svg)](https://github.com/DevXDojo/MrRSS/releases)
[![License](https://img.shields.io/badge/license-GPLv3-green.svg)](LICENSE)
[![Go](https://img.shields.io/badge/Go-1.27+-00ADD8?logo=go)](https://go.dev/)
[![Wails](https://img.shields.io/badge/Wails-v3%20alpha-red)](https://wails.io/)
Expand Down Expand Up @@ -105,7 +105,7 @@ sudo apt-get install libgtk-4-dev libwebkitgtk-6.0-dev libsoup-3.0-dev gcc pkg-c
3. **安装 Wails v3 CLI**

```bash
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha2.117
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-beta.20
```

4. **构建应用**
Expand Down
4 changes: 3 additions & 1 deletion Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ vars:
APP_NAME: "MrRSS"
BIN_DIR: "build/bin"
VITE_PORT: '{{.WAILS_VITE_PORT | default 5173}}'
# Keep this version synchronized with github.com/wailsapp/wails/v3 in go.mod.
WAILS3: go run github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-beta.20

tasks:
build:
Expand All @@ -33,7 +35,7 @@ tasks:
dev:
summary: Runs the application in development mode (monitoring disabled)
cmds:
- wails3 dev -config ./build/config.yml
- '{{.WAILS3}} dev -config ./build/config.yml'
env:
MRRSS_DEBUG: "1"

Expand Down
4 changes: 2 additions & 2 deletions build/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ This document describes how to build and package MrRSS using the Wails v3 build
### Required Tools

- **Go 1.27+**: [https://golang.org/dl/](https://golang.org/dl/)
- **Node.js 18+**: [https://nodejs.org/](https://nodejs.org/)
- **Wails CLI v3**: `go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha2.117`
- **Node.js 22.22.2 LTS or 24.15+**: [https://nodejs.org/](https://nodejs.org/)
- **Wails CLI v3**: `go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-beta.20`
- **Task**: [https://taskfile.dev/installation/](https://taskfile.dev/installation/)

### Platform-Specific Dependencies
Expand Down
10 changes: 5 additions & 5 deletions build/Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ tasks:
- sh: npm version
msg: "Looks like npm isn't installed. Npm is part of the Node installer: https://nodejs.org/en/download/"
cmds:
- npm install
- npm ci

build:frontend:
label: build:frontend (DEV={{.DEV}})
Expand Down Expand Up @@ -60,7 +60,7 @@ tasks:
generates:
- frontend/bindings/**/*
cmds:
- wails3 generate bindings -f '{{.BUILD_FLAGS}}' -clean=true
- "{{.WAILS3}} generate bindings -f '{{.BUILD_FLAGS}}' -clean=true"

generate:icons:
summary: Generates Windows `.ico` and Mac `.icns` files from an image
Expand All @@ -75,8 +75,8 @@ tasks:
# Wails supplies build/windows and build/darwin defaults for omitted output
# flags. This task already runs from build/, so explicitly disable the
# unrelated output while preserving the platform-specific source images.
- wails3 generate icons -input appicon.png -windowsfilename= -macfilename darwin/icons.icns
- wails3 generate icons -input windows/icon.png -windowsfilename windows/icon.ico -macfilename=
- '{{.WAILS3}} generate icons -input appicon.png -windowsfilename= -macfilename darwin/icons.icns'
- '{{.WAILS3}} generate icons -input windows/icon.png -windowsfilename windows/icon.ico -macfilename='

dev:frontend:
summary: Runs the frontend in development mode
Expand All @@ -90,7 +90,7 @@ tasks:
summary: Updates the build assets
dir: build
cmds:
- wails3 update build-assets -name "{{.APP_NAME}}" -binaryname "{{.APP_NAME}}" -config config.yml -dir .
- '{{.WAILS3}} update build-assets -name "{{.APP_NAME}}" -binaryname "{{.APP_NAME}}" -config config.yml -dir .'

setup:docker:
summary: Builds Docker image for cross-compilation (~800MB download)
Expand Down
14 changes: 8 additions & 6 deletions build/config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# This file contains the configuration for this project.
# When you update `info` or `fileAssociations`, run `wails3 task common:update:build-assets` to update the assets.
# When you update `info` or `fileAssociations`, run `task common:update:build-assets` to update the assets.
# Note that this will overwrite any changes you have made to the assets.
version: '3'

Expand All @@ -11,7 +11,7 @@ info:
description: "A modern, standalone RSS reader" # The application description
copyright: "Copyright © 2026" # Copyright text
comments: "Built with Wails" # Comments
version: "1.3.36" # The application version
version: "1.3.37" # The application version

# iOS build configuration (uncomment to customise iOS project generation)
# Note: Keys under `ios` OVERRIDE values under `info` when set.
Expand All @@ -21,7 +21,7 @@ info:
# # The display name shown under the app icon (CFBundleDisplayName/CFBundleName)
# displayName: "MrRSS"
# # The app version to embed in Info.plist (CFBundleShortVersionString/CFBundleVersion)
# version: "1.3.36"
# version: "1.3.37"
# # The company/organisation name for templates and project settings
# company: "Ch3nyang"
# # Additional comments to embed in Info.plist metadata
Expand Down Expand Up @@ -49,11 +49,13 @@ dev_mode:
- "*.ts" # The frontend directory will be excluded entirely by the setting above.
git_ignore: true
executes:
- cmd: wails3 build DEV=true
- cmd: task build DEV=true
type: blocking
- cmd: wails3 task common:dev:frontend
- cmd: task common:dev:frontend
type: background
- cmd: wails3 task run
- cmd: go run ./tools/wait-for-dev-server
type: blocking
- cmd: task run
type: primary

# File Associations
Expand Down
4 changes: 2 additions & 2 deletions build/darwin/Info.dev.plist
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
<key>CFBundleIdentifier</key>
<string>com.mrrss.app</string>
<key>CFBundleVersion</key>
<string>1.3.36</string>
<string>1.3.37</string>
<key>CFBundleGetInfoString</key>
<string>Built with Wails</string>
<key>CFBundleShortVersionString</key>
<string>1.3.36</string>
<string>1.3.37</string>
<key>CFBundleIconFile</key>
<string>icons</string>
<key>LSMinimumSystemVersion</key>
Expand Down
4 changes: 2 additions & 2 deletions build/darwin/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
<key>CFBundleIdentifier</key>
<string>com.mrrss.app</string>
<key>CFBundleVersion</key>
<string>1.3.36</string>
<string>1.3.37</string>
<key>CFBundleGetInfoString</key>
<string>Built with Wails</string>
<key>CFBundleShortVersionString</key>
<string>1.3.36</string>
<string>1.3.37</string>
<key>CFBundleIconFile</key>
<string>icons</string>
<key>LSMinimumSystemVersion</key>
Expand Down
4 changes: 2 additions & 2 deletions build/darwin/Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ tasks:
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.3.36</string>
<string>1.3.37</string>
<key>CFBundleVersion</key>
<string>1.3.36</string>
<string>1.3.37</string>
<key>LSMinimumSystemVersion</key>
<string>10.13</string>
<key>NSHighResolutionCapable</key>
Expand Down
2 changes: 1 addition & 1 deletion build/darwin/create-dmg.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ set -e

APP_NAME="MrRSS"
# Get version from frontend/package.json if available, otherwise use default
VERSION=$(grep -o '"version"[[:space:]]*:[[:space:]]*"[^"]*"' frontend/package.json 2>/dev/null | head -1 | sed 's/.*"\([^"]*\)".*/\1/' || echo "1.3.36")
VERSION=$(grep -o '"version"[[:space:]]*:[[:space:]]*"[^"]*"' frontend/package.json 2>/dev/null | head -1 | sed 's/.*"\([^"]*\)".*/\1/' || echo "1.3.37")
APP_PUBLISHER="Ch3nyang"
APP_URL="https://github.com/DevXDojo/MrRSS"
APP_DESCRIPTION="A Modern, Cross-Platform Desktop RSS Reader"
Expand Down
4 changes: 2 additions & 2 deletions build/ios/Info.dev.plist
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.3.36-dev</string>
<string>1.3.37-dev</string>
<key>CFBundleVersion</key>
<string>1.3.36</string>
<string>1.3.37</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>MinimumOSVersion</key>
Expand Down
4 changes: 2 additions & 2 deletions build/ios/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.3.36</string>
<string>1.3.37</string>
<key>CFBundleVersion</key>
<string>1.3.36</string>
<string>1.3.37</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>MinimumOSVersion</key>
Expand Down
4 changes: 2 additions & 2 deletions build/ios/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ set -e
# Build configuration
APP_NAME="MrRSS"
BUNDLE_ID="com.mrrss.app"
VERSION="1.3.36"
BUILD_NUMBER="1.3.36"
VERSION="1.3.37"
BUILD_NUMBER="1.3.37"
BUILD_DIR="build/ios"
TARGET="simulator"

Expand Down
2 changes: 1 addition & 1 deletion build/linux/Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ tasks:
cmds:
- cd {{.BIN_DIR}} && tar -czf {{.APP_NAME}}-{{.VERSION}}-linux-{{.ARCH}}.tar.gz {{.APP_NAME}}
vars:
VERSION: '1.3.36'
VERSION: '1.3.37'
ARCH: '{{.ARCH | default "amd64"}}'

generate:dotdesktop:
Expand Down
2 changes: 1 addition & 1 deletion build/linux/create-appimage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ set -e

APP_NAME="MrRSS"
# Get version from frontend/package.json if available, otherwise use default
VERSION=$(grep -o '"version"[[:space:]]*:[[:space:]]*"[^"]*"' frontend/package.json 2>/dev/null | head -1 | sed 's/.*"\([^"]*\)".*/\1/' || echo "1.3.36")
VERSION=$(grep -o '"version"[[:space:]]*:[[:space:]]*"[^"]*"' frontend/package.json 2>/dev/null | head -1 | sed 's/.*"\([^"]*\)".*/\1/' || echo "1.3.37")
# Get architecture from environment variable or default to amd64
ARCH=${ARCH:-amd64}
echo "Target architecture: ${ARCH}"
Expand Down
2 changes: 1 addition & 1 deletion build/linux/nfpm/nfpm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
name: "MrRSS"
arch: ${GOARCH}
platform: "linux"
version: "1.3.36"
version: "1.3.37"
section: "default"
priority: "extra"
maintainer: ${GIT_COMMITTER_NAME} <${GIT_COMMITTER_EMAIL}>
Expand Down
8 changes: 4 additions & 4 deletions build/windows/Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ tasks:
deps:
- task: generate:icon:ico
cmds:
- wails3 generate syso -arch {{.ARCH}} -icon windows/icon.ico -manifest windows/wails.exe.manifest -info windows/info.json -out ../wails_windows_{{.ARCH}}.syso
- '{{.WAILS3}} generate syso -arch {{.ARCH}} -icon windows/icon.ico -manifest windows/wails.exe.manifest -info windows/info.json -out ../wails_windows_{{.ARCH}}.syso'
vars:
ARCH: '{{.ARCH | default ARCH}}'

Expand All @@ -118,7 +118,7 @@ tasks:
generates:
- "windows/icon.ico"
cmds:
- wails3 generate icons -input windows/icon.png -windowsfilename windows/icon.ico -macfilename=
- '{{.WAILS3}} generate icons -input windows/icon.png -windowsfilename windows/icon.ico -macfilename='

create:nsis:installer:
summary: Creates an NSIS installer
Expand All @@ -127,7 +127,7 @@ tasks:
- task: build
cmds:
# Create the Microsoft WebView2 bootstrapper if it doesn't exist
- wails3 generate webview2bootstrapper -dir "{{.ROOT_DIR}}/build/windows"
- '{{.WAILS3}} generate webview2bootstrapper -dir "{{.ROOT_DIR}}/build/windows"'
- |
{{if eq OS "windows"}}
makensis -DARG_WAILS_{{.ARG_FLAG}}_BINARY="{{.ROOT_DIR}}\build\bin\{{.APP_NAME}}.exe" installer.nsi
Expand All @@ -151,7 +151,7 @@ tasks:
deps:
- task: build
cmds:
- wails3 tool sign --input {{.BIN_DIR}}/{{.APP_NAME}}.exe {{if .SIGN_CERTIFICATE}}--certificate {{.SIGN_CERTIFICATE}}{{end}} {{if .SIGN_THUMBPRINT}}--thumbprint {{.SIGN_THUMBPRINT}}{{end}} {{if .TIMESTAMP_SERVER}}--timestamp {{.TIMESTAMP_SERVER}}{{end}}
- '{{.WAILS3}} tool sign --input {{.BIN_DIR}}/{{.APP_NAME}}.exe {{if .SIGN_CERTIFICATE}}--certificate {{.SIGN_CERTIFICATE}}{{end}} {{if .SIGN_THUMBPRINT}}--thumbprint {{.SIGN_THUMBPRINT}}{{end}} {{if .TIMESTAMP_SERVER}}--timestamp {{.TIMESTAMP_SERVER}}{{end}}'
preconditions:
- sh: '[ -n "{{.SIGN_CERTIFICATE}}" ] || [ -n "{{.SIGN_THUMBPRINT}}" ]'
msg: "Either SIGN_CERTIFICATE or SIGN_THUMBPRINT is required. Set it in the vars section at the top of build/windows/Taskfile.yml"
Expand Down
4 changes: 2 additions & 2 deletions build/windows/info.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"fixed": {
"file_version": "1.3.36"
"file_version": "1.3.37"
},
"info": {
"0000": {
"ProductVersion": "1.3.36",
"ProductVersion": "1.3.37",
"CompanyName": "Ch3nyang",
"FileDescription": "MrRSS",
"LegalCopyright": "Copyright © 2026",
Expand Down
4 changes: 2 additions & 2 deletions build/windows/installer.nsi
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
; All paths in this script are relative to the script directory.

!define APP_NAME "MrRSS"
!define APP_VERSION "1.3.36"
!define APP_VERSION_NUMERIC "1.3.36.0" ; NSIS requires X.X.X.X format
!define APP_VERSION "1.3.37"
!define APP_VERSION_NUMERIC "1.3.37.0" ; NSIS requires X.X.X.X format
!define APP_PUBLISHER "Ch3nyang"
!define APP_URL "https://github.com/DevXDojo/MrRSS"
!define APP_DESCRIPTION "A Modern, Cross-Platform Desktop RSS Reader"
Expand Down
2 changes: 1 addition & 1 deletion build/windows/nsis/wails_tools.nsh
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
!define INFO_PRODUCTNAME "MrRSS"
!endif
!ifndef INFO_PRODUCTVERSION
!define INFO_PRODUCTVERSION "1.3.36"
!define INFO_PRODUCTVERSION "1.3.37"
!endif
!ifndef INFO_COPYRIGHT
!define INFO_COPYRIGHT "Copyright © 2026"
Expand Down
2 changes: 1 addition & 1 deletion build/windows/wails.exe.manifest
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<assemblyIdentity type="win32" name="com.mrrss.app" version="1.3.36.0" processorArchitecture="*"/>
<assemblyIdentity type="win32" name="com.mrrss.app" version="1.3.37.0" processorArchitecture="*"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
Expand Down
1 change: 1 addition & 0 deletions config/defaults.json
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@
"siyuan_endpoint": "http://127.0.0.1:6806",
"siyuan_folder": "/MrRSS",
"siyuan_notebook_id": "",
"startup_minimized": false,
"startup_on_boot": false,
"summary_enabled": true,
"summary_length": "medium",
Expand Down
Loading
Loading