• v0.0.1 a265c1a448

    v0.0.1
    All checks were successful
    ci/woodpecker/tag/release Pipeline was successful
    Stable

    devjonatas released this 2026-08-28 07:56:58 +00:00 | 46 commits to main since this release

    Added

    • core: Implement geometry types with DocumentSpace/ViewportTransform
    • core: Implement NodeId, Position, Node, NodeStyle, and EdgeStyle types
    • core: Implement Relation, Theme, and DocumentMetadata types
    • core: Implement Document type with hierarchy validation
    • core: Implement Document serialization with deterministic output
    • core: Implement Command trait with CreateNode, DeleteNode, MoveNode, RenameNode and CommandHistory
    • parser: Create rustmind-parser crate with frontmatter parser
    • parser: Implement headings, lists, relations, metadata and full document parser
    • scene: Create rustmind-scene crate with Scene, conversion and text measurement
    • layout: Create rustmind-layout crate with freeform, tree, radial layouts and collision detection
    • svg: Create rustmind-svg crate with deterministic SVG renderer
    • core: Add inline style, position mode, and missing commands
    • iced: Expose new commands and expand context menu/toolbar
    • cli: Add CLI commands (new, validate, render, layout, format, export)
    • desktop: Onboarding, workspace/projects/maps, and config persistence
    • core: Add DetachNode command and expose MoveNode old_parent_id
    • iced: Relation rendering, lock drag, duplicate subtree, style/parent actions
    • desktop: Async workspace onboarding, project/map browser, error banner
    • cli: Add terminal renderer for maps
    • desktop,iced,scene: Add theme system, menus, shortcuts and settings
    • Visual customization — themes, shapes, effects, icons and PNG export
    • editor: Notes, relation labels, non-overlapping layout and help screen
    • desktop: Properties inspector, i18n and Font Awesome icons in the UI
    • desktop: Font and icon selectors with workspace asset import
    • theme: Frosted glass as the default map theme, light and dark
    • theme: Palette themes with a per-level color ramp
    • Node pictures, rounded elbows and the @image directive
    • desktop: Vim UI themes, direction picker, sibling reorder, node pictures
    • themes: Palette editor with RGB sliders, per-level shapes and icons
    • desktop: Multiline note editor, and stop the keyboard leaking to the map
    • Align tree rows by depth, and add reading mode
    • core: Marker catalog, one marker per group
    • Markers and labels on nodes, drawn in every renderer
    • Edit markers and labels, and filter the map by them
    • Links on nodes, to the web and to other topics
    • desktop: Show shortcuts where the actions are
    • Focus a branch and hide the rest of the map
    • Quick entry — type a thought, get a map
    • Outline view, and the keys an outliner is expected to have
    • Export PDF and OPML
    • Import XMind workbooks
    • Zen mode, with a night canvas and a clock
    • Presentation mode, with a camera that moves between slides
    • Hand-drawn style, generated once and drawn by every renderer
    • Starting skeletons, and a palette gallery
    • Align the title, size the box, pick a theme from the menu bar
    • Branches you can style, and branches that thin as they grow
    • Themes that live in a file, and levels you can style whole
    • Outlines, areas and braces — grouping without touching the tree
    • Topics that float free, arrows you can aim, and blank buttons fixed
    • iced: Follow node links by clicking the link badge on canvas
    • desktop: Import XMind workbooks from the browser
    • iced: Render note Markdown in hover tooltip
    • desktop: Rename nodes inline in the outline view
    • relations: Per-relation style editing in inspector
    • relations: Choose a relation's type from the inspector
    • Pan with the middle button, and lines that wear their branch's colour
    • Autosave, and a button that rebalances the branches
    • iced: Wire SetRelationType through EditorMessage
    • relations: Draw relations as smooth bezier curves
    • canvas: Resize nodes by dragging the bottom-right handle
    • scene: Render multiline node titles
    • canvas: Drag a topic into the tree, and out of it
    • editor: Pick out several topics and fence exactly those in
    • export: Choose what goes into an export
    • i18n: Say the core and parser errors in the reader's language
    • inspector: The map's own properties, and a panel you can widen
    • themes: A theme becomes the person's, not the open map's
    • themes: Trying a theme on stops being a commitment
    • themes: Write an interface theme without leaving the app
    • modes: A locked map stays locked, and says so when it refuses
    • modes: The way back out of a branch, a level at a time
    • modes: A marked topic gets a stop of its own in the pitch
    • modes: A real laser, with a trail that fades on its own
    • editor: Spacing guides, a grid, and the distance written down
    • editor: Keys for what only had a button, and a sheet to take away
    • editor: Drag to reorder in the navigator
    • editor: The main bar in named groups
    • import-export: Save a copy, and read OPML back in
    • import: Read FreeMind and Freeplane maps
    • themes: Sixteen branch colours in every palette, none two alike
    • icons: The picker paginates instead of cutting the list off
    • fonts: A topic says where the font it is using comes from
    • themes: Bend a line by hand, dragging its middle
    • topic-content: A pen to draw over the map
    • topic-content: Stickers, the same icon loose from the topic
    • import-export: A crop of the map, exported as it is on screen
    • import-export: TextBundle, the map and its images in one folder
    • tooling: A desktop debug mode, behind a flag
    • import: Read a Word document by its heading levels
    • themes: Resting on a palette shows a map drawn in it
    • fonts: A collection brings all its families, not just the first
    • fonts: Show the font, not just its name
    • fonts: Removing a font takes it out of the renderer at once
    • themes: The hand-drawn map is now written by hand too
    • topic-content: A built-in illustration library
    • import: Read MindManager and MindNode maps
    • topic-content: LaTeX equations, drawn as SVG
    • topic-content: Audio notes, recorded and played in the app
    • modes: Quick entry from any window
    • editor: A new topic opens to be named, and printing
    • app: Tabs in the bar, a search that walks, opaque dialogs, the manual
    • import-export: Export Word and a spreadsheet
    • themes: Import a texture from a file, the GIMP pattern
    • app: The pickers became real windows
    • icon: An RM monogram, as SVG and as .ico

    Fixed

    • layout: Keep tree siblings from overlapping
    • Radial layout that never stacks children
    • Radial rings walk centers, not corners
    • Menus that open, curves that point where they go, children with a place
    • Menus that actually open
    • command: Three undos that did not put the map back
    • layout: Freeform reserves the box that will actually be drawn
    • parser: Open Markdown that was not written here
    • scene: Measure text per character, not by counting letters
    • app: Compile for Windows, and start without a console behind it
    • packaging: A desktop entry the tools accept, and the id the window says
    • packaging: Build the .deb members outside the tree they describe

    Changed

    • Replace production expect/unwrap with Result handling

    Documentation

    • agents: Create .agents/rules/ with architecture, rust, testing, geometry, rendering, deps, security rules
    • agents: Create .agents/skills/ and .agents/backlog/ directories
    • Create README, CONTRIBUTING, LICENSE, and 6 initial ADRs
    • Update README, backlog, and add documentation rule
    • backlog: Vim palettes, level color ramps, direction and sibling order
    • Palette themes, node pictures and the backlog status
    • backlog: Modes, topic content, map structures and file formats
    • backlog: Add the roadmap that orders the epics
    • Mark the branch-style items the @edge work already delivered
    • Fold the notes from obs.txt into the backlog
    • Desktop UX backlog with all 10 original items done
    • Every crate documents what it makes public
    • Tick what the last five features actually closed
    • Fold the original desktop UX ask into the editor backlog
    • backlog: Mark the reparent destination index as delivered
    • roadmap: Waves 1-4 are closed
    • i18n: Decide the CLI stays in English, and say why
    • backlog: The pipeline has run for real
    • roadmap: Say why each open item is open
    • roadmap: Wave 5 closed, all but three
    • release: A changelog generated from the history
    • A contributor's guide in three languages, and English commits as a rule

    Tests

    • cli: Update terminal renderer expectation to tree
    • Edges.rs holds against every mutant, and joins the ratchet
    • Rustmind-layout, from 217 surviving mutants to a couple of dozen
    • layout: Tighten floating, freeform, radial and tree coverage
    • parser: Close the mutation survivors the parser was carrying
    • parser: The last three survivors, and a count that could run away
    • core: Walk what the crate only ever checked by sample
    • core: The second sweep, down to the thresholds
    • core: The third sweep, and two values that were said twice
    • scene: Measure the geometry instead of glancing at it
    • scene: Pin the shapes, and pin the drawing itself
    • scene: The last sweep, and two guards that could not fire
    • scene: The last of them, and a branch that could not be taken
    • scene: The same question, asked once
    • cli: Maps of a thousand, ten thousand and a hundred thousand topics
    • tooling: Coverage measured, with a floor

    Build

    • woodpecker: Add fmt, check, test, clippy, audit pipeline
    • Install the desktop crate deps, share the cargo home, check docs
    • Matrix on 1.98 and latest, and guardrails that a test enforces
    • Mutation testing as a ratchet, not a wall
    • ci: Package and publish what a tag hands out
    • Package for deb, rpm, AppImage, Flatpak and Nix
    • windows: Cross-compile the app, and hand out a setup

    Chores

    • workspace: Initialize Cargo workspace with rustmind-core and tooling config
    • core: Add Cargo.lock and proptest regressions
    • deps: Add async-fs to workspace and desktop
    • Keep cargo-mutants output out of the repository
    • mutants: Put rustmind-layout on the allow-list
    • mutants: Put rustmind-parser on the allow-list
    • mutants: Put rustmind-core on the allow-list
    • mutants: The domain is clean — rustmind-scene closes it

    Other

    • desktop: Translate the theme editor and the canvas context menu
    Downloads