Releases: krwg/cultiva
Release list
[2.3.4] Rowan: glyph-s 2.7.2 & plugin install integrity
Download · Changelog · Landing
2.3.4 Rowan vendors glyph-s 2.7.2 — the shared offline search engine from the Glyph family — and hardens official plugin installs against stale CDN hashes. Still zero accounts, zero telemetry.
Numbers That Matter
| glyph-s | 2.7.2 vendored under src/core/glyph-s/ |
| Full-text fix | Body text included in the fast-path bag (paragraph-only hits work) |
| Registry | Companion catalog 3.6.3 |
| 0 | Required accounts, cloud sync, or telemetry |
Engine stack
| Engine | Role |
|---|---|
| CoreV6 | App shell, settings, i18n, release pipeline |
| GrowthKit3 | Habit growth stages, schedules, analytics |
| IDB3 | IndexedDB persistence |
| PLE1 / PE2 | Plugin sandbox + tray contributions |
| glyph-s 2.7.2 | Local search ranking (habits, plugins, beds, events, settings) |
Search · glyph-s 2.7.2
Cultiva ships a vendored copy of FlokeStudio/glyph-s — the same core used by glyph-sO for Obsidian full-text search.
What’s new in 2.7.2 for Cultiva:
- Body in the fast-path — candidate gating previously used title + keys only; words that appear only in descriptions / notes now reach scoring
- Index bag reuse —
createSearchEnginepasses precomputed bags into ranking - Profiles module —
legacy/balanced/max-qualitylive inprofiles.js
| Resource | URL |
|---|---|
| glyph-s (engine) | https://github.com/FlokeStudio/glyph-s |
| glyph-sO (Obsidian) | https://github.com/FlokeStudio/glyph-sO |
| Glyph family landing | https://flokestudio.github.io/Floke/ |
Settings → Search shows the engine version (glyph-s 2.7.2) and rebuild controls.
Plugin install integrity
Fixes Integrity check failed for manifest.json after a fast registry push:
- Always refetch the official registry on install (no stale in-memory sha256 map)
- Prefer jsDelivr for registry + plugin files (avoids laggy
raw.githubusercontent.comedges) - LF-normalize text plugin files before sha256 compare
- Store catalog prefers jsDelivr, with raw GitHub fallback
Companion registry 3.6.3 — aligned first-time store descriptions; Radio 2.6.x line.
Installation
| Platform | File |
|---|---|
| Windows | Cultiva-Setup-2.3.4.exe, Cultiva-Portable-2.3.4.exe |
| macOS Intel | Cultiva-2.3.4-mac-x64.dmg (+ .zip) |
| macOS Apple Silicon | Cultiva-2.3.4-mac-arm64.dmg (+ .zip) |
| Linux | Cultiva-2.3.4-linux-x86_64.AppImage, Cultiva-2.3.4-linux-amd64.deb |
Data lives in IndexedDB locally. No account required.
Upgrading: garden data is preserved. Export a backup under Settings → Storage before updating, just in case.
Links
| Resource | URL |
|---|---|
| Repository | https://github.com/krwg/cultiva |
| Landing | https://krwg.github.io/cultiva/ |
| Plugins | https://krwg.github.io/cultiva-plugins/ |
| Wiki | https://github.com/krwg/cultiva/wiki |
| glyph-s | https://github.com/FlokeStudio/glyph-s |
| Glyph / Floke | https://flokestudio.github.io/Floke/ |
Previous releases
Thank you for growing your habits with Cultiva.
[2.3.3] Rowan: PE2 tray merge & Radio 2.5 companion
Highlights
PE2 tray
- Tray tooltips and menu rows are merged per plugin — Weather °C and Radio now-playing can show together
data-urlpayloads for sheet actions (Radio stream history chips)
Companion Radio 2.5.0
- Custom stream:
.m3u/.plsresolve, multi-URL paste, stream history - +10 SomaFM stations, station filter, tray now-playing
Notes
- Companion registry 3.5.8
| Tag | 2.3.3 |
| Codename | Rowan |
[2.3.2] Rowan: Dev Mode & Weather tray °
Fixes
Developer Mode
- Sidebar item stayed visible after Hide / Turn off because
.settings-sidebar-item { display: flex }overrode the HTMLhiddenattribute - Gated by
body.developer-mode+ CSSdisplay: none !important; hide/off leave the Developer section and re-assert aftersaveSettings
Weather tray °
- PE2 tray wiring hardened; Weather 2.7.2 writes temperature to the tray tooltip and a menu row (
City · °C)
Notes
- Companion registry 3.5.7 · Weather 2.7.2
| Tag | 2.3.2 |
| Codename | Rowan |
| Progress | https://github.com/krwg/cultiva/blob/main/CultivaProgress.md |
[2.3.1] Rowan: Discord prefs, Dev Mode polish, PE2 tray & Weather tray °
Highlights
Discord Rich Presence
- Display mode: Activity / Quiet / Custom
- Toggles for habit count, streak, trophies, elapsed timer, profile buttons, Focus override
- Large-image style: auto / garden / legacy / theme
- Custom details & state lines when mode is Custom
Developer Mode
- Hidden by default — unlock with 7 taps on the footer version
- Hide (re-lock UI) and Turn off (full reset) buttons
- Animated developer background
- More flags & tools; disable/enable habits from the panel
- Context menu: Disable / Enable habit
PE2 + Weather
- Plugin Engine PE2:
ui.setTrayTooltip,ui.registerTrayItems,ui.clearTrayItems - Weather 2.7.1: temperature in the tray tooltip; Neo night/blue-hour forecast contrast
Notes
- Companion registry 3.5.6
| Tag | 2.3.1 |
| Codename | Rowan |
| Progress | https://github.com/krwg/cultiva/blob/main/CultivaProgress.md |
[2.3.0] Rowan: Developer Mode, green lint & Weather Neo solar skies
Numbers That Matter
| 0 | ESLint errors on npm run lint (glyph-s vendored + ignored; eqeqeq allows == null) |
| 89 | Vitest tests green |
| 7 | Taps on the footer version to unlock Developer Mode |
| 6 | Solar sky phases in Weather Neo (dawn → night) |
Lint & quality
- Ignore vendored
src/core/glyph-s/**(glyph-s 2.7 is third-party style) eqeqeqwith{ null: 'ignore' }for intentional nullish checks- Remaining app
eqeqeq/ assignment issues fixed — green lint
Developer Mode
Unlock: tap the footer version line 7 times → toast You are now a developer → Settings → Developer.
| Tool | What it does |
|---|---|
| Feature flags | One panel for trophies, next-Legacy, heatmap, focus chrome, low-power, force reduced motion, auto-backup, update toggles |
| Session overrides | Temporary LEGACY_THRESHOLD, MAX_HABITS_PER_BED, MAX_ACTIVE_HABITS (not persisted) |
| window.cultivaDev | seedFakeHabits, simulateDate, exportDebugState, completeAllToday, setOverrides, startChaos, getRpcLog, … |
| Plugin RPC log | Live allow/deny + timing for sandbox calls |
| Fun | Complete-all-today, chaos themes, ASCII console banner, secret ASCII background |
| Focus safety | With chrome hidden, a floating Exit Focus chip stays visible (Escape still works) |
Weather Neo 2.7.0 (companion)
- Open-Meteo sunrise / sunset; phases: dawn, day, evening, sunset, bluehour, night
- Dark skies use light text without requiring theme bypass
- Sunrise/sunset row in the plugin sheet
- Soft background transitions + light FX breathing
- Registry 3.5.5
Installation
| Platform | File |
|---|---|
| Windows | Cultiva-Setup-2.3.0.exe, Cultiva-Portable-2.3.0.exe |
| macOS Intel | Cultiva-2.3.0-mac-x64.dmg (+ .zip) |
| macOS Apple Silicon | Cultiva-2.3.0-mac-arm64.dmg (+ .zip) |
| Linux | Cultiva-2.3.0-linux-x86_64.AppImage, Cultiva-2.3.0-linux-amd64.deb |
Upgrading: export under Settings → Storage first if you like backups. Garden data is preserved.
Links
| Resource | URL |
|---|---|
| Repository | https://github.com/krwg/cultiva |
| Plugins | https://github.com/krwg/cultiva-plugins |
| Progress | https://github.com/krwg/cultiva/blob/main/CultivaProgress.md |
Thank you for growing your habits with Cultiva. — krwg
[2.2.0] Rowan: Horizontal beds, settings IA, glyph-s & Discord presence
Full Changelog: 2.1.3...2.2.0
2.2.0 Rowan is the layout and presence release of the Rowan line. The garden finally sits in horizontal beds under plugin widgets, the footer pins to the window, Settings get a clearer information architecture, glyph-s 2.7 powers local search, and Discord Rich Presence reflects what you are actually growing — still zero accounts, zero telemetry.
This release is 5 commits since 2.1.3 (feat + polish + garden/CSS durability + store toolbar + docs), plus companion Quote 1.6.0 on registry 3.5.4.
Numbers That Matter
| 3 | Habits per garden bed (hard cap with BED_FULL toast) |
| 2.7.0 | Vendored glyph-s search engine in-tree |
| 500 + 500 | Curated Quote banks — English and authentic Russian |
| 1 | Pinned footer — position: fixed on every theme and ambient |
| 0 | Cache-clear cloud leaking into the garden |
| 0 | Required accounts, cloud sync, or telemetry |
Engines (unchanged major)
| Engine | Role |
|---|---|
| CoreV6 | App shell, settings IA, i18n, release pipeline |
| GrowthKit3 | Habit growth, beds, schedules, analytics |
| IDB3 | IndexedDB persistence |
| PLE1 | Plugin sandbox + store UI |
Garden. Horizontal beds.
Beds are no longer flat headers floating in a broken grid. Each bed is a full-width row under the plugins strip:
- Plugin widgets sit in
.garden-plugins-rowabove the beds - Each
.garden-bed-rowlays out up to 3 habit cards in equal columns - Rename / delete beds from the context menu
- Drag-and-drop into a full bed shows a clear bed full toast
- Trophy Garden remains the master switch for next-Legacy progress
- Calendar heatmap stays hidden until settings sync when disabled (no FOUC)
Shell. Footer that stays put.
Short gardens used to leave a floating chrome strip above empty space — especially on pink/ambient themes. The footer is now fixed to the bottom of the window, and .app-main keeps enough bottom padding so cards never hide underneath.
CSS durability: src/styles/main.css is the source of truth; shell.css is generated by prebuild (split-main-css). Editing only shell.css will be wiped on the next build.
Settings. Clearer rooms.
| Section | What changed |
|---|---|
| Focus | Dedicated Focus settings (hide chrome, auto-start) |
| Statistics | Garden heatmap toggle lives here |
| Storage | Former Data — cache size + clear in its own subsection |
| Updates | Check / auto-update toggles; Check uses the Search magnifier icon |
| Notifications | Per-plugin mute toggles + OS footnote |
| Search | Show/hide header search; rebuild index with progress bar |
| Sidebar | Material-style icons throughout |
Settings sheets use a flex column layout and generous bottom padding so the last lines (cache clear, OS notification hint, plugin cards) are no longer clipped by the window edge.
Search · glyph-s 2.7
- Vendored engine at
src/core/glyph-s/(engine, layout, polygon) - Header search can be hidden without removing the index
- Rebuild Index shows a determinate progress bar
- Index stays fully local — habits, plugins, beds, events, settings labels
Plugin store
- Compact one-line toolbar: search + category + sort
- Filters styled as Cultiva chips (label + select in one control)
- Search input is a fixed-height field (no native search balloon stretch)
- Install permissions as dash lists with clearer copy
- README / changelog rendered in release-note markdown style
Discord Rich Presence
Activity is driven by the garden, not static page strings:
- Habit counts / streaks in the presence text
- Stable
startTimestampfor the session (no reset every 15s or when opening Discord settings) discord:set-focus-sessionIPC for Focus / Pomodoro-style presence- Buttons: Get Cultiva (landing) · GitHub
- Unused
partySize/partyMaxremoved
Cache clear
Clearing the search cache no longer hijacks the loading-screen cloud. Dedicated orbs, force-hidden overlay when idle — no eternal blue pulses over the garden.
Companion plugins
| Plugin | Version | Notes |
|---|---|---|
| Quote | 1.6.0 | 500 curated EN + 500 authentic RU quotes |
| Registry | 3.5.4 | Ships with Quote 1.6.0 |
Radio / Weather / Time remain on the 2.1.3 companion line unless noted in cultiva-plugins.
Installation
| Platform | File |
|---|---|
| Windows | Cultiva-Setup-2.2.0.exe, Cultiva-Portable-2.2.0.exe |
| macOS Intel | Cultiva-2.2.0-mac-x64.dmg (+ .zip) |
| macOS Apple Silicon | Cultiva-2.2.0-mac-arm64.dmg (+ .zip) |
| Linux | Cultiva-2.2.0-linux-x86_64.AppImage, Cultiva-2.2.0-linux-amd64.deb |
Data lives in IndexedDB locally. No account required.
Upgrading from 2.1.x: garden data, beds, and plugins are preserved. Export a backup under Settings → Storage before updating, just in case.
For Developers
npm ci && npm test && npm run electron:build| Path | Note |
|---|---|
src/styles/main.css |
Edit layout here |
scripts/split-main-css.mjs |
Regenerates shell.css + public themes/ambient |
scripts/rebuild-main-from-shell.mjs |
Recovery if shell drifts ahead of main |
See CHANGELOG.md and CultivaProgress.md.
Commit log (since 2.1.3)
5 commits — click to expand
release(2.2.0): store toolbar, docs, Cultiva Progress, GitHub release notes
fix(garden): keep plugins row when clearing habit nodes
fix(ui): stop cache-cloud leak and straighten garden grid
fix(2.2.0): glyph-s 2.7, Discord activity presence, UI polish
feat(2.2.0): horizontal beds, settings IA, pinned footer
Author of every commit: krwg <shevotsukov@icloud.com> — no co-authors.
Links
| Resource | URL |
|---|---|
| Repository | https://github.com/krwg/cultiva |
| Landing | https://krwg.github.io/cultiva/ |
| Plugins | https://krwg.github.io/cultiva-plugins/ |
| Progress story | https://github.com/krwg/cultiva/blob/main/CultivaProgress.md |
| Wiki | https://github.com/krwg/cultiva/wiki |
Previous releases
Thank you for growing your habits with Cultiva.
[2.1.3] Rowan: Glyph-s, store UI & Radio player
Summary
- Settings → Search with a local glyph index (habits, plugins, beds, events, settings)
- Plugin store restyled for Cultiva; Featured is a category filter; better EN/RU search
- Footer: compact bar with a readable centered version line
- README in plugin Details: tables, lists, italics, blockquotes
- Plugin toasts can also reach the OS notification center
Companion plugins (registry 3.5.3)
- Radio [2.4.0] — player sheet, dual-stream guard, opt-in Neo FX
- Quote [1.5.0] — habit-card height, next-quote chevron
- Weather [2.6.0] — RU polish + notifications
Notes
- No telemetry in search indexing — all local
- Author: krwg
[2.1.2] Rowan: Garden beds & weather Neo
Summary
- Drag-and-drop + custom garden beds (грядки)
- Footer fixed to a single version line (20px; audit #167)
- Flat garden grid — habit cards as grid siblings; weather card no longer stretches the row
- Plugin store: category & sort dropdowns, Featured (Weather / Radio / Quote),
[version], permissions before install, Details with README + changelog + screenshots - Deleting a bed reindexes habit
sortOrderinto ungrouped
Companion plugins
- Weather [2.5.1] — Cyrillic city search, Neo polish,
prefers-reduced-motion - Radio [2.3.0] — Media Session, autoplay messaging, custom stream URL
- Quote [1.4.0] — shuffle another quote
- Insights [1.0.0] — local habit correlations (Связи)
Notes
- Weather Neo stays opt-in;
minAppVersionfor Weather remains 1.7.0 - No telemetry in the plugin store (Featured is editorial;
lastUpdatedfrom public git dates)
[2.1.1] Rowan: Windows patch & Fix critical bugs
Critical fixes after 2.1.0. Your garden stays on this device — no accounts, no telemetry.
Fixed
- Reload garden — Ctrl+R / «Обновить сад» no longer wipes the habit list (soft refresh + storage recovery; hard BrowserWindow reload blocked)
- Footer — compact height; version centered horizontally and vertically (garden + calendar)
- Habit data safety — pending saves no longer race with account/guest reloads; empty flushes cannot clobber a non-empty local backup mirror
Added
- Garden activity toggle in Settings → Calendar — show or hide the year heatmap on the Calendar page
Upgrade notes
- Export a backup under Settings → Data before updating if you want a safety copy
- macOS / Linux users: stay on 2.0.2 for now; this tag ships Windows installers only
Full changelog: CHANGELOG.md
[2.1.0] Rowan: Windows patch
Windows-focused patch after 2.0.2. Your garden stays on this device — no accounts, no telemetry.
Added
- Garden activity heatmap on the Calendar page — all habits in one GitHub-style year view (darker = more completions that day)
- Paused section — paused and archived habits no longer vanish; resume or restore from a dedicated card grid
- Next Legacy tree — when Trophy Garden is empty, a habit-style card shows progress toward 365 days (toggle in Settings → Garden, on by default)
Fixed
- Installer branding — NSIS footer shows Rowan (no more stale Linden), synced from
cultiva.release.json - Windows icons — app / tray / shortcut icons embed reliably (
signAndEditExecutable, tray PNG +nativeImage) - Footer — compact version line only
Upgrade notes
- Export a backup under Settings → Data before updating if you want a safety copy
- macOS / Linux users: stay on 2.0.2 for now; this tag ships Windows installers only
Full changelog: CHANGELOG.md