Skip to content

SwarmNote v0.2.1

Choose a tag to compare

@github-actions github-actions released this 05 Apr 03:43
021d20c

0.2.1 - 2026-04-05

Bug Fixes

  • build: correct App.css import casing for case-sensitive filesystems
  • db: invoke before_save manually for Entity::insert() upsert paths
  • db: enforce UUID integrity with UNIQUE constraint and lifecycle fixes
  • editor: fix title isDirty not clearing and case-sensitive .md check
  • frontend: simplify code and fix placeholder issues
  • i18n: 补全前端各组件的国际化覆盖
  • i18n: remove compiled catalogs and fix setLocale race condition
  • identity: suppress dead_code warning for keypair field
  • network: activate event listeners and unify node status architecture
  • pairing: multiple pairing logic bugs
  • pairing: pass remote osInfo in code pairing to store correct device info
  • pairing: pass notificationId as prop to prevent dialog close failure
  • pairing: update CommandPalette to use openSettingsWindow
  • release: bump version to 0.2.1 and align plugin-updater versions
  • sync: ensure workspace topic subscription and asset sync for closed docs
  • sync: use tuple variant directly to satisfy clippy::redundant_closure
  • sync: use sort_by_key to fix clippy::unnecessary_sort_by
  • updater: add missing plugin deps and remove unused version prop
  • workspace: suppress unused variable warning for settings_window on non-macOS
  • workspace: 修复工作区打开流程及编辑器块类型
  • yrs-blocknote: preserve list spread state through markdown round-trip

CI/CD

  • add submodule checkout and libdbus for keyring

Documentation

  • design: complete settings page redesign with all 4 tabs
  • design: add v0.2.0 pairing and sync UI designs
  • milestone: add v0.2.1 remaining issues todo list
  • milestone: add design decisions for workspace-ignore-filter
  • milestone: update v0.2.0 with device pairing, UI design, and full network support
  • sync: add CRDT sync architecture and asset sync design documents
  • resolve blog post conflict after amend (keep updated version)
  • add yrs-blocknote deep-dive blog post
  • add yrs-blocknote deep-dive blog post
  • backfill v0.2.1 issue numbers and milestone link
  • add device connection type feature for v0.2.1
  • add v0.2.1 milestone - sync UX polish & auto-update
  • add P2P sync deep-dive and update CLAUDE.md
  • add sidebar layout and settings window UI optimization spec
  • add TauriYjsProvider blog post and external-file-sync feature spec
  • add v0.2.0 milestone planning and commit conventions
  • add device identity technical design
  • update v0.1.0 docs to reflect new UI design decisions
  • redesign v0.1.0 UI with indigo theme and desktop-only layout
  • add UI design draft
  • use Project Iteration for Sprint, not Milestone
  • use Tasklist format for issue dependency tracking
  • integrate GitHub Projects into project skills
  • backfill GitHub Issue numbers to v0.1.0 README
  • add next-step hint to project-explore skill
  • add v0.1.0 milestone docs and enhance project skills
  • add UI design requirements, remove comment system from design docs
  • add system design docs, simplify to 3-level permissions
  • replace CodeMirror with BlockNote, remove yrs dependency
  • add BlockNote research, update editor choice from CodeMirror to BlockNote
  • rewrite README in Chinese with project overview
  • simplify dev-notes, extract E2E encryption design
  • redesign product vision, add swarm-p2p submodule, reorganize dev-notes

Features

  • ci: add release workflow with auto-update signing config
  • db: implement SQLite storage layer with sea-orm 2.0-rc
  • device: add connection type identification (LAN/DCUtR/Relay)
  • editor: add media loading retry with skeleton UI for P2P asset sync
  • editor: integrate BlockNote rich-text editor with markdown persistence
  • filetree: implement filesystem-driven file tree with CRUD and live watching
  • i18n: complete i18n for settings nav, network status, and device components
  • i18n: add Lingui internationalization with zh/en support
  • i18n: add Lingui internationalization with zh/en support
  • identity: implement device identity with system keychain
  • p2p: system tray, P2P lifecycle control, and Rust code quality refactor
  • p2p: auto-start P2P node on app launch
  • p2p: integrate swarm-p2p-core into Tauri backend (#24)
  • pairing: implement device discovery and pairing (#26)
  • settings: reorganize settings tabs - add sync tab, remove network tab
  • skill: add project-issue skill for quick issue creation
  • storage: implement markdown persistence with media support
  • store: add Zustand stores with tauri-plugin-store persistence
  • sync: switch GossipSub from per-doc to workspace-level topics
  • sync: implement CRDT sync engine with full/incremental sync and asset transfer
  • sync: detect external .md changes and reload Y.Doc automatically
  • sync-ui: improve sync dialog with progress bar, re-sync support, and clickable results
  • ui: implement UI framework with shadcn/ui + Tailwind v4 + TanStack Router
  • ui: implement UI framework with shadcn/ui + Tailwind v4 + TanStack Router
  • updater: integrate tauri-plugin-updater for desktop auto-update
  • workspace: workspace list exchange API and UUID-first state (#46)
  • workspace: implement workspace lifecycle management
  • yjs: integrate BlockNote collaboration mode with Rust YDocManager
  • yrs-blocknote: align Block data model with BlockNote format
  • yrs-blocknote: add independent crate for BlockNote ↔ Markdown ↔ Y.Doc conversion
  • v0.2.1 sync UI — sidebar status, workspace picker sync, onboarding P2P flow (#45, #50, #49)
  • add mdast-util-to-markdown crate (Rust port of JS library)
  • integrate BlockNote editor and redesign settings UI (#39)
  • add onboarding flow, workspace picker, and per-window state management
  • remove android
  • add GitHub project management skills and guide
  • init

Miscellaneous

  • i18n: merge auto-update and workspace-sync i18n entries
  • i18n: sync zh catalog after lingui extract
  • add /target/ to .gitignore for workspace crates
  • update swarm-p2p submodule to develop (gossipsub integration)
  • integrate dev toolchain (biome, lefthook, commitlint, git-cliff, CI)

Refactor

  • backend: restructure Rust modules by business domain
  • db: stabilize document and workspace UUIDs for sync readiness
  • entity: migrate time fields from i64 to chrono::DateTime
  • entity: use Uuid type instead of String for primary keys and foreign keys
  • rust: split event_loop and encapsulate GlobalConfigState
  • sync: reduce SV compensation frequency and add publish-failure trigger
  • ui: 将工作区切换和快捷操作移至标题栏
  • ui: extract shared components and hooks to reduce duplication
  • ui: 将设置页面从独立路由改为弹窗 (#20)
  • yrs-blocknote: replace comrak with markdown + mdast-util-to-markdown

Testing

  • yrs-blocknote: add BlockNote compat tests and batch real doc tests