Skip to content

Releases: onlymykazari/obsidian-nextcloud-deck

1.1.1 — Replace :has CSS selectors

Choose a tag to compare

@onlymykazari onlymykazari released this 19 Jul 05:45

Replaced CSS :has() selectors with explicit root classes to resolve Obsidian review performance warnings.

NextDeck 1.1.0 — Sync Audit Fixes + ETag Caching

Choose a tag to compare

@onlymykazari onlymykazari released this 19 Jul 04:20

NextDeck 1.1.0

P0 Critical — 数据丢失 / 同步完全失败

  • savePluginData 顺序修复data.json 优先持久化,索引/图谱写入改为 best-effort try/catch,防止 vault 写入失败时丢失内存状态
  • getStacks 403 防护pullBoardgetStacks 包裹 try/catch,单个 board 的 403 不再中止整次同步
  • fallbackFetchStackCards 实现:当 bulk /stacks 响应不含 cards 时,调用 GET /boards/{bid}/stacks/{sid} 获取卡片

P1 High — 数据陈旧 / 更新遗漏

  • 卡片跨列表移动同步:检测 baseline stackRemoteId 变更,调用 reorderCard API 将移动同步到 Deck
  • dirtyForDisk reconciling guardwriteCardFile 循环设置 reconciling=true,消除幽灵列表竞态条件

P2 Medium — 性能与可靠性

  • ETag 缓存:所有 GET 请求传入缓存 etag(If-None-Match),304 跳过合并,push 后自动失效
  • cardIds 快照保护:清空前快照,部分失败时恢复未处理列表的卡片引用

变更文件

src/plugin.js · src/sync-manager.js · src/deck-client.js · src/sync-mapper.js · src/conflict.js

验证

26 tests pass · build OK · syntax check OK

1.0.5 — 修复隔板 pull 失败导致的影子 list + 同步 remote 删板

Choose a tag to compare

@onlymykazari onlymykazari released this 19 Jul 01:47

...

1.0.4 — rename manifest.id to nextdeck

Choose a tag to compare

@onlymykazari onlymykazari released this 11 Jul 14:39

Change manifest.id from obsidian-nextcloud-deck to nextdeck so the Obsidian Community Plugins submission form accepts it. Also flips user-facing strings to NextDeck.

1.0.3 — fundingUrl

Choose a tag to compare

@onlymykazari onlymykazari released this 11 Jul 14:17

Adds manifest.fundingUrl so the Community Plugins card shows a heart icon linking to https://buymeacoffee.com/onlymykazari. No code changes.

1.0.2 — Support section

Choose a tag to compare

@onlymykazari onlymykazari released this 11 Jul 14:15

Adds a Support section in Settings with a 'Buy me a coffee' button and a small link to sponsor the upstream Task Deck author.

1.0.1 — Community Plugins prep

Choose a tag to compare

@onlymykazari onlymykazari released this 11 Jul 13:42

Prep release for Obsidian Community Plugins submission. See PR template in .trae/documents/community-plugin-submission.md. No user-visible changes.

1.0.0 — NextDeck

Choose a tag to compare

@onlymykazari onlymykazari released this 11 Jul 13:31

First stable release. Plugin display name is now NextDeck. Existing users upgrade in place — manifest id (obsidian-nextcloud-deck) unchanged.

0.5.0-pre.26 - stop list duplication on sync

Choose a tag to compare

@onlymykazari onlymykazari released this 11 Jul 13:16

Fix

Lists no longer duplicate after every sync ("4 lists become 8, then 12").

Root cause

A three-way race between pull, our own file writes, and the vault event handler:

  1. Pull replaces `localBoard.lists` wholesale with fresh uids where needed.
  2. pullCards then calls `writeCardFile` per refreshed card (pre.22 addition), triggering vault modify events.
  3. Those events hit the 250ms folder-sync debounce, which runs `reconcileListsFromIndex`.
  4. `reconcileListsFromIndex` reads the stale index file's list meta (pull never rewrites it), sees uids that don't exist in current `board.lists`, and re-creates them as empty lists.

Result: every sync resurrects the previous generation of list uids, so a 4-list remote board becomes 8 locally, then 12, etc.

Fix

At the end of pull, re-run `writeBoardIndexFile` for every bound board, wrapped in the plugin's `reconciling` guard so our own writes don't fire the folder-sync debounce a second time. This keeps the on-disk list meta in lockstep with in-memory `data.boards`, making `reconcileListsFromIndex` a no-op after the vault event fires.

Test

  1. Update via BRAT to 0.5.0-pre.26
  2. Sync now → the extra empty lists should collapse back to the real 4 (they were dropped in memory by pull all along; they came back only via the vault event)
  3. Sync again → count stays stable at 4

0.5.0-pre.25 - copy Obsidian URL button on attachments

Choose a tag to compare

@onlymykazari onlymykazari released this 11 Jul 13:12

Adds a link-icon button on each attachment tile (in the card modal Attachments panel) that copies an obsidian://open?vault=...&file=... URL for the attachment to the clipboard, in front of the Open and Delete buttons. Handy for pasting the reference into notes.