Added
-
Conflict review can now suggest a combined "Merged" version of a block both
sides edited. When two devices changed provably different parts of the same
block's text (against the last version both sides agreed on), the in-page
conflict review offers the combination as a fourth, pre-selected choice next
to keep-mine/keep-theirs/keep-both — for sync-conflict copies and for
diff3/Fossil-style merge markers alike. Where the edits overlap but the
merge tool wrote its own####### SUGGESTED CONFLICT RESOLUTIONsections
(Fossil), that suggestion is offered in the same place instead, clearly
labeled as the tool's proposal. Like every suggestion it is only
pre-selected: nothing is applied until you confirm, the applied text is
re-derived from the same three versions (never trusted from the UI), and
edits that overlap — or whose combination would not survive as a single
block — simply get no offer. -
Conflict rows now preview the first line that actually differs, not
blindly the first line, with an…marker when earlier lines agree — and
multi-line blocks gain a per-row expander showing the full text of each
version with the differing lines highlighted. -
A conflict can no longer scroll out of sight. The in-page conflict
review lives at the top of the page; once it scrolls out of view a slim
one-line notice stays pinned to the top of the pane — especially on a
phone, where the review was previously invisible until you scrolled up.
Tapping the notice unrolls the same review in place (your reading position
and any choices you already made are kept); tapping again, pressing
Escape, or scrolling back to the top folds it away.
Changed
-
The conflict review is now usable on a phone (and in a skinny split
pane). When the panel is narrow, the two versions stack full-width instead
of being squeezed into unreadable columns, and the per-row choices become a
compact strip — a color dot plus a short word, with the legend mapping each
color to the real side name. Sync-copy names like
sync-conflict-20260705-141233-A2B2C3Dnow read "Sync copy · Jul 5"
everywhere (the exact file tag stays as a tooltip). -
The startup conflict notices are gone. The two toasts that appeared on
every graph open while conflict copies or merge-marker files existed
duplicated what the conflicts badge, the in-page review, and its pinned
notice already say — and pointed at Settings instead of the in-page
resolver. A toast still appears when a new conflict arrives mid-session,
and for duplicate journal days (which have no other surface). -
"Apply all suggested" no longer sweeps up a merge tool's own proposed
text. A FossilSUGGESTED CONFLICT RESOLUTIONbody (labeled Merged
(tool)) keeps whatever you set on that row; only your per-row choice (or
the initial pre-selection you confirm) accepts text Tine did not compute
itself.
Fixed
-
Split panes whose content fits no longer show a useless vertical
scrollbar (GH #369 — the reporter's dashboard of short panes like "Lines"
and "GRID" each carried a permanent bar). The end-of-page editing slack now
measures against each pane's own height (flex spacer in the pane scroller)
instead of the window (40vh): a pane up to ~60% full shows no bar at all,
a near-full pane keeps at most 40%-of-pane of breathing-room range, and a
long pane still scrolls independently and its tail can scroll ~40% of the
pane up off the bottom edge while editing. -
Advanced queries using
:inputs [:current-page]now follow the focused
pane (GH #301). Tine binds Logseq's standard current-page page/ref
relationship, reruns it on focused-page navigation, and keeps ordinary date
inputs typed and unchanged. -
A graph's Home page setting now follows the graph between devices (GH
#269). Tine reads and writes Logseq's:default-home {:page "..."}entry in
logseq/config.edn, preserves other keys in that map, and safely migrates an
older device-local setting after the graph opens. -
Resolving merge markers inside Tine now stages the pre-resolution file in
the recoverable trash (Settings → Backups & recovery), so the sides you
did not choose stay recoverable — the same guarantee resolving a sync
conflict copy already had. -
Adding a highlight no longer rewrites a PDF notes page that carries
unresolved VCS merge markers. The write is refused like any other save to
a quarantined page; previously it silently lifted the quarantine while the
merge was still unresolved in git/Fossil. -
Conflict review no longer freezes on blocks with extremely long single
lines. Comparing candidate rows now caps at the first 512 characters per
line (a 64 KB one-line block previously stalled the conflict panel for
seconds to minutes), oversized flat pages avoid a slow exact-alignment
cliff, and all conflict-review reads moved off the UI's request thread. -
Managed-storage startup failures now keep their real recovery cause and stop looking active (GH #370). A core reopen can return a typed retryable/refused result without a serving actor; startup previously wrapped that non-serving result in a managed graph slot and then replaced its useful cause with the generic “managed storage is not ready” page-readiness error. It now refuses before publication with the original redacted diagnostic, keeps the Direct Files escape available, and freezes the elapsed time when the operation reaches its terminal failure instead of counting upward indefinitely.
Download an installer for your platform below. Windows and Linux ship both x64 and ARM64 builds (match your CPU). Windows users who prefer no installer can grab the portable Tine_*-portable.zip for their architecture. macOS and Windows builds are currently unsigned, so their operating systems may show a warning on first launch. On macOS, if Tine repeatedly asks to access Documents, see the workaround in the README.