-
v0.1.0
Stablereleased this
2026-09-22 05:56:13 +00:00 | 0 commits to main since this releaseAdded
import: A map arrives rebalanced, not merely arranged browser: Change workspace, rename what is in it, and show an import app: Say which map is open, and say when the app is working app: A map opens where it was left layout: A folded branch takes no room, and can be folded from the bar editor: Fold and open a level at a time app: Menus are solid, and the keyboard can walk them tui: Draw a map in characters, and say where every topic landed nvim: The map beside the Markdown it comes from app: Delete a map or a project, after askingFixed
docs: Point at the repository that actually exists editor: Arranging a map is one command, not one per topic app: Import into the project that is picked out on screen parser: Keep a topic's place when the mode says a layout chose it editor: A map opens framed import: Arrange compactly, not in equal slices editor: A fold with nothing left to fold says so editor: A level is a level of the map, not of what is on screen scene: A fold hides everything under it, not just the next level app: A menu stays open while the app talks to itself app: A menu opened from the keyboard survives the keys coming back up app: A menu is opaque on a dark theme too ci: Find a cargo subcommand where cargo finds it mutants: A pattern that named the wrong crate, and a field it cannot skip cli: An outline where every level hangs off the one above it nvim: A closed picture stops watching the map it was drawn from tui: A straight line between two boxes is drawn straightPerformance
raster: A backdrop is never rasterised into gigabytes raster: The blur stops re-adding what it already knows, and takes the cores app: The glass is made off the thread that draws the windowChanged
Move the Neovim plugin out to a repository of its ownDocumentation
Spider tests, the editor plugins, and how to delete a map Stop saying bin/verify.sh is what CI runs Say the rule, instead of pointing at a file whose name means nothingTests
Close the 144 mutants a week of features left behind tui: Take the character renderer through the mutation ratchetBuild
Raise the MSRV to 1.98, and take the lints that came with it Move mutation testing out of CI and into a pre-commit hook Hold every commit to the whole list, not only to the mutants Run the unit tests, and leave the rest to the hook Cut releases from a script, not from a pipeline Say when dist/ has gone stale, instead of letting it look fineChores
The plugin is a sibling now, not a clone nested in here release: 0.1.0Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
released this
2026-08-28 07:56:58 +00:00 | 46 commits to main since this releaseAdded
- 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
-
Source code (ZIP)
1 download
-
Source code (TAR.GZ)
0 downloads