modified task item group versions by day: "Today", "Yesterday", "3 days ago", "...
modified list item "restore this version" button per version
modified list item add "view on web" link per version using /:path/~versions/v{...
inserted paragraph phase 1 (easy, no new API):
inserted task item commit messages already render — improve visual layout
inserted paragraph phase 2 (diff viewer, needs API):
inserted list item click version to see content at that point (read-only tab)
inserted list item API: GET /v1/spaces/:slug/items/:id/diff?v1=X&v2=Y already e...
inserted list item API: GET /v1/spaces/:slug/content/:hash for fetching old ver...
inserted list item Obsidian Sync does NOT show diffs natively. community plugin...
inserted list item our approach: open old version content in a read-only leaf, ...
inserted paragraph phase 3 (restore):
inserted list item API: POST /v1/spaces/:slug/items/:id/restore with { from_ver...
M /sublimated/undefined +12 -0
72 unmodified lines73- detection result: space slug, folder path, root path, detection mode74
75### version history improvements76
77- group versions by day: "Today", "Yesterday", "X days ago", "Mon DD"78- show commit message per version79- diff viewer (click version to see diff against current)77phase 1 (easy, no new API):78- [x] group versions by day: "Today", "Yesterday", "3 days ago", "Mon DD"79- [x] commit messages already render — improve visual layout80- add "view on web" link per version using `/:path/~versions/v{number}` URL pattern81
82phase 2 (diff viewer, needs API):83- click version to see content at that point (read-only tab)84- API: `GET /v1/spaces/:slug/items/:id/diff?v1=X&v2=Y` already exists85- API: `GET /v1/spaces/:slug/content/:hash` for fetching old version content86- Obsidian Sync does NOT show diffs natively. community plugin (obsidian-version-history-diff) does but uses private APIs87- our approach: open old version content in a read-only leaf, let user compare visually. no private APIs88
89phase 3 (restore):90- "restore this version" button per version91- API: `POST /v1/spaces/:slug/items/:id/restore` with `{ from_version: number }` already exists92
93### OAuth sign-in94
95add one-click sign-in instead of pasting API tokens:961. user clicks "Sign in with sublimated" in settings50 unmodified lines