Files
Mebbling/CHANGELOG.md
T

107 lines
5.8 KiB
Markdown

# Changelog
本專案遵循 [Semantic Versioning](https://semver.org/lang/zh-TW/);版本 `0.x` 表示功能仍可能調整。
## [Unreleased]
### Added
- Hardened incoming RSS/Atom sources with public-HTTPS validation, redirect checks, response-size limits, and safe XML declaration rejection.
- Added production configuration validation for secrets, encryption keys, and the public HTTPS URL, plus an administrator-facing status check.
- Added Prometheus-compatible metrics and distinct liveness/readiness health probes.
- Added SQLite FTS5 indexing for public-content search, maintained automatically as posts change.
### Fixed
- Tightened standard webhook signature validation to reject invalid timestamps and non-v1 signature schemes.
## [0.7.0] - 2026-07-19
### Fixed
- Prevented manual URL regeneration from invalidating automatically configured, signed Memos webhooks.
- 貼文頁、首頁卡片、RSS 與 Atom 優先顯示 Memos 原始發布時間,不再顯示同一次匯入的 Hub 寫入時間。
- 多使用者 Memos 來源只同步 API Key 所屬帳號建立的公開貼文;舊來源會在下一次同步自動補回遠端帳號身分並重新篩選鏡像。
- 遠端附件快取失敗會在來源控制台顯示可重試提示,並保留原始連結作為回退。
### Changed
- 來源名稱改由 API Key 對應的 Memos 帳號自動產生與更新,控制台不再接受手動命名。
- 同步會優先使用新版 Memos 的伺服器端 filter;不支援該 API 的舊版 Memos 會安全退回本機篩選。
- 新版 Memos 來源建立時會自動建立帶 HMAC 簽名的 webhook;不支援 User Webhook API 的舊版來源維持手動模式。
- 相容新版 Memos 的 `/auth/me` 與 username 資源名,既有來源會在同步時更新遠端使用者身分。
- 重新連接同一個 Memos 網址時會更新原有來源的 PAT 與遠端身分,不建立重複來源。
### Added
- Added per-source sync difference previews, retry for individual failed jobs, and owner-only batch retry of failed jobs.
- Added optional per-source attachment archive age: cached files are replaced with their original remote links after the configured period.
- Added opt-in Discord/ntfy alerts for exhausted sync retries and stale signed webhooks, with per-event rate limiting.
- Added safe signed Memos webhook rotation: create the replacement first, then remove the previous remote webhook before committing the new credentials.
- Added configurable retention cleanup and a password-confirmed self-service account deletion flow.
- Added append-only audit records for source management, invitations, posting, and administrator moderation.
- Added verified SQLite/upload backups with retention, optional offsite copy, restore script, and installable daily WSL cron schedule.
- Added expiring, one-time source invitation links with viewer and editor roles; only owners and editors can publish to a shared Memos source.
- Added resumable, page-token-based Memos imports with configurable batch size and first-import limit; posts are only hidden after a complete scan.
- Added owner/member-only JSON and Markdown exports for individual posts and complete sources.
- Added read-only RSS sources: validate a feed URL, queue recurring imports, and show imported posts under their RSS source rather than a Hub account.
- 文章顯示時隱藏已辨識的內文 hashtag,保留原始 Markdown 與文章底部標籤。
- 具時間範圍篩選的公開標籤雲與標籤導覽入口。
- 瀏覽器端自動儲存的發文草稿與 Markdown 預覽。
- 來源附件保存資料結構:遠端連結、僅圖片快取或完整快取,並提供來源配額與失效快取清理。
- 標籤別名/合併的資料結構,供後續管理介面使用。
## [0.5.0] - Unreleased
### Added
- 同源 POST 保護,以及以 SQLite 保存、可由多個 Web 容器共用的登入/Webhook 限流。
- Hub 原生附件的 MIME 白名單、檔案數量限制,與可選 HTTP 掃毒服務介面。
- 貼文檢舉、管理員隱藏貼文、停權/解除停權帳號和管理員協助密碼重設。
- `/api/health` 健康檢查、JSON 結構化事件、持久化同步錯誤紀錄與管理員檢視頁。
- Docker image 版本參數,以及 Gitea Actions 的驗證、建置與選用部署 webhook 工作流程。
## [0.4.0] - Unreleased
### Added
- 每個來源可依標籤、日期及附件類型設定同步範圍。
- Memos 遠端貼文連結、遠端 profile、Token 連線測試與連線狀態。
- Webhook 健康狀態與長時間未收到 webhook 警示。
### Changed
- Pull 同步會以來源規則決定鏡像內容;遠端更新會更新 Hub 鏡像,遠端刪除或移出規則範圍會隱藏鏡像貼文。
## [0.3.0] - Unreleased
### Added
- 分頁與可依內容、標籤、來源、作者、日期及附件篩選的公開搜尋。
- 標籤頁、來源頁、RSS 與 Atom feed,以及公開貼文 Open Graph metadata。
- 安全 Markdown 渲染、GitHub Flavored Markdown 與程式碼高亮。
- 收藏、稍後閱讀、閱讀紀錄、互動通知與通知已讀管理。
## [0.2.0] - 2026-07-19
### Added
- 來源的重新命名、停用/啟用、刪除、離開共享來源與建立者轉移。
- 同步工作觸發來源、開始/完成時間、重試次數與控制台歷史紀錄。
- Pull 同步去重,避免手動、webhook 與排程重複建立處理中工作。
- 帳號密碼變更與管理員同步異常檢視頁。
- SQLite migration 版本紀錄,以及資料庫與附件備份/還原文件和腳本。
### Changed
- 停用來源後不再接受 webhook、手動同步、排程同步或 Hub 發文推送。
- 來源刪除時會移除遠端鏡像貼文,保留 Hub 原生貼文但解除來源關聯。
## [0.1.0] - 2026-07-19
### Added
- 第一個公開 Pre-release:Memos 公開貼文聚合、附件、留言、表情、Hub 發文與 webhook 同步。