Tine v0.4.0
The headline of 0.4.0 is that Tine now runs on Android — a native build that
reads and writes your real Logseq graph on the phone, sharing the same Markdown
files with Logseq over Syncthing. This release also folds in the whole 0.3.x
series (PDF export, task checkboxes, in-page find, time tracking, the theme
gallery, and more).
Installing on Android: the APK is sideloaded and signed with Tine's own key
(not a Play Store key), so Google Play Protect will warn that it "doesn't
recognize this developer" — expand the dialog and choose to install anyway
(some devices ask you to confirm with your fingerprint). That's expected for
any app from outside the Play Store. Also, if your graph doesn't open on the
very first attempt, restart the app and try again — a known first-launch
hiccup we're still chasing.
Added
- Tine runs on Android. A native Android build (Tauri v2) opens and edits
your real Logseq graph. On first run, grant Tine "All files access", then pick
your graph folder (e.g. your Syncthing-synced notes) — Tine reads and writes
the same Markdown files as Logseq, so the two coexist on one graph. The file
watcher runs in poll mode, so external edits (Logseq mobile, Syncthing) appear
live. - Above-keyboard editing toolbar (Android). While a block is focused, a
toolbar docks above the keyboard with the keyboard-only actions — outdent /
indent, move block up / down, soft line break, TODO, date,[[ ]]/(( )),
the slash menu, and hide-keyboard. - Android quality-of-life. A real Tine app icon, an edge-to-edge layout that
keeps the toolbar clear of the status/navigation bars, a hardware Back button
that navigates within Tine (exiting only at the root), and mobile-tuned journal
headers and settings. - Signed Android releases, built in CI. Each tagged release builds a
release-signedTine_<version>_android-arm64.apkon GitHub Actions (arm64
devices); the signing key lives only in encrypted CI secrets. - Built-in theme gallery. Settings → Appearance now has one-click Default,
Nord, Solarized, and Gruvbox cards, each covering both light and dark mode. The
selected gallery theme is saved through Tine's backend app settings
(theme.gallery), not WebKit localStorage, and applies as a managed
#tine-themelayer before the user'slogseq/custom.css, so hand-written graph
CSS still wins. - In-page find on normal pages.
Mod+Fopens a browser-style find bar with
next/previous navigation, match counts, and non-destructive highlights. Matches
come from the loaded block model rather than the mounted DOM, so text under
lazy-rendered or collapsed branches is counted and the target branch is expanded
before the active hit is scrolled into view. - Logseq-compatible time tracking. Moving tasks into
DOING/NOWclocks in,
and moving them back toTODO/LATERor intoDONEclocks out by writing OG
:LOGBOOK:CLOCK:rows. The writer uses Logseq's local timestamp shape,
English weekday abbreviations, default seconds mode, and the exact=>span
spacing; elapsed badges onDONE/TODO/LATERblocks show recent CLOCK rows in
a tooltip. The feature is gated by:feature/enable-timetracking?(default on). - Rendered copy is more faithful. Copy / export → Rendered now preserves
$…$/$$…$$math delimiters, pre-warms off-screen block refs before copying,
resolves{{embed}},{{query}}, and media/widget macros to sensible text forms,
and adds a Resolve refs fully toggle for multi-line block refs. Query exports
are capped and visibly marked when truncated; full math-typeset-to-plain-text is
still tracked separately. - Sub-directory scan Phase 2 polish (#21).
Sync-conflict and duplicate-day journal scanners now recurse underpages/and
journals/through the same page-file walker as the main scan, so nested
conflict copies are surfaced. The Pages list also disambiguates basename
collisions only when needed (foo — client-a/) and opens file-backed entries by
graph-relative path, so colliding nested pages save back to their own files
without creating a flat twin. - Logseq
--ls-*theme CSS mostly works incustom.css. Tine now seeds the
common OG color variables and routes its own theme tokens back through them, so
Awesome-Styler-style themes can recolor backgrounds, text, links, borders, bullets,
selection, marks, and inline code while Tine's default light/dark themes stay
visually unchanged. This is CSS theme compatibility only, not Logseq plugin support. - Pages in sub-directories are now scanned (#21).
Like Logseq, Tine walkspages/(andjournals/) recursively, so pages filed
into real sub-folders — e.g. archivingpages/client-a/…— appear in the page list
and are searchable and linkable instead of being invisible. A nested page is keyed by
its file name (pages/client-a/foo.md→ pagefoo), matching Logseq, and edits
save back to that file in place. Namespaces (parent/child) remain the flat
parent___child.mdfilename encoding, not real folders — also matching Logseq.
The file watcher also descends sub-directories now, so a page added in a sub-folder
(or delivered there by Syncthing) while Tine is open appears live, without a reopen.
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 arch — unzip and run the exe (needs the WebView2 runtime, preinstalled on Windows 10/11). macOS/Windows builds are currently unsigned (right-click → Open on macOS; More info → Run anyway on Windows). On macOS, if Tine keeps asking to access your Documents folder on launch, see the workaround.