Repository navigation
Releases: fatihaydin9/folium-releases
Release list
Folium v0.2.0
Added
-
BoJo Planner: a bullet-journal weekly spread as a black pinned tab —
dated minimos land on their day and can be placed as time blocks on a
05:00–24:00 ruled grid (15-minute snap, 30-minute ruled lines, 5-hour
ceiling), with scrum effort points (1/2/3/5/8/13/21), an importance color
(Oxford-style black/red/yellow edge band), and a per-block BoJo bullet
list. Undated minimos wait in a right-hand INBOX rail (yellow cards,
paged by tens with the ∧/∨ arrows) and are assigned to a day from the
placement dialog — never dropped straight onto the grid. Blocks drag
vertically and stretch from their bottom edge, snapped to the grid.
Reverting a block sends inbox scraps back to the INBOX and pre-planned
(dated-at-capture) scraps back to their day's unplaced queue. Deleting a
minimo lives on the INBOX cards and the wall's post-its only, and always
asks first. Time blocks persist one file per week in
workspace/planner/<monday>.json(created for the current week before
any plan exists; legacyworkspace/planner.jsonis split into week files
and moved to the vault trash on first launch), so weeks archive
themselves and sync with the vault. On phones the planner is
capture-and-peek: minimos can be added and deleted, and today's
timesheet shows read-only. -
Paid license ($29.90 once, no subscription) with a 14-day full-feature
free trial: when the trial lapses without a license key, the vault
becomes read-only through the app — creating, editing, moving, and
deleting content are gated, while reading, searching, backup/export, and
sync keep working (notes never lock). Licenses are Lemon Squeezy keys
(per-key limit of 5 devices, 30-day offline grace after each validation);
deactivating in Settings frees the server-side activation slot. Manage the
key in Settings → License. -
Marketing site: a dependency-free static landing page in
landing/
(hero artwork, interactive drawer demo, comparison table, pricing, FAQ,
privacy/terms/licenses pages), deployed to GitHub Pages via
.github/workflows/landing.yml. -
Android share target: sharing text to Folium from any app stashes it
and turns it into a Quicknote on next launch/resume. -
Phone launch lands on Quicknotes: a phone is a capture device, so a
cold start opens the fastest capture path. Resizing into the phone layout
(e.g. iPad split-view) re-homes scenes the phone UI cannot reach. -
Handwriting (ink) layer for Folios: pen/marker/eraser strokes with
pressure sensitivity live in a sibling top-levelinkkey of the folio
document (src/lib/folio-ink.ts), captured by a web engine (Pointer
Events, coalesced samples, perfect-freehand outlines) on desktop and by
native engines on mobile — PencilKit on iPad, Jetpack Ink on Android,
with a reflection-gated BOOX/Onyx adapter — via the new
tauri-plugin-folium-inkplugin (src-tauri/plugins/folium-ink/). -
Content character limits: Minimo capture hard-caps at 70 chars;
Octavo front/back at 190 each (labels renamed Question/Answer →
Front/Back); Quarto content hard-stops at 900 with a fill-ring gauge on
the counter — quiet below 700, yellow from 700, red at the cap.
Changed
-
Relicensed as proprietary commercial software: Folium is a paid
product, not open source —LICENSEnow grants use rights only through a
purchased license key (or the trial), replacing the earlier MIT text.
Bundled third-party components keep their own licenses
(THIRD_PARTY_LICENSES.md). -
Dialog chrome, unified: every dialog and popup sheet closes through
the shared red round ×, and every action button in a dialog leads with an
icon. The planner's minimo capture uses crisp fixed inputs (solid
borders, native date picker — nothing resizes on focus), and minimo
deletion (planner INBOX, Board wall) is a trash-icon button that always
asks first. -
Android sync token storage: the GitHub OAuth token moved out of the
vault (.zettelkasten/sync-token) into the app-private config directory.
Existing tokens migrate automatically on first use. -
Excalidraw defaults and theme: new elements start small (S text,
thin stroke) so the locked folio page keeps its drawing room, and the
editor chrome wears the Folium palette and hand-drawn borders instead
of the stock purple.
Removed
- Excalidraw "Browse libraries" button: it fetches a CDN, which the
app's CSP blocks and the local-first promise forbids — the button only
ever opened an empty dialog. Personal (local) libraries keep working.
Added
- Local logging: all backend activity and frontend IPC failures are
written to a rotating local log file (folium.log). Settings → Logs
shows the path and can reveal the file in the file manager. - Backup / restore: export the whole vault to a timestamped zip archive
and restore it into a fresh folder (Settings → Backup). Internal state
(.zettelkasten/,.git/) is excluded; restores are protected against
non-empty targets and path-traversal entries. - Privacy Policy, Terms of Use, and third-party license overview ship
with the repository. - Test coverage gates: ≥90% line coverage on both halves — vitest +
coverage-v8 forsrc/lib/**, cargo-llvm-cov for the Rust crate; both are
enforced in CI (.github/workflows/ci.yml). - Release pipeline:
v*tags build installers for macOS (arm64),
Windows (x64), and Linux (x64) via.github/workflows/release.yml. - In-app updates:
tauri-plugin-updaterchecks for new releases in the
background on desktop startup and installs them for the next launch
(signed with a project minisign keypair; endpoint is the GitHub releases
latest.json). - Vault format stamp:
.zettelkasten/format_versionrecords the on-disk
format version; a vault written by a newer app version is refused instead
of being silently misread. - Mobile readiness: the iOS scaffold now ships as Folium /
com.folium.appwith an app-store export configuration and a privacy
manifest (PrivacyInfo.xcprivacy); Android release builds support keystore
signing viakeystore.propertiesand a CI-overridableversionCode
(TAURI_ANDROID_VERSION_CODE). CI compiles the Rust crate for
aarch64-apple-iosandaarch64-linux-androidon every push. - MIT license (
LICENSE). - Phone navigation guard: resizing to phone width (or iPad split-view)
re-homes the user to an allowed scene instead of stranding them.
Changed
- GitHub OAuth device flow is now the only sync authentication method.
Personal access tokens (PAT) are no longer supported; connect via
Settings → Sync → "Connect with GitHub". On Android the token is stored
in.zettelkasten/sync-token. - Sync remote URLs are validated: only GitHub HTTPS URLs
(https://github.com/<owner>/<repo>) are accepted. - Mermaid support removed. Excalidraw is the single drawing solution.
Existing```mermaidblocks render as plain code blocks — no
content is lost. - The updater is desktop-only; mobile updates ship through the app
stores. The Privacy Policy documents the desktop update-check request. - Card export buttons (PNG/PDF) are desktop-only; they no longer appear
on tablets and phones where the platform cannot complete them. - Release notes are generated from this file: the release workflow
injects the matching version section into the GitHub release body, and
builds embed the real GitHub OAuth client ID from the
FOLIUM_GITHUB_CLIENT_IDrepo variable. - Safe-area aware layouts: notched devices get proper insets.
- Dead code removed: the unused reference side-panel state and the
ReferencePanelcomponent were dropped; the Sources scene (one-hop
reference graph) is the single reference view.
Fixed
- Backend panics and unhandled frontend errors/rejections now land in the
local log file (and the frontend shows an error toast) instead of
vanishing into stderr. - Error toasts show plain-language copy (
userMessagein
src/lib/errors.ts); raw OS/database error text no longer reaches the UI.
Removed
- PAT authentication mode (breaking change for sync setups created with
0.1.0 — reconnect via GitHub OAuth). - The
mermaidnpm dependency.