v1.4.5 - 2026-08-03
✨ 新增
- journals: add workspace journal scope UI (11f75b9)
- journals: add personal and workspace journal scope selection (0732aa9)
- journals: route markdown date links by active scope (9dade97)
- journals: route rich-text date links by active scope (8ba5fbd)
- journals: add shared journal scope resolver (d932253)
- journals: expose workspace shared journal API (62d3603)
- journals: implement workspace shared journal domain service (6e4af49)
- journals: add workspace journal binding migration (071456a)
- journals: expose safe cleanup and rollback (1207ce5)
- journals: add natural weekday date commands (3fb9882)
- journals: add safe legacy archive cleanup service (abde485)
- markdown: register daily record slash commands (67b1a3a)
- markdown: add daily record slash commands (725f9b1)
- daily-records: share date command definitions (5b669d3)
- journals: expose archive migration in daily records (5059185)
- journals: create and repair entity archive paths (66b3492)
- journals: add idempotent archive tree service (4ab75f8)
- daily-records: use native date input for slash picker (6319040)
- daily-records: clarify workspace journal scope (7c0f5fc)
- daily-records: register slash commands and navigation label (817ceb8)
- daily-records: register date slash commands (fbf9984)
- daily-records: add slash date and journal commands (70e6585)
- daily-records: route diary center through unified hub (02c3094)
- daily-records: add unified moments calendar journal hub (b943588)
- daily-records: add aggregated daily journal view (ac4d1ce)
- daily-records: add date and journal helpers (8aa3371)
- dev: expose one-command startup (524b2ac)
- dev: route Vite proxy to selected backend port (c2ae7d0)
- dev: add unified development launcher (5a2911d)
- 知识树: 支持取消文件夹密码 (ee19acb)
- tasks: add personal Inbox and global quick capture (ac49f5a)
- tasks: keep recurring estimate inheritance in PostgreSQL pilot (ebad2db)
- tasks: inherit estimates for recurring task instances (d70d1c2)
- tasks: mount daily time planner (e8354f3)
- tasks: add daily time planning workspace (6db50a9)
- tasks: add time planning helpers (9c16d1d)
- tasks: add time planning frontend API (f8ff0be)
- tasks: add PostgreSQL time planning schema (b692e4f)
- tasks: mount task time planning routes (fe4fb9d)
- tasks: register time planning before database startup (689f672)
- tasks: add personal time block API (7efbd29)
- tasks: register time planning migration (ad7dc5b)
- tasks: add v72 time planning migration (7894d98)
- tasks: combine My Day with smart task views (f3df038)
- tasks: add task labels and saved views workspace (5af549c)
- tasks: add saved view filter logic (909ad56)
- tasks: add task metadata frontend API (2522630)
- tasks: add task metadata postgres schema (b1cb28e)
- tasks: mount task metadata routes (77285a4)
- tasks: bootstrap task metadata migration (4a9d3ed)
- tasks: add task labels and saved views API (ac58973)
- tasks: register task metadata migration (d0c602e)
- tasks: add task metadata schema migration (f67542a)
- tasks: add PostgreSQL My Day schema (fb6eaf1)
- tasks: register My Day schema migration (869e537)
- tasks: add formal My Day schema migration (fc15d48)
- tasks: integrate My Day into task center (42c6e12)
- tasks: add My Day planning panel (97c8d8a)
- tasks: add My Day planning helpers (0a819c3)
- tasks: add My Day client API (40f6022)
- tasks: mount My Day plan routes (1ceffcc)
- tasks: add synced My Day plan API (8d837d1)
- ui: add fixed all-notes entry to knowledge tree (ef78439)
- diary: 完成 Issue #241 的 Markdown、AI 总结与输入法修复 (#589) (4fea4be)
- tasks: install offline task and habit API adapter (ff97e60)
- tasks: add offline cache and mutation replay (8cd0454)
- ui: enable three-column mode on Web (3c119b7)
- ui: add desktop three-column note mode (8264f51)
- onboarding: mount welcome bridge at app layout (08240d3)
- onboarding: open seeded welcome after initial sync (b6584d0)
- onboarding: mount first-login welcome bridge (6b8cd93)
- onboarding: open the Chinese welcome note once (390ee8d)
- onboarding: register bilingual onboarding migration (6cc5fa6)
- onboarding: seed bilingual guides for new users (ad378de)
- sync: complete offline workspace synchronization (#580) (ba58429)
- ai-chat: add stop, message actions and footnote references (f925e1e)
- ai-chat: collapse and resize reliable context (2cf87b7)
- ai-chat: allow visible scrollbars (6500dd5)
- ai-chat: add abortable AI stream bridge (9a97a54)
- siyuan: localize remote Markdown images after import (16a7bfb)
- comments: add inline text annotations with permission-aware threads (#570) (52b810f)
- security: auto-lock password folders (fe18229)
- import: add target format options (1314db7)
- micloud: show background progress, cancel and retry controls (ce839d2)
- micloud: use one background job and SSE progress stream (67687d7)
- micloud: mount background import job routes (144f093)
- micloud: add persistent background import jobs with SSE (670c19c)
🐛 修复
- calendar: preserve ICS time semantics and add safe all-day tasks (3c17ee2)
- journals: normalize workspace journal success copy (deeed32)
- journals: normalize scoped journal success copy (88fe134)
- journals: allow read-only members to open shared journals (218d497)
- journals: escape cleanup UI integration template (5465f0c)
- migrations: tolerate legacy session foreign key errors (b979fb9)
- markdown: use public editor lifecycle signal (a1679a6)
- journals: repair archive before opening daily entries (11a80cd)
- journals: refresh archive state across creation entrypoints (279d364)
- daily-records: query personal journal tree explicitly (a09306b)
- daily-records: preserve personal journal scope (5016f05)
- daily-records: navigate calendar by real months (7324728)
- daily-records: use lucide icon component type (f16e67f)
- 数据库: 兼容任务迁移版本冲突 (143b3e3)
- sync: prevent false success and recover unacknowledged edits (#612) (d9fb5d0)
- markdown: filter internal block IDs from clipboard (0f86d9d)
- editor: sync current markdown snapshot manually (08fccc2)
- editor: keep markdown saves active before CRDT sync (6bbb8b9)
- tasks: correct start times in calendar feeds (15c65ed)
- tasks: revalidate task visibility before editing a time block (5b786d3)
- tasks: seed My Day route test user (242b403)
- tasks: handle task mutation response in My Day (a602bfe)
- tasks: reset My Day across midnight (9ed17f3)
- tasks: stabilize task center remount callback (685eed7)
- tasks: stabilize My Day labels and effects (b584074)
- db: apply missing historical migrations (a19a8a5)
- db: add block schema repair migration (9a1d4ea)
- layout: make workspace controller the single note-list owner (8e0843a)
- layout: stop mobile bridge from overriding wide note layouts (cf60664)
- layout: preserve explicit workspace mode during legacy migration (28106df)
- onboarding: avoid first-login open race (5bae18e)
- onboarding: register first-login gate migration (fe043c3)
- onboarding: gate guide seeding on first login (cfaf533)
- client: support IPv6 NAS server addresses (819d5a8)
- normalize timezone handling and mindmap geometry (6ed4dd1)
- ci: apply mindmap React type compatibility (b0213df)
- ci: remove invalid XHTML div attribute (042c138)
- siyuan: localize remote images for Markdown imports (2e5b47c)
- tree: sync saved note titles to knowledge tree (9755279)
- comments: place inline annotation action inside selection tooltip (4ca1c51)
- security: clear stale unlock tokens on account change (0ca0aee)
- push feature files without workflow changes (73fd75d)
- keep runner workflow YAML valid (bfbbc11)
- provide readable Obsidian test file fixture (45fc79f)
- mock Obsidian API through relative module (c3a28b1)
- preserve staged multiline replacement contents (12c3b2e)
- relax staged replacement uniqueness check (e4ac2a4)
- apply sequential import format replacements (bb4dbe3)
- preserve embedded replacement string indentation (ba122cf)
- execute staged workflow run block through YAML (0d415eb)
- extract staged import script indentation (fd2635a)
- micloud: stop deduplicating returned note rows (a2b24c4)
- micloud: preserve every returned note row (79c88b0)
- micloud: avoid stale notebook scope causing per-note 500 (1ebf2a7)
- micloud: use supported hierarchy reason (4f433cb)
- micloud: mount hardened import route (8e15db4)
- micloud: isolate backend imports per note (9e9054f)
- micloud: prevent large Xiaomi note imports from being aborted (#553) (af2b102)
- release: keep README changelog section compact (b60881b)
⚡ 优化
- tasks: lazy-load the time planner when expanded (435abd4)
- editor: defer images from eight media nodes (cef67d6)
- editor: cache runtime complexity decisions (c694025)
- editor: move split scan off note switch critical path (e2ac02e)
- editor: defer and cache note split analysis (0076141)
♻️ 重构
- daily-records: reuse shared slash definitions (287cbdb)
- tasks: normalize planner time input and payload (ecf00da)
- tasks: share My Day schema initializer (c9e73ad)
- tasks: keep a stable offline API facade (860692c)
- tasks: make offline replay deterministic (fd86610)
- onboarding: remove unused sync helper (f65b3c3)
- onboarding: keep sidebar bridge unchanged (6349d97)
- micloud: expose reusable row import pipeline (9984134)
📝 文档
- mcp: restore installation entry and complete setup guides (#563) (45d92e6)
- readme: align English v1.4.4 overview (9d34537)
- readme: sync v1.4.4 capabilities (21f3499)
✅ 测试
- journals: lock workspace shared journal UI contract (7b5aeaa)
- journals: verify markdown links target active workspace (c399bb1)
- journals: verify personal and workspace scope resolution (202c691)
- journals: verify workspace journal route lifecycle (771e2cc)
- journals: verify workspace shared journal permissions and scope (4c86a25)
- journals: use canonical ordinary note type (741c176)
- journals: lock cleanup preview and rollback UI contract (1eb71f5)
- journals: verify cleanup route lifecycle (d8ef737)
- journals: expect expanded markdown date commands (ebf1aac)
- journals: expect expanded rich-text date commands (43e093e)
- journals: cover natural weekday commands (a7bd702)
- journals: verify safe cleanup preview and rollback (3845ccf)
- migrations: cover v1.2.4 orphan session upgrade (d1aa621)
- daily-records: lock shared date command semantics (4acafd5)
- markdown: cover daily record slash commands (3b9bf8a)
- journals: verify archive route lifecycle (95d7efe)
- journals: cover archive tree migration and idempotency (6e610f7)
- daily-records: cover real month navigation (72d9027)
- daily-records: cover slash command registration (fd3620c)
- daily-records: align preview truncation boundary (4ce0d77)
- daily-records: cover date boundaries and journal previews (4dc1143)
- tasks: verify workspace schedule isolation (7298045)
- tasks: verify recurring estimate inheritance (2ba8288)
- tasks: add targeted time planning typecheck (195bc0d)
- tasks: cover time planning helpers (bdf3246)
- tasks: cover estimates and time block lifecycle (b5c6dcb)
- tasks: initialize task metadata schema before cleanup (169a534)
- tasks: cover saved view filtering (8b72aaf)
- tasks: cover task metadata routes (a66db87)
- db: make block repair assertions migration-version agnostic (8ef919a)
- tasks: verify My Day route mounting and persistence (e8250d7)
- tasks: cover My Day plan validation (7d893c9)
- tasks: cover My Day planning helpers (9b5a4c5)
- db: type historical migration fixture (c49aa5e)
- db: cover skipped block migration repair (4e1d1f2)
- ui: cover fixed all-notes navigation entry (12453b2)
- tasks: type native delete mocks accurately (016b3aa)
- tasks: model the remapped server task accurately (66eebdb)
- tasks: cover pending overlays and remapped deletes (b49359a)
- tasks: preserve API method signatures in mocks (163d054)
- tasks: keep native API mocks separate from wrappers (07d4314)
- tasks: cover offline cache and replay behavior (2ab4dfe)
- layout: preserve explicit three-column startup state (6bb0eed)
- layout: ensure mobile bridge does not override wide workspace mode (1a4ac45)
- layout: cover functional list ownership and Web switching (8a7e396)
- onboarding: verify first-login seeding gate (84f215a)
- onboarding: cover first-login welcome opening (0b03d17)
- onboarding: cover bilingual new-user guide seeding (0e0ca4e)
- editor: expect deferred split capability analysis (93da6f4)
- editor: cover deferred split analysis (906cd66)
- editor: cover runtime decision reuse (2c59ae7)
- editor: cover image-dense runtime threshold (7f063c3)
- ai-chat: cover abortable ask fetch scoping (74bb284)
- siyuan: cover Markdown image-bed localization (c56546f)
- frontend: align tree title listener mock typing (3e0c526)
- knowledge-tree: follow compact density and folder interaction updates (b543b35)
- knowledge-tree: align sidebar contracts with current recovery and mobile density UI (49e74a0)
- knowledge-tree: track latest schema migration version (b6250a4)
- micloud: cover persistent jobs, retry and SSE (483baf8)
- micloud: cover one-job SSE import flow (6282fc1)
- micloud: require one created note per returned row (65ab647)
- micloud: cover duplicate row preservation (17244f6)
- micloud: cover backend 500 isolation and idempotency (39edb3d)
🤖 CI
- calendar: add ICS and all-day regression coverage (ff5d8fd)
- calendar: validate selective PR 631 integration (aa29cff)
- journals: validate workspace shared journals (34db5b9)
- journals: validate cleanup and natural date commands (0cadedf)
- run markdown integration patch on pull requests (3d40e5a)
- markdown: verify daily record commands (1e2f5b8)
- fix markdown daily command verification paths (ddd71f0)
- apply markdown daily command integration (fa2863e)
- journals: run archive route lifecycle tests (f6a3901)
- journals: harden archive merge-ref validation (606359f)
- journals: validate real archive entity migration (eee80e9)
- daily-records: run slash command registration tests (b696582)
- daily-records: cover slash commands and navigation (d150a6d)
- daily-records: add focused frontend regression workflow (f432ba5)
- tasks: validate time planning feature (feeb54a)
- tasks: validate labels and saved views (83fb347)
- tasks: add targeted task metadata typecheck (7a6a57d)
- pg: add final knowledge-tree read command (6ab2346)
- pg: add knowledge-tree read retry command (0e30ccf)
- pg: add one-shot schema view parity command (d28cdc8)
- pg: add one-shot audit reconciliation command (e11ce1f)
- pg: stage knowledge-tree read migration command (b12f0f0)
- pg: avoid workflow permission during branch sync (cd73024)
- pg: add one-shot latest-main sync command (4596d1f)
- tasks: validate My Day frontend and backend (175c463)
- blocks: validate historical schema repair (73f1d04)
- tasks: include offline runtime changes (ba1c304)
- tasks: validate offline task and habit support (2cf8364)
- layout: cover Web three-column state ownership (eb6a7d4)
- onboarding: cover first-login gate and app bridge (3455ce9)
- onboarding: verify bilingual new-user guides (033d5a4)
- editor: include deferred split layout regression (ce5c0d5)
- editor: verify issue 577 note switching fixes (d48911f)
- ai-chat: verify issue 568 interactions (9b75ea4)
- siyuan: run Markdown remote image import regression (7e1df2b)
- add import format regression workflow (a5cad3f)
- micloud: validate background jobs and SSE UI (9b5ee49)
- pg: remove temporary latest main merge command (c2069b2)
- pg: fix latest main merge anchor (b63cfff)
- pg: register latest main merge command (1a5b4b2)
- pg: remove temporary structure command workflow (f954087)
- pg: separate workflow update from structure commit (3e2ca7b)
- pg: enable PR-triggered structure command (a8dcb05)
- pg: trigger Yjs structure materialization (4abfca8)
- pg: materialize Yjs structure migration slice (2a6dc58)
- micloud: add backend import regression coverage (9f1ecf1)
- pg: remove temporary Yjs validation workflow (698d51d)
- pg: remove temporary Yjs command workflow (93df9eb)
- pg: remove temporary PostgreSQL sync workflow (ae98f50)
- pg: allow edited Yjs command trigger (f423753)
- pg: reuse proven command workflow for Yjs writes (a585d2b)
- pg: expose guarded Yjs write command (589ca91)
- pg: use fresh Yjs validation trigger branch (8cc5c40)
- pg: normalize remaining Yjs slice markers (e965597)
- pg: normalize Yjs patch markers before validation (d8e8da7)
- pg: trigger Yjs validation from clean main PR (45be7d1)
- pg: validate Yjs write slice through PR event (baa9897)
- pg: use robust v1.4.4 reconciliation script (bd34008)
- pg: finalize v1.4.4 sync regression reconciliation (1a9da55)
- pg: harden v1.4.4 sync regression gate (e76d466)
- pg: add guarded Yjs write migration command (cf2e1c3)
- pg: register reviewed mainline DB exceptions (d58f0fd)
- pg: add guarded main synchronization command (e59ca0c)
- pg: remove unused one-shot sync workflow (a90f564)
🔧 其他
- backend: 同步 package-lock 版本号至 1.4.4 (6a2e714)
- android: 升级 Gradle 插件与 compileSdk 版本 (d97bfda)
- calendar: remove temporary integration workflow (b73e50a)
- calendar: remove temporary integration script (193800d)
- calendar: normalize all-day due date transition (5708014)
- calendar: add validated integration patch (af77858)
- journals: remove temporary main sync workflow (d88851a)
- journals: prepare latest main sync (1c9e873)
- journals: remove temporary workspace journal frontend workflow (dbfa9e5)
- journals: remove temporary workspace journal frontend patch (b140d6b)
- journals: remove temporary workspace journal backend workflow (4645317)
- journals: remove temporary workspace journal backend patch (68d4643)
- journals: run robust frontend integration (128c2bf)
- journals: replace fragile frontend integration workflow (eb26326)
- journals: add robust workspace journal frontend patch (c2e03df)
- journals: wire workspace journal frontend integration (7438afa)
- journals: remove invalid frontend integration script (f059f7e)
- journals: add workspace journal frontend integration patch (6b13590)
- journals: wire workspace journal backend integration (929a16b)
- journals: add workspace journal backend integration patch (9ca92df)
- journals: remove temporary cleanup integration workflow (1678a95)
- journals: remove temporary cleanup integration script (4130052)
- journals: run cleanup integration on PR merge ref (5677f04)
- journals: wire cleanup integration task (e54427b)
- journals: add cleanup integration patch (bed5452)
- markdown: remove temporary integration workflow (ad6a463)
- markdown: remove temporary integration script (8ddbaf7)
- add temporary markdown daily command patch (32f7108)
- journals: remove open repair workflow (5c06cd9)
- journals: remove open repair helper (0cec66e)
- journals: retrigger explicit open repair (ac14fce)
- journals: wire explicit open repair (f42d331)
- journals: add explicit open repair patch (3e144a0)
- journals: remove contract patch workflow (0a93a69)
- journals: remove contract integration helper (38d4b56)
- journals: retrigger contract integration (b97fe82)
- journals: wire contract fix integration (6cba912)
- journals: add deterministic contract fixes (fd9c153)
- journals: remove frontend patch workflow (7c0591b)
- journals: remove frontend integration helper (67bff5e)
- journals: remove route patch workflow (66012a5)
- journals: remove route integration helper (4dd4b30)
- journals: retrigger frontend integration (6878c37)
- journals: wire archive frontend integration (2e62630)
- journals: add deterministic frontend integration patch (cd7f535)
- journals: retrigger route integration (9280dfd)
- journals: wire archive route integration (121ac76)
- journals: add deterministic route integration patch (92af822)
- daily-records: remove temporary API scope script (1748078)
- daily-records: remove temporary API scope workflow (9b0a2fd)
- daily-records: run temporary API scope patch (5d83b2f)
- daily-records: add temporary API scope patch (2eddca4)
- daily-records: remove temporary journal scope script (dc9ca45)
- daily-records: remove temporary journal scope workflow (75271d3)
- daily-records: simplify temporary journal scope patch (90e4b1f)
- daily-records: run temporary journal scope patch (7866602)
- daily-records: add temporary journal scope patch (eebac8a)
- daily-records: remove temporary integration script (a0803c1)
- daily-records: remove temporary integration workflow (0b95d7c)
- daily-records: include nav label in integration patch (2fa0c22)
- daily-records: extend temporary integration patch (1c9eff3)
- daily-records: run temporary slash integration patch (05cd937)
- daily-records: add temporary slash patch script (88b8715)
- ci: remove one-shot PostgreSQL final command (bc016fb)
- ci: remove one-shot PostgreSQL retry command (dcf35e6)
- ci: remove one-shot PostgreSQL schema command (7cc03ec)
- ci: remove one-shot PostgreSQL audit command (17e5fc0)
- ci: remove one-shot PostgreSQL migration commands (ace96cc)
- remove temporary typecheck script (48bedb8)
- remove temporary fix script (92aa593)
- remove temporary fix workflow (a81699e)
- ci: run timezone and mindmap alignment fix (a0bed52)
- ci: stage timezone and mindmap alignment fix (2c25253)
- remove staged auto-lock workflow (7660911)
- remove staged auto-lock script (7168a5d)
- ci: run folder auto-lock implementation (27fc757)
- ci: stage folder auto-lock implementation (7e94833)
- remove one-shot import format runner (85d5fc8)
- remove staged import format workflow (5eff276)
- enable import format implementation run (be25b43)
- stage import format implementation (fec0989)
📌 杂项
- 任务中心国际化文案补充 (b61f4e7)
- 任务行低优先级旗标桌面端悬停显示 (168be3e)
- 任务面板支持独立展开模式 (7abcec5)
- 任务中心架构重构 收集箱/我的一天/时间规划整合到侧栏 (d4e6800)
- 编辑器工具栏新增快速捕获到任务收集箱 (b2e29e9)
- 修复行内评论选区在外部交互后的残留显示 (35105c8)
- 全屏编辑时隐藏布局控制器 (e334234)
- 修复 Markdown 编辑器协同文档挂载时机 (c6fabd2)
- 知识树拖拽支持 DOCX 文件导入 (cd474df)
- 支持绿联 LAN 网关远程访问 (85b09cb)
- 修复笔记块索引内容文本重复 (571b34f)
- 移除行内评论浮动按钮及样式 (2d1d91b)
- 知识树目录节点折叠交互修正 (1c8a452)
- 任务数据导入导出入口与事件桥接重构 (7f301a2)
- 工作区删除笔记归属迁移逻辑提取为独立服务 (2b5e050)
- 知识树移动端工具栏按钮布局统一 (7aedcf1)
- 离线同步设置界面显示缓存位置和管理入口 (1c5a48a)
- 桌面端支持自定义离线缓存目录 (a1e19fc)
- 修复菜单构建时 isDev 取值时机 (8735c0a)
- 知识树紧凑工具栏与响应式操作菜单 (56166ae)
- 知识树统计新增笔记计数方法 (a7b8ed9)
- 修复行内评论 token 感知与匿名 401 边界 (2fd73cb)
- 移动端列表优先布局并整合搜索入口 (19d1ebb)
- 知识树创建菜单支持布局模式感知 (a97f2e6)
- 新增知识树搜索范围切换控件 (1159db0)
- 修复 Migration 版本号冲突 (df1062d)
Release v1.4.5
Targets: android,clipper,docker,fpk,linux-app,lite,pc
Docker image: cropflre/nowen-note:v1.4.5
Docker image: cropflre/nowen-note:latest
Commit: 6a2e714 chore(backend): 同步 package-lock 版本号至 1.4.4