- NewSequence diagrams can now draw a group inside a group. A monolith with a Linux partition in it, a data centre with a rack in it — indent one
[Group]under another and the inner box is drawn inside the outer one, to two levels. - NewParticipants written after a nested group belong to the outer group again. Before, an indented
[Group]was read as a sibling and quietly swallowed everything that followed it, so a five-participant box came out holding one. - NewA nested group carries its own colour, overriding the group it sits in, and collapsing an outer group takes everything inside it with it.
- FixGroup boxes no longer touch or run off the sides of a sequence diagram. The left margin never allowed for the box or the frame around it, so a leftmost group sat flush against the edge.
Release notes
What's shipped in each version of Diagrammo. Pulled from the canonical GitHub releases at build time.
- FixThe Share door is easier to find: it wears a share mark instead of a download
- FixPressing Sign in on the desktop opened a dialog with no way out — no Escape,
- FixOn the desktop, pressing Sign in from the live link row did nothing at all.
- FixSigning in from the Share dialog no longer closes the diagram you were in the
- FixOn the desktop, the code you paste to approve a sign-in no longer renders
- FixSigned out with a space still open, Share offered to file your diagram and
- FixStarting to show a diagram no longer creates a second space for somebody who
- FixThe Share dialog is wider, its explanations are a readable list rather than a
- FixThe live link row said flatly that readers could never edit, while the same
- FixThe button that starts an account no longer says Sign in to people who have
- FixA link to a diagram that is not being shown explains what happened, and that
- FixCode blocks in markdown previews follow whichever palette you picked in
- FixDialogs, menus, toasts and popovers sit on the app's own two designed shadow
- FixLinks and wikilinks in Live Preview appear as soon as a long document finishes
- FixThe rail's teaching pulses go one seat at a time in order, no longer point at
- FixYour first space is called "My space", so it no longer shares a name with the
- FixA reader who wants to edit now asks for a place in your space, decided by a
- ImprovedA live link opened by somebody you have given access to is the real diagram, not a copy of it. Their edits save straight back to yours. Until now a received diagram was a plain file in the browser with nothing behind it — which is why the honest answer to "where does my work live?" was "your local session", and why three people could spend an afternoon each editing their own private copy of one flowchart believing they were editing the same thing.
- ImprovedGiving somebody access adds them to nothing. They get that one diagram, and never the space it lives in, so nothing else you keep beside it is exposed. Nobody is added to your bill for it either.
- ImprovedYou can see who you have given a diagram to, how much they have done with it, and take it back in one press. Taking access back leaves their work exactly where it is, with their name on it.
- ImprovedReading somebody's live link and want to change it? There is a button for it now, and it asks for that one diagram rather than for a place in their whole space.
- ImprovedAsking hands you back a link you can paste into whatever thread you were already talking in. Anyone who opens it sees the ask; only the owner can say yes. Nothing is exposed by pasting it in public, and nobody has to know anybody's email address.
- ImprovedThe owner also gets an email, for when they are not in that thread. It names the diagram, says exactly what saying yes costs them — nothing — and lands them on the diagram rather than on the app's front door.
- ImprovedBeing told a diagram is read-only now names what to do about it. It used to point at the biggest ask in the product; it points at the small one.
- Improved"Restore the previous version" now works after a relaunch, on a second machine, and — the case it exists for — after somebody else's save landed on your work. The previous version was on the server the whole time; the app had simply forgotten it could reach it, and forgot it at exactly the moment it mattered.
- ImprovedThe Share dialog can start a live link even when the diagram is not in a space yet. It quietly makes somewhere to keep it and tells you afterwards; you can rename it whenever you like. A brand-new account owns no space, so the dialog named for handing a diagram over was the one thing a new account could not use it for.
- ImprovedEach row in the dialog says what it actually gives somebody: a picture that never changes, a snapshot link that cannot be taken back once sent, or a live link that always draws your current version.
- ImprovedKeeping a loose file in a space leaves a note in the original saying where its copy went, so you never end up editing one of two files without knowing.
- ImprovedCopying a share link from the keyboard shortcut or the menu now says which kind of link you got, the same way the dialog does.
- ImprovedThe four figures that matter — diagrams, what is showing on the web, people, and spaces — are now the first thing under your name, at a size you can read. How close you were to a ceiling used to be three small charts at the foot of a sidebar card, owners only.
- ImprovedEach figure's label links to its answer further down the page, so "2 on your bill, who are they?" and "6 showing, which ones?" are one press rather than a scroll and a hunt.
- ImprovedYou can add someone from the account page. The page that bills per editor and prints "anyone who can edit takes one seat" had no way to add one — the only route was a deliberately quiet link on a table row. Inviting now opens from the People figure at the top and from every space you own, and it is the same form either way.
- ImprovedThe people you pay for have their own card, headed People, instead of sitting under a plan comparison table beneath a heading called Plan.
- ImprovedYour plan state is visible again. The Free badge was drawn in exactly the colour of the card behind it, so the most important fact in that column rendered as dim text on nothing.
- ImprovedThe spaces ceiling is metered with a bar like the other two, rather than a muted phrase beside a heading.
- ImprovedAn empty account no longer renders empty shells: no eight-column table header over zero spaces, and no card promising an activity chart that correctly refuses to draw a fortnight of nothing.
- ImprovedOne table, not two. "Your spaces" and "Shared with you" were split on who pays the bill, which made a space somebody invited you into a lesser kind of object listed further down the page under different columns. To you they are the same thing — places your diagrams live — so ownership is a column now, beside the other facts. The bill is untouched.
- ImprovedThe space's name is the door. The row carried Invite, Manage, Delete and a rename pencil — three of them for acts most people perform once ever, and a table of nine spaces looked like nine edit forms. The name now opens that space's page, and every act lives there.
- ImprovedThe Showing column counts what a reader outside can open, and the count is a link straight into that space.
- ImprovedDeleting a space now asks in a dialog that names what goes with it. It is the one act here that takes other people's work along, and it is the only surface that can say so.
- ImprovedThe page said "54 diagrams" in a pill and then nothing else about them. It now answers the two questions people actually ask, in the order they ask them: what kind of work is in this space, as a sorted chart of chart types, and what has been happening lately, as the last six edits with who made them. Somebody who is not an owner gets the only view of the space's activity they can have.
- ImprovedShowing on the web leads the page. It was the last section, under People, under Diagrams — the capability we most want somebody to find, filed where you only arrive by scrolling past everything else.
- ImprovedThat section leads with what showing gives you — a link that always draws your current version, nothing for the person you send it to to install, and an undo — rather than opening on what is absent and listing buttons to press.
- ImprovedThe switch deciding whether diagrams here may be shown at all now sits at the head of that section, instead of being filed under a heading about who is in the space.
- ImprovedThe breadcrumb names who you are: your name if you have set one, the address you signed in with otherwise. Somebody holding a personal account and a work account had nothing on the page saying which they were looking at.
- ImprovedThere is a page now explaining what showing a diagram on the web does, linked from the space page whether or not anything is showing yet — somebody already showing three diagrams is exactly who wonders what a reader sees, and how to stop.
- ImprovedThe space page's chart is fetched only when you reach it, so a whole diagram engine no longer lands in what the app downloads before the first screen appears.
- ImprovedOne name everywhere. A space page reading "Readable outside this space" with no glyph and an account page reading "Showing on the web" with an amber globe were two names and two appearances for one thing, on the two pages you move between. Both now say Showing on the web and both wear the globe.
- ImprovedWhat is showing lives under the space it is in. The account page carried one flat list of everything readable outside its space, account-wide — it could say what was showing but never where, so it answered the smaller half of the question at the larger size.
- ImprovedThe setting for where your diagrams are shown sits directly beneath the list of them, where the "Shown on <site>" lines it governs are visible in the same glance. It was a page away, named in different words, and read as an unrelated third feature.
- ImprovedThe globe carries the amber and the digits never do. A space where nobody outside can read anything gets no globe at all, since printing the mark greyed out states the opposite of what it means.
- ImprovedDeleting a diagram that is being shown on the web breaks every live link pointing at it, and nothing on the delete path said so. It now says how many are shown, and a shown diagram always confirms rather than taking the three-strikes shortcut.
- ImprovedThe wording matches what actually happens, which is three outcomes rather than two: a move to the Trash takes the links dark and they come back; a permanent delete removes the way back; an overwrite keeps the links working and quietly serves the new version.
- ImprovedThe Examples dialog stops claiming it will overwrite your Examples folder. It writes the bundled files over bundled paths and leaves everything else alone — the person reading it was deciding whether their own work was about to go, and was told yes.
- ImprovedSigning in to the web editor no longer throws you onto the desktop pairing page, which asks for a code somebody signing in to the editor does not have. Pairing a desktop app once left a note behind that redirected the next web sign-in, days later.
- ImprovedA brand-new account signing in on the desktop lands somewhere it can act. The only thing on screen was a sentence naming a route that does not exist, and no control that made a space. It now says what a space is and carries a labelled button to make the first one.
- ImprovedAn invitation link can no longer put words in the app's mouth. The address in one is printed in our own voice beside a real sign-in box, so anything arriving there that is not an address is ignored, and the parameter is cleared from the address bar.
- ImprovedDeleting a diagram or folder with no space open was an unlink — gone, unrecoverable by any route. It now goes to the operating system's trash, and the confirmation reads "Move to Trash" rather than promising permanence.
- ImprovedThe same fall-through used to destroy a loose file inside a space, one the space had never tracked, even in a window that has a Trash row of its own.
- ImprovedHousekeeping the app does on its own behalf — an abandoned placeholder, a duplicate the sync pass resolved — still does not land in your trash.
- ImprovedA diagram sitting in a space's folder that the space has no record of drew pixel-for-pixel like a fully synced one, and three separate refusals could strand it there permanently with nothing said anywhere. It now wears its own blue mark, with a button that adds it.
- NewAdding one brings its folder with it, instead of refusing because the folder is unknown too — that was the only refusal you could never get past.
- ImprovedWhere it genuinely cannot be added, the reason is named: a viewer cannot add, the folder is nested too deep, or the space has as many folders as it can hold. One of those used to be reported as a permissions problem to people who already had the permission.
- ImprovedDouble-clicking to make a box puts the box under your pointer, rather than half a box down and to the right of it.
- ImprovedClearing a shape's name to nothing no longer discards the rename with nothing on screen. A shape returns to Untitled; a container keeps the name it had, since it has no placeholder to fall back to.
- ImprovedA gesture that loses the pointer — a scroll, the window losing focus, the browser taking capture back — is called off. A press interrupted before it became a drag used to leave the next hover anywhere on the board starting a move, a sprout or a sweep with nothing held down.
- ImprovedA sketch can reach its own guide. The documentation seat was tied to the code pane being open, and opening a sketch closes that pane on purpose — so the one chart type whose guide is mostly about gestures was the only one that could not get to it.
- FixA markdown block past the first moment of parsing now renders. A diagram fence, table, image or rule beyond that point stayed raw source and stayed raw, with no edit to the document that would bring it back.
- FixA pinned sequence header lines up with the diagram under it. On a diagram wider than the pane, every pinned participant sat left of its own lifeline, drifting further the further right it was.
- FixConfirmation green comes from the palette rather than a fixed colour, so it is the right green in every theme.
- ImprovedThe window brings no chrome of its own. It was the only window on the desktop wearing a title bar and, under it, a menu bar — about seventy pixels above an app that already has a rail. Nothing is stranded: every command in that menu has a keyboard shortcut, theme and palette are in the settings drawer, and recent files have their own dropdown. macOS is untouched.
- ImprovedGroundwork for a Linux download: the app builds into a Linux package, and a running window now matches its own launcher icon.
- ImprovedAn install guard could spawn processes without limit on machines where the package manager ships as a single binary — it took one machine off the network entirely. Fixed, and made impossible to recur.
- ImprovedEffects, timers and listeners clean up after themselves. One of them stacked up on the infrastructure diagram and rewrote a value in your file once per re-render on a single right-click.
- ImprovedTwo test suites were measuring which machine they ran on rather than what the code did, and a browser test fixture had been silently exercising nothing.
- ImprovedRelease checks now run on a second machine, so the packages and the desktop app can be cut at the same time rather than one after the other.
- ImprovedOpening Diagrammo for the first time asked where your files should live and answered everything else afterwards. It now offers three of the seeded examples by name — one you read, one you draw, one about people — and picking one creates the folder, seeds the examples and opens that diagram in a single click, saying where the file went in a line underneath rather than asking first. The folder list is one click behind "Choose where files go…".
- ImprovedThe three folder rows finally render the descriptions that say how they differ. Each one carried a written explanation — "Recommended — safe, familiar location" and two others — that nothing had ever put on screen, so three paths differing in kind read as three interchangeable strings. The "Recommended" ring also followed whichever row happened to come first rather than the recommended one.
- ImprovedOn the web, a first-time visitor landed on a page about where diagrams are stored while ninety-six real diagrams sat unopened in the tree beside it. It opens the same first diagram the desktop does.
- ImprovedEvery row now says what it is. The leading slot held a hollow dot meaning "an ordinary diagram" — the one thing the indent already said — and it now holds a chart-type glyph, so 50 chart types read as distinct shapes at a glance. Shape carries identity and colour stays entirely for state, which is why the glyphs are monochrome.
- ImprovedWhat is happening to a diagram moved to the row's other end, so the two facts stop competing for one 16px slot.
- ImprovedReading the chart type costs nothing on a large tree: only rows actually on screen are read, the answer is kept for the session, and the work waits for an idle moment so it never competes with a scroll.
- ImprovedA folder can join a multi-selection. Cmd- or Shift-clicking one used to bounce off the selection entirely, so folders had to be deleted one at a time.
- ImprovedA Shift-range can start on a folder, not only pass through one. Clicking a folder and Shift-clicking ten rows down used to run its range from whatever file was last opened, anywhere in the tree.
- ImprovedSelecting a folder together with something inside it deletes the parent once, instead of reporting a failure for the child that went with it.
- ImprovedThe pane's own title no longer renders smaller than the rows beneath it — it was 12px over 13px rows, so the one place a rank was declared ran backwards.
- ImprovedA parse error now shows on the diagram itself whenever the code pane is not on screen — Focus Mode, a sketch document and a narrow window all take it away, and in every one of those an error left a greyed-out picture with no explanation anywhere. It names the line, the column, the message and the repair hint. While the editor is visible nothing changes: it already carries all of that at the line.
- ImprovedA broken first line no longer deletes the diagram. It used to be replaced by a "Parse Error" card, taking the gutter marks and inline messages with it, while an error on any other line kept the last good picture and dimmed it — the same class of error with opposite responses. It now keeps the picture, like the rest.
- ImprovedThe code fetched and evaluated before the window appears fell from 2,750,280 bytes to 1,149,114 — 58% off across two releases. Four small imports were dragging whole subsystems in behind them: the new-file dialog pulled every template's full example text, layout pulled a chart-type parser it had stopped calling, and two more did the same for the renderer and the example gallery.
- ImprovedA build now refuses to go over budget, so this cannot quietly come back. Proven to fire rather than assumed to: reverting one of the four fixes takes the payload to 2,345,566 bytes and the guard names the exact import that did it.
- FixHovering a point of interest on a map recedes the bunched stacks instead of leaving them lit. Which marks stayed bright was decided by pixel overlap at the current pane width, so it changed with the size of the pane and read as random.
- FixOne Cloud outage now draws one mark. Two diagrams opened four minutes apart during the same outage wore different ones, because the app marked the first minutes of an outage and then fell silent for the rest of it.
- FixA diagram we have not confirmed yet wears a plain grey cloud rather than a red struck one. The loudest signal in the app was firing for a state that asks nothing of anybody and clears itself within a minute of the connection returning.
- FixA second window is the same app. Opening a Cloud space in one failed with a raw "forbidden path" printed into the folder pane, and left no line in the log; it also gets the folder picker back.
- ImprovedBundled with dgmo 0.81.0. Boxes-and-lines arrowheads are no longer painted at the node centres, under the boxes they point at — every edge in a reported diagram had lost its direction with no diagnostic, and the reference image for the chart type had been certifying the same thing.
- ImprovedAn edge label lands on the line it names. Five of thirteen labels on a reported diagram sat over blank canvas, the worst 216px from its edge, because labels were placed against a route the renderer then discarded.
- ImprovedA two-way pair of edges stops drawing as an X. Across the real diagrams here, crossings from two-way pairs go from 7 to 0.
- Improved
color:on an edge reaches the stroke. The documented long form parsed clean, warned about nothing, and drew in the default colour. - ImprovedA numbered heatmap row label is read as a label, not the row's first value —
Compound 1 5 4 3against three columns shifted every cell one column left and nothing warned. - ImprovedTyping a chart type wrong gets a real answer. The first keystroke in an empty file used to be answered with seven supported types out of fifty, omitting
flowchart; a near miss on the first line now names the word, says what was drawn instead, and offers the correction.
- ImprovedHovering a line now grows the arrowhead itself instead of ringing it. The ring was filled with the board colour, so a pointed end and an unpointed one looked identical whichever way the line ran — the head is the readout, and now you can see it. An end with no arrow draws nothing at all; the end that is pointed teaches the gesture by growing under the pointer.
- ImprovedThe whole top of a group draws a line now, at the band's full depth, instead of an 8px sliver parted around the name. The name keeps the band's two jobs — drag it to move the group, double-click it to rename — and everything either side of it starts a line.
- ImprovedA line's style control scales with the line. It was a flat width whatever the line, so on the short lines a stacked board is mostly made of it covered half the segment, and on two nearly-touching boxes it was wider than the line and erased it.
- ImprovedA group whose line carries a tag value now takes that value's colour in its frame, like every other chart type. Dropping a colour on a sketch group wrote the value to the file and changed nothing you could see.
- ImprovedThe Trash row counts down while a space's trash empties. Emptying is a loop of server calls and the whole loop used to happen behind a row that changed nothing, with a toast at the end — on an irreversible gesture that reads as the app having dropped it. The count that was already there is now the progress.
- ImprovedPut everything back counts down the same way. It is the slower of the two — one request per lone file — so a trash of a hundred files walked in complete silence.
- ImprovedNeither bulk entry can be started twice while the other is running, and the Trash menu says which run is going rather than emptying out.
- FixThe export dialog no longer sends a free account at a checkout that cannot take a payment. The published-cap refusal said "free a slot or upgrade"; it now names the two routes that work — free a slot, or send the snapshot, which costs nothing.
- FixThe seat wall and the plans row record that you want the thing instead of opening that same checkout. Granting a reader is still one press where it works today.
- FixA marker on a map that declares tag groups no longer falls back to orange, which is a colour an author can declare as a tag value and which appeared nowhere in the legend beside it. It takes the neutral grey instead, the same fallback an unknown region value has always had.
- FixEvery tag group's default now reaches every marker, not only the groups some other marker already used. A map that wants its markers untagged says so by declaring an
NAfirst entry, the way the rest of the language works. - ImprovedThree fixes so the app can start on Linux at all: the WebKitGTK renderer no longer paints a blank white window under Wayland compositors, the updater no longer reports "you are up to date" forever from a feed that carries no Linux build, and the command-line installer no longer runs and fails on every cold start. Verified on macOS only — none of the Linux behaviour has been run.
- ImprovedSeveral boxes on a sketch board now move together: sweep a marquee, drag any box in the set, and the rest come with it — no more wrapping things in a throwaway group first. A release that would land a box on top of another is refused and the box springs back where it came from (#589).
- ImprovedUndo and redo reach the whole sketch board, on ⌘Z and ⌘⇧Z (or ⌘Y), and they still work after you have clicked away into the code pane or the file tree. The Edit menu names the act it will take back, as in "Undo move a box" (#562).
- ImprovedA sketch board has the settings panel every other chart type already had. Fill cycles through tint, solid and outline, and Legend turns the legend off — and both are written into the diagram itself, so the choice survives a reload, an export, and being shown on the web (#603).
- ImprovedThe code pane no longer refuses your typing in silence. Nothing is said until a keystroke, a paste or a drop is actually turned away, and then a banner above the pane names the reason — a diagram in the Trash, somebody else's live link, a space you may only read — explains it in a line, and carries the ways out, copying the source among them (#526).
- ImprovedTwo diagrams that are copies of each other can be resolved from the file tree. Select both rows in a space, right-click, and Keep one of these two draws the two sources side by side; the one you do not keep goes to Trash with its seven-day grace intact (#292).
- ImprovedA diagram's row menu offers Restore the previous version, so a wrong file saved over the right one can be taken back without waiting for the app to notice the diagram shrank (#529).
- ImprovedA trashed diagram can be put back from the banner that explains it, rather than only from the file tree (#527).
- ImprovedDrawing a line out of a box now shows what letting go will make. The new box follows your hand, the slot it will actually settle into is drawn behind it, and a group that would take it reaches out to meet it before you release (#594, #598, #600).
- ImprovedEscape calls off a sketch gesture in flight — a line being drawn, a box being carried, a marquee being swept — and leaves the board exactly as it was (#595).
- ImprovedTag values can be put in the order you want: pick one up as you would to paint a shape, and drop it back on the legend instead, with a caret showing where it will land. Order decides which values the legend has room to draw and which colour an uncoloured value is given (#592).
- ImprovedHovering a value in the legend lights the shapes and lines wearing it and dims the rest, which every other legend in the product has done for months (#599).
- ImprovedThe colour row says more about what it is offering: a colour another value already wears is drawn smaller, the seat under your pointer grows, the board itself previews the colour you are hovering, and the cross that removes a value leads the row and names the value it would take (#544, #596).
- ImprovedA long box label no longer runs across its neighbours. It wraps, then shrinks, then ends in an ellipsis, breaking at underscores, hyphens and camel humps, exactly as the finished picture does (#586).
- ImprovedA group takes in a box that comes to rest beside it, rather than only one dropped inside its frame (#560); a line can be drawn out of any side of a group (#573); and removing a group leaves its contents where they were instead of throwing them across the board.
- ImprovedThe line style control cycles solid, dashed, none and round again, so pressing it once more always brings the line back. Removing a line for good is selecting it and pressing Delete (#572).
- ImprovedClicking a box selects it so the Delete key can act on it, and the delete circle that used to hang off every box and group is gone from the board (#541).
- ImprovedA name you have typed survives whatever ends the typing rather than only Return, and Escape is the one way to throw it away. Renaming a tag dimension gives you room for the name you are typing rather than the width of the one already there (#574).
- ImprovedThe canvas draws its own selection, rings, previews and sweeps in an ink of its own, so a box tagged blue no longer wears the colour that means "picked up", and a blue line no longer looks exactly like one being dragged out (#593).
- ImprovedA board packed as tightly as the language allows keeps its arrow controls — they shrink to fit rather than standing down and printing advice nobody could take. A box dropped from an arrow lands where you let go, a tap on a box's border makes nothing, and an arrow released back over the box it came from cancels.
- FixEvery mark on a file row is ranked and explains itself in a sentence when you hover it, and the second dot at the right edge is gone. A folder's difference count and its Trash count now say what they are counting, and the title strip speaks the same vocabulary (#525).
- FixThe notice that your work is not reaching disk now sits above the panes, so it can no longer vanish with the code pane it used to live in — which happened on a narrow window, in single-pane markdown, and on a canvas (#441).
- FixSigning in works in a Safari private window, and the page says what does and does not work there instead of saying nothing works (#138).
- FixThe dialog you meet at the diagram limit says how many slots your Trash is holding, lists the spaces holding them, and offers to empty it (#584).
- FixCollapsing a group to read a busy diagram no longer arms a send to the Cloud, so a reader who changed nothing can no longer be stopped by a conflict over their own reading (#458).
- FixWhen two versions of a diagram differ, the dialog no longer calls your own account somebody else, and its two timestamps say which write each one is — last written on this device, and reached the Cloud (#459).
- FixA Keep both that fails after setting your version aside now says where that copy is and offers to file it as a new diagram, and offers again if the retry fails (#466).
- FixA space stops reporting work it can never send: a sync pass lets go of its own records naming diagrams the space no longer has, leaving the files themselves untouched (#449).
- FixThe ⌘K finder now finds a diagram created while it was closed, looks inside far more diagrams than it used to, and says so when a text search has only covered part of a collection instead of answering as though it looked everywhere (#288).
- FixA watched diagram whose live link has been taken down is remembered as gone, instead of being asked about again on every app start.
- FixThe refusal you meet when you have shown as many diagrams as the plan allows no longer points at an upgrade that cannot be paid for. It offers to free a slot, or to send the snapshot link, which costs nothing.
- ImprovedNothing polls the Cloud any more. Freshness arrives on what you do — opening a diagram, resuming typing, coming back to the window, waking the machine, opening the space menu, and Check now — with one quiet repair pass behind it. The trade, taken deliberately: the file tree no longer updates on its own while a collaborator works, and updates when you touch the window, type, or press Check now (#559).
- ImprovedCheck now checks the space you are standing in rather than every space on the account, and the line under it reports that space's own freshness.
- ImprovedA space's diagrams and folders arrive in one request rather than two, and the app has stopped asking about the diagram you have open twice a minute (#547).
- ImprovedA sketch board drawn on the canvas now uses the same placement unit and the same minimum spacing as the library that draws it everywhere else, so the board in the app matches the picture in an export, the command line and a docs site. Boards authored on the canvas before this release read their spacing differently, and one whose boxes were colliding is written back at the positions the picture was already showing (#571).
- FixA diagram that was waiting to be sent when the app started now reaches the Cloud on its own. Before this, work left over from a previous session — or from a save that failed once — sat on "1 to send" for as long as the app stayed open, with the cloud beside it checking every fifteen seconds and never sending anything.
- FixA send that fails is now retried at the next pause, instead of being dropped until you happen to edit that diagram again.
- FixA brief connection problem no longer stops a space syncing until you restart the app. One dropped request was enough to make the app refuse its own requests from then on — every fifteen seconds, indefinitely — while your diagrams sat unsent behind a red cloud. It now pauses briefly and resumes on its own.
- FixThe app no longer tells you that you may be offline when you are not. That message was being shown for a wait the app had imposed on itself, so it sent people to check a connection that was working the whole time.
- FixThe space mark shows what is actually true while a send is waiting: your work is on this device and not yet sent, rather than the Cloud being unreachable.
- FixEditing a sketch is lighter on a large board. A correctness check meant only for development builds had been running on every drag in the shipped app, re-reading the whole diagram each time.
- ImprovedWhen the Cloud is genuinely busy and asks the app to wait, that wait is now capped, and it can no longer carry over into later sessions.
- ImprovedSketch diagrams are edited on a rebuilt canvas: double-click empty board to make a box, drag boxes and groups around, sweep a marquee to select several at once, and sprout a line straight from a box's rim.
- ImprovedThe board is drawn by the same engine that draws the finished diagram — its colours, its typesetting, its legend — so a sketch looks like the picture it will become rather than an approximation of one.
- ImprovedA legend sits beside the board holding your tag dimensions and their values. Add either with a
+, drag a value's swatch onto any shape to paint it, and one drop on a container tags the whole cluster underneath it. - ImprovedA tag value can be given a colour from the language's own eleven, picked from a row that opens under the value's own dot. The same row removes the value; a dimension's pill offers the same for the whole dimension.
- ImprovedLines answer the pointer: drag either end onto a different box, press a line's name to type one, and cycle its style solid → dashed → gone from a pill lying on the line at the line's own angle. Edges take a tag and colour by it, the same way boxes do.
- ImprovedOpening a diagram in a Cloud space now checks with the Cloud before you can edit it. The content appears instantly, editing unlocks as soon as the check returns, and a diagram opened without a confirmed answer says so — so a device that is behind can no longer quietly overwrite the newer copy.
- ImprovedThe file tree and editor now show when a collaborator saved a diagram to the Cloud recently.
- FixSaving locally and sending to the Cloud are no longer the same event: local saves stay instant crash protection, and the send happens once you stop typing, when you leave the diagram, or on a Share action. Eleven seconds of typing used to become six Cloud writes.
- FixNeither side transfers a diagram it does not need to any more — an unchanged diagram is recognised as unchanged instead of being uploaded to discover it was identical.
- FixA diagram left open is re-checked while you are looking at it, and checking stops entirely while the window is hidden, resuming when you come back. It could previously sit stale for half an hour.
- FixYour desktop app and a web tab open on the same space no longer sync against each other. One window holds a space at a time; a second opens read-only and says which window has it.
- FixThe cloud mark reports the state of the space and now has a visible checking state, instead of standing for one diagram's freshness.
- FixThe losing side of a conflict is kept in Trash rather than discarded, so it can still be recovered.
- FixSync now backs off when the Cloud is under load instead of retrying into it, and its repair checks measure time the window was actually awake, so a laptop returning from sleep does not fire a burst of them.
- FixFull-text search in the ⌘K finder answered with a diagram's text from before you edited it — a search that should now match returned nothing, and one that should no longer match still hit. The index refreshes when a file is reopened.
- FixThe ⌘K finder's preview draws the picture at the size of the picture, rather than shrinking away to a speck in the corner of its slot.
- FixThe trash countdown promised thirty days for a diagram the server destroys after seven, whenever it fell back to its own guess.
- FixA folder in a Cloud space that the space had no record of looked real, refused to hold a new diagram, and could not be repaired from inside the app. It is now adopted into the space on first use, and renaming one adopts it rather than renaming a ghost.
- FixEditing on the canvas no longer silently unfolds every collapsed group in the diagram.
- FixSketch canvas fixes gathered from real files: the legend stays readable however far you zoom out, a name field survives the press that opened it and is never clipped, controls belong to the line wearing them rather than answering for another, a second line cannot be drawn between the same pair of boxes, a line's end cannot be dropped on something that is not on the board, and a group is made where you swept it rather than at the board origin.
- ImprovedThe line style control is a pill on the line itself, and removing a line is the last seat in that style cycle — there is no separate × to hit by accident.
- ImprovedA value's colour row is reached from the value's dot, where its colour already is, instead of from its name.
- NewThe ⌘K finder draws the diagram, not just its name. Three files whose names differ by one word are three different pictures — now the picture is beside the list. The chart-type mark appears at once, the diagram itself once your selection has held still for a moment, and the slot is always there so nothing reflows as you arrow down.
- NewThe pane you land on with nothing open draws it too. Both finder frames now render one shared arrangement, so the list, the ranking and the picture cannot drift apart between them.
- NewThe preview is always the file as it is on disk. It is read fresh each time rather than from a cache nothing invalidates, and a preview that cannot be drawn costs you the picture and nothing else — the row, the list and the session carry on.
- NewSync writes down what it decided. Every outcome now names itself: a conflict says which of the four sites raised it and carries both versions, a push records the base it sent and the version that came back, a pull records the version adopted. A steady pass over an unchanged space stays completely silent.
- FixA pull can no longer land on a file that moved under it. A sync pass arriving inside the autosave window read your open file as unchanged, pulled the other side's copy over it, then pushed your stale text back as the newer one — destroying the other edit with no conflict raised. The editor's in-flight edit is now committed before a pass looks at anything, the write re-checks that the file has not moved since it was read, and the editor reloads from disk when a pull replaces the file you have open.
- FixThe PERT preview no longer dims a legend element that has been removed.
- FixThe pre-push checks read the commit being pushed rather than whatever else is being edited in the checkout at that moment, and build their own copy of the diagram library so a parallel session cannot empty it mid-run.
- FixThe performance tests assert what the code costs, not what the laptop had spare, so a busy machine no longer fails a green change.
- NewA save that emptied a diagram can be undone — the Cloud keeps the source each save replaced, and the app offers to put it back when a save arrives that removed most of what was there
- NewA blank editor buffer is never written or pushed over a diagram, closing the other end of the same route
- NewThe title strip names the diagram you are editing, saying what a shut panel stops saying — and the window title follows the diagram rather than lagging it
- NewAn invitation lands on a page about the space instead of dropping you into the editor, and says so when its email never actually left
- New
diagrammo://open?space=points the desktop app straight at a space - NewA tab left behind by a deploy recognises its own state and offers the reload, instead of failing at the next lazy import with nothing to act on
- NewA PERT chart states how long the project takes, in the preview and in the export — not only inside the optional analysis panel
- NewSequence diagrams can number their own messages with
autonumber, so a review can say "step 7" and have it still mean that tomorrow - FixThe wrong-address case when following an invitation gets a control rather than a sentence
- FixYour spaces come first in the account menu, and the door outranks the admin link
- FixA difference that is only line endings is named as that, instead of being denied
- FixMagic-link confirmation survives a slow or flaky hop
- FixCloud requests are bounded by timeouts, and a partial hydration failure is contained rather than spreading
- FixThe load-failure screen offers a control, not advice
- FixA working copy gives its plain name back once the collision is over, and a copy the mirror made and then let go of is deleted rather than minted
- FixInferred DGMO fences render in Markdown
- FixThe interface ships the font weights it actually asks for, and the title bar sits on one baseline
- FixPalette hover contrast
- FixAn event-line whose dates run backwards is now reported as an error rather than drawn confidently wrong
- FixNumbers written with a long leading group, such as
9495,725, are accepted
- ImprovedA save that fails part-way leaves the file exactly as it was. In the web editor an interrupted write used to empty the file and then push that emptiness to the Cloud on the next sync.
- ImprovedEmptying the trash removes the folder, not its contents — it no longer deletes files the trash index does not name.
- ImprovedMoving a folder to another space refuses rather than removing strays.
- ImprovedA "keep both" copy survives a publish that did not go through.
- ImprovedA sync error we could not read no longer authorises wiping the local mirror. An inconclusive answer is now treated as inconclusive.
- ImprovedA pull can no longer write an empty file over one that has content.
- ImprovedThe Share dialog replaces Export, opening with Picture, and starting a live link now happens inside it. The right-click menu opens it too.
- Improved⌘K finder rows print the folder trail rather than a single word.
- ImprovedOrg charts and countdowns follow dgmo 0.73.0's new grammar — org composition is now the single
importkeyword, and recurring countdowns take one whole date onsince. - ImprovedAn empty folder group shows its add button; the legend eye toggle redraws instantly; the code typeface is pinned everywhere.
- ImprovedThe update relaunch waits for the old process to exit, so the app actually
- ImprovedThe sync heartbeat backs off to an hour when nothing is happening, and asks
- ImprovedThe trash is polled on its own slow clock rather than on every sync pass.
- ImprovedAdoption sends an idempotency key, so a lost response stops minting a second
- Improved"Can't reach the Cloud" now says which part failed.
- ImprovedThe window stops drag-selecting its own chrome.
- ImprovedSettings groups collapse, and the four collection rows fold into one strip
- FixDeleting several diagrams from a Cloud space no longer wipes that space from your computer. A background check runs while you delete, and if it happened to touch a diagram you had just removed, the app concluded you had lost access to the whole space, deleted every local file for it, and told you that you had been removed — none of which was true. A refusal about one diagram is now treated as being about that diagram. Nothing on your computer is deleted unless the space itself says you no longer have access.
- FixWhen you genuinely do lose access to a space, the message now says that your diagrams are still in the Cloud. It used to stop at "your copy of the files has been deleted from this device", which read as though the work itself was gone.
- FixWhen the Cloud refuses something, the app says what it actually refused — "That needs an admin of this space", or "That was already gone" — instead of a message about being unable to save, which is what a delete used to report.
- FixA diagram that is read-only to you now shows a small grey mark on its row, rather than silently failing to sync.
- FixTwo computers sharing one Cloud space no longer multiply its diagrams. If the same title turned up twice in a folder, each machine gave the second copy a new file name, sent that invented name back as a real title, and the other machine did the same to it — so a diagram called
hrbecamehr-2, thenhr-2-2, and kept going, several new copies every few minutes for as long as both machines were open. Names no longer compound, a space refuses to hold two diagrams with one name in the same folder, and saving the same new file from two machines at once is recognised as one diagram rather than two.
- NewCopying a folder into a space now carries the folder, not just its diagrams. It used to flatten everything into the space root. The copy dialog opens on a summary with everything already chosen, says exactly where the folder will land and what it will be called when it gets there, and names a colliding folder rather than quietly merging into it. A folder can also be moved between spaces now, not only copied.
- NewYou can delete your own account, from the bottom of the account page. It takes two steps on purpose: typing your address, then opening a link we email you — so somebody at your unlocked laptop cannot do it, and simply receiving the mail does nothing. The page tells you what survives before you press anything: a space with other members passes to its longest-standing admin, and shared content stays where it is with your name cut from it. It also wipes this machine's copy of every space, not just the one you have open, because an erasure that leaves your diagrams on disk hasn't done what it said.
- NewThe finder searches every space you belong to, and tells you which ones it read. Previously it searched what happened to be loaded. Spaces it could not reach are named, with an offer to fetch them, rather than silently missing from your results.
- NewLinks and files lists File, Snapshot link and Live link, shortest-lived first, so the order explains itself. Showing a diagram on the web now happens in one place — the rail seat and the file tree's row menu — instead of a third copy in this dialog that the other two didn't know about. A diagram that could be shown and isn't now says so, with the mark drawn inline.
- NewDragging a diagram out of the Trash puts it where you dropped it, and putting one back tells you where it went.
- NewAn org chart keeps its folded people and teams. Folding used to be forgotten the moment the diagram changed; it now travels with the file, so it survives a save, an export, a link you send someone and an embed on a page.
- NewOn a sequence diagram, clicking a mark on a folded band opens the fold and takes the cursor to the message that mark stood for — one gesture instead of unfolding and then hunting.
- NewIdle syncing costs the same whether you belong to one space or twenty. The app now asks once whether anything has moved anywhere, and skips the spaces that haven't. Before this it checked each space separately, which grew with the number of spaces and had no ceiling. Syncing also sleeps while the window is hidden.
- NewThe sketch chart type is marked as beta wherever chart types are listed, so it is clear which ones are still settling.
- FixNine places where an action failed and nobody was told. Two of them now refuse instead of proceeding: an export whose re-render failed used to quietly export the wrong picture, and a snapshot link that could not read an imported file used to be built anyway, arriving incomplete for the recipient. The rest — a refused clipboard read in the sketch pad, Stop watching, putting a trashed folder back, switching space, and more — now say when they didn't work.
- FixBeing promoted or demoted in a space reaches the app while you are using it. A rank was read once when you opened the space, so somebody demoted to reading kept typing into a pane the server would refuse, and somebody promoted stayed locked out. It now updates on the next ordinary sync, at no extra cost.
- FixThe code pane slides open and shut again instead of vanishing in a single frame as the window narrows, and it no longer measures the wrong thing when deciding how narrow is too narrow.
- FixRestoring unsaved changes after a crash only happens when the recovered text is genuinely newer than the file. It used to fire after ordinary quits and could put older text in the editor, which the next keystroke then saved over the newer version.
- FixMoving a folder inside a space no longer creates a duplicate of every diagram in it.
- FixSaving reaches the space the diagram belongs to, whichever space you happen to be standing in, and opening a space no longer overwrites an edit that never left your machine.
- FixPasting a diagram, or filing one with Keep this in a space, lands in the folder you are looking at rather than the space root.
- FixSwitching which tag group colours an org chart redraws once instead of twice, and hovering a legend entry keeps working after the preview pane is resized.
- NewEvery space holding work that hasn't reached the Cloud now syncs, not just the one you have open. Until this release a space you hadn't opened since launching the app ran nothing at all — its edits sat on your machine looking perfectly ordinary. The check is done locally, so nothing is sent for a space that has nothing to send, and it runs again whenever your machine wakes from sleep.
- NewA space tells you how long it has been since it last confirmed anything with the Cloud. Hover the cloud mark: past a few quiet minutes it adds a plain line saying when a pass last got a real answer, so a sync that has quietly stopped looks different from one that has nothing to do.
- NewA file you put in a space's folder yourself is now found and filed. Duplicating a diagram, saving one from a link, or copying a file in from Finder used to leave it invisible to the space forever — no dot, never uploaded, and a row that looked exactly like a synced one.
- FixOne diagram refusing to sync no longer stops every diagram behind it. A single rejection ended the whole pass at the same place every time, so everything after it in the list waited indefinitely; a refusal is now kept to its own diagram, which stays marked as waiting.
- FixAn invitation that arrives while the app is open can be accepted without restarting it. Opening the space menu re-lists your spaces, so a space you were just invited to is simply there.
- FixA space whose bookkeeping file had been damaged is repaired instead of quietly reported as up to date. One unreadable file used to demote a real space to an ordinary folder — it would claim to be synced without ever contacting the server, and nothing else could see the problem. The next sync now rebuilds it from the space itself, and your unsent edits are uploaded rather than overwritten.
- FixKeeping both copies of a conflict no longer risks losing one. The preserved copy was being removed before the copy that replaces it was known to be safely written.
- FixCutting a shape in the sketch pad puts it on the clipboard before removing it, so a cut that the system clipboard refuses no longer takes the shape with it.
- FixFiling a diagram into a space asks for your consent before anything leaves the machine, rather than after.
- NewA narrow window stops squeezing the diagram. Drag the window in far enough and the side panes step aside on their own, leaving the whole width to the drawing; widen it again and they come straight back — the window remembers which panes you had open rather than reopening a set you never chose.
- NewWhen the Cloud can't be reached, the app now says which thing is failing. "Can't reach the Cloud" used to be one message for every cause, including causes that were nothing to do with you; it now separates your connection being down from the service being unreachable from the service answering with an error, and says so in the words you'd use to tell someone else about it.
- NewA save that the Cloud rejects, or that it throttles, raises the sync glyph instead of passing silently. The signal is debounced, so a single blip on a flaky connection doesn't flash at you.
- NewThe editor colors the color. Every directive that ends in a color word — the event-line
nowpin, gantt'smarker, and their siblings — shows that word in the color it names, so a mistyped or misplaced color is visible before you render. - FixRenaming a diagram inside a Cloud space no longer behaves like a duplicate. The rename was only ever happening on your machine, so the next sync either put the old name back or left you holding two copies of one diagram; it is now one operation the space performs, and every member sees the new name.
- FixAccepting the name New Folder suggests now actually creates the folder. Typing your own name worked; pressing Enter on the suggestion silently did nothing.
- Improveddgmo 0.70.0: the event-line
nowpin takes an optional color of its own, and a tag group whose name contains a space is called out as a probably-forgottenasalias. The editor now reads which directives carry a trailing color from dgmo itself, so a new one lights up here as soon as the language ships it.
- NewA space has real folders. Make a folder inside a Cloud space and it belongs to the space, not just to your machine: every member sees it, renaming it is instant everywhere, and dragging a diagram into it files the diagram there for everyone. Empty folders survive too — a folder is a thing you made, not a side-effect of what's in it.
- NewDeleting a space folder takes the whole folder — subfolders and diagrams together — to the space's trash as one act, and "Put back folder" undoes the whole act the same way. The delete refuses to run if the folder holds files the space doesn't track, and names them, so nothing unrecoverable ever rides along.
- NewRows in the trash say where they came from. A file that went down with a folder delete carries a muted "from reviews/" caption beside its countdown, so the trash explains itself.
- NewNew File and New Folder land where you're standing. Inside a space folder, a new diagram is born in that folder — on the server and in your tree at the same moment — instead of appearing at the space root.
- NewDrilling into an org chart's group writes
focus <name>into the source, so the re-rooted view you're looking at is the one that exports, shares and embeds — not just app state that evaporates. - FixThe folder you right-clicked wears the same muted highlight files get, so the menu's target is visible while it's open.
- FixThe Watching list gets the same left gutter as every sibling list.
- Improveddgmo 0.69.0:
focus <name>is a real org-chart directive (what the new drill-down writes), the event-line "now" pin is captioned with the date it resolved to, and labels on solid fills pick their color the way eyes do.
- NewA sketch is renamed where its name is. Click the title on the canvas and type; double-click selects it for replacing. The title used to be untouchable there — clicking it looked like nothing at all, and a double-click could conjure an empty shape over it.
- NewThe pencil that edits a sketch's tag legend appears when the pointer is anywhere in the title band, not only while hovering a legend pill — a target so tight the control read as a secret.
- NewThe storage menu's Watching row carries a count, like Starred, Recents and Showing beside it. Next to their numbers, its blank read as zero rather than as a policy.
- FixWatching a diagram whose publisher gave it a one-word title works. The pointer file written for it could not be read back, so the watch showed an error card instead of the diagram — and could then be silently un-watched as a supposed deletion.
- FixA watch that reaches a second machine through your account is named by the publisher's title, not a
dgm_01…id for life. Pointers already stranded that way are renamed in place. - FixThe legend pencil no longer vanishes under the cursor that is reaching for it, and it stays beside the legend after the window is resized.
- FixRows in the Watching list drop the little home badge that could only ever answer "Watching".
- Improveddgmo 0.68.0: every render path now lays out a sketch with the editor's own defaults, so the CLI, a docs page and a live link draw exactly what the app showed you.
- NewAsk to be let in. Arriving on a link you can only read, a door beside Watch in the rail now opens a sheet where you can ask to keep reading — a viewer seat that survives the link going away — or ask to edit, with an optional line saying why. Reopening the sheet is how you see where the ask stands: asked, taken back, declined or expired.
- NewThe owner of a space can turn live links off. A switch in the space's people panel says whether diagrams here may be shown on the web; turning it off lists everything currently shown so each one can be stopped deliberately, rather than breaking embedded links silently. The policy binds new shows, and Stop showing stays reachable wherever it already was.
- NewThe waiting list says what each person actually asked for — wants to keep reading, or wants to edit — and the button names the yes it grants.
- NewStarred, Recents, Showing and Watching are named rows in the folder picker. They were an unlabelled strip of small glyphs below the folders, so the only route to Watching from that menu read as a readout rather than a place you could go.
- NewSigning in asks the browser to prove it is one, so an address can no longer be signed up for by a script.
- FixReport a problem reaches hello@diagrammo.app, which is a company address on the product's own domain rather than a personal alias.
- FixA pending invite says when it expires without the date being cut off.
- FixThe folder picker marks the collection you have open with the same tint a current folder row uses, instead of a tick sitting in the column that everywhere else holds a count.
- NewA line you select in sketch mode carries its own controls, right at its label. The old popover card and the bead on the line are gone. In their place one small cluster sits where the label already is: a style sample on the left that cycles solid, dashed and no line with each click, the label itself in the middle, and the active tag group's values as dots on the right, filled in for whichever one this line carries. Removing a line is not destructive — it ghosts in place with "Removes when you click away — click to bring back" underneath, and only commits once your selection actually leaves it.
- NewAsk for access to a space you can only read, and grant it from the same list. A pane you cannot write to now says so along its foot, with the request sitting in the bar rather than directions to somewhere else, and it tells you how long ago you asked. On the owner's side each request lives on the asker's own row, Grant reads as the primary action it is, and Remove and Decline look like what they do. A role change now survives the reload that was meant to apply it.
- NewAn invitation email lands you in the right place. Following an invitation now actually fires the landing, and it acts on the address the invitation arrived at rather than whichever account happened to be signed in.
- NewOpening a shared link hands the diagram to the app you already have. If Diagrammo is installed, the web page offers it the diagram instead of keeping you in the browser.
- NewThe terms and the privacy notice are reachable from inside the app, under Settings, instead of only on the website.
- NewA save that fails now says so, with what kind of failure it was, instead of failing quietly or printing a raw exception at you.
- NewThe card that tells you you own no space now offers to make one, and the create dialog says plainly that the space stays yours.
- NewYour folder is re-read when you come back to the window, so files added or removed by something else show up without a manual refresh.
- FixThe web editor can save in Safari again. For its whole life it could not write a single byte in any Safari before version 26 — it would open storage, make folders and read files quite happily, then throw on every write, and a first-time visitor met that as alert boxes full of our own source. Every write now goes through a path Safari has supported since 15.2.
- FixBold text is measured in the bold face it is drawn in. Labels set at the middle weight were quietly rendering bold while being measured as regular, so boxes came out too narrow for their own text across roughly twenty places — chart titles, legends, sequence, block, mindmap, treemap, boxes-and-lines, bracket and the rest.
- FixNon-Latin diagrams lay out at their real width. Chinese, Japanese and Korean text was being measured about 40% too narrow and Devanagari about 63% too wide, so labels overflowed or floated in empty boxes.
- FixA table column that cannot be parsed is now reported instead of deleted. An entity-relationship column written with a comma used to vanish from the drawing without a word; it now raises an error that says what is wrong.
- FixAn edge label is no longer crossed by its own connector.
- FixA file you deleted in Finder stays deleted, rather than reappearing in the tree.
- FixThe storage indicator stops contradicting the pane that actually measured storage, and it now asks whether it can write rather than whether a disk exists.
- FixOne broken example no longer abandons the other ninety-five when the gallery loads.
- FixOpening a chart is counted by what kind of chart it is, not by the file extension it happened to be stored under.
- FixA space carries its own people again rather than showing the previous space's members.
- FixSecurity patches for eight flagged dependencies.
- NewSee which websites your diagram is being read on — and go there. Each diagram you are showing now lists the other sites it was opened from in the last 30 days, busiest first with rough open counts, and every site name is a link straight to it. A new account-wide switch under "Where your diagrams are shown" turns that recording off. Only the site's name is ever kept, never the page.
- NewDelete a space you own, and change your mind. An empty space goes with a quick inline confirm; one holding diagrams or other people gets a dialog naming exactly what goes with it, and a deleted space can be restored for 30 days. If someone deletes a space you merely belonged to, you now keep every one of your files — the next sync used to erase your local copies — and the message names the owner's email address so you can ask them.
- NewOne word for sharing: Show on the web. "Publish" is gone from every label a person sees. Show on the web → Showing → Stop showing now mirrors Watch → Watching → Stop watching, undo for undo. One globe mark means a live link, one amber colour means someone outside can read this, and Watching stays blue because it is a fact only about you. The Export dialog is now "Links and files", named after all three things behind it instead of just one.
- NewA share link opened in a browser is a working app. Settings opens on a shared diagram — light and dark, the export palette, privacy — where the button previously did nothing at all in any browser. Watching works in a private window by falling back to your account when browser storage is refused. A dead, withdrawn or blocked link shows a page saying what happened and what to do, and a stalled request gives up after twelve seconds instead of leaving a permanently blank window.
- NewA reader who asked for edit access can take the request back, from the confirmation toast.
- NewThe code editor matches your palette. It could sit on the default white theme inside a warm Atlas workspace; the editor now takes its colours from the same place as the rest of the window, and inline warnings and broken-import links use the app's own warning and error colours rather than a fixed red that read as a rendering fault.
- FixCreating a new space no longer leaves the previous space's files, open document and preview on screen under the new space's name.
- FixOpening your own share link no longer flashes "Nothing opened yet" between two paints of your chart, and a link now opens to the diagram with the side panels out of the way for the owner too, not just for a stranger.
- FixWatching a diagram on the desktop stores its pointer inside the app's own data folder; it previously wrote outside every folder you use, or failed with a permission error naming nothing.
- FixAfter a web editor deploy, a page that loads mid-rollout repairs itself instead of showing a blank window with nothing to press.
- FixDiagrams can no longer be orphaned inside a Cloud space: subfolders are refused because a space is flat, and pasting DGMO, generating a pie chart, or renaming a file to a path all file into the space instead of writing a loose file that never syncs and gets no live link.
- Fixkanban and raci diagrams no longer preview blank.
- FixThe chart-type autocomplete leads with the types people actually write — map, bar, er, event-line — instead of journey-map.
- FixThe folder picker is no longer sliced off on a small window; paths ended in a severed letter and the counters sat off screen.
- FixThe QR code appears together with the link instead of sitting as a disabled button beforehand.
- Fix"Stopped showing" says the same thing on every surface, including the true up-to-five-minutes window before a link stops opening.
- FixThe app states the real space limit, read from the server, in the three places it used to promise unlimited spaces; spaces joined the usage meters.
- FixA Cloud action reports its own result, so a successful share can no longer surface an unrelated background sync's error.
- FixSmaller polish: the reader's diagram card regained its left gutter, the empty "Link" heading is gone from the export dialog, the Documentation rail seat appears only while the code panel is open, the Watching empty state's button wears the same eye+ mark as the rail, the web welcome document's backup instruction names the renamed menu, the missing-CLI hint names the right package, desktop share-link opens no longer claim success over a withdrawn diagram, and the watcher count now says when it could not be read.
- NewA live link someone sends you now opens in Diagrammo, not a browser tab. The Watching panel has a button that reads the link off your clipboard — no field to paste into, no second control to press. Previously the walkthrough told you to open the link and press the eye in the left bar, which was false on the desktop: the link went to a browser and filled the web app's Watching list instead.
- NewThree doors onto the same act. The Watching panel's button,
⌘Vin the finder while Watching is open, and adiagrammo://deep link all land in the same place. The paste is offered only where watching a link is what you would be doing, and anything that is not a live link pastes normally. - NewPublishing sits beside Export, at one press. It used to live three levels down inside the Export dialog, behind a door named after a different act — exporting is bytes leaving, publishing is a URL that stays live. Publish and Watch now share one seat in the rail; they never both apply at once.
- NewA diagram outside a Cloud space gets a link from the rail too. It always had one — it only ever lived inside the export dialog.
- NewEvery control in the rail says what it is. Hover or focus any glyph and its name slides out from behind it, and the pane underneath quiets so the label is the thing you are reading. An icon-only rail is fine on the hundredth use and useless on the first, because you cannot look up a picture.
- NewThe captions say what each link does to you, which is the whole reason they earn their words: Copy live link — always current against Copy a link to this version. One link keeps being true; the other carries this version and cannot.
- NewBoth live-link panels teach the loop rather than promising an outcome. Watching is a collection nobody can fill by accident — the first move is not even yours — so its empty state walks both halves in three steps, with the buttons drawn the way the rail draws them instead of named in words that are not printed anywhere.
- ImprovedSwitching the panel to Watching, Showing, Starred or Recents now closes the open document and hands the pane to the finder. The window used to say two things at once: a panel reading nothing here yet beside a full-size diagram from a folder the panel was no longer showing. The document you just closed is the first row of Recently opened.
- ImprovedThe rail's collapse button names what is actually in the panel — the file tree, the Starred list, the Showing list — instead of always saying Hide file tree.
- ImprovedOne vocabulary for publishing across both doors: the rail and the export dialog both say Publish a live link.
- ImprovedOne rule for the collection glyphs, so both halves read the same way: a plain glyph is the collection, a glyph with a plus adds to it, and a link glyph means a link that already exists.
- ImprovedThe brand mark is built like every other control in the rail now — same capsule, same caption, same weight — instead of being the one thing always on screen that matched nothing.
- FixThe export dialog's live link is found by the diagram's own path, not by whichever root is open. Opening a row from the Showing list while standing in a local folder offered a snapshot link for a diagram that was, at that moment, actively being shown — and Stop showing could act against the wrong space.
- FixA development build no longer reports to the events collector. Within minutes of the collector going live it showed app opens and renders on a day when nothing was released; it was a dev instance on the author's own laptop. An instrument pointed at its own operator reads as adoption.
- FixThe updater now states which version is asking, so the version breakdown is real rather than guessed from a user agent.
- FixExport no longer appears when there is nothing to export — an open folder with no file chosen used to offer a door onto an empty room — and the editor toggle no longer offers to hide a pane with nothing in it.
- FixCollapsing the panel while standing in Watching showed a Cloud icon: the list you were in replaced by storage it is not.
- FixNo native OS tooltips — three had crept back in. Names are still announced to anyone who needs them.
- FixThe way back out of a collection works: Starred and Recents were built only from the open tree, so both came back empty in the one frame where that pane is the only route back to the document you just closed.
- Fixfix(release): pace the pre-flight suite, which was failing on nothing
- Improvedchore(gates): unblock the release — and stop knip pointing at the unfurl Function
- Improvedrefactor(cloud): finish the Showing rename, undo included
- Improvedfeat(shared): ask before counting an open, then count it without identity
- Improvedfeat(shared): the reader's three asks, and the rail that made room for them
- Improvedrefactor(showing): point at the name field that exists, drop window.prompt
- Fixfix(showing): the attribution toast no longer claims a name that isn't there
- Improvedfeat(showing): the attribution opt-in is reachable
- Improvedrefactor(watching): retire "Save a copy" from the reader's surface
- Improvedfeat(watching): a watched pointer names itself
- Improvedfeat(watching): diagrammo://open?d=
brings a live link into the desktop - Improvedfeat(watching): the collection — a Watching chip beside Showing
- Improvedfeat(watching): un-watching, observed rather than inferred
- Improvedfeat(watching): the folder becomes a projection of the account's set
- Improvedfeat(account): date the session rows, so they can be told apart
- Improvedrefactor(showing): the publisher half of Showing / Watching
- Improvedfeat(watching): a reader can keep a live pointer to someone else's diagram
- Improvedchore(account): delete TeamRoster, which nothing has mounted since the bill
- Fixfix(account): chart real editing, not each diagram's last-touched day
- Fixfix: the export dialog keeps a margin, and both columns shrink to fit a small window
- Improvedfeat(account): make the bill a list of the things being billed
- Fixfix: the export dialog opens a QR to the right, smoothly, and says which link it is for
- Fixfix(live-link): ten defects found by adversarial review
- Fixfix(account): fold "Your sessions" by default
- Improvedfeat(live-link): follow the pointer — resolve and render the published diagram
- Improvedtest(cloud): the copy pace has to hold at 85 files, not at three
- Improvedfeat(preview): draw the reference card for a live link
- Improvedfeat: a finder group heading opens that whole collection in the tree
- Fixfix: Shared reads last in the finder, under the two groups that answer the pane
- Fixfix: the idle finder starts higher, and Esc puts the search back
- Fixfix: a result's root is sized to its name, not to a fixed 22% of the row
- Fixfix: the ⌘K flash is loud enough to see, and the root pill stops teaching it
- Improvedfeat: the finder answers ⌘K with a flash, not a focus ring nobody sees
- Fixfix: ⌘K goes to the finder on screen instead of stacking a copy over it
- Fixfix: the idle finder stops truncating names it has room to spell out
- Improveddocs: the shared-view freshness dot and hover bar never existed
- Improvedfeat(shared): no consent prompt for a reader, because nothing is stored
- Fixfix(shared): the reader is known from the path, not from the fetch
- Improvedfeat(rail): a reader keeps the editor toggle, and nothing else
- Improvedfeat(shared): a reader gets the diagram, not a workspace
- Fixfix(layout): a selected file is enough to open the workspace
- Improvedfeat(shared): a share link opens the app, not a trimmed view of it
- Fixfix(shared): the handoff cancelled itself the moment it started
- Fixfix(shared): the hoisted response was read twice, and a body reads once
- Fixfix(shared): the failure card says why, not just that
- Fixfix(shared): the shared view was a second visual language
- Improvedfeat(export): say what a reader sees, not what the link stops doing
- Improvedfeat(export): unpublish joins the control column
- Improvedfeat(export): one right edge, and fewer words in the options
- Improvedfeat(export): three peer rows, one arrangement
- Improveddocs: a full-suite failure here moves between files, and that is the tell
- ImprovedMerge branch 'copy-to-space'
- Improvedfeat(cloud): copy a folder of local diagrams into a space
- Improvedfeat(export): the file actions moved to the section they act on
- Improvedfeat(export): the QR opens sideways, into a second column
- Improvedfeat(export): colour names the action, and selecting is not acting
- Improvedfeat(export): a button's colour now says whether the dialog survives it
- Fixfix(account): give the account charts a shape, not just a width
- Improvedfeat(export): the link section is flat, so it says both things at once
- Improvedfeat(export): the button was the feature, the field was noise
- Improvedfeat(export): the link kinds are tabs, so they explain themselves
- Improvedfeat(shared): say who published each diagram
- Improvedfeat(account): published diagrams live in the space they came from
- Improvedfeat(account): one plan, one roster, and spaces that fold
- Improveddocs: date the no-gate claim, since undated status reads as current
- Improvedfeat: the link icon was already the export dialog's link row
- Fixfix(file-tree): the root menu floats over the work surface again
- Improvedfeat(export): publishing is an act, not a side effect of copying
- Fixfix(file-tree): the per-diagram sync dot has been dead since titles arrived
- Fixfix(shortcuts): vim-motion handlers were eating Cmd-K before the finder saw it
- Improveddocs: the web editor's git-connected build has been failing all along
- Improvedrefactor(app): say publish/unpublish, not share/private
- Fixfix(cloud): a share link opens the diagram, not the editor root
- Improvedstyle: no ALL-CAPS anywhere in the interface
- Improvedfeat(finder): ⌘K rows join the vocabulary, and the chart-type cache goes with them
- Improvedstyle(finder): make a group heading look like a label, not another row
- Improvedstyle(finder): the Recent group gets the tree's clock
- Improveddocs: seven UI and build rules that only existed in memory
- Improvedstyle: one star, filled, wherever it stands for the Starred collection
- Improvedstyle(file-tree): two registers in the icon slot — amber for shared, blue for yours
- Improveddocs: the web editor's tag deploy has been dead since v0.32.0
- Improvedfeat(file-tree): the globe reaches Starred and Recents, and category colour leaves with it
- Improvedfeat(file-tree): retire the trailing "shared" word — the globe carries it
- Improvedfeat(file-tree): the globe marks a shared row, and category colour leaves the slot
- Improvedfeat(file-tree): Shared is a collection beside Starred and Recents
- Improvedfeat(cloud): offer sign-in on an unavailable share, without admitting anything
- Improvedtest(cloud): drive /d/:id in a real browser, and fix the two bugs it found
- Improvedfeat(cloud): a shared link unfurls as the diagram, not as "Diagrammo"
- Improveddocs: name the three lists a dgmo subpath export must join
- Improvedfeat(cloud): save a copy of a shared diagram, no account required
- Improveddocs: rewrite CLAUDE.md — web editor, Cloud, build landmines
- Improvedfeat(cloud): /d/:id opens the app with editing switched off
- Improvedperf(build): delete manualChunks — 946 KB → 392 KB gzipped boot
- Improvedfeat(cloud): ask for edit access, and grant it without leaving the roster
- Improvedfeat(cloud): show me everything I have shared, and let me stop
- Improvedfeat(cloud): send a colleague a link that is always current
- Improvedfeat(cloud): one way to change who can read a diagram
- Fixfix(finder): one row per path, and an e2e that watches the render
- Improvedfeat(finder): opening a result from elsewhere brings its root with it
- Fixfix(finder): arrow keys and Enter work on the grouped view too
- Fixfix(finder): a blank ⌘K shows starred and recent, and Trash stays out
- Improvedfeat(finder): lay results out in columns so the snippets line up
- Fixfix(finder): matched text goes beside the name, not under it
- Improvedfeat(finder): widen the overlay, set snippets as source, light the term
- Improvedfeat(finder): search titles and diagram text, with filenames still first
- Fixfix(finder): actually search other folders instead of only what was remembered
- Improvedfeat(cloud): the new-space dialog answers what a name field cannot
- Improvedchore: teach cspell the finder's two new words
- Improvedfeat(finder): a cloud or a folder glyph beside the root a result came from
- Fixfix(finder): name the space a result lives in, and stop WebKit autofilling
- Improvedfeat(finder): search reaches other folders, ranked below this one
- Fixfix(finder): bind the finder to ⌘K, not ⌘P
- Improvedchore(release): 0.35.0
- Fixfix(finder): a search box, two named groups, and a row that shows the name
- Improvedfeat(finder): replace the space report with a list you can type into
- ImprovedProgressive first open — diagrams appear as their sources arrive instead of after the last one lands
- ImprovedFaster space switching — incremental hydrate, parallel pulls, and the cached tree drawn first
- ImprovedResend an invite without creating a duplicate
- ImprovedSet your own display name
- ImprovedViewers now appear in the roster
- ImprovedA space you were invited to behaves like a space you own — not a second-class view
- ImprovedA chart-type pill in the editor
- Improved⌘-jump to a diagram by name
- ImprovedStarred diagrams reorder by dragging, and drag like folder-tree rows
- ImprovedStarred entries show a star, Recents a clock, instead of the generic category dot
- ImprovedThe rail carries labelled buttons and a mode-aware collapsed icon
- FixFixed: the file-tree pane opens with the root menu inside it rather than escaping the pane
- Improvedchore(app): refresh third-party licenses for 0.33.0
- Improvedchore(app): 0.33.0
- Improvedfeat(app): cloud-aware chrome — prominent account pill, unclipped root menu, collapsed-tree identity
- Fixfix(cloud): survive a reload mid device-flow, and land /connect somewhere useful
- Improvedfeat(cloud): the paywall gets a surface, and a door that opens (9.2)
- ImprovedMerge branch 'main' into cloud/9-5-account-page
- Fixfix(cloud): a handoff into a browser that's already you does nothing
- Fixfix(cloud): the subscription is yours, not a space's (12.6)
- Improveddocs(cloud): getUsage's note described the model it replaced (12.6)
- Improvedrefactor(cloud): spaces are cards, and expanding only ever adds
- Improvedrefactor(ui): drop RoleSelect with the dialog it was built for
- Improvedfeat(cloud): a Leave button on every space someone else owns
- Improvedrefactor(cloud): team management and sign-out belong to the account page
- Improvedfeat(cloud): open a space into its own detail, and stop shadowing it
- Improvedfeat(cloud): focus a space, and let it be the context for team and diagrams
- Improvedfeat(cloud): 9.6 — manage a space's people without leaving the account page
- Improvedfeat(cloud): 9.6 — team roster, and split the page on ownership
- ImprovedMerge branch 'main' into cloud/9-5-account-page
- Improvedfeat(cloud): send the chart type on write, and chart what people build
- Improvedfeat(web): ask before analytics starts in the browser
- Fixfix(cloud): stamp standalone-route titles from useWindowTitle, not AccountRoute
- Improvedfeat(cloud): gate space upgrades behind "coming soon", fix account tab title + favicon
- Improvedfeat(ui): the brand mark labels itself by growing
- Improvedfeat(cloud): plan comparison table, and draw the account page with dgmo
- Improvedfeat(cloud): account page — people breakdown, plan card rewrite, paging
- Improvedfeat(cloud): account page layout B — linkable, denser, own scroller
- ImprovedMerge branch 'main' into cloud/9-5-account-page
- Improvedfeat(cloud): D logo goes straight to the account page — drop the menu
- ImprovedMerge remote-tracking branch 'origin/main' into cloud-trash-folder
- Improvedstyle(cloud): make the two root groups rhyme
- Improvedfeat(cloud): lead the root menu with spaces when there are any
- Improvedrefactor(cloud): the menu gets a Sign in button, not a card
- Fixfix(cloud): one cloud glyph, not two
- Improvedfeat(cloud): 9.5 remaining doors — paywall toast, root dropdown, all-spaces list
- Fixfix(cloud): keep the reconnect card out of Starred and Recents
- Improvedfeat(cloud): 9.5 account page + the D-mark brand menu
- Improvedrevert(cloud): drop the Sign in chip from the root pill
- Improvedfeat(cloud): three ways back in when a space can't sync
- Fixfix(cloud): a session ending is not an error
- Improvedfeat(cloud): Trash as a real folder in the space
- Improvedfeat(cloud): finish desktop sign-in in a browser of your choosing
- Fixfix(file-tree): long folder and space names ellipsize instead of spilling
- Fixfix(release): resolve wrangler instead of reading a broken shim as an auth failure
- Improvedchore(licenses): regenerate for dompurify 3.4.12
- Improvedchore(gates): unblock the release preflight
- Improvedtest(setup): shim SVGElement.transform so d3 transitions don't crash jsdom
- Improvedchore(release): 0.32.0
- Fixfix(onboarding): first run no longer fails in silence
- Improvedfeat(cloud): file new diagrams private, surface server refusals
- Improvedbuild(web): resolve wrangler explicitly in the deploy script
- Improvedbuild(web): one script to deploy the web editor, with guards
- Improvedfeat(cloud): copy the device code so the browser leg is a paste
- Improvedfeat(cloud): raise the desktop app from the connect success screen
- Fixfix(cloud): deleting a vault diagram deletes it, instead of it coming back
- Improvedfeat(cloud): explain the cloud glyph on hover, on the root pill
- Improvedfeat(cloud): in-app hint explaining what the cloud glyph means
- Improvedfeat(cloud): land in your space after signing in
- Fixfix(cloud): point the web-host fallback at online.diagrammo.app
- Improvedrefactor(chrome): remove the bottom status bar
- Fixfix(chrome): drop the palette swatch from the web status bar
- Improvedfeat(cloud): "Continue with Google" on the web sign-in sheet
- Improvedfeat(cloud): typed device code, revocable sign-out, tightened CSP
- Fixfix(cloud): keep-both can't overwrite an orphaned conflict copy
- Improvedfeat(cloud): Cloud Space in file tree + unified CloudStateIcon
- Improvedfeat(cloud): persist the session across restart / reload
- Fixfix(cloud): approve desktop code inline after sign-in, don't navigate
- Improvedfeat(cloud): desktop device-flow /connect approval page (web)
- Improvedfeat(cloud): account popover on the lit cloud (no accidental sign-out)
- Fixfix(web): allow api.diagrammo.app in CSP connect-src
- Fixfix(cloud): bind default fetch to globalThis (Illegal invocation)
- Improvedfeat(cloud): nudge sync on autosave — vault edits reach the Cloud in ~1s
- Improvedfeat(sketch): predict-layout drop ghost + box-clearance gap + repoint ghost cleanup
- Improvedfeat(cloud): quiet offline state on the rail cloud icon
- Improvedfeat(cloud): publish or discard kept-both conflict copies (3.7 tail)
- Improvedfeat(cloud): space management pop-out — members, seats, billing (5.4)
- Improvedfeat(cloud): web magic-link login + in-tab token handoff (2.1)
- Improvedfeat(cloud): publish = filing into vault + first-time consent (3.6)
- Improvedfeat(cloud): loud, clean revocation edge-state (3.8)
- Improvedfeat(cloud): conflict-resolution UI on the sync hub (3.7)
- Improvedfeat(cloud): sync indicators — rail SyncHub + tree-row dots (3.5)
- Improvedfeat(cloud): CloudAccountButton in the rail — reach connect/sign-out (2.4)
- Improvedfeat(cloud): app session/auth layer — connect, vault list, engine owner (2.4)
- Improvedfeat(cloud): revocation purge — wipe the mirror on access loss (3.8)
- Improvedfeat(cloud): conflict resolution — keep-mine/theirs/both (3.7)
- Improvedfeat(cloud): sync engine — reconcile mirror ↔ vault (3.4)
- Improvedfeat(cloud): vault-as-root spine — open a vault like a folder (3.1 AC5)
- Improvedfeat(cloud): local mirror store (story 3.2)
- Improvedfeat(cloud): CloudVaultProvider adapter + contract symlink (story 3.1)
- Improvedchore: extract cloud-api + api-contract to the diagrammo-cloud repo
- Improvedfeat(cloud): vault storage API — list/pull/version-guarded-push/fork (story 3.3)
- Improvedfeat(cloud): desktop OAuth device-flow — backend (Story 2.2, G1)
- Improvedfeat(cloud): invites + accept flow (Story 2.6)
- Improvedfeat(cloud): spaces + memberships + RBAC (Story 2.5)
- Improvedfeat(cloud): magic-link auth + JWT session + live membership (Story 2.1)
- Improvedfeat(cloud): D1 schema + Drizzle migrations + repositories (Story 1.4)
- Improvedfeat(cloud): zod-openapi contract + typed client + CI gate (Story 1.3)
- Improvedfeat(cloud): canonical helpers + four route factories (Story 1.2)
- Improvedfeat(cloud): scaffold cloud-api + api-contract packages (Story 1.1)
- Fixfix(sketch): card-sized landing ghost + consolidate card drop-offset; add ghost survey
- Fixfix(sketch): hide landing ghost + guides over an un-droppable spot
- Fixfix(sketch): no false group reach for a collapsed card; block group nesting
- Fixfix(sketch): collapsed-card drop lands on the ghost — anchor-space conversion
- Fixfix(sketch): strict group leave — a frame no longer chases its member
- Fixfix(sketch): hold the camera through fold/unfold — morph is the only motion
- Fixfix(sketch): fold morph actually animates — absolute-outline tween
- Improvedfeat(sketch): animated fold — frame morphs into its centred card
- Improvedfeat(preview): animated group collapse — stable layout + frame-to-pill morph
- Improvedrevert(sketch): drop group fold chevrons — restore tap fold/unfold
- Improvedfeat(sketch): canvas fix batch — WYSIWYG parity, creation flow, clipboard, selection verbs
- Improvedfeat(sketch): in-card WYSIWYG description editing (mockup O5)
- Fixfix(sketch): create ghost previews the fresh card 1:1 — dashed outline only tell
- Fixfix(sketch): a group reaches out for its OWN member dropped near the frame
- Fixfix(sketch): pin the rendered frame on positional commits (WYSIWYG stage 4-lite)
- Improvedrefactor(sketch): drop layout-compat shim — dgmo ships the real exports
- Fixfix(sketch): a moved box carries its children — plus repro integration tests
- Improvedfeat(sketch): root-level make-room — drop position authoritative over groups
- Improvedfeat(sketch): frozen origin by default; emit authored coords verbatim
- Fixfix(ci): compile sketch dev-drawer against published dgmo; refresh completion baselines
- Fixfix(ci): pass Rust workflow — rustfmt drift + quick-xml RUSTSEC advisories
- Improvedci: reduce Actions minutes burn
- Improvedtest: map chart type present in new-file template corpus
- Improvedfeat(web): strip share-link params from URL on load
- Fixfix(editor): rename retired
shadedirective keyword tofill - Improvedfeat(analytics): stamp platform + app_version on events and person
- Fixfix(editor): show inline diagnostics on file switch, stabilize gutter
- Fixfix(layout): flush preview to tree when editor collapsed
- Fixfix(editor): rename clock place completion result to avoid redeclaration
- ImprovedMerge remote-tracking branch 'origin/fix/sequence-message-row-highlight-participant-token'
- Improvedfeat(editor): clock zone autocomplete (city / IANA / UTC offset)
- Improvedfeat(file-tree): rework root folder picker, pinned cues, scroll fades
- Improvedfeat(preview): branch-hover spotlight for version-control
- Fixfix(preview): keep sequence row animation when caret on participant token
- Improvedfeat(settings): expose Markdown Live Preview toggle + default view
- Fixfix(preview): fit tall diagram embeds to width, not an 80vh height cap
- Fixfix(org): emit valid pie DGMO from tag-group generator
- Improvedfeat(preview): accurate export-dimensions readout + hover bounds preview; inline diagnostics
- Fixfix(rail): even 8px desk gutter on all four rail insets
- Improvedchore(licenses): refresh THIRD-PARTY-LICENSES.txt for 0.31.0
- Improvedchore(release): diagrammo-app 0.31.0
- Improvedstyle(editor): collapse the fold column when nothing is foldable
- Improvedstyle(editor): only dress the gutter when it carries a marker
- Improvedfeat(titlebar): shade the chart-type pill in its category color
- Improvedfeat(titlebar): make chart-type a pill with a category color dot
- Improvedfeat(titlebar): show file identity instead of a duplicate chart title
- Fixfix(preview): bind the settings-tab hover zone once controls mount
- ImprovedMerge branch 'menu-bar-buildout' into docs-nav-redesign
- Improvedfeat(menu): build out consolidated native application menu
- Improvedfeat(preview): hide settings tab until the pane's top band is hovered
- Improvedstyle(file-tree): stadium-round the file row to match rail pills
- Improvedrefactor: rename slate-valued nord-* color tokens to slate-*; redraw dialog icons
- Improvedfeat(file-tree): sticky-scroll folder breadcrumbs
- Fixfix(sketch): hover-gate legend edit pencil + anchor it right of the tag pills
- Improvedtest(controls-strip): update for click-to-reveal interaction
- Fixfix(layout): equal bottom gap on the editor/preview cards
- Improvedstyle: sort imports (lint autofix)
- Fixfix(sketch): equalize the chart's side/bottom margins
- Fixfix(sketch): restore constant-size title/legend band
- Fixfix(sketch): uniform margins around the sketch preview
- Fixfix(sketch): uniform margins around the sketch preview
- Improvedrefactor(ui): flatten panel chrome + relocate collapsed-tree folder label
- Improvedfeat(docs): rework docs sidebar nav — tiers, category color, active state
- Fixfix(dev): reload WKWebView on ws reconnect after dgmo rebuild restart
- Improvedfeat(app): docs registry auto-discovery + trigger/synonym search + tile descriptions
- Fixfix(preview): make the magnified-card focus target reachable (org + family)
- Improvedfeat(file-tree): re-center the open file when focus returns to the editor
- Fixfix(vite): alias @diagrammo/dgmo/completion in dev source mode
- Improveddocs(release-notes): trim defensive aside, fix verb agreement
- Improveddocs(release): write pending notes for the 13 commits since v0.30.0
- Improvedrefactor(completion): de-fork the registry onto @diagrammo/dgmo/completion
- Fixfix(editor): hold editor width during a file switch
- Improvedfeat(analytics): register build as a PostHog super property
- Fixfix(share): resolve share-link titles from line 1 (#48)
- Improvedtest: move title assertions to line-1 syntax (#48)
- Fixfix(completion): re-sync registry fork with dgmo (#48, BL-124, BL-121)
- Improvedperf(startup): stop gating window reveal on the restored file read
- Fixfix(editor): resolve editor theme from the app's color scheme
- Improvedfeat(app-rail): give the brand mark its own capsule
- Improvedfeat(file-tree): replace per-category glyphs with a colored dot for .dgmo
- Fixfix(dev): alias dgmo fonts + chart-meta subpaths in source-alias mode
- Improvedperf+reliability: startup lazy-loading, editor hot-path fixes, safer writes
- Fixfix(layout): stop code panel flashing open when switching canvas files (#26)
- Improvedchore: add artboard to cspell words
- Fixfix(sketch): migrate canvas editor to the dgmo fill-* family API
- Improvedchore: refresh third-party licenses
- Improvedfeat(rail): show the brand mark on desktop too
- Fixfix(preview): measure the diagram svg, not export-ignored chrome clones
- Improvedbrand: new Quorum logo — tauri icons, web favicons, in-app mark, export QR logo
- Improvedfeat(chrome): retire the bottom status bar on macOS desktop
- Improvedfeat(rail): persistent pane toggles, lit while their pane is open
- Fixfix(layout): close the desk strip beside the rail when panels collapse
- Improvedfeat(layout): animate file-tree and editor panel collapse/expand
- Improvedstyle(status-bar): drop caret position and the "No problems" all-clear
- Improvedstyle(rail): slimmer rail, breathing room around capsules
- Fixfix(rail): drop the accent bloom gradient
- Improvedfeat(chrome): title bar shows diagram title, not breadcrumb
- Improvedfeat(chrome): breadcrumb carries file name when the tree is collapsed
- Improvedfeat(chrome): title-bar breadcrumb + top-left alignment polish
- Improvedfeat(rail): group rail icons into floating capsules
- Improvedfeat(preview): flatten preview surface, dock controls tab flush to pane edge
- Improvedfeat(export): width presets + modal hygiene + rail active state
- Improvedfeat(chrome): move export-size readout into the status bar
- Fixfix(export): restore data-chart export target + html2canvas-safe desk color
- Fixfix(chrome): don't height-clamp container-sized charts (artboard ratchet)
- Improvedchore(release): bump version to 0.30.0
- Improvedfeat(chrome): artboard content-fit, Ln/Col, type + surface polish (BL-123 round 2)
- Fixfix(chrome): allow start-dragging for the overlay title-bar strip
- Improvedfeat(chrome): overlay title bar — traffic lights in the desk (BL-123 phase 5)
- Fixfix(dev): resolve dgmo dev alias through packages/dgmo symlink realpath
- Improvedfeat(chrome): palette-reactive rail bloom + desk-tone FOUC guard (BL-123 phase 4)
- Improvedfeat(chrome): desk-level status bar absorbs diagnostics (BL-123 phase 3)
- Improvedfeat(chrome): depth system + preview artboard (BL-123 phases 1-2)
- Improvedfeat(editor): highlight month-name date literals (Jan 3, 3 January) (#25)
- Improvedchore(licenses): regenerate for dgmo 0.51.0 dep tree
- Fixfix(preview): resolve knip + cspell release-preflight blockers
- Improvedchore(release): v0.29.2
- Fixfix(preview): tick clock cards on maps so the seconds advance
- Improvedfeat(docs): calendar icon for the Writing Dates guide in the sidebar
- Fixfix(docs): resolve site-absolute internal links in the in-app viewer
- Improvedchore(release): v0.29.1
- Fixfix(dev): pre-bundle rehype-raw so the docs window loads; log fatal mounts
- Improvedrefactor(preview): remove boxes-and-lines canvas edit mode
- Improveddocs(app): surface the Writing Dates guide in the in-app docs viewer (BL-121)
- Improvedfeat(editor): gazetteer autocomplete for clock place anchors
- Improvedfeat(file-tree): auto-scroll + Escape-cancel during drag
- Fixfix(sketch): recolor survives reparse + later edits
- Fixfix(sketch): clamp inline legend editor to the preview pane
- Improvedchore(licenses): regenerate THIRD-PARTY-LICENSES for 0.29.0
- Improvedfeat(sketch): commit legend-editor module + fix chart-type count
- Improvedchore(release): diagrammo-app 0.29.0
- Improvedfeat(clock): wire world-clock chart type into the app
- Improvedfeat(editor): complete countdown display slots (units/round/fields)
- Improvedfeat(editor): contextual completion + highlighting for countdown
everylines - Fixfix(sketch): faithful canvas drop placement + edge/group editing
- Fixfix(editor): only autocomplete trailing colors after user types
- Improvedfeat(countdown): new-file dialog thumbnail (clock icon)
- Improvedfeat(countdown): register in-app docs page
- Fixfix(completion): sync app editor registry with dgmo (6 missing types + solid-fill)
- Improvedfeat(goal): editor autocomplete for goal directives
- Fixfix(docs): scale embedded diagrams to fit the preview card
- Fixfix(docs): derive in-app doc categories from the canonical registry
- Improvedfeat(goal): new-file picker, thumbnail, in-app docs page
- Improvedfeat(bracket): preview + new-file/docs/thumbnail wiring; dev: dgmo source alias
- Improvedfeat(preview): body chart interactivity + top-aligned figure
- Improvedfeat(sketch-canvas): editable legend — manage tag groups/values in place (part 2)
- Improvedfeat(sketch): tag group/value CRUD mutations (editable legend, part 1)
- Improvedrefine(sketch-canvas): connect preview always renders as the real line
- Improvedfeat(sketch-canvas): faithful connect preview + line deletion
- Improvedfeat(sketch-canvas): inline new-shape name field styled as the shape label
- Fixfix(sketch-canvas): position a node inside a group — commit drag in scene space
- Fixfix(sketch-canvas): hide drop ghost when the drop is illegal
- Fixfix(sketch-canvas): group only reaches out when the drop there is legal
- Fixfix(sketch-canvas): auto-align never shoves — no whole-diagram reflow on a move
- Fixfix(sketch-canvas): drop into an expanded group actually joins it
- Fixfix(sketch-canvas): unify group join margin so a reached-out drop actually joins
- Improvedtune(sketch-canvas): group reaches out sooner and wraps the shape with room
- Fixfix(sketch-canvas): group reaches out to the dragged node instead of slipping
- Improvedfeat(sketch-canvas): live group expansion while dragging a node in/out
- Improvedtest(preview): lock in focus survives active-tag-group switch (org + family)
- Improvedfeat(sketch-canvas): keep crossing-hops on the visible line during drag
- Fixfix(sketch-canvas): double-click near an edge/label edits it, not a new node
- Improvedfeat(sketch-canvas): block dropping a node onto a non-incident line
- Improvedfeat(sketch-canvas): ghost-footprint drop preview, always-fit camera, shared edge routing
- Improvedfeat(body): new-file template, thumbnail, category, docs page
- Improvedchore(licenses): regenerate THIRD-PARTY-LICENSES for 0.28.0
- ImprovedRelease v0.28.0
- Improvedfeat(preview): wire body chart type + sketch preview refinements
- Improvedfeat(new-file): add "Life" category (family); Dna icon, red accent
- Improvedfeat(family): wire up the family chart type in the app
- Improvedchore(licenses): automate two-ecosystem THIRD-PARTY-LICENSES + release gate
- Improvedfeat(settings): reorganize Settings drawer into labelled domain sections
- Improvedfeat(org-preview): exit focus on empty-canvas click; keep tag switching in focus
- Fixfix(family-preview): legend hover-dim honors default value + fades lines
- Improvedfeat(org-preview): magnify-on-hover navigation for zoomed-out charts
- Fixfix(family-preview): drop the "Focused on …" pill
- Improvedfeat(family-preview): click-to-pin the magnified card
- Fixfix(sketch): save inline edits on focus loss, not just Enter
- Improvedfeat(sketch): auto-align connected shapes on move + fold/unfold
- Improvedfeat(family-preview): magnify-on-hover navigation for zoomed-out trees
- Fixfix(sketch-canvas): endpoint arrows follow the curve tangent at the port
- Improvedfeat(sketch-canvas): line-edit UX — fade others, oriented endpoint arrows
- Fixfix(sketch-canvas): live edge preview locks to the aligned in-group port
- Fixfix(sketch-canvas): compensate camera for layout origin re-normalization
- Improvedfeat(sketch-canvas): drag an expanded group from its body (grab-anywhere)
- Fixfix(sketch-canvas): description shows immediately on save; matches label color
- Improvedfeat(sketch-canvas): inline markdown description editing
- Fixfix(sketch-canvas): double-click a line edits its label instead of creating a shape
- Improvedfeat(sketch-canvas): inline edge-label editing
- Improvedfeat(sketch-canvas): reachable inline rename, stable camera, legend hover, guide fixes
- Fixfix(sketch): offset equidistant dim-bars off-center to clear connectors
- Improvedfeat(sketch): dim other shapes when one is selected (focus)
- Fixfix(sketch): scene-native Descriptions/Solid Fill toggles; add Solid Fill control
- Improvedfeat(sketch): controls-shelf "Descriptions" toggle (hide card rows)
- Improvedfeat(sketch): drop cloud from morph picker; test pitch reads geometry constants
- Improvedfeat(sketch): edge-alignment lines + equidistant dimension bars
- Improvedfeat(sketch): alignment guides (smart spines) while dragging a shape
- Improvedfeat(sketch): deselect a shape after a move so its pickers don't reappear
- Improvedfeat(sketch): hide selection pickers while moving; drop redundant group name
- Fixfix(sketch): redraw all edges each drag-move so released shapes' lines snap home
- Fixfix(analytics): bake DGMO_POSTHOG_KEY into web build
- Fixfix(sketch): make-room-nudged shapes carry their lines during a drag
- Improvedfeat(sketch): drag/destroy/join groups — band-drag, × affordance, proximity join
- Improvedfeat(sketch): canvas UX polish — selection popovers, flow-color, code-reveal
- Improvedfeat(sketch): dot snap-grid canvas background (mockup hero #dots)
- Fixfix(sketch): tag chips BELOW shape, form controls above (per mockup v11)
- Improvedfeat(sketch): shape morph selector = icons in 2 rows, anchored right above
- Improvedfeat(sketch): fit diagram to canvas (scale down when it overflows)
- Fixfix(preview): empty .dgmo shows an empty state, not perpetual 'Loading…'
- Fixfix(sketch): ref-based render to cut re-render churn
- Fixfix(sketch): stop 'Loading…' — remove focus-loop in canvas mount effect
- Improvedfeat(sketch): app shell entry points (BL-115 Task 16)
- Improvedtest(sketch): 100-shape perf budget + manual WebKit protocol (BL-115 Task 13)
- Improvedfeat(sketch): boxes — marquee group offer + membership drag (BL-115 Task 12)
- Improvedfeat(sketch): selection popovers + legend-as-tag-editor core (BL-115 Task 11)
- Improvedfeat(sketch): core canvas gestures (BL-115 Task 10)
- Improvedfeat(sketch): scene graph + canonical emit + annotated edit channel (BL-115 Task 9)
- Improvedfeat(sketch): canvas-first preview arm + hidden code pane (BL-115 Task 8)
- Improvedtest: mindmap moved to business family in canonical registry
- Fixfix(export): crop pane-sized preview captures to content dimensions
- Improvedfeat(completion): funnel no-percent + refreshed flag descriptions
- Improveddocs: move mindmap guide entry to business group
- Improvedchore(release): bump app to 0.27.0
- Fixfix(sequence): route pinned-header clicks through diagram adapter
- Improvedchore(cspell): allow macrotask, reentrantly, strobing, spottable, elems
- Improvedchore(release): bump app to 0.26.0
- Improvedtest(e2e): add enumerated-lift (treemap same-tag) hover case
- Improvedtest(e2e): add line series-focus hover case
- Improvedtest(e2e): add structural (kanban column-focus) hover case
- Improvedtest(e2e): behavioral proof for dgmo baked-CSS hover (chromium)
- ImprovedMerge fix/gantt-preview-fit-to-pane
- Improvedfeat(view-state): timeline swimlane write-through to source
- Improvedfeat(view-state): gantt swimlane write-through to source
- Improvedfeat(view-state): kanban swimlane write-through to source
- Improvedfeat(view-state): mindmap color-by-depth write-through to source
- Improvedfeat(view-state): ER semantic-colors write-through to source
- Improvedfeat(view-state): state group collapse write-through to source
- Improvedfeat(view-state): kanban column collapse write-through to source
- Improvedfeat(view-state): gantt collapse write-through — group collapse to source
- Improvedfeat(view-state): ha write-through for sitemap — mirrors org (BL-111)
- Improvedfeat(view-state): ha write-through — org hidden attributes to source
- Improvedfeat(view-state): an write-through — PERT analysis toggle to source
- Improvedfeat(view-state): io write-through — infra instance overrides to source
- Improvedfeat(view-state): active-tag write-back for gantt + timeline
- Improvedfeat(view-state): active-tag write-back for boxes-and-lines
- Improvedfeat(view-state): active-tag write-back for kanban/sitemap/journey/org/c4
- Improvedfeat(view-state): active-tag write-back for mindmap/infra/sequence
- Improvedtest(view-state): round-trip the share baker through the parsers
- Improvedfeat(view-state): bake source-spellable share vs= keys into the DSL
- Improvedrefactor(view-state): delete the retired view-state cache + its schemas and tests
- Improvedrefactor(view-state): strip dead cache effects from remaining previews
- Improvedrefactor(view-state): strip dead cache effects from er/c4/org/sitemap/infra previews
- Improvedrefactor(view-state): strip dead cache effects from class/state/flowchart previews
- Improvedrefactor(view-state): strip dead cache effects from mindmap + sequence previews
- Improvedrefactor(view-state): stop share vs= from seeding the retired cache
- Improvedfeat(view-state): sequence + infra collapse write-through (source-or-nothing)
- Improvedrefactor(view-state): retire the ~/.diagrammo/view-state disk cache (source-or-nothing)
- Improvedfeat(mindmap): automatic collapse write-through — source is the single truth
- Improvedfeat(editor): cursor-symbol cross-highlight (code ↔ diagram)
- Improvedfeat(preview): radial sunburst resize + legend/arc hover spotlight
- Improvedfeat(preview): diagram→editor click-to-source for radial sunburst
- Improvedfeat(preview): render treemap radial (sunburst) mode
- Improvedchore(app): reorder chart-category maps to canonical order
- Fixfix(map): keep endpoint POIs lit on legend tag-value hover
- Improvedfeat(docs): global Cmd+K search across pages, chart types, and variants
- Fixfix(app): auto-recover docs window from transient chunk-load failure
- Improvedfeat(new-file): placement-gate variant tiles + qualify labels with base type
- Improvedfeat(new-file): derive tiles + search from the canonical registry (#20)
- Improvedfeat(new-file): search across all chart types + wire category guard
- Improvedrefac(editor): remove
chordchart type (#29) - Improvedrefactor(categories): derive chart category from canonical registry
- Fixfix(categories): correct chart-type category drift
- Improveddocs: drop chord doc entry, fold into Arc / Chord
- Fixfix(vite): drop stale optimizeDeps entries for removed deps
- Improvedfeat(settings): live palette hover-preview
- Fixfix(editor): suppress diagnostic message at both selection ends
- Fixfix(editor): allow text selection on diagnostic lines
- Improvedchore: add AGENTS.md symlink to CLAUDE.md
- Improvedtest: update parser tests for dgmo deprecated-syntax removal (#28)
- Improvedrefactor(charts): drop removed chart-type aliases + RACI variant directives (#28)
- Improvedtest: align chart parser tests with consolidated bar syntax (#23-27)
- Improvedfeat: de-surface consolidated chart types (decisions #23-27)
- ImprovedMerge heat/size/width channel rename (decision #20)
- Improvedchore: remove KaTeX math parsing from markdown handling
- Improvedfeat(app)!: remove ECharts — D3 is the only chart engine
- Fixfix(preview): D3 chart host fills pane (no padding/scroll); engine re-renders on resize
- Improvedfeat(preview): D3 chart engine as a Settings toggle, default on
- Improvedfeat(preview): opt-in hand-built D3 data-chart engine (DGMO_D3_CHARTS)
- Improvededitor/preview: heat/size/width channel rename (decision #20)
- Improvedfeat(event-line): legend-mute view-state + re-fit on renderer rerender
- Improvedfeat(event-line): sync editor cursor to diagram focus
- Improvedfeat(completion): event-line directive autocomplete (no-scale, side, no-box, no-legend)
- Fixfix(gantt): scale tall gantt preview to fit the pane instead of clipping
- ImprovedRelease v0.25.1 — dgmo 0.41.0 (event-line indentation eras) + event-line app wiring
- Fixfix(event-line/block): app fallout from dgmo 0.41.0 event-line syntax
- Improvedfeat(event-line): full app wiring — template, category, in-app docs, thumbnail
- ImprovedRelease v0.25.0 — event-line chart type + collapsible eras
- Improvedfeat(preview): interactive event-line era collapse + fit-to-canvas
- Improvedfeat(block): editor completion + in-app docs + thumbnail
- Improvedmerge: block editor-sync + legend/region hover (feat/block-chart-type)
- Improvedfeat(block): editor↔diagram sync + legend/region hover in BlockPreview
- Improvedchore: drop stray _shot.mjs screenshot helper (committed by accident)
- ImprovedMerge branch 'feat/version-control-chart-type'
- Improvedfeat(block): wire block diagram into the desktop preview
- Improvedfeat(version-control): integrate the git/VCS chart type (BL-108)
- ImprovedMerge branch 'feat/swimlane-chart-type'
- Improvedfeat(preview): route event-line to a dedicated EventLinePreview
- Improvedfeat(swimlane): editor autocomplete
- Improvedfeat(swimlane): surface chart type across the app
- Improvedfeat(preview): wire swimlane chart type into the preview dispatcher
- Improvedfeat(treemap): hover highlight, editor↔diagram sync, header-only drill
- Fixfix(treemap): drilling a collapsed block opens that block, not its parent
- Improvedchore(treemap): American spelling in legendGradientScrub (cspell)
- ImprovedRelease v0.24.0 — treemap chart type
- Improvedfeat(treemap): full app integration + legend gradient scrub + drill polish
- Improvedfeat(treemap): remove the hover tooltip
- Improvedfeat(treemap): drop the breadcrumb; click-outside to climb out + group-label title
- Improvedfeat(treemap): drive color mode from the legend pills, drop overlay buttons
- Improvedfeat(treemap): legend hover-dim via the standard data-legend-entry contract
- Fixfix(treemap): tooltip heat for a branch uses descendant-mean to match its fill
- Improvedfeat(preview): treemap interactivity — drill, breadcrumb, tooltip, color-mode switch
- ImprovedRelease v0.23.0
- Improvedstyle(map): edge hover shows just the value, not the label
- Improvedstyle(map): soften edge hover chip to a faint borderless wash
- Improvedfeat(map): replace native edge tooltip with an instant styled hover chip
- Fixfix(preview): legend hover-dim survives resize re-renders
- Fixfix(canvas): tag-apply on an edge-only node edits in place, no duplicate decl
- Improvedchore: make check:all green — cSpell dictionary + dompurify security bump
- Improvedchore: remove knip dead-code (unused dep + 4 unused exports)
- ImprovedRelease v0.22.0
- Fixfix(editor): reset undo history on file/dive swap so vim undo can't cross files
- Fixfix(map): darken region fill on hover instead of thickening its border
- Fixfix(boxes-and-lines): click a collapsed neighbour group to drill into it while focused
- Improvedseo(web): noindex the web editor (online.diagrammo.app)
- Improvedtest(completion): regenerate parity baseline for color-name completions
- Improvedperf(preview): debounce live-preview parse during typing bursts
- Improvedfeat(preview): use a determinate progress bar for boxes layout search
- Improvedfeat(preview): layout-search throbber for dense boxes-and-lines graphs
- Improvedfeat(boxes-and-lines): wire focus mode into the preview
- Fixfix(web): add real favicon.ico for online.diagrammo.app
- Improvedchore(release): diagrammo-app 0.21.0 — markdown ![[foo.dgmo]] embeds, file-type icons, canvas editor (experimental)
- Improvedtest(palettes): adapt series-color order to dgmo 0.31.0 unified cycle
- Fixfix(canvas): exit paint mode on a single non-shape press
- Fixfix(md-preview): center an embedded diagram narrower than the pane
- Improvedfeat(md-preview): render ![[foo.dgmo]] embeds in rendered preview + PDF (BL-100 Surface 2)
- Improvedfeat(examples): write docs/*.dgmo into the Documentation gallery folder
- Improvedfeat(md-preview): render
![[foo.dgmo]]embeds in the live editor (BL-100 Surface 1) - Improvedfeat(canvas legend): collapse-to-switch groups + colored paint cursor & pulse
- Fixfix(md-preview): size embedded diagrams to the space they need
- Fixfix(canvas): advance add-value swatch column locally across a chain
- Fixfix(canvas): tag colors cycle red/green/blue; default-accept lets engine pick
- Improvedfeat(canvas): move "Edit tags" into the controls pull-tab; drop the legend gear
- Improvedfeat(file-tree): per-file-type Lucide icons in the folder pane
- Fixfix(canvas): hide dgmo's real legend in canvas mode (missing class space)
- Improvedfeat(canvas): collapse a group via double-click; rename via select+Enter
- ImprovedRevert "feat(canvas): collapse/expand chevron on groups (canvas mode)"
- Improvedfeat(canvas): collapse/expand chevron on groups (canvas mode)
- Improvedfeat(canvas): bigger, more forgiving group drop zone (margin 24→48)
- Improvedfeat(canvas): grow a group's container while a box hovers it (drop affordance)
- Improvedfeat(canvas): on-canvas visual-group editing (select/⌘G/reparent/move/rename)
- Improvedfeat(file-tree): multi-select files for batch move and delete
- Improvedfeat(canvas): group-edits engine (structural [Group] source edits)
- Fixfix(canvas): edge labels track the line while a box is dragged
- Improvedfeat(canvas): on-canvas tag-group CRUD via a bi-modal legend
- Fixfix(preview): hide the original edge while reconnecting an endpoint
- Improvedfeat(preview): reconnect edge endpoints by dragging handles
- Improvedfeat(preview): edge-zone drag to create arrows (no modifier)
- Improvedfeat(preview): drag-to-connect with live target highlight + final-look preview
- Improvedfeat(preview): Ctrl-click a box to begin click-to-connect
- Improvedfeat(preview): Ctrl-click empty canvas to create a box
- Fixfix(preview): rebuild canvas position cache from the rendered layout each commit
- Improvedfeat(preview): move canvas Reset view / Re-flow all into the shared controls drawer
- Improvedfeat(preview): nicer in-place box naming/renaming editor
- Improvedfeat(preview): disable canvas wheel-zoom for now
- Improvedfeat(preview): drag-canvas-to-marquee + live edge re-routing during box moves
- Fixfix(preview): zoom-robust canvas dragging + reliable deselect
- Fixfix(preview): palette-drive all canvas chrome + WebKit-safe selection indicator
- Fixfix(preview): canvas mode owns the keyboard — auto-collapse editor, stop focus theft
- Improvedfeat(preview): canvas edit mode — relabel, edge editing, multi-select, alignment guides
- Fixfix(preview): move Canvas hint bar to the bottom so it clears the diagram title
- Improvedfeat(preview): experimental mouse-driven Canvas edit mode for boxes-and-lines (spike)
- Improvedchore(release): diagrammo-app 0.20.0
- Improvedfeat(macos): open markdown files from CLI/Finder via .md association
- Improvedchore(1.0): migrate off deprecated @diagrammo/dgmo/internal alias + reconcile pert fixture with language freeze
- Improvedfeat(editor): re-derive completion-coverage parity on the current engine
- Improvedperf(preview): paint the editor before rendering the diagram
- Fixfix(map): hover expands an abbreviated region label in place
- Improvedchore: bump diagrammo-app to 0.19.0
- Improvedfeat(editor): markdown live-preview table-align + entry/exit navigation
- ImprovedMerge pull request #17 from diagrammo/arch/110-5-legend-interactivity
- Improvedrefactor(preview): legend hover-dimming owned once (110.5)
- Improvedrefactor(export): per-type view-state encoders behind a registry (110.4)
- ImprovedMerge branch 'main' into arch/109-3-document-session
- Improvedfeat(documentSession): wire useFileContent + useCodeMirror onto the session (109.3 Task 3)
- Improvedfeat(documentSession): lifecycle module owning open/switch/edit/flush (109.3 Task 2)
- Improvedtest(autosave): file-switch cross-write regression net (109.3 safety net)
- Fixfix(preview): narrow ParsedExtendedChart union in EChartsPreview (dgmo 109.2a)
- Fixfix(preview): narrow to ParsedVisualization discriminated union (dgmo 109.2)
- Improvedfeat(editor): complete relocation repoints + cross-surface guard (Phase 3)
- Improvedfeat(editor): rank defined symbols above keywords + annotate (Phase 2, Task 11)
- Improvedfeat(editor): undefined-id diagnostics + quick-fix (Phase 2, Task 13)
- Improvedfeat(editor): tag-value validation diagnostics (Phase 2, Task 12)
- Improvedfeat(editor): relocate symbol extractors + dispatcher into the app (Phase 1b)
- Improvedfeat(editor): relocate completion registries into the app (Phase 1a)
- Improvedfeat(editor): context-aware completion substrate (Phase 0)
- Fixfix(editor): map tag-value + entity-ref completion (#8)
- Improvedfeat(editor): make markdown dgmo fences cursor-editable (reveal-on-caret)
- Improvedfeat(editor): highlight colon attribute keys as propertyName in the desktop editor
- Fixfix(editor): pin scroll when clicking a math/table block to edit
- Fixfix(editor): block-widget click no longer scrolls md preview to top
- Improvedtest(e2e): paste markdown in live-preview spec instead of typing
- Improvedfeat(editor): editable block math in markdown live preview
- Improvedfeat(gantt): surface controls in ControlsStrip instead of inline cog
- Improvedfeat(editor): render KaTeX math in the markdown live preview
- Improvedfeat(pdf): keep a chart on the same page as the prose that introduces it
- Fixfix(preview): robust table cursor entry + in-table row motion
- Improvedfeat(preview): make markdown live-preview tables editable
- Fixfix(pdf): give KaTeX blocks room so html2canvas stops clipping the math
- Fixfix(pdf): convert em-relative dy/dx to px so legend text aligns
- Fixfix(pdf): normalize numeric font-weights so legend pills stay sans
- Fixfix(pdf): rasterize ER diagrams (svg2pdf mangles pk/fk key icons)
- Fixfix(pdf): rasterize sequence diagrams (svg2pdf drops message labels)
- Improvedtest(pdf): update svgStringToPngBlob error-message assertion
- Fixfix(pdf): route data-chart types to the ECharts renderer in PDF export
- Fixfix(preview): fit embedded dgmo diagrams to the markdown pane width
- Fixfix(pdf): rasterize gantt charts in PDF export (svg2pdf mangles labels)
- Improvedperf(pdf): encode map rasters as JPEG, not PNG
- Improvedfeat(editor): remove right-click "view source" toggle for markdown
- Improvedperf(pdf): Tier 4 — render markdown-PDF prose as native selectable text
- Improvedperf(pdf): Tier 2 — embed markdown-PDF diagrams as true vector via svg2pdf
- Improvedperf(pdf): Tier 1 — JPEG prose + stream compression for markdown PDF
- Improvedfeat(export): hide non-actionable options in the export dialog
- Fixfix(export): single-pane markdown PDF — resolve element, strip oklch, fix width
- Fixfix(editor): live-preview prose font, full-width wrapping, paragraph reflow
- Improvedperf(export): single-pass prose capture + progress indication for Markdown→PDF
- Improvedfeat(editor): Obsidian-style Live Preview for markdown editing
- Fixfix(export): cap diagram height in Markdown→PDF so tall diagrams don't strand a page
- Improvedfeat(export): block-aware Markdown→PDF with full chart-type rendering
- Fixfix(file-tree): pane fits content via flex layout, not setLayout()
- Improvedfeat(paste): smarter title extraction for pasted md + dgmo filenames
- Improvedfeat(new-file): detect Markdown and HTML on clipboard → .md / .html
- Fixfix(examples): stop generating empty example gallery folders
- Improvedchore(release): diagrammo-app 0.18.0 — search layout default, dgmo 0.28.0
- Improvedfeat: make the search layout the default for boxes-and-lines
- Improvedfeat(preview): experimental boxes-and-lines layout engine toggle
- Improvedchore(tauri): cargo update to align plugin crate versions for 0.17.0
- ImprovedRelease v0.17.0
- Improvedtest: track dgmo 0.27 changes — sequence position: colon + slate default bg
- Improvedrefactor(file-tree): remove the cleanup-baks feature
- Improvedperf(file-tree): coalesce tree refreshes + pure-JS path join; auto-reload transient module-load errors
- Fixfix(map): order inspect card coords → city → state → country
- Fixfix(file-tree): re-measure pane width once Inter loads
- Fixfix(map): keep region-hover label clear of the top-centre legend
- Improvedtest(map): cover focus→endpoint co-highlight and legend-hover line spotlight
- Improvedfeat(map): subtle hover highlight on regions
- Improvedrevert(palettes): drop Facet — back to 7 curated palettes
- Improvedtest(palettes): track Facet, repoint dropped-palette refs in app
- Improvedrevert(preview): drop sitemap note collapse wiring
- Improvedrevert(preview): drop org note collapse wiring
- Improvedtest(preview): integration tests for the note-collapse hooks
- Improvedrefactor(preview): move flowchart/state note collapse onto shared hooks
- Improvedfeat(preview): wire note collapse-to-badge for class/er/org/sitemap/boxes
- Fixfix(editor): prevent file-switch from overwriting one file with another's content
- Improvedfeat(preview): wire data-note-toggle — collapse/expand graph notes
- Improvedfeat(map): wire airport completion into the editor
- Fixfix(preview): de-dupe map hover label vs choropleth value stack; diverging-ramp preview
- Improvedfeat(file-tree): clear recent files from the working set
- Improvedrefactor(recovery): simplify recovery banner to informational-only
- Improvedfeat: adopt the new bulb logo across the app (Epic 108-1)
- Improvedfeat: finish app Slate chrome — syntax theme + export fallbacks + thumbnail mark (Epic 108-7)
- Improvedfeat: app UI chrome → Slate (globals.css defaults + FOUC + brand hex) (Epic 108-7)
- Improvedfeat: default colorScheme nord → slate (Epic 108 rebrand)
- Improvedtest: drop removed palettes from app tests
- Fixfix(editor): source structural keywords from dgmo; drop raci 'tag' + cycle 'no-descriptions'
- Fixfix(settings): capture mount time once so render stays pure
- Improvedchore(deps): update dependencies + move d3-scale to devDeps
- Improvedchore(deps): bump dependencies and drop unused packages
- Improvedrefactor(file-tree): drop "Pin to Working Set" from the file-tree context menu
- Fixfix(file-tree): keep working set in sync on move/rename/delete
- Improvedfeat(map): reveal tagged POIs buried in a bunch on legend hover
- Improvedfeat(map): "Expand bunched POIs" control + persisted preference
- Improvedfeat(file-tree): let users remove folders from recent-folders dropdown
- Fixfix(map-inspect): highlight US country when inspecting on a global map
- Fixfix(sequence): handle keyboard toggle for collapsible groups
- Improvedfeat(pert): drop Activity Type legend from preview
- Improvedfeat(map-inspect): draw leader line from crosshair to nearest-city POI
- Fixfix(cspell): add lightbox identifiers (xhref, focusables, noninteractive)
- Improvedchore(release): diagrammo-app 0.16.0
- Improvedfeat(docs): full-screen lightbox for embedded diagrams (#5)
- Improvedci: ignore @lezer/common + @lezer/lr in depcheck (peer-dep providers)
- Improvedci: add hygiene job (dead code, duplication, deps) on push/PR
- Improvedchore: add proprietary LICENSE + license field
- Improvedchore(lint): add map-domain + British-spelling words to cspell
- ImprovedRelease v0.15.0
- Fixfix(preview): scope controls store per-preview instance
- Improvedfeat(map): WYSIWYG map export + narrower world render
- Fixfix(preview): markdown fences fit diagram content height
- Improvedfeat(preview): boxes-and-lines value gradient scrub + value-default
- Improvedfeat(map): redesign Inspect overlay — region outline, crosshair, slim city dot
- Fixfix(map): use renderer centroid for region hover label
- Improvedstyle(controls): round drawer corner + match top-chrome bg
- Fixfix(tauri): drop needless return in non-macOS install_cli (clippy)
- Improvedstyle(tauri): cargo fmt lib.rs
- Fixfix(map): eliminate horizontal jigger when opening a map
- Improvedperf(map): faster legend-hover highlight on heavy maps
- Fixfix(map): don't pop a hover label over a region already labelled statically
- Fixfix(preview): bottom border notched around the tab
- Fixfix(preview): drop body bottom-border so it never cuts off the tab
- Fixfix(preview): retract keeps the handle attached (no fade, clip-slide)
- Improvedfeat(preview): pull-handle at the bottom of the settings panel
- Improvedfeat(preview): hover-pull settings panel, grip handle as its top
- Fixfix(file-tree): stop the click landing on the previous file
- Improvedfeat(recovery): make the Tier-2 crash-loop dialog self-healing
- Fixfix(preview): pin map controls tab to the viewport, not the scrolling content
- Fixfix(preview): pin controls tab to the pane top uniformly across charts
- Fixfix(preview): thinner grip bars on the controls tab
- Fixfix(preview): uniform tab width + two-bar grip handle
- Fixfix(preview): controls tab stays flush with the top chrome
- Improvedfeat(preview): ControlsStrip becomes a top-edge tab + vertical drawer
- Improvedfeat(preview): unified ControlsStrip overlay replaces per-chart cogs
- Improvedtest(palettes): track Atlas/Slate, drop Bold
- Fixfix(dev): self-heal the window when the Vite dev server dies/restarts
- Improvedfeat(map): reverse cursor->diagram sync (spotlight by dimming)
- Fixfix(preview): pyramid/ring no longer load faded until clicked
- Improvedbuild(app): validate embedded dgmo before build
- Fixfix(docs): render map fences in embedded docs viewer
- Improvedfeat(preview): cross-highlight legend entry on data-element hover
- Fixfix(file-tree): single click always opens the clicked file
- Fixfix(docs): don't leave a silent white window when the root chunk fails
- Improvedfeat(map): hide Inspect affordances until card is pinned
- Improvedfeat(map): spiderfy coincident POI stacks — hover to peek, click to pin
- Improvedfeat(map): reveal hover-only POI labels on dot hover
- Improvedfeat(map): bundle water-bodies.json for context-labels (browser DI)
- Fixfix(export): re-render for export without requiring a saved file
- Fixfix(export): content-aware canvas for in-app map exports
- ImprovedRevert "feat(map): surface route warnings to the editor lint channel"
- Improvedfeat(map): surface route warnings to the editor lint channel
- Improvedfeat(map): follow dgmo directive prune — locale autocomplete, drop basemapStyle
- Fixfix(map): anchor gear-pill below subtitle, not title
- Improvedfeat(map): live cursor-tracking inspector with nearest-city POI dot
- Improvedfeat(map): coordinate & location inspector (cog tools)
- Fixfix(map): bundle mountain-ranges.json so
reliefrenders in-app - Fixfix(export): inject bundled MapData so map export isn't empty
- Fixfix(map): cap world-view stretch (MIN_ASPECT 1.4 → 2.2)
- Improvedchore: bump diagrammo-app to 0.14.0 (map: value: keyword + route redesign via dgmo 0.21, muted-basemap preview)
- Improvedfeat(map-preview): extend legend-hover to POI markers; migrate to dgmo 0.21 data-value
- Improvedfeat(map-preview): track muted basemap for letterbox + legend-hover dim
- Fixfix(map): only the global view scrolls/stretches horizontally
- Fixfix(dev): coalesce dgmo reload touches + gate restart on complete dist
- Improveddocs(map): add Map Diagram to in-app docs registry
- Improvedchore(release): unblock preflight for 0.13.0
- Improvedchore(release): bump to 0.13.0
- Improvedfeat(map): surface map in the new-file dialog
- Improvedfeat(map): min-aspect scroll, POI label-hover spotlight, ISO scope completion
- Improvedfeat(map): value swatch on gradient-legend scrub
- Fixfix(map): dim legend-hover regions to land, not transparency
- Improvedfeat(map): highlight regions on legend hover + gradient scrub
- Improvedfeat(map): click the legend to flip the colouring dimension (score ↔ tag)
- Improvedfeat(map): inject crisp 10m NA land + lakes assets
- Fixfix(map): bundle rivers.json into the app's injected MapData
- Fixfix(preview): bundle lakes.json so the app draws the Great Lakes as water
- Fixfix(preview): map wrapper background matches the water color
- Improvedfeat(dev): restart Vite when dgmo rebuilds, via a watched sentinel
- Improvedfeat: render + autocomplete the map chart type (#2)
- Fixfix(recovery): stop silent workspace loss from false crash-loop safe mode
- Fixfix(file-tree): force folder mode when opening a folder explicitly
- Improvedfeat(preview): show combined total on stacked-bar hover
- Improvedtest(timeline): fix stale arrow-duration filler in marker tests
- Improvedfeat(preview): unified back-stack + app-chrome breadcrumb for fence dive (Phase 2)
- Improvedtest: update stale expectations for current dgmo behavior
- Fixfix(preview): wrap long ECharts chart legends onto multiple rows
- Improvedfeat(preview): dive into markdown dgmo fences (Phase 1)
- Improvedfeat(autosave): drop per-file .dgmo.bak, add file-tree cleanup action
- Improvedfeat(file-tree): sniff binaries, hide unopenable files, collapse editor for non-editable
- Improvedfeat(preview): follow file + Obsidian wiki links in markdown preview
- Improvedfeat(preview): reveal bar-stacked value labels on series hover
- Improvedfeat(pert-preview): seed Analysis toggle from no-analysis directive
- Improvedrelease.sh: snapshot release notes JSON to site repo at end
- Improvedchore(release): bump diagrammo-app to 0.12.1
- Fixfix(cli): drop silent osascript admin prompt from terminal opener install
- ImprovedRelease v0.12.0
- Improvedchore(docs): remove orphaned src/docs/content/ — registry uses packages/content
- Improvedfeat(cli): drop install dialog, add native Help menu + Terminal Opener docs
- ImprovedRelease v0.11.0
- Fixfix(editor): skip label zone styling for offset/lag arrow patterns
- Improveddocs(gantt): rewrite in-app guide for positional duration + arrow graph syntax
- Improvedfeat(docs): add markdown syntax page to docs panel
- Improvedfeat: auto-install diagrammo CLI opener on first app launch
- Improvedfeat: switch editor code font to JetBrains Mono
- Improvedfeat(diagnostics): dedup inline block widgets by diagnostic code
- Fixfix: cap sticky header height to prevent first message overlap
- ImprovedRevert "fix: cap sticky header height to prevent first message overlap"
- Fixfix: cap sticky header height to prevent first message overlap
- Improvedfeat: app resiliency hardening — backups, retry, recovery UX, error catching
- Improvedfeat(preview): pass ScaleContext to simple chart builder
- Improvedfeat(preview): pass ScaleContext to ECharts for container-aware scaling
- Fixfix: prevent elastic overscroll on sequence preview
- Fixfix(autocomplete): offer trailing color names on tag value lines
- Improvedfeat(editor): semantic highlighting — trailing color + context-aware keyword dimming (P5)
- Improvedfeat(autocomplete): structural keywords, entity triggers, metadata value + trailing color completion
- Fixfix: reset inline-code padding inside pre blocks in markdown preview
- Fixfix: dev script race condition, dead showAlert code, IIFE error handling
- Improvedperf: eliminate theme flash and reduce startup latency
- Improvedfeat(autocomplete): §1.4 same-line metadata key suggestions
- Improvedui(rail): swap star→folder when in working set mode
- Improvedvenn: migrate to
Name as <alias> colorform - Improvedchore(ts): widen sequence helpers to readonly SequenceElement[]
- Improvedchore(ts): widen org helpers to readonly OrgNode[]
- Improvedchore(ts): widen C4 helpers to readonly arrays (cascade from dgmo 62f7300)
- Improvedchore(ts): widen sitemap helpers to readonly SitemapNode[]
- Improvedchore(ts): widen collectMindmapNodeIds to readonly MindmapNode[]
- Improvedchore(ts): widen TagGroup[] / DgmoError[] params to readonly
- Improvedchore(ts): clean up sequence collectParticipantIds for new SequenceMessage discriminator
- Improvedchore(ts): enable exactOptionalPropertyTypes on diagrammo-app
- Improveddocs(in-app): refresh sequence prose for 0.16.0 trim
- Improvedtest(sequence): align with dgmo 0.16.0 participant-type trim
- Improvedchore(lint): enable Tier E modernization rules
- Improvedchore(deps): add type-coverage devDep for strictness tracking
- Improvedchore(lint): enable switch-exhaustiveness-check
- Improvedchore(ts): enable verbatimModuleSyntax
- Improvedchore(ts): enable noImplicitReturns, fix 5 effect callbacks
- Improvedchore(ts): error on unreachable code + unused labels
- ImprovedmacOS (Apple Silicon): download
Diagrammo_0.10.2_aarch64.dmgbelow, or use the stable URL. - ImprovedExisting installs: auto-updater will pick this up on next launch.
- ImprovedBump version to 0.10.2 (picks up @diagrammo/dgmo 0.16.0)
- ImprovedMigrate app source to trailing-token color form
- ImprovedStrip inactive tag-group pills + cog from exports
- ImprovedBump version to 0.10.1
- Fixfix(settings): paint Export palette button with the resolved palette bg
- Fixfix(export): honor a persisted Light/Dark/Auto theme preference
- Improvedpreview: pair collapseResult+layout for async b&l layout
- Fixfix: local-copy BETA_CHART_IDS after dgmo /internal removal
- Improvedchore: declare engines.node >=20.6
- Improvedtest: enforce vitest coverage thresholds (v8 provider)
- Improvedlint: enable eslint-plugin-jsx-a11y (warn-level)
- Improvedci: build dgmo before vitest run
- Improvedci+rust: install dgmo deps, gate dead code on Linux, fix preflight
- Fixfix(web-editor.yml): pass --no-frozen-lockfile to pnpm install
- Improvedci: pass --no-frozen-lockfile to pnpm install
- Fixfix(tauri): gate RunEvent::Opened arm to macOS
- Improvedci: add PR-time gate for typecheck, lint, and test
- Improvedci: add Rust linting (clippy, rustfmt, cargo-deny) for src-tauri
- Improvedci: add gitleaks secret scanning
- Improvedchore: enable Phase 1 TS strictness flags + fix fallout
- ImprovedSync interactivity: extract useDgmoInteractivityBase for medium-case hooks
- ImprovedSequence sync: extract spotlightBlockParticipants helper
- ImprovedSync adapters: extract createShapeRegionSyncAdapter for Pyramid + Ring
- ImprovedMigrate to @diagrammo/dgmo/internal for granular imports
- ImproveduseAppInit: skip deferred analytics init in test mode
- ImprovedER sync adapter: dedup tag-mode/role-mode legend hover handlers
- Improveddocs: sync chart-infra.md from dgmo-content
- ImprovedEditor: infra inline-property completion
- ImprovedSync Cargo.lock to app version 0.10.0
- ImprovedAlias jsdom to a stub in app builds — drop 5.4 MB chunk
- ImprovedDefer analytics init past first paint; chain captures off init promise
- Improvedchart category: align with canonical taxonomy
- ImprovedBump version to 0.10.0
- ImprovedPERT preview: tag-legend hover dim + merged cog + Activity Type icons
- ImprovedBump diagrammo-app to 0.9.0
- ImprovedPERT preview: Field labels toggle in cog + share-link plumbing
- ImprovedPERT: wire chart type into app discovery layer
- ImprovedPERT preview: surface analysisOn to the export pipeline
- ImprovedPERT preview: tornado-driven sensitivity heatmap with pin
- ImprovedPERT preview: sibling analysis SVG + fit to panel + field-labels popover
- ImprovedPERT preview: tornado row hover spotlights the matching node
- ImprovedPERT cog: default Field labels and Analysis to ON
- ImprovedPERT cog: collapse Summary/Tornado/S-curve into one "Analysis" toggle
- ImprovedPERT preview: wire field-legend cell hover to highlight matching cells
- ImprovedPERT cog: add Tornado toggle
- Improvedno-title directive: nullify infra title when directive is on
- ImprovedPERT preview: field-labels overlay for milestone pills
- ImprovedPERT export: keep natural dimensions and inject the title
- ImprovedPERT sync: align with Gantt precedent — drop click→path-lock
- ImprovedPERT share path: resolve
start-date nowbefore encoding - ImprovedPERT preview tests: migrate inline sources to standalone-decl + zero-duration
- ImprovedPERT preview: anchor diagram to top of viewport
- ImprovedPERT preview: replace cog menu with shared SVG legend
- ImprovedPERT preview: cog menu + critical-path toggle + collapsed-group hover labels
- ImprovedPERT preview: render expansion as DOM overlay, not SVG portal
- ImprovedPERT: flushSync portal unmount before D3 wipes the foreignObject
- ImprovedUpdate ALL_CHART_TYPES.size drift-check 41 → 44
- ImprovedPERT (Phase 3a/3b polish): tightened scrubber + group collapse rendering
- ImprovedPERT diagrams (Phase 3b): Web Worker + duration scrubber
- ImprovedPERT diagrams (Phase 3a v2): cursor-driven inline expansion + integration tests
- ImprovedPERT diagrams (Phase 3a): editor sync + click-to-highlight-path
- NewWire PERT preview into the desktop app
- ImprovedHeatmap hover: 3-tier emphasis preserves per-cell label tints
- ImprovedExtract useChartCrosshair hook; add function-chart hover
- ImprovedArea chart: scatter-style hover crosshair; flatten value-label bg
- ImprovedRACI: hide the lightbulb when off unless the legend strip is hovered
- ImprovedRACI: lightbulb toggle gates per-chip description cards
- ImprovedRACI: drop the lightbulb icon — chip hover alone surfaces the card
- ImprovedRACI: chip hover shows that chip's card; press hides immediately
- ImprovedRACI: marker reference panel always uses N columns matching chip count
- ImprovedRACI: lightbulb fades in only when legend strip is hovered
- ImprovedRACI: lightbulb icon on left of legend triggers reference panel
- ImprovedRACI: reference card now lives below legend, not over the matrix
- ImprovedRACI: hover-to-expand reference card on each legend chip
- ImprovedRACI: expandable marker reference panel below the legend
- ImprovedFile tree: dim + un-clickable for unpreviewable file types
- ImprovedDrop bar-horizontal / bar-stacked-horizontal as chart types
- ImprovedBump version to 0.8.6
- ImprovedAutocomplete: handle PIPE_METADATA open-context shape
- ImprovedUpdate dgmo-router test for ALL_CHART_TYPES.size 43→41
- ImprovedExclude packages//scripts/ from vitest
- ImprovedBump version to 0.8.5
- NewWire RACI chart type into the app
- ImprovedRACI selection helpers; sync chart docs to
asalias syntax - ImprovedRACI sync: scope queries to live SVG; add column hover dim
- NewAdd RACI/RASCI/DACI matrix preview with drag-and-drop editing
- ImprovedDim ring label group alongside ring layer on highlight
- NewWire ring chart docs and add new-file thumbnail
- ImprovedFilter new-file dialog templates by chartTypes registry
- NewAdd ring chart in-app docs
- NewAdd ring template to new-file dialog
- NewWire ring chart type into preview pane
- NewAdd diagrammo CLI launcher support (v0.8.4)
- ImprovedApply prettier formatting pass
- ImprovedBump version to 0.8.3
- ImprovedPhase E: Autocomplete normalized matches with "(already used)"
- FixFix collapsed kanban column top alignment
- ImprovedBump diagrammo-app to v0.8.2
- NewAdd PostHog Error Tracking + crash-loop telemetry
- ImprovedScatter crosshair: dim axis ticks and use thousands separators
- ImprovedScatter crosshair: guard cleanup when nothing's been drawn
- ImprovedScatter crosshair: use $action:'merge' to add-or-update graphics
- ImprovedScatter: render hover crosshair via JS handlers (point-only scoped)
- ImprovedUpdate web-editor.yml + CLAUDE.md for dgmo-content rename
- ImprovedPass DGMO_CF_BEACON_TOKEN to web-editor CI build
- ImprovedRepoint app at packages/content (dgmo-content consolidation)
- ImprovedAdopt dgmo v0.10 value-display vocabulary
- ImprovedPolish markdown preview: cursor gutter, heading colors, italic emphasis
- ImprovedAllow workspace root in Vite fs.allow for symlinked dgmo fonts
- ImprovedHighlight dgmo syntax inside markdown code fences
- ImprovedBi-directional editor↔preview sync for markdown
- ImprovedHide New File/Folder buttons and rail label in Working Set mode
- ImprovedMake org/mindmap/sitemap node clicks toggle collapse on first click
- ImprovedColor markdown headings with shared palette tokens
- ImprovedRebuild Move-to dialog: foldable tree, larger window, native browse
- ImprovedUpdate modal: deep-link the new diagrammo.app/releases#vX page
- Improvedrelease.sh: commit + push latest.json after deploy
- ImprovedUpdate modal: deep-link the GitHub release tag, not /releases/
- Improvedcspell: allow 'pycache' and 'subdirs' for 0.8.1 startup-fix vocabulary
- ImprovedBump version to 0.8.1
- FixFix multi-minute startup hang on dev-root lastFolder
- Improvedweb-editor CI: drop --frozen-lockfile (symlinked dgmo can't satisfy it)
- ImprovedCargo.lock: bump tauri-app to 0.8.0 (missed during release commit)
- ImprovedCI: bump checkout/setup-node/pnpm-setup to Node 24 versions
- ImprovedBump version to 0.8.0
- ImprovedMake pnpm check:all pass: drop unused paste-dgmo exports + allow contenteditable
- ImprovedMark c4 + venn beta with a β suffix in docs nav, headers, and New File tiles
- FixResolve clicks to the most-specific toggle ancestor
- ImprovedRead app-level paste from event data, not clipboard API
- NewAdd paste-DGMO flow — clipboard detection, dialog preview, empty-state
- ImprovedRemove stray BMAD scaffolding — canonical install lives at workspace root
- ImprovedBump version to 0.7.17
- ImprovedPre-release cleanup: org chart, export, e2e tests
- FixFix Cloudflare Pages project name — app, not diagrammo-online
- FixFix web-editor.yml — clone siblings + force production branch
- ImprovedAlphabetize Business docs group — Funnel before Journey Map
- FixResolve static analysis findings
- ImprovedAggressive cleanup of ~/.diagrammo config cruft
- ImprovedRemove expand-notes toggle — notes always render expanded
- FixFix panel collapse broken after stale folder recovery
- ImprovedLoad bundled Inter font via @font-face for consistent rendering
- ImprovedSurface sequence render errors instead of blanking the preview
- NewAdd --branch=main to Pages deploy so it targets production
- ImprovedMake release.sh resilient to wrangler auth and auto-publish draft
- ImprovedRelease 0.7.16 — pyramid chart type
- NewWire pyramid into docs, templates, and thumbnail
- NewWire pyramid preview with editor↔diagram cursor sync
- FixFix folder browse on first launch by using native OS dialog
- ImprovedImprove app performance and reduce bundle size
- ImprovedCollapse org breadcrumb middle segments to prevent label overlap
- NewAdd cycle and journey-map to in-app docs registry
- NewAdd editor↔diagram cursor sync for journey maps
- NewAdd CI workflow for web editor: build on PR, deploy on tag
- NewAdd prebuild/pretypecheck hooks, fix stale submodule ref in build:web
- FixFix example gallery generating in old root when scoped root is active
- NewAdd pre-flight checks and post-release deploys to release.sh
- ImprovedUpdate tauri-plugin-dialog to 2.7.0 (match JS dependency)
- ImprovedBump version to 0.7.15
- NewAdd cycle and journey-map preview components with view-state caching
- ImprovedRemove journey-map-examples subfolder glob (subfolder deleted)
- NewAdd journey-map to template CATEGORY_MAP so it appears in new file dialog
- NewAdd journey-map to template picker, chart categories, and thumbnails
- ImprovedFilter used quadrant positions in tech-radar autocomplete
- NewAdd cycle diagram pipe metadata completion with color values
- NewAdd cycle diagram to template picker, chart categories, and thumbnails
- ImprovedMake sequence note expansion cursor-driven and fix sticky header toggle
- NewAdd tech-radar icon to new file dialog
- NewAdd tech-radar to docs registry, new file dialog, and fix chart type test
- FixFix intermittent panel collapse/expand by stabilizing defaultSize
- NewWire multi-page tech-radar PDF export (main radar + quadrant details)
- ImprovedTech-radar: pipe completions, editor↔diagram sync, activeLine
- ImprovedUse native OS save dialog for export instead of custom in-app dialog
- NewAdd quadrant focus drill-down and custom tech-radar sync adapter
- NewAdd tech-radar preview component with legend controls
- ImprovedUpdate in-app docs: remove node (color) suffix examples
- FixFix kanban clipboard export producing tiny gray bars instead of diagram
- FixFix ECharts crash when editing chart data mid-typing
- NewWire up B&L description toggle and highlight stroke
- NewAdd build guard for packages/examples symlink
- ImprovedBump version to 0.7.14
- ImprovedAllow B&L rendering when all nodes are inside collapsed groups
- NewAdd state diagram group collapse with cache, share links, and a11y
- NewAdd 'mindmaps' to cspell dictionary
- FixFix chart type count assertions — 34 → 35 (wireframe added)
- ImprovedBump version to 0.7.13
- NewAdd mindmap and wireframe example folders and thumbnails
- NewAdd wireframe to new file dialog, docs, thumbnail, and category
- ImprovedEmphasize immediate parent container on wireframe highlight
- ImprovedPersist wireframe config and default labels to hidden
- NewWire up mindmap depth-colors/controls and fix tag group deactivation
- FixFix gear pill mix() percentages — was 90% dark instead of 10%
- ImprovedRender wireframe title and gear pill as fixed-size HTML
- ImprovedDim siblings at every nesting level for wireframe highlight
- ImprovedDim top-level sections individually for wireframe highlight
- ImprovedDim wireframe via container opacity, un-dim active element
- ImprovedUse filter-based sibling dimming for wireframe highlight
- ImprovedReplace dimming with outline highlight for wireframe sync
- ImprovedRaise wireframe dimming to 0.8 opacity for better readability
- ImprovedSoften wireframe highlight dimming from 0.15 to 0.55 opacity
- NewAdd editor↔diagram sync for wireframe previews
- ImprovedEnable vertical scrolling for wireframe preview container
- ImprovedPass showGroupLabels to wireframe layout for space reclaim
- NewWire up group labels toggle in wireframe preview
- ImprovedUse SVG legend gear pill instead of custom React controls
- ImprovedUse gear-pill legend control for wireframe scale toggle
- NewAdd inline title bar with scale toggle to wireframe preview
- NewAdd fit/proportional toggle to wireframe preview
- NewAdd wireframe preview component for live diagram rendering
- NewAdd mindmap preview component with interactivity and view cache
- ImprovedSpeed up export by reusing preview SVG when themes match
- ImprovedSync chart-sequence docs with dgmo guide (participant ordering)
- ImprovedUnify export state conversion to CompactViewState for all chart types
- NewAdd sticky column headers to kanban board preview
- ImprovedReplace kanban compact-meta button with gear controls group
- ImprovedRebuild sticky participant clone when SVG is replaced
- ImprovedBump tauri-plugin-fs Rust crate to 2.5.0
- Improvedcspell: ignore tests/ and add technical abbreviations
- ImprovedBump version to 0.7.12 and clean up dead exports
- ImprovedRework editor selection visuals to feel tight and intentional
- ImprovedRefresh CLAUDE.md and drop stale license/trial comment
- ImprovedRemove mermaid/nomnoml references and dead branding plumbing
- NewAdd diagnostic strip and surface parser suggestions in preview
- ImprovedRefactor release.sh to app-only scope
- NewAdd full static analysis to release preflight checks
- NewAdd static analysis tooling: security lint, react-compiler, depcheck
- ImprovedClear stale selection after refresh; show loading state in DGMO preview
- FixFix file tree merge losing moves and deletes from full scans
- ImprovedRemove unused @tauri-apps/plugin-dialog dependency and dead useViewport hook
- ImprovedUpdate all dependencies including lint-staged 16, cspell 10, react 19.2.5
- ImprovedRemove manual wrangler deploy from release script
- NewAdd time zone to build timestamp display
- ImprovedAlign build timestamp styling with other footer items
- ImprovedMove build timestamp to its own row with clock icon
- NewAdd build timestamp to settings drawer footer
- FixFix share link vs= decoding — pass full query string to decodeDiagramUrl
- NewAdd view state persistence and vs= share link encoding
- ImprovedPin participant header immediately and prevent over-scrolling
- NewWire up collapsible sequence diagram groups in the app
- ImprovedRemove section chevron CSS rules
- FixFix sequence diagram scroll jerk and add spotlight for notes, blocks, sections, groups
- ImprovedUpdate Cargo.lock for 0.7.11 build
- ImprovedBump version to 0.7.11
- ImprovedRevert "0.8.18"
- Improved0.8.18
- NewAdd "How DGMO Thinks" to in-app docs with Lightbulb icon
- ImprovedBump version to 0.7.10
- NewAdd compact-meta toggle and lane-tinted placeholder cards
- ImprovedPolish kanban swimlane styling and add lane/column collapse
- NewAdd kanban swimlane mode to in-app preview
- ImprovedUpdate colors docs to cover 11 named colors with black and white
- ImprovedRecategorize arc diagram from software to data
- ImprovedExclude sequence-tags from new-file picker, add boxes-and-lines thumbnail
- ImprovedCollapse file tree and editor panels when opening a share link on web
- ImprovedBump version to 0.7.9, re-add share link button to left rail
- ImprovedHonor filename from share link payload
- ImprovedPin Tauri JS plugins to match Rust crate versions
- ImprovedDrop --frozen-lockfile from build:web for symlinked workspace
- ImprovedUpdate pnpm lockfile for 0.7.8 release
- ImprovedBump version to 0.7.8
- NewAdd ?example= deep link support for marketing site grid cards
- NewAdd web panel shortcuts, favicon, and beta indicator
- FixFix unwanted panel collapse when clicking through diagrams
- ImprovedRemove web-only marketing site link from AppRail
- ImprovedSource docs from dgmo submodule, context-aware web docs links
- FixFix build:web CI — re-run pnpm install after submodule init
- FixFix build:web for CI — init submodule and build dgmo before web build
- NewAdd web editor: platform adapter, custom dialogs, OPFS filesystem, dual build
- ImprovedRemove unnecessary exports, add du to knip ignore
- ImprovedAuto-activate first tag group on initial render in all preview components
- NewAdd dgmo-mcp dependency sync to release pipeline (Step 12)
- FixFix editor collapse on file select, add heatmap cross-highlight
- FixFix file tree panel not re-expanding after collapse
- NewAdd boxes-and-lines to new-file templates and in-app docs registry
- ImprovedRemove right-click context menu from preview pane
- ImprovedRefine branded QR: nord styling, full-width display, close on copy
- FixFix file tree panel toggle not working on first click after app open
- NewAdd branded QR code with logo and text to export dialog
- ImprovedRemove accidentally staged WIP files from previous commit
- FixFix ESLint warnings from react-hooks v7 and ESLint 10
- ImprovedMigrate Tailwind CSS 3 to 4 (CSS-first configuration)
- ImprovedUpgrade React to 19.2.4 and @types/react to 19.2.14
- ImprovedUpgrade ESLint to 10.2, react-hooks to 7.0, react-refresh to 0.5, globals to 17
- ImprovedUpgrade lucide-react to 1.7.0
- ImprovedUpgrade Vite to 8.0.3 and @vitejs/plugin-react to 6.0.1
- ImprovedUpgrade TypeScript to 6.0.2
- ImprovedUpgrade jsdom to 29.0.1
- ImprovedUpdate patch dependencies (codemirror, zustand, jspdf, katex, vitest, knip)
- FixRestore message dash animation and add full-diagram dimming for sequence sync
- ImprovedUpdate Rust dependencies (tauri 2.10.3, wry 0.54.4, tao 0.34.8)
- NewAdd BnL collapse state to share links, consistent with sitemap and infra
- FixFix release.sh: write latest.json not update.json to website
- ImprovedBump version to 0.7.7
- ImprovedHide export options and footer when QR code is expanded
- ImprovedConsolidate Share Link and QR Code into Export dialog
- FixFix editor data loss on panel collapse
- ImprovedDisable markArea tooltip in interactive preview
- ImprovedChange folder icon color from yellow to blue
- FixFix line charts getting unwanted area fill from label-dim effect
- FixFix scatter chart labels not showing in desktop app
- FixFix syntax highlighting for numbers and operators in label text
- ImprovedRemove blue cursor-sync highlights, use dim-only approach
- NewAdd auto-alignment for arc, chord, timeline, gantt, and venn diagrams
- ImprovedRevert updater endpoint to latest.json, update Cargo.lock
- NewAdd working set file tree mode — pinned + recent files with star toggle
- ImprovedChange updater endpoint to update.json to avoid CDN cache
Add boxes-and-lines diagram type, remove deprecated initiative-status
- FixFix type errors: stub initiative-status exports, align B&L with current dgmo API, update submodule
- ImprovedBump version to 0.7.5 — add boxes-and-lines in-app docs
- FixRestore original stroke on highlight via CSS custom property
- FixFix highlight to not change node appearance at all
- ImprovedUse dim-only highlighting — preserve node tag colors
- NewAdd group collapse/expand interactivity
- NewAdd legend hover dimming for boxes-and-lines
- NewAdd view state caching for boxes-and-lines
- NewAdd mode toggle interactivity to boxes-and-lines preview
- NewAdd tag filtering and legend interactivity to boxes-and-lines
- NewAdd boxes-and-lines preview component and interactivity
- FixFix org chart pie generation to use current DGMO syntax
- NewAdd website sync step to release pipeline
- FixFix alignment reentrancy and add align-on-file-open
- NewAdd DGMO syntax highlighting to in-app documentation
- NewAdd data row column alignment extension for editor
- ImprovedUpdate slope chart syntax to use period directive and space-separated values
- FixFix duplicate @codemirror/state: add Vite dedupe + align versions
- FixFix duplicate @codemirror/state breaking editor after update
- ImprovedBump version to 0.7.2
- ImprovedHide reset welcome screen button in production builds
- NewAdd palette hover preview in editor settings
- NewAdd first-run welcome experience with guided folder setup
- FixFix decoration ordering bug in entity highlight plugin
- ImprovedOverride number/duration styling in message labels
- NewAdd line-start entity completion and fix ER labeled relationships
- NewAdd view cache persistence for all 10 diagram types
- FixFix keyword false positives with semantic context overrides
- NewAdd entity name highlighting and note content dimming
- ImprovedStandardize directive naming and remove deprecated colons
- NewWire up Lezer syntax highlighting from @diagrammo/dgmo/editor
- ImprovedUpdate flowchart docs for TB default direction
- ImprovedRename holidays → holiday in gantt autocomplete keywords
- ImprovedRemove colon syntax from quadrant/arc in docs and tests
- NewAdd knip, jscpd, cspell, type-checked ESLint; remove dead code and fix promise handling
- ImprovedBump version to 0.7.1
- NewAdd common macOS keyboard shortcuts (Cmd+E, Cmd+?, Cmd+Shift+F, Cmd+Q)
- ImprovedTint New File Dialog and Docs Sidebar by chart category color
- NewAdd Cmd-F find to editor with palette-aware search panel
- ImprovedUpdate bar chart docs and tests for orientation-horizontal
- ImprovedUpdate tests and docs for DGMO language spec conformance
- ImprovedSend actual chart type in PostHog diagram_rendered event
- ImprovedBump version to 0.7.0
- FixFix window title to extract chart title from new first-line syntax
- NewAdd file tree pane aesthetic refresh with category-colored dots
- ImprovedUse export theme (not app theme) for share link encoding
- ImprovedUpdate docs to remove mermaid/nomnoml references
- ImprovedRemove mermaid and nomnoml npm dependencies
- ImprovedRemove mermaid and nomnoml rendering libraries
- FixFix share link not resolving no-colon import/tags directives
- ImprovedPreserve sitemap collapse state across diagram switches
- NewAdd entity triggers for sitemap, c4, gantt, initiative-status autocomplete
- ImprovedAutocomplete description as metadata key on indented lines
- ImprovedAutocomplete tag alias names as metadata keys on indented lines
- ImprovedSupport colon-based tag value completion for sitemap/org
- ImprovedAutocomplete note placement (left/right) in sequence diagrams
- NewAdd parallel to gantt structural keywords
- FixFix directive autocomplete not triggering on boundary line
- ImprovedComprehensive autocomplete coverage audit — fill all gaps
- NewCreate new files in active file's directory instead of workspace root
- ImprovedRemove all editor ghost text (generic hints + sequence chain hints)
- ImprovedRemove branding watermark from exports
- ImprovedExclude exact-match entity from completion popup
- FixFix ghost hint conflict and entity completion trigger for partial words
- NewAdd unified autocomplete system: chart types, directives, values, entities, tags
- FixFix chord edge highlighting and add presentation nav lines
- NewAdd presentation navigation for collapsed editor mode
- ImprovedEnable file browsing and diagram preview when editor is collapsed
- ImprovedHighlight entire series when cursor is on a series name line
- FixFix multi-series highlight: batch by dataIndex, remove showTip
- NewAdd cursor-driven axis label emphasis with full chart dimming
- FixFix era highlight not triggering on first cursor move
- ImprovedUse showTip for all line/area charts including multi-series
- NewAdd cursor-driven era emphasis and showTip for line/area charts
- ImprovedMigrate all in-app documentation to colon-free DSL syntax
- ImprovedUpdate import/tags regexes and comments for colon-free syntax
- ImprovedPolish desktop window chrome: rail separator, title bar, file highlight, panel divider
- ImprovedOverhaul in-app documentation: categorized sidebar, syntax fixes, aligned examples
- NewAdd scatter label emphasis sync and CSS-based legend centering
- FixFix editor collapse nudge stopping after 5 collapses
- NewAdd Cmd+2 toggle for editor panel with nudge on collapse button
- ImprovedUse centralized legend overlay for ECharts charts with hover highlight
- NewAdd --publish and --preflight flags to release.sh
- ImprovedBump version to 0.6.3, strip export-ignore elements from exports
- ImprovedMove editor fold gutter and lint gutter behind settings/diagnostics
- ImprovedBump version to 0.6.1, update dgmo submodule to 0.7.1
- ImprovedCache last valid gantt schedule to show behind errors and improve diagnostics
- ImprovedUpdate docs and tests for new marker syntax
marker: DATE LABEL
- ImprovedBump version to 0.6.0, update dgmo submodule to 0.7.0
- ImprovedEnhance initiative-status interactivity, file tree UX, settings drawer, and gantt docs
- ImprovedUse subtle primary-color glow for diagram line highlights instead of red
- NewAdd collapsible tag lanes and sort:tag support to GanttPreview
- ImprovedUpdate GanttPreview for tag-group swimlane options API
- ImprovedShow gantt holiday labels when cursor is on the holiday line
- NewAdd Gantt chart editor-diagram sync (highlight + click-to-navigate)
- NewAdd Gantt chart documentation, icon, and template
- NewAdd initiative-status legend interactivity (toggle + hover dimming)
- NewAdd class diagram legend interactivity (toggle + hover dimming)
- ImprovedMove example gallery button to bottom of settings for established users
- ImprovedAutomate post-build release steps in release.sh
- ImprovedBump version to 0.5.0
- ImprovedRemove http:default capability (Lemon Squeezy API permission no longer needed)
- ImprovedEpic 100: remove license system, make app fully free
- ImprovedER diagram: wire semantic legend interactivity in app
- ImprovedBump version to 0.4.0
- ImprovedEnforce correct file extension in new file dialog
- ImprovedLegend standardization: fixed legend overlay for app, new interactivity hooks
- NewWire activeTagGroup into C4 interactivity for legend hover-dimming
- ImprovedDocument era bands for line, area, and multi-line charts
- ImprovedSkip ResizeObserver label post-processing when dgmo sets interval > 0
- ImprovedUpdate to @diagrammo/dgmo 0.6.0 — remove framework-named API references
- ImprovedInclude palette + theme in share links and QR codes
- ImprovedDocs polish, consolidated infra example, suppress OS autocorrect in all inputs
- NewAdd table of contents to chart-type documentation pages
- NewAdd find-in-page to docs window with minimap
- FixFix sticky participant header losing highlight state on first pin
- NewAdd infra example variants to New File dialog gallery
- FixFix sequence diagram share link: encode active tag group in URL
- ImprovedBump to 0.3.9
- ImprovedClean stale DMG artifacts before build in release.sh
- ImprovedBump to 0.3.8, add tag group docs and infra chart docs
- Fixfix: sync timeline export store after async cache load
- Improvedfeat: timeline tag swimlane sharing and view state persistence
- Improvedfeat: bump to 0.3.7 — sitemap docs, infra interactivity, thumbnails
- ImprovedBump to 0.3.6, update dgmo submodule to 0.4.1
- ImprovedBump version to 0.3.5
- NewAdd 'New DGMO File' category to new file dialog, remove Empty File
- ImprovedUpdate sequence diagram docs to v2 arrow syntax
- ImprovedBetter parse error UX: dim canvas on error, show inline diagnostics in editor
- ImprovedImprove performance and resiliency across preview, stores, and I/O
- FixFix stale test assertions: error null vs undefined, uncertain duration syntax
- ImprovedRefactor: deduplicate preview components, export logic, and shared utilities
- FixFix ImageBitmap memory leaks, export error handling, and label sizing
- ImprovedRemove BMAD install — managed from workspace root
- ImprovedBump version to 0.3.4
- ImprovedUpdate example imports and templates for 4-category folder structure
- ImprovedInclude chart title in ECharts exports (copy and file)
- ImprovedRemove misleading resize cursor between editor and preview panels
- ImprovedAlways include branding on file exports
- FixFix ECharts export producing invalid SVG errors
- ImprovedUpdate class diagram docs for inline extends/implements and UML 3-compartment layout
- ImprovedReplace skipInitialResize flag with dimension-based ResizeObserver guard
- FixFix docs window rendering as blank white screen
- NewAdd responsive stagger for category axis labels on narrow charts
- ImprovedRemove "Rendered with" attribution lines from all docs
- NewAdd C4 diagram documentation (beta)
- FixFix first-line indent in docs code blocks
- ImprovedUse Operation Blackbeard example for initiative-status docs, debounce tree refresh
- ImprovedUpdate in-app docs to use improved DSL syntax
- NewAdd resilience hardening: atomic writes, backups, dirty indicator, window state
- ImprovedMove initiative status to software category in new file dialog
- NewAdd comprehensive store tests for editorStore, preferencesStore, exportStore
- ImprovedConsolidate duplicate preview sync adapters via factory + shared utils
- NewAdd store tests, split thumbnail monolith, consolidate adapter hooks
- ImprovedRemove palette picker from export dialog
- ImprovedBump version to 0.3.3
- ImprovedBump version to 0.3.2
- ImprovedBump version to 0.3.1
- NewAdd C4 Architecture thumbnail and showcase entry
- NewAdd c4-fullstack multi-file example to glob imports
- ImprovedAuto-deploy latest.json to diagrammo.app in release.sh
- ImprovedPoint updater endpoint to diagrammo.app/latest.json
- ImprovedBump version to 0.3.0
- NewAdd initiative-status to thumbnails, templates, docs, and welcome view
- ImprovedLock panel widths to content, remove manual resize handles
- ImprovedUnify palette pickers in settings with export palette override
- NewAdd setting to hide diagram titles in preview
- NewAdd is-group to initiative-status sync adapter selectors
- ImprovedAuto-fit editor pane width to content without artificial caps
- ImprovedRetain status colors on highlight for initiative-status
- NewAdd initiative-status diagram preview with cursor sync
- FixFix navigation from deployment view back to hierarchical C4 levels
- NewAdd C4 deployment level to preview and editor breadcrumb (Epic 59.3)
- NewAdd hybrid cursor level sync for C4 preview (Story 57.4)
- NewAdd C4 syntax highlighting for section headers and keywords (Story 58.5)
- ImprovedInclude C4 breadcrumb context when clicking import links in editor
- ImprovedUse red/blue/yellow/green for C4 breadcrumb levels across all views
- FixFix breadcrumb back-navigation to restore correct C4 level
- ImprovedShow diagram title in Code breadcrumb pill instead of filename
- ImprovedPersist C4 breadcrumb when drilling into class diagrams (Story 58.5)
- NewWire up Level 4 bridge: import drill-down from C4 to class diagrams (Story 58.4)
- NewAdd C4 editor breadcrumb showing cursor ancestry path (Story 58.3)
- FixFix drill preview opacity by suppressing sync highlights during preview
- NewWire up Container → Component drill-down in C4Preview
- NewAdd C4 container drill-down UX and level breadcrumb (Story 57.1)
- ImprovedEnable noUncheckedIndexedAccess in tsconfig
- NewWire up C4 example files in gallery (Story 56.4)
- NewAdd C4 context diagram app integration (Story 56.3)
- FixFix crash loop when opening New File dialog with missing examples
- NewAdd eslint-plugin-simple-import-sort for enforced import ordering
- ImprovedStrip collapsed org chart subtrees from shared URLs
- ImprovedSplit D3Preview into per-diagram-type components, add tests and error styling
- NewAdd legend entry hover dimming to kanban board preview
- NewAdd legend entry hover to dim non-matching org chart nodes
- ImprovedBump version to 0.2.2
- ImprovedUpdate echarts tests for non-fatal empty-data diagnostics
- ImprovedMove dev license toggle near license card, add org-fleet examples
- NewAdd org chart import resolution, navigation, and editor links
- ImprovedUpdate tests for non-fatal validation warnings in dgmo
- NewAdd editor diagnostics integration with CodeMirror lint
- NewAdd OSS license compliance and licenses dialog
- ImprovedEscalate file tree shortcut nudge: show at 5, 10, 20 clicks then stop
- ImprovedOpen shareable link in browser after copying to clipboard
- FixFix highlight not re-applying when clicking same diagram element twice
- NewAdd relaunch_detached command to auto-restart after update
- ImprovedDefault export theme to match app's current light/dark setting
- FixFix sticky header alignment, ghost text scoping, highlight bleed, add shortcut nudge
- ImprovedBump version to 0.2.3
- NewAdd line numbers to editor
- NewAdd code fence block backgrounds in markdown editor, increase pill contrast
- ImprovedRemove subtitle text from QR code modal
- ImprovedInline kanban title and tag legend, fix drag content propagation
- FixResolve org chart imports before encoding share links and QR codes
- ImprovedTighten editor top padding and clean up kanban tag helpers
- FixPrevent elastic overscroll bounce on macOS window
- ImprovedMake import links plain-clickable, remove editor breadcrumb
- FixFix kanban tag group click target and org import rendering
- NewAdd kanban board preview with drag-and-drop, tag legend, and archive
- NewAdd shareable URL export, ER thumbnail, and bump to 0.2.1