Releases: ojowwalker77/BonsAI
Release list
BonsAI v1.4.8
Changed
- BonsAI now has one dependable path from checkout to release. Shared developer
commands drive CI, releases come from verifiedmaintags, public artifacts require
Developer ID signing and API-key notarization, the updater points at the BonsAI
repository, and the coordinated BonsAI icon ships in both source and app-icon forms.
BonsAI v1.4.7
Added
- Sticky notes with a real title and body. Add theme-aware notes from the canvas More menu,
edit both fields in a dedicated composer, and keep the structure intact through saves, exports,
and agent edits. (#80) - Tappable checklists. Add standalone to-do cards whose items toggle directly on the canvas;
regular text cards also render Markdown- [ ]and- [x]lines as clickable tasks. (#81) - Simple editable tables. Create clean, theme-aware tables, edit headers and cells, and add or
remove rows and columns without leaving the canvas. Tables serialize as Markdown for copy,
export, and agent workflows. (#82) - Optional helper lines. Settings ▸ Appearance ▸ Drawing now includes a persisted Helper lines
toggle. Guides are hidden by default while alignment snapping remains active.
Changed
- Every board is one click away. The top-left board picker is now a row of individual,
horizontally scrollable pills with a dedicated New Board button; switching, renaming, and
deleting boards no longer requires opening a hover menu. - Text width can be corrected without changing its size. Drag a text card's left or right
handle to reflow line wrapping while preserving the font size; corner handles still scale the
card and type proportionally.
Fixed
- Board image exports include stored attachments again. Copy PNG and Save PNG now resolve the
relative image paths used by saved boards, so image cards render their real pixels instead of a
missing-image placeholder — including cards far from the canvas origin.
BonsAI v1.4.6
Added
Sticky notes with a real title and body. Add theme-aware notes from the canvas More menu, edit both fields in a dedicated composer, and keep the structure intact through saves, exports, and agent edits. (#80)
Tappable checklists. Add standalone to-do cards whose items toggle directly on the canvas; regular text cards also render Markdown - [ ] and - [x] lines as clickable tasks. (#81)
Simple editable tables. Create clean, theme-aware tables, edit headers and cells, and add or remove rows and columns without leaving the canvas. Tables serialize as Markdown for copy, export, and agent workflows. (#82)
Optional helper lines. Settings ▸ Appearance ▸ Drawing now includes a persisted Helper lines toggle. Guides are hidden by default while alignment snapping remains active.
Changed
Text width can be corrected without changing its size. Drag a text card's left or right handle to reflow line wrapping while preserving the font size; corner handles still scale the card and type proportionally.
BonsAI v1.4.5
Fixed
- Arrows land where you draw them. A bound arrow used to re-route through the card's center
on release — "aim-assist" that visibly moved the arrow away from where the preview showed it.
Bindings now remember the exact spot you attached (normalized to the card's frame): the arrow
commits where aimed and keeps that attachment as the card moves. Agent-drawn connections and
legacy boards keep the center routing.
Added
- Text boxes hug their text. A text card's width now follows the longest line up to a wrap
cap, then wraps and grows down — Figma/Freeform point text, live while you type, instead of a
fixed-width box. Existing boards keep their layout until you edit a card. (#76) - Corner handles scale the font. Dragging a text card's corner handles scales its font
proportionally (Apple Freeform behavior) — aspect-locked, anchored at the opposite corner,
live during the drag, one undo step. Composes with the app-wide text-size slider. (#77) - One-key tool switching. Bare
1–9now picks a tool whenever you're not typing in a card
(⌘1–⌘9 still work) — select, text, rectangle, ellipse, diamond, line, arrow, freehand,
equation. Tools stay one-shot; the next one is a single keypress away, which is what makes
that livable. (A "keep tool selected" mode was tried on this branch and pulled — a hidden
global mode felt terrible.) (#78) - Snap sketches into shapes. A second Drawing toggle converts a confidently recognized
freehand stroke into the clean shape on pen-up (OneNote "Ink to Shape"), no chip interaction
needed. One undo restores the original ink. Off by default — recognition stays an opt-in
suggestion chip. Recognition itself was retuned recall-first: the stroke is smoothed before
classification and every gate loosened, so wobbly sides, rounded corners, and loops that don't
quite close now snap — letters, zigzags, and scribbles still don't. Arrows are chip-only:
auto mode never converts a stroke to an arrow (the head heuristic misfired on ordinary hooked
strokes), it offers the chip instead. (#79)
BonsAI v1.4.4
Added
- Match macOS appearance. Settings ▸ Appearance grew a toggle that swaps your theme for its
light/dark sibling as the system switches — Bonsai Dark ↔ Bonsai Light, Catppuccin Mocha ↔
Latte. Off by default; your pick stays literal. (#74) - Text size lives in Settings. The app-wide editor text size is now a stepper in Settings ▸
Appearance ▸ Font, instead of hiding behind a keyboard shortcut. (#72)
Fixed
- Traffic lights: hover and click agree. The repositioned window buttons hung below the
titlebar's hit-test region — hover lit up above them and clicks fell through to the board. The
lights now live in a dedicated host view on the control row, which owns their hover and
hit-testing, so both land exactly on them. (#70) - Full screen behaves. The board window is a real
NSWindownow (theNSPanelsuperclass
was a floating-panel leftover with second-class full-screen support): transitions no longer
flash black, the menu-bar reveal shows the native traffic lights, and the canvas pins itself
to the solid flavor color while full screen (the glass slider resumes on exit). - ⌘+/⌘− zoom the canvas again — as documented. They were being swallowed by the app-wide
text-size shortcut, which read as "resizing one text box resizes all of them"; per-box text
sizing is coming separately. (#72) - List markers are legible in dark themes. Bullets, numbers, and empty checkboxes moved from
dim overlay ink to subtext ink — they're content, not syntax chrome. (#71) - Menu-bar quick capture follows the theme. The capture field used AppKit defaults —
near-black placeholder and hint text on the dark themes; it now paints from the active flavor's
tokens like every other surface. (#73)
BonsAI v1.4.3
Changed
- Localization. Japanese, Korean, and Simplified Chinese now covers most surfaces.
Brand, palette, and font names stay in their original form.
BonsAI v1.4.2
Added
- Updates behave like updates now. BonsAI downloads new releases in the background and
installs them on relaunch by default; Settings ▸ About grew an Install automatically toggle
next to "Check automatically". And when a background check finds a release, nothing interrupts
you — an accent Update pill appears in the top-right chrome and Settings ▸ About flips to
"→ new version available" with an Install Update button. One click brings the update flow
into focus; the surprise mid-work dialog is gone.
Changed
- Settings presents the way Apple presents it. The right-docked rail with chip tabs is gone;
Settings is now a centered glass sheet over a click-away scrim — a sidebar of sections on the
left (Runtime, Appearance, Connectors, Shortcuts, About), inset grouped rows with dividers on
the right, intro copy tucked into group footers. It also remembers where you were: switching
theme or font no longer bounces the sheet back to Runtime, and Settings reopens on the section
you left.
Fixed
- The update dialog shows real release notes — rendered headings and bullets in both light and
dark mode instead of raw###/**markdown, starting with the next release's appcast.
BonsAI v1.4.1
Added
- Sketch a shape, get the real thing. Draw a rough rectangle, ellipse, diamond, line, or arrow
with the freehand tool and a quiet chip appears offering to snap it into the clean element — same
spot, same size, same color, one undo. Recognition is deliberately conservative: scribbles,
spirals, and handwriting never trigger it. A promoted arrow even binds to nearby cards exactly
like a drawn one. - The canvas now whispers what your cards could become. The same chip watches for other
promotions: a text card holding a single line of LaTeX ($E = mc^2$) offers Make equation; a
bulleted list offers Split into cards — one card per line, same width and tint, ready to
arrange; and the moment you sketch two roughly perpendicular arrows, Make graph appears before
you even double-click. Every promotion is one undo step, and the chip retracts on its own — Esc,
any new gesture, or six seconds of being ignored. - Alignment guides. Dragging cards now snaps their edges and centers to nearby cards, with
hairline guides flashing across the aligned cards while they hold. What snaps in the preview is
exactly what lands. Works for single cards, multi-selections, and duplicate-drags, at every zoom. - Tidy, for humans. The agent could always re-flow a board into a clean layered layout; now ⌘K
carries Tidy board (re-flow everything, then fit it into view) and Tidy selection (re-flow
just the selected cards, in place — the tidied corner never jumps across the board). - ⌥-drag duplicates. Hold Option and drag a card (or a whole selection): the originals stay
put — arrows still bound — and fresh copies follow the pointer. One undo removes the copies
entirely. A bare ⌥-click still just selects.
Changed
- Structured edits open on a stage. Editing an equation, a graph's axes, or a shape/line label
now recedes the board and centers the editor on glass — the same shape Focus Write always had —
instead of cramming fields into strips and popovers under the card. Equations get a large live
preview that doubles as parse feedback while you type; graph config previews the draft axes and
series live; lines keep the "Make graph" handoff with Esc stepping back to the label. Text is
untouched: double-click writes directly on the board, exactly as before, and ⇧⌘F remains the
explicit way to summon the big writing sheet. Everywhere, the contract is uniform — Esc cancels
the draft, Return or click-away commits. - Zoom follows the pointer. ⌘+/⌘−, the zoom buttons, and pinch all anchor at the cursor, so the
spot you're pointing at stays put while the board scales around it. - Paste lands under the cursor. ⌘V centers the pasted cards (or image) on the pointer instead of
the middle of the window; the old 28pt stagger remains only when the pointer is off-window, so
copies never stack invisibly.
Fixed
- The equation drop ring no longer misses one path. Dragging a lone equation over a graph as
part of a multi-selection absorbed it on release without ever showing the accent drop ring; the
affordance now lights up on every path that will absorb. - A stray scroll can no longer eat an in-flight edit. Trackpad momentum leaking under a
structured editor used to tear it down mid-thought; the stage now holds the board still while
it's open, and inline text editing keeps pan and zoom live.
BonsAI v1.4.0
Screen.Recording.2026-07-03.at.16.38.28.compressed.mp4
Added
- Graph cards. Sketch a pair of axes with arrows (hold Shift to draw them perfectly straight),
double-click one, and "Make graph" turns the sketch into a real two-axis plot — labels, units,
ranges, ticks, and a grid, with a roughly perpendicular partner arrow absorbed as the second axis
in the same undo step. Drop a LaTeX equation card onto a graph to plot it as a curve in the card's
tint (a built-in dependency-free expression parser handlesf(x)=,\sin,\frac,\sqrt,
powers, and implicit multiplication; poles and out-of-domain regions break the stroke cleanly).
⌥-click places labeled, colored data points through a point composer, markers drag to reposition,
and hovering a selected graph shows a coordinate readout in the axis units that snaps to curves
and points. The config popover edits everything later, including a per-point list. - Copy board as PNG. The Export Board menu now renders the board straight to the clipboard
(PNG + TIFF) for instant pasting into Slack, pull requests, or docs — no save dialog.
Changed
- The ⌘K palette now carries only what the UI can't reach. Entries duplicating visible chrome
(agent, settings, compile, fit, grounding) were removed; the palette is New board, Capture screen,
Focus write, Add graph to board, and — when the selection makes them meaningful — Convert line to
graph, Plot equation on graph, and Add point to graph. Its visuals were rebuilt on the app's glass
language: quiet accent selection, bare shortcut glyphs, muted inline subtitles, no keycap footer. - Shift keeps lines and arrows straight. Holding Shift while drawing a line or arrow snaps it
perfectly horizontal or vertical (live in the preview), matching the box shapes' Shift-square
constraint. - Export pill reads "Export Board" so its menu rows ("Copy PNG", "Save PNG") fit the
width-locked hover menu without truncating.
Fixed
- The ⌘K search field no longer clips tall letters. The palette field rendered in the
user-selected app font, whose declared vertical metrics are tighter than its glyphs; the palette
is chrome and now uses the system font like the rest of its rows.
BonsAI v1.3.2
Fixed
- Equation cards crashed every installed build. Typing into (or loading a board with) a LaTeX
equation card took the app down instantly on any machine other than the one that compiled it:
SwiftMath resolves its math-font bundle through SwiftPM's generatedBundle.module, which only
checks the.approot and an absolute path baked in at build time — neverContents/Resources,
where the staged app actually keeps it. SwiftMath 1.7.3 is now vendored underVendor/SwiftMath
with its bundle lookups patched to search the real app layout first (same fixBundle.appResources
applied to the app's own resources in 1.0.1).