␣⌘ Space Command

Changelog

Space Command's changes, newest first. Versions are major.minor.patch, pre-1.0.

0.93.1 — 2026-10-21

Fixed

  • New post with hugo works: hugo new needs its content folder to exist, and the app's scratch folder wasn't made first, so every post failed with "no existing content directory".
  • A failed hugo new ends as a failed Preview start does: hugo's error in Dim, then Posts Help when the site failed (a broken archetype, config or template) or Preview Settings… when hugo itself couldn't run, then Show Log. Its output goes to the site's log in ~/Library/Logs/Space Command/, replaced on the next run, as Preview's is.

Changed

    • sits at the right end of a site card's header, after Preview's ▶ (or ● :1313 ■ while running), so New post stays in one place whether the server runs or not.

0.93.0 — 2026-10-21

Added

  • Settings › General › Panel › Show over full-screen apps, on by default: the panel follows you into a full-screen app's Space. Off, it stays on your desktops: when a full-screen Space comes up it's put away, and it's back on the next desktop as you left it. The hotkey or the mark still shows it there when you ask.

Fixed

  • A docked panel always floats over other apps' windows, so another app's window that reaches the edge no longer covers it when you switch desktops (Desktop 2 with a wide Chrome window, say). Keep panel in front now applies only to a floating panel, let go away from the edges: "A floating panel stays over other apps' windows. A docked one always does." Docking and letting go set the level each time.

0.92.1 — 2026-10-21

Fixed

  • Q&A finds the questions in a terminal copy whose selection starts partway through a paragraph. Its first line is flush while the rest keep the terminal's indent, so the indent now comes from the other lines, and the numbered questions read as questions rather than headings.

0.92.0 — 2026-10-21

Added

  • New post. + on a site card's header, left of Preview's ▶, opens a new-post row at the top of its Drafts: a title field, focused, then "Create in" with the site's sections, the content folders that hold its posts, the newest post's first. A click on "Create in" shows the file it will make (content/<section>/<slug>.md, or <slug>/index.md) and a Folder / Single file switch for this post, which follows the section's habit (folders when most of its posts are bundles). The slug is the title, lowercased, with accents folded and hyphens between words. Return or Create Draft makes it; Esc or Cancel closes the row. When the file already exists, its path shows and Create Draft waits.
  • With hugo (found as Preview finds it), hugo new content makes the post from the site's archetype, into a scratch folder, then its title is set as typed and draft: true added if the archetype left it out. Without hugo, the app writes the front-matter in the site's format (YAML or TOML, as its archetype or posts use): the title, the date with its offset, and draft: true, plus any archetype field and body line with no {{ in it. When hugo fails, its error shows on the row.
  • Either way the file is made through the same journalled writer, so ⌘Z removes it, and a bundle's folder, while it's unchanged. The new draft then shows at the top of Drafts, expanded, and opens in its editor.
  • Site Info › New posts: Match each section (the default, naming each section's habit), Folders, or Single files.
  • The post's ⓘ, beside Open on an expanded post: its file (click to show it in the Finder) and the front-matter the row doesn't show, such as tags, categories and slug, as labels and values.

0.91.1 — 2026-10-21

Changed

  • A task whose focus comes from its heading (under ## Goals #todo #focus, with no #focus of its own) shows Snooze where Remove Focus would be, in its right-click menu and its choices, and F snoozes it as S does. Snoozing writes #snooze on its own line, never the heading, so the heading's next task takes the focus. ⌘Z or Unsnooze brings it back. Snooze isn't listed twice for it.

0.91.0 — 2026-10-21

Added

  • Preview for Hugo sites. Every site card's header has a tape deck at its right: ▶ starts the site's server (hugo server -D), and its dot pulses quickly while it starts. Once it's up, the port shows in Sage beside a slowly pulsing dot (● :1313, still under Reduce Motion or Show fewer animations), with ■ to stop it. A click on the port opens the site's local address; its right-click menu has Show Log. The port is read from hugo's own output, so a second site gets the next free one.
  • An expanded post has Preview: Open, Preview, then Publish on a draft, or Open, Preview, then View on Site on a published post whose page is built. Preview starts the site's server if it isn't running, then opens the post's local address, which follows View on Site's rule (slug: or url:, and baseURL's path) on the server's address. Preview is in a post's right-click menu too.
  • One server per site. It stops on quit, when you hide the site's posts, and when its folder is removed. A server started outside the app isn't seen, so the app starts its own.
  • hugo runs from your login shell's PATH (fish, zsh or bash), so it's found when the app starts from the Dock. Without it, the card says Preview needs Hugo, with brew install hugo and How to install hugo, until ▶ finds it.
  • When the server exits with an error, ▶ comes back with hugo's last error line under the header, ending in the way out that fits: Preview Settings… when the command failed (a flag hugo doesn't know, or a command not found), or Posts Help when the site did (a broken config or template), then Show Log. The next ▶ clears it.
  • Each start writes the server's output to ~/Library/Logs/Space Command/Preview <site>.log, replaced at the next start. Show Log opens it in Console.
  • Settings › Hugo Sites › Preview: the command, hugo server -D by default, run in the site's folder from your shell's PATH.

Fixed

  • Remove Focus on a task whose focus comes from its heading said only "This item can't be changed that way." It now says why, naming the heading: "Its focus comes from its heading, Goals."

0.90.0 — 2026-10-21

Added

  • New Round for a test file: ↺ on a test section's heading (on hover), New Round… in its right-click menu, or New Round… on the tally once every test has run. It asks the version the round is for (from the top CHANGELOG.md entry, editable), whether to clear Result lines (on by default), and which failures to log. New Round unticks the passed tests (a failed one keeps its #fail until it passes), empties the Result lines, and logs the round that ended under the title, newest first: - 2026-10-21 · 0.89.0: 30 passed, 2 failed (T28, T37), 4 not run · new round for 0.90.0. The round log's lines aren't read as tests.
  • The failures it's asked to log go to BUGS.md (or ISSUES.md), else TODO.md, made if need be, as open entries at the end of its ## Open section (or the file), boxed as that file's open entries are: - [ ] **T28 failed: The Dock badge (0.89.0).** Its Result note. One already logged and still open is shown "already there" and left out. Both files are one write, and one ⌘Z puts both back.

Changed

  • A click on a failed test passes it, taking off #fail, rather than clearing it; ⌥-click still clears a fail. The cycle is not run, pass, fail, then pass.

0.89.1 — 2026-10-21

Changed

  • The teaser site's screenshots are retaken with the panel's default header: the red and green window buttons at its top left, with no ␣⌘ badge. A Debug build's --snapshot draws the window buttons in red and green, as they look in use, rather than in an inactive window's grey.

0.89.0 — 2026-10-21

Added

  • Test files (TESTING.md, TESTS.md, TEST.md) have three-state boxes: not run, passed, failed. A click steps through them; ⌥-click fails a test in one go, or clears a fail. A pass writes [x], a fail an open box with #fail (a [!] box reads as failed too, and is left as it is), and not run an open box. A fail counts as open, and an explicit #fail wins over a tick. Each change is one write and one ⌘Z.
  • A test file's section shows a tally under its heading: passed in Moss and failed in Terracotta on one bar, then "N passed · N failed · N to run", counting every test in it, listed or not.

Changed

  • Ticking a failed test from the keyboard or a card passes it, taking off its #fail.

0.88.8 — 2026-10-21

Fixed

  • Resizing the panel from its bottom or left edge was read as a drag once let go, so a floating panel near a side edge docked instead of keeping its new size. A resize is never a drag now.

0.88.7 — 2026-10-21

Changed

  • Items from test files (TESTING.md, TESTS.md) show only under Show › All and Show › Tests, on every scope, Today included. Show › Tasks and Show › Ideas leave them out, and the progress line doesn't count them, since a test round is a checklist, not work to plan. Plan and Bugs items stay in Tasks.

0.88.6 — 2026-10-21

Changed

  • About's close light is the small size, as the panel's window buttons are, in the same spot, with a 24-point square around it that also takes the click.

0.88.5 — 2026-10-21

Fixed

  • About opened over a full-screen app showed on another Space, where nothing could close it. It now opens over the full-screen app, and switching Spaces closes it, as it would a popover (unless a link sent you to the browser, where it waits behind).

0.88.4 — 2026-10-21

Changed

  • About has a red close button at its top-left, under the stripe, so it can be closed without clicking away. Esc and ⌘W still close it, as does a click outside it.

0.88.3 — 2026-10-21

Changed

  • Today lists its rows in the file's order too: tasks before ideas, then by priority, then as they sit in the file. Newness still decides which rows get into Today, but no longer puts them first.

0.88.2 — 2026-10-21

Fixed

  • Turning Settings › Appearance › Show in Dock and app switcher on or off no longer sends Settings behind other windows: it comes forward again once the Dock icon has come or gone. The Dock's #p0 badge is written once the icon is there, so it survives hiding and showing the icon.

0.88.1 — 2026-10-21

Changed

  • In a project's sections (task files, tagged sections, a plan's phases), rows go by priority, then the file's order, with ideas still after tasks. A line's newness no longer moves it up, so a list like TESTING.md's reads in its own order. Today still lists new lines first, until its order is decided.

0.88.0 — 2026-10-20

Added

  • ⌘C on the Clipboard tab copies the open tile in the mode in view: as its Copy button does, the chips that are on applied (plain text, HTML and rich text together), or, with Q&A on, as Copy Answers does (nothing while no question is answered). No new tile is listed. A selection in a text field still copies just the selection. In app mode, Edit › Copy does the same.
  • The button ⌘C triggers shows it in its tooltip ("Copy (⌘C)", or "Copy Answers (⌘C)"), and the tile's right-click menu lists Copy (and Copy Answers under Q&A) above Remove, with ⌘C beside the one it does.

0.87.1 — 2026-10-20

Changed

  • Q&A's pencil sits in a button drawn like the answer chips, the last of their line. A click grows the button in place into the note field, with the keyboard (a crossfade with less motion), and Return or a click elsewhere shrinks it back. Holding a note, its pencil is filled, with the note as its tooltip.

0.87.0 — 2026-10-20

Added

  • Settings › Appearance, a new tab after General: Appearance and Show fewer animations, then Menu bar and Dock (the menu bar icon, the #p0 dot, Show in Dock and app switcher, Window buttons), then Dates.
  • On Settings › Clipboard, Unindent, Markdown and Clean Link open their own options under their line with ▸: Unindent's On by default and Starts at, Markdown's styles, and Clean Link's list.

Changed

  • General keeps how the app runs: Launch at login; Panel, with the panel's hotkey and Keep panel in front; Projects, with Quiet Mode's hotkey beside its switch and the two health thresholds; Updates.
  • Clipboard's chips are one line each, their descriptions now tooltips, under Copies and above References; the list is no longer capped.

Removed

  • The Shortcuts tab: each hotkey sits beside what it does.

0.86.0 — 2026-10-20

Added

  • Window buttons, in Settings › General after Show in Dock, on by default as an experiment: the system's small close and zoom buttons at the panel header's top left, coloured while the panel is key and grey otherwise. Red hides the panel, as ⌘W does ("Hide Panel (⌘W)"), and never quits. Green floats a docked panel, inset from its edge at its own width and two-thirds of the screen's height ("Float Panel"), and docks a floating one to the nearer edge ("Dock Panel"); ⌥-click makes a floating panel full height where it is.
  • With them on, the ␣⌘ badge goes from the header (About is in the ⋮ menu), and the ‹ sits 4 pt from the lights and the title. Off, the header is as before.

0.85.4 — 2026-10-20

Fixed

  • Clicking Q&A's pencil opened the note field without the keyboard, so typing went nowhere. The field was drawn twice for its two layouts, both bound to one focus; there's now one field, laid out beside the chips when 80 pt or more is left and on its own line otherwise, and it takes the keyboard as it appears.

0.85.3 — 2026-10-20

Changed

  • A Q&A list's numbers share one width, the widest's, in tabular figures and trailing-aligned, so "6." and "14." end together and every question's text and chips start at the same edge.

0.85.2 — 2026-10-20

Fixed

  • A Q&A question with a long row of chips laid the whole panel out wider than its window, clipping every line, the tab bar and the focus card on both sides. Chips now wrap onto more lines, and one wider than the card is cut to fit.
  • "A (headed groups), B (an Appearance tab, recommended), or C (…)" got its descriptions split into chips at their commas; it's A · B · C, with B recommended. Commas and "or" inside parentheses never split named options.

0.85.1 — 2026-10-20

Fixed

  • A Claude Code reply copied from the terminal wasn't read as questions: its first line starts "⏺ " at the margin while the rest are indented two columns, so no indent was shared. A leading "⏺ " (or "● ") now counts as that indent, and the tile no longer repeats the reply's first line when the card heads with it.

0.85.0 — 2026-10-20

Removed

  • A double-click on the panel header's empty space no longer hides the panel (the user, 2026-10-20: its region wasn't where they expected). Hide it with a click on the menu bar mark, the ⋮'s Hide Panel, ⌘W or ⌘M. The space still drags the panel.

0.84.1 — 2026-10-20

Fixed

  • A Q&A tile showed its heading twice, as the tile's first line (with its #s) and as the card's heading. With Q&A on, a first line the card shows as its first heading is left off the tile's lines, as the " Questions" marker is left off the card.

0.84.0 — 2026-10-20

Added

  • Q&A offers chips for two more shapes: a question naming short options ("point to: technical leadership or engineering management?") gets one chip each, in its own words, which Copy Answers writes as they read; a question asked with Is, Are, Should, Can, Do, Will, Has and the like gets Yes · No. Lettered options come first, then "yes/no" wording, then named options, then implied yes/no; a question naming options too long for chips gets a note only, never Yes · No.
  • Once a list qualifies, a numbered line with no "?" counts as a question too, with a note only.

Fixed

  • Numbered questions copied from a Claude Code terminal weren't read as questions: the indent every line shares is taken off, and a wrapped line joins the question above it.
  • A question with a sentence after its "?" ("…(B)? I recommend A.") didn't count towards qualifying a list.
  • "(A), or only yes/no (B)" got Yes · No rather than A · B. "I recommend A" and "Recommended: B" now mark the recommendation.
  • A lead **Label:** showed its asterisks, and a heading its #s.

0.83.3 — 2026-10-20

Changed

  • Rows and cards that open (details, posts, clips, health flags, the focus card, Since, hidden rows, "N more") skip the spring under Reduce Motion or Show fewer animations: they change in place and their contents fade in, as search does.
  • Changing scope crossfades the list over about 0.15 s. Switching tabs stays instant.
  • A refused write turns the box's border Terracotta beside the reason, with no shake.
  • A new focus crossfades onto the focus card while the old one takes its place in its group.

0.83.2 — 2026-10-20

Changed

  • Q&A's note beside the chips is a pencil at the end of their line: Dim while empty, filled in the label colour once it holds a note, which is its tooltip. A click opens the field, focused; it folds back to the pencil when it lets go of the keyboard (Return, or a click elsewhere). A question with no chips keeps its Answer field open. Copy Answers is unchanged.

0.83.1 — 2026-10-20

Changed

  • The #p0 Dock badge shows whenever the app is in the Dock, not only while the menu bar icon is hidden. Quiet Mode and the #p0 dot's switch still turn it off.

0.83.0 — 2026-10-20

Added

  • A copy whose first line is the " Questions" marker gets a still Terracotta dot beside its age until its tile is opened, and while any such copy is unopened, the Clipboard tab's icon carries the same dot. Not in the menu bar; Quiet Mode hides both. Copies without the marker never get one.

Changed

  • Q&A's Note field sits on the chips' line, filling the rest of it; a question with no chips has the field alone, and when the chips leave less than about 80 pt it drops to its own line.

0.82.0 — 2026-10-20

Added

  • Settings › General › Menu bar icon: Monochrome (as before, the default), Colour and Hidden. Colour draws the ␣ in Sage, on every ground, and the ⌘ in the menu bar's label colour; under Increase Contrast it draws as Monochrome. The #p0 dot stays beside both.
  • Hidden is offered only while Show in Dock and app switcher is on or a panel hotkey is set. If the last of those goes while it's picked, the icon comes back as it was, and Settings says so.
  • While the icon is hidden in app mode, the #p0 dot shows as a Dock badge counting the open #p0s, honouring Quiet Mode and the dot's switch.

0.81.2 — 2026-10-20

Fixed

  • Q&A dropped recommended answers left alone. A question with a recommended option now starts with it picked, drawn picked with its Sage outline kept; pick another or click it to clear it. Copy Answers includes these defaults, and is enabled as soon as any question has an answer, a default included.

0.81.1 — 2026-10-20

Changed

  • A copy that offers Q&A is hinted "Questions", in place of any other hint ("Obsidian links and tags", say).
  • An opened Q&A tile no longer shows the " Questions" marker twice: the card drops its caption when the tile's first line is the marker.

0.81.0 — 2026-10-20

Added

  • A trash glyph at each Clipboard tile's top right, shown while the pointer is over the tile and always on an opened one. A click removes the copy at once; ⌘Z brings it back. Right-click › Remove stays.
  • Q&A, on the Clipboard tab: a copy whose first line starts with " Questions", or with two or more "N. … ?" lines, offers a Q&A chip, on from the start with the marker. It shows each question as a row, with Yes · No or A · B (C, D when named) where the wording makes the shape clear, a "(recommended)" one outlined in Sage but never picked, and a one-line field. Copy Answers writes "N. answer" lines in the questions' own numbers, skipping the unanswered, without listing that copy as a new tile. Answers stay with the copy while it's listed.

0.80.0 — 2026-10-20

Added

  • Today's budget. Focus, its row, the #p0 card, every #p1 and ideas always show; the other rows fill 3 per project and 12 in all, finished rows first, then lines touched today, then yesterday, newest first. Both caps are to be tuned in playtest.
  • A project with more than its share ends with "N more", which opens in place (it then reads "Fewer") and stays open until you leave Today.
  • Projects left with no room fold into one closing "N more in K projects" line, their names under it; a click lists them.
  • Finished rows keep their slots until Squash Done; the rows it lets in arrive with a Sage tint that fades.

Changed

  • Today's progress line counts only the rows on screen. Search passes over the budget.

0.79.0 — 2026-10-20

Added

  • Clipboard's Markdown, Plain and Slack, which can't be on together, are one Format chip when a copy offers more than one, so a copy's chips fit one line and none is hidden. It reads "Markdown" while none is on, and a click turns Markdown on. While a format is on, the chip names it, with ▾, and a click opens its menu: the formats, the one on checked, then Markdown's styles while Markdown is on, then Off.

Changed

  • The Markdown chip reads "Markdown" whatever its style; the style (Standard, Bold headings, Stars, Plain links) is picked in the chip's menu, listing the ones on in Settings › Clipboard, rather than stepped by clicks.
  • Unwrap is now Reflow, since it spaces blocks as well as joining lines, in the chip, Settings › Clipboard and Services ("Space Command: Reflow"). Its note in Settings reads "Joins hard-wrapped lines and spaces the blocks between them."
  • Smart Punctuation is now Smart Quotes, in the chip, Settings and Services ("Space Command: Smart Quotes").
  • Unindent's mode is the chip's whole name while it's on: Unindent, Unindent ↳ (the indent after the first line) or Flush. Settings › Clipboard › Unindent starts at uses the same names.
  • A keyboard shortcut set in System Settings on the old Services names ("Space Command: Unwrap", "Space Command: Smart Punctuation") has to be set again on the new ones. Shortcuts set in Settings › Clipboard are kept.

0.78.1 — 2026-10-20

Changed

  • A format that can't be read says so briefly: "Unknown shape "checklist" · line 19", or "Unknown kind …", rather than listing the file's spellings; Read as… beside it offers the choices. Settings › Folders shows the same reasons.
  • The + sheet names its folder on one line, as Folders does, cut in the middle when it's long, and so does its "Creates …/.spacecommand.toml." line.

0.78.0 — 2026-10-20

Added

  • Settings › Tasks › Task files. Well-known files: a switch each for PLAN.md, BUGS.md (and ISSUES.md), TODO.md (and TODOS.md), IDEAS.md and TESTING.md (and TESTS.md, TEST.md), all on, with how each is read and how many such files your folders hold. Off, a file is read like any other note, so only its tagged lines count. They're app-wide and kept in the app; nothing is written to your files.
  • Your formats: the chosen folder's own [[tasks]] formats from its .spacecommand.toml, in the order they're tried, each with how it's read and how many files it matches. + adds one in a sheet (Files, with what it matches as you type; Read as; Items are), − removes the selected one, and a format that can't be read shows its reason and line, with Read as… to fix its shape in place. A custom pattern has Edit in File…. Every change goes through the undo journal, keeping the file's comments and layout, and ⌘Z in Settings takes it back.
  • TEST.md is read as a test file, beside TESTING.md and TESTS.md, and shows under Show › Tests. Every folder is read again at launch to apply it.

0.77.0 — 2026-10-20

Added

  • Settings › Advanced has a "Space Command for Obsidian" row: where the plugin is on ("On in 2 vaults", with how many need an update) or "Not installed", and Get Plugin…, which opens its page in your browser. It only reads each vault's plugin list; it never installs anything or writes to a vault.
  • After a note opens in Obsidian without the plugin that lands it at its line, a one-time suggestion offers to get it (Not Now, Get Plugin).

Fixed

  • A note or post set to open in Obsidian could open nothing: a vault with an older plugin (before it learned obsidian://space-command) was sent that link anyway, and Obsidian dropped it. The plugin's link is now used only with "Space Command for Obsidian", or warped-todo 0.60.0 or later. Otherwise the note opens with Obsidian's own link, or in the Obsidian app for a file in no vault.

0.76.1 — 2026-10-19

Fixed

  • A project with a plan but no health signals showed an empty health card; it reads "No health signals yet". A project with neither still reads "No health or plan yet".

0.76.0 — 2026-10-19

Added

  • The Tasks scope menu's Show submenu shows by kind or by file: All, Tasks and Ideas, then Plan, Tests and Bugs, with one checkmark across both groups. Plan lists the scope's PLAN.md items, Tests its TESTING.md (or TESTS.md) items, and Bugs its BUGS.md and ISSUES.md items, tasks and ideas alike, with the title following ("Today · Plan"). A file choice with no such file in the scope is shown disabled. A click on the open Tasks tab still steps through All, Tasks and Ideas, and from a file choice goes back to All.
  • TESTING.md and TESTS.md are read as well-known task files, as BUGS.md is, so their checkboxes count without a tag. Every folder is read again at launch to apply it.

Changed

  • "Tasks and Ideas" in the Show submenu is now "All".

0.75.7 — 2026-10-19

Changed

  • A project's health card no longer shows its current phase ("Release · 5 of 7"): the plan below lists every phase, and the progress line above sums the scope. The All projects board keeps its phase line.

0.75.6 — 2026-10-19

Fixed

  • Opening a plan phase drew its items over the phase lines below it, which then slid down into place. A phase's items now open as one block that grows down from its line, and fold back up into it, with the lines below following its edge. "✓ N phases done" opens and folds the same way. With Reduce Motion or Show fewer animations on, nothing moves: the items fade in.

0.75.5 — 2026-10-19

Fixed

  • With "Show in Dock and app switcher" on, the panel opened from the menu bar mark, its Show Panel or the hotkey could come up without the keyboard, when macOS declined to bring the app forward, so ⌘, and the other keys went to the app in front. The panel now takes the keyboard either way, and the app comes forward when macOS lets it, or on your first click in the panel.

0.75.4 — 2026-10-19

Changed

  • A project's health card shows its current phase as a line of text ("Phase 11 · Posts tab · 11 of 14") without a bar, so it no longer stacks a second bar under the progress line. The plan below still shows each phase's bar.

0.75.3 — 2026-10-19

Changed

  • Debug builds' --snapshot of a Settings tab or About draws it off screen, as the panel's does, without showing the window or bringing the app forward.

0.75.2 — 2026-10-19

Changed

  • Settings › Folders' symlinked folders header names its folder as the ignores header does: "Symlinked folders in", a folder glyph, and the folder's path.

0.75.1 — 2026-10-19

Changed

  • Settings › Folders' ignores header names its folder as a folder: "Ignored in", a folder glyph, and the path as the list above shows it (~/writing/me), rather than "Ignored in me".

0.75.0 — 2026-10-19

Added

  • Settings › Hugo Sites, after Tasks. "Treat microsites as projects" moves there from Folders as "Treat Hugo sites inside a project as projects", and its list as "Never treat these as Hugo sites", with a note that their files are still read and that a folder's ignores skip files.

Fixed

  • A tag in an image's alt text (![… #todo](…)) or in a link's target ([text](url "… #todo")) made the line an item. Both are skipped now, as code is; a link's text still counts. Every folder is read again at launch to apply it.
  • A capped list in Settings ended at a row's edge with nothing to say it held more. It now fades at whichever end has rows hidden past it.

Changed

  • The + on a group line and on an open phase is drawn at 12 pt, up from 10.

0.74.0 — 2026-10-19

Added

  • Any phase in a project's plan opens in place: a click on its line lists its open items, as the current phase does, and a second click folds it. The current phase starts open and can be folded too. Many phases can be open at once, and which are open is kept per project.
  • An open phase shows a + on hover at its line's end, which opens Add Task with that phase already picked ("to PLAN.md › Phase 17 · Testing").

0.73.4 — 2026-10-19

Fixed

  • About's Privacy link opened a missing page; it goes to space-command.ca/privacy.html, as the site's footer does.

0.73.3 — 2026-10-19

Changed

  • A copy that ends in a single newline (a copied line's own ending) no longer offers Unindent with "Spaces at the ends". Copy drops that newline quietly, with or without other chips on. Verbatim keeps it. A blank line at the end still offers Unindent.

0.73.2 — 2026-10-19

Changed

  • Unwrap spaces its blocks. It puts one blank line between a paragraph, a heading, a whole list, a quote, a table, a code fence or indented code, wherever two touch, so unwrapped text isn't dense. List items stay together, and a fence's contents are untouched. It's part of Unwrap, in the chip, Services and the hotkey alike. Line art, aligned text and diagrams get no spacing.

Fixed

  • Unwrap no longer joins a paragraph onto the heading above it.

0.73.1 — 2026-10-19

Fixed

  • Settings › Clipboard no longer scrolls as a whole tab. Its Chips list (150 pt) and its Markdown styles now scroll inside themselves, as the folder list, Not sites and Hidden already did. Its notes are shorter, and Clean Link's Restore Defaults sits beside its label.
  • Every other list in Settings that can grow now does the same: a folder's ignores and submodules and its symlinked folders (Folders), the project overrides (Open In, with "No overrides yet." when there are none), and the global ignores (Advanced). No tab scrolls unless the screen is shorter than its content with every list capped.

0.73.0 — 2026-10-19

Added

  • Settings › Clipboard › Keep copies while the panel is closed, off by default. It works only with Allow in Paste from Other Apps, since otherwise macOS would ask on every copy. With it on and no Allow, its footnote says so, with Open System Settings. Once Allow is set, the line under the Clipboard tab's list points to the switch.
  • Today shows the latest copy as one line under the focus card: its first line and its age. A click opens it on the Clipboard tab. Settings › Clipboard › Latest copy in Today is on for now, to playtest. Quiet Mode hides it.
  • Settings › Clipboard › Unindent starts at, Flush by default, since terminal and editor copies are messy. The chip still steps through the three modes.
  • Adding a folder opens it once it's scanned: its project, or Today when it holds several projects. Treat as Project opens the project too.

0.72.1 — 2026-10-19

Changed

  • Unindent tidies the ends too ("Tidy clips == happy clips"). It takes out blank lines and whitespace before the first line and after the last, and trailing spaces on each line. It's offered whenever there's any of that, not only an indent, and is on by default with Unindent by default ("Spaces at the ends" when that's all there is). Services and the hotkey tidy the same way. Verbatim still keeps every character.

0.72.0 — 2026-10-19

Added

  • spacecommand://reveal?path=&line=&text=&heading=, sent by the Obsidian plugin's Open in Space Command. It shows the panel on Tasks, in the file's project, with the item selected. The link lands by the shared rule: the given line if its text matches; else the nearest line with that text, the heading breaking ties, then the earlier line; with no match, the given line. A file in no project shows All tasks.
  • Vault notes open through the plugin when it's installed in the vault (warped-todo, or space-command after its rename: its manifest.json plus its id in community-plugins.json). obsidian://space-command?vault=&path=&line=&text=&heading= puts the cursor on the item's line. Without the plugin, notes open with obsidian://open as before.

0.71.3 — 2026-10-19

Changed

  • Today judges a task by its own line, as it already did ideas: a task shows when its line was first seen or changed in the last two days, not whenever its file changed. One edit to a busy PLAN.md or BUGS.md no longer brings every open task in it into Today. Lines already in a file when the app first read it stay old. #focus, #p0 and #p1 keep their places, and a task finished there stays until it clears, as before.

0.71.2 — 2026-10-19

Changed

  • Debug builds count what you pick: every menu item (the app's, the ⋮, each right-click menu), each row choice and each Clipboard chip, in usage.json beside the index, never sent. --usage prints the counts. Release builds have none of it, and it goes before 1.0.

0.71.1 — 2026-10-19

Changed

  • Debug builds, for the help pages' screenshots: --snapshot-part focus (or quiet) draws just that part of the panel, --finish-focus ticks the scope's focus and waits for the offer before a snapshot, and --quiet-mode turns Quiet Mode on for one run. Release builds have none of them.

0.71.0 — 2026-10-19

Added

  • A copy that's one link (http, https or mailto) gets Open as its primary, with Copy beside it. The row shows the link and its host. A copy that's one path, or a file:// URL, to something that exists gets Open too, through the usual editor order. Nothing opens on its own.
  • Clean Link: a chip that takes tracking parameters (utm_*, fbclid, gclid, mc_eid, ref_src and the like) out of a copied link. It's on by default when there's something to take out ("Link with tracking"), and Open and Copy use the cleaned link. Turn it off for the link as copied. It has a switch, a hotkey slot and an editable list in Settings › Clipboard, and a Services entry (Space Command: Clean Link).
  • Links in an opened copy's preview are clickable, in Sage, and open in the browser. A click elsewhere on the preview still switches between the result and the original.

0.70.1 — 2026-10-19

Fixed

  • A copy from Claude Code (or any terminal that copies rich text) gets Unwrap and Unindent. Its bold made it rich text, and rich text was never checked for hard wrapping or indents. Now rich text that's hard-wrapped is offered Unwrap and Unindent as plain text is, both on by default (Unindent · After the first line when the first line sits at the margin), ahead of Markdown. Other rich text, like a web page's, gets neither, as before.
  • Bold from a terminal copy no longer splits word by word ("The help"). A terminal's rich text puts each space between bold words in a plain run of its own; spaces between two bold runs now join them, and neighbouring runs that read the same are one.

0.70.0 — 2026-10-19

Added

  • A p0 card in Today. Under the focus card and progress line, a Terracotta card headed "P0" lists every open, unsnoozed #p0 task, with its project and file under each. An item under a ### heading #p0 counts. The card shows only while there are any, by the same rule as the menu bar dot. Each row ticks like any other and opens its file at the line from its project and file. Right-clicking it gives the row's menu. The items keep their rows in their groups too. Quiet Mode leaves the card alone.
  • Settings › General › Show a dot in the menu bar for #p0 tasks, on by default. Off, the dot never shows, and Today's card stays.
  • While the dot shows, hovering the menu bar mark gives a tooltip: "2 #p0 tasks", or "1 #p0: " and the task's text when there's one. To try.

Changed

  • The menu bar dot no longer counts a ### heading #p0 itself, only the open tasks under it.

0.69.3 — 2026-10-19

Changed

  • The HIG pass, settled (questions 78–85):
  • A task's right-click menu goes Complete, Focus, Priority, Snooze, then Open, Open With and Show in Finder.
  • The "may be half-written" card reads Open · Restore Original · Keep File. Keep File is the primary, since Restore Original throws away what's in the file now.
  • In app mode, Search moves from View to Edit › Find › Find… (⌘F), where the HIG puts it. ⌘F works as before.
  • Open With lists the default app, then the others A–Z, as the Finder does.
  • A post's right-click menu has View on Site, after Open, when the post's page is built (as its row shows it).
  • A group line's right-click menu has Add Task Here, which opens that group's new-task row, before Squash Done.

0.69.2 — 2026-10-19

Fixed

  • A submodule's last commit and activity now refresh as you work. A commit in a submodule is written to its parent's .git/modules/<name>/, which the watch on the submodule's own folder doesn't see. Until now its facts waited for the next full walk, so the board could show it as quieter than it was. Changes there now count as the submodule's.

0.69.1 — 2026-10-19

Fixed

  • Snooze toggles. On a snoozed item (search lists them), the row's choice and the right-click item read Unsnooze and take the #snooze tag off, and S unsnoozes as it snoozes. An item snoozed only by its ### heading offers neither, since the heading's tag is the one to remove.

Changed

  • Menus and choices follow the HIG more closely:
  • A project scope's right-click menu puts Stop Treating as Project in its own last group.
  • A site's two menus match. The Posts scope title's menu and the site name's menu are now the same: Open in , Open With, Show in Finder, and Open ; then Hide Posts.
  • In Project Info, a tag chip's menu has Redirect to first and Unlink last.
  • Every Open With menu has a separator after the default app, as in the Finder.
  • Adding a task to a file that doesn't exist yet gives Cancel next to Create, and Cancel takes you back to the text.

0.69.0 — 2026-10-19

Added

  • Quiet Mode, off by default: projects with no activity past the stale threshold (Settings › General › Health) fold away, as a quick filter. Turn it on from the header's ⋮, the menu bar mark's right-click menu, Settings › General, or a hotkey (Settings › Shortcuts, unbound). The Tasks and Clipboard scope menus and Posts' site menu end their project list with "Quiet (N) ▸"; All projects and All tasks end with a "Quiet (N)" line that opens in place; Today is unchanged. A project with an open #focus or #p0 stays out, and so does the scope you're in. A site that isn't a project goes by its newest post. ⌘F search still finds everything. While it's on, the menu bar mark hides its #p0 dot.
  • Settings › General › Show fewer animations, off by default: the app uses its Reduce Motion fallbacks (the panel fades instead of sliding) even when the system's Reduce Motion is off.

0.68.2 — 2026-10-19

Fixed

  • A link in About (Website, Help, Changelog, Privacy) no longer closes it. About stays open behind the browser, so you can come back for another link, until you press Esc or ⌘W or click its button again.

Changed

  • About's blurb is left-aligned at the Recently added card's width, sharing its left edge, rather than a narrow centred column. The icon, name and version stay centred above it.
  • Settings › Folders: "Not sites" is now "Sites not treated like projects". The .spacecommand.toml key stays not_sites.
  • The health card's "Active today" row shows the eight weeks of activity bars the All projects board shows, on the project's own scale.

0.68.1 — 2026-10-19

Changed

  • The Clipboard tab's lines say what it lists plainly: "Text copied to the clipboard shows here while the panel is open." under the list, "Text copied to the clipboard shows here, on any tab, while the panel is open." when it's empty, and, in a project scope, "Text copied to the clipboard while this project is in view shows here. Copies made while the panel is closed aren't kept."
  • sc-snapshot's comments no longer point to the removed snapshot diff; warped-command is deprecated.

0.68.0 — 2026-10-19

Added

  • Settings › Clipboard › Unindent by default, on: a copy with an indent to take out opens with Unindent on, in the mode it suggests. Off, Unindent is on only for a copy started mid-line. Flush is never on by default, since it flattens lists.
  • Unindent in the Services menu, and a shortcut slot beside its switch in Settings › Clipboard. Outside the panel it uses the mode the copy suggests.
  • The Posts tab steps through Drafts and Published, Drafts, and Published on a second click, as Tasks does with its kinds. The title follows ("w42 · Drafts"), and the choice is kept with the scope. A site card left empty says "No drafts." or "No published posts." rather than dropping out.
  • A project's plan folds its finished phases into one line at its top, "✓ 10 phases done", which opens in place on a click to list them. Phases in progress or to come keep their rows, in the file's order. A phase that just finished keeps its row, full bar and all, until the Clear finished items delay passes, then joins the fold. Whether the fold is open is kept per project.
  • A Show submenu in the Tasks scope menu (Tasks and Ideas, Tasks, Ideas) and in the Posts site menu (Drafts and Published, Drafts, Published): one choice, checked, most used first. It replaces the Tasks menu's two filter checks.

Changed

  • The scope follows you between tabs. A project goes to that project on the other tab: its site on Posts, its copies on Clipboard. An All scope, or a project the other tab has no match for, goes to that tab's All, and Tasks keeps whichever of Today, All tasks or All projects it last had.
  • While you search on Tasks, only the focus card and the results show; the project summary, health, tag choices, test folder and interrupted-write cards come back when the query is cleared.
  • Unindent's mid-line suggestion no longer applies when the copy starts with a list item or heading, whose indented lines are nesting.

0.67.0 — 2026-10-19

Added

  • Settings › Clipboard, a new tab. A switch for each transform hides its chip on the Clipboard tab; the Services menu and hotkeys stay as set. Each transform's shortcut recorder sits beside its switch, moved from Settings › Shortcuts, which now holds only the panel's hotkey. A check for each Markdown style sets which ones the Markdown chip steps through, with at least one on. Save references to moves here from Settings › Tasks. Everything is on by default.
  • An Unindent chip on the Clipboard tab, with three modes stepped by clicks: Unindent (the indent every line shares), After the first line (the indent lines 2 onward share, for a copy started mid-line), and Flush (every line to the margin, nested lists flattened), then off. The first two keep a list's nesting. It's offered when a copy has an indent to take out, and suggested, in After the first line, when only the first line sits at the margin.

Changed

  • The focus card's item shows as a row in its own section too, with its #focus chip, so you see it in context, and its section still rises to the top. Ticking it there is the same as ticking the card: the pause and the offer run once. This replaces 0.66.0's dropping of a section left empty by the card.
  • An opened copy on the Clipboard tab shows its whole text, original and result alike, scrolling in its own box once it passes about half the panel's height. The closed row keeps its two lines.
  • The Clipboard tab says, under its list and when it's empty, that copies show there while the panel is open.
  • Plain-text copies show in SF Mono, in the row and the preview, so indents and wraps show. A rich copy keeps the body font while it's shown rich.
  • The Markdown chip reads a short line that is wholly bold, standing alone, as a heading: one level below the copy's highest # heading, or ##. Bold headings leaves it bold.

Fixed

  • A hard-wrapped list copied from a terminal (each item's continuation indented further) is offered Unwrap. Unwrap joins each continuation onto its item and keeps the items, their nesting and their order.

0.66.0 — 2026-10-19

Added

  • Settings › Tasks › Clear finished items: After 1 minute, After 3 minutes, After 15 minutes, After an hour, At the end of the day, or The next day (the default, as before). The delay counts from when the app first saw the item done. A row that clears while the panel is open fades out, after the completion pause. Cleared items are still found by ⌘F search.
  • Wiki links render in rows: [[note]] shows as note, [[note|alias]] as alias, and [[note#heading]] as note › heading, styled like a Markdown link. A click opens the note in your Markdown editor when its name matches exactly one Markdown file in the same folder you granted; otherwise it reads as plain text, never a guess. An embed, ![[…]], is hidden. The file is never changed.

Changed

  • A section whose only item is the one on the focus card drops out, rather than showing an empty heading. A section with other rows still shows, raised to the top of its group.
  • A click anywhere on the focus card, its "FOCUS" and "1 of N" row included, unfolds it, as a click on its text did. The box and buttons keep their own clicks. The offer card works the same way.

0.65.4 — 2026-10-19

Fixed

  • A left-click on the menu bar mark, or the panel hotkey, no longer does nothing after a night. It decided "in front" by whether the panel had the keyboard, which goes stale after sleep, a lock screen, or another app taking the keyboard. The panel sat uncovered, and every click only brought it forward, which showed nothing. Now the click reads what's on screen: an uncovered panel hides, one covered by another window comes forward, and one on another desktop or display, or missing from the screen though the app thinks it's up, comes here. A click right after one that brought the panel forward hides it, so the mark can't get stuck. --trace-windows logs each click's decision and what it was based on.

0.65.3 — 2026-10-18

Changed

  • Ticking an item that then moves (the focus card's item into the list, a BUGS.md report into Fixed) no longer jumps from under the click. It stays put, shown finished, for about 0.6 s, then fades out and fades in at its new place, while the rows around it close the gap. ⌘Z does the same in reverse. Reduce Motion keeps the pause and the fades. A tick that leaves the row where it is just strikes it through, as before.

0.65.2 — 2026-10-18

Changed

  • The focus card stays put under the header, and under search while it's open, on every tab, with the progress line under it on Tasks; only the list scrolls beneath them. The daily prompt and the offer after finishing a focus stay put too. Other cards (health, the project summary, suggestions) still scroll with the list. An opened card taller than about a third of the panel scrolls inside itself.
  • The list's top edge fades under what's pinned above it as it scrolls, as its bottom edge does.

0.65.1 — 2026-10-18

Fixed

  • A dragged panel no longer jumps back to its edge a while later. Where it goes is decided once, when you let go: dropped within about 40 pt of the screen's left or right edge, it snaps there and docks; anywhere else, it stays where you put it, at its size. The next time it's shown, it docks to the edge it last docked to.
  • Queued focus items stay in Today's list, as rows with their #focus chip, whatever their age. Only the item on the card is left out.

Changed

  • The About window is 500 pt wide, up from 380.

0.65.0 — 2026-10-18

Added

  • Focusing adds to the queue. Focusing a task in a project that already has a focus asks where it goes: Focus Next (the primary, on Return) puts it right behind the focus on the card, and Focus Now puts it in front, with the old focus right behind it. Either way it's one write, the tag on the task's line, and ⌘Z undoes it. Nothing is untagged, a heading's #focus included. The order is kept app-side; a #focus typed in an editor ranks as before. In Today and All tasks, Focus Now leads, as a focus set today does.
  • The focus card shows its queue: "1 of 5" when other #focus items wait behind it in the scope.

Removed

  • The "Replaces … as the focus." confirmation and Move Focus, which untagged the old focus (or its heading).

Fixed

  • With no search open, every tag chip had search's Sage tint (0.64.0).

0.64.0 — 2026-10-18

Added

  • Search on the Tasks tab finds items on Today, All tasks and each project, at any age: done and rolled-off, squashed, and snoozed items too. It matches an item's text as shown, its tags, its @handles, its section heading, and its file's name, ignoring case and accents. With several words, an item must match them all. Results keep the usual groups and sections, a heading or file name that matches brings in its whole section, and the Tasks and Ideas filters still apply. While there's a query, the progress line hides; with nothing found, the list reads "No matching tasks."
  • What search matched is marked with a Sage tint, in a row's words, its chips, and section headings, and on the Posts tab and the All projects board too. A long row whose match falls past its two lines starts a few words before the match, after "…".
  • Debug --query <text> types into search for --snapshot --search.

Changed

  • Posts and the All projects board read several words as Tasks does: each word must match, anywhere.

Fixed

  • The row keys work on what search found. A click on a result, or ↓ from the field, gives the list the keyboard with search left open; a click in the field or ⌘F hands it back, and Esc goes to the field first, then closes search.

0.63.5 — 2026-10-18

Fixed

  • In app mode, the first click on the panel after switching apps works everywhere. A tap on the focus card, or on a Clipboard or Posts row, did nothing the first time, since bringing the app forward mid-click cancelled it. The click now waits for the app to come forward, then lands whole.

0.63.4 — 2026-10-18

Fixed

  • A site inside a nested project (an exampleSite in a theme that's its own repo) is named from that project's full name, so the Posts site menu sorts and indents it under its project.
  • In app mode, a click that brings the app forward counts once: the panel now activates after the click, not during it.
  • Esc folds the focus card only while one is on screen, rather than changing the saved state of a card you can't see.
  • Stop Treating as Project shows only when it can work: not for a folder that's unavailable right now.
  • Settings › Advanced › Hidden keeps its buttons at the trailing edge inside its scrolling list.

Changed

  • The scope and site menus work out nesting once per menu, and a Not sites change re-reads folders only while microsites are on.

0.63.3 — 2026-10-18

Changed

  • In the scope and site menus, a project or site without health checks (someone else's repo, or a site that isn't a project) shows a faint ring in place of the health dot, so its row lines up and doesn't look broken.

0.63.2 — 2026-10-18

Fixed

  • About and Settings open on the desktop you're on. They went back to the desktop they first opened on.

Changed

  • The scope and site menus indent a nested project further, so its dot starts under its parent's name.

0.63.1 — 2026-10-18

Fixed

  • Settings tabs fit their content instead of scrolling. The window takes each tab's height as it opens, and follows it when a tab grows, as when the microsites switch shows Not sites. Only the lists inside scroll (watched folders, Not sites, Hidden), past a set height, and a tab taller than the screen scrolls past the screen's height.

0.63.0 — 2026-10-18

Added

  • Stop Treating as Project: a folder you made a project (from a "Treat as project?" card or Settings › Advanced › Hidden) can be taken back from its name's right-click menu or its ⓘ. It returns to what it was before: a site inside its project, a suggestion, or a skipped test site in Hidden. Its files aren't touched. ⌘Z undoes a promotion or a stop just made. A folder marked in its .spacecommand.toml says so in its ⓘ instead.

Changed

  • Posts' site menu indents a nested site under its project, as the Tasks scope menu does. In both menus, a project that isn't listed no longer indents what's inside it.

0.62.3 — 2026-10-18

Fixed

  • About no longer shows, then hides, on the first click of the ␣⌘ badge after launch or after switching apps. A click that brings the app forward could arrive twice, so the badge opened About and closed it again. Each click now counts once.

0.62.2 — 2026-10-18

Changed

  • Debug builds draw the scope menu with --snapshot <png> --scope-menu, from the same menu the title pops up, so the menu can be checked without opening it on screen.

0.62.1 — 2026-10-18

Changed

  • About's mark and the panel header's badge have the site's stronger edge (1.5 units; black at 28% in light mode, white at 22% in dark), so the tile holds its shape at small sizes. The Dock icon is unchanged, since macOS draws its edge.

0.62.0 — 2026-10-18

Added

  • Microsites skip fixtures: with "Treat microsites as projects" on, a theme's exampleSite, sites under tests/, test/, testdata/ or fixtures/, and sites inside themes/*/ stay sites inside their project rather than becoming projects. Nested repos are unaffected. Settings › Folders lists these under the switch as Not sites, where entries can be added or removed, and a folder's .spacecommand.toml can add its own (not_sites = ["demo/"]).
  • Each skipped site shows in Settings › Advanced › Hidden, with Treat as Project to bring it back. On Posts, it keeps its Show Posts card inside its project.

Changed

  • The Tasks scope menu indents a nested project under its parent ("w42/themes/w42" under w42).

0.61.10 — 2026-10-18

Fixed

  • About's first open no longer flickers: the window opened at no size and grew into place once laid out. It now opens at its full size, centred.

0.61.9 — 2026-10-18

Fixed

  • The app icon's mark draws cleanly in the Dock and ⌘-Tab: ␣ was a hollow outline and ⌘'s loops were cut square, since the system's icon renderer mishandles stroked paths. Both glyphs are now filled shapes.

0.61.8 — 2026-10-18

Changed

  • The app icon, round 2: Paper in light mode (␣ in Sage and ⌘ in charcoal) and Charcoal in dark (␣ in Sage and ⌘ in cream). The mark fills about 70% of the tile, ␣ is heavier and closer to ⌘, and the glass is turned down, so ␣ draws solid in the Dock and ⌘-Tab.
  • About's mark and the panel header's badge follow the app's appearance: Paper in light mode and Charcoal in dark.

0.61.7 — 2026-10-18

Removed

  • The white-on-Sage mark (Mark.svg), unused since the panel header's badge moved to the app icon's Charcoal.

0.61.6 — 2026-10-18

Changed

  • The panel header's badge follows the app icon too: ␣ in Sage and ⌘ in cream on the charcoal tile, as in About. The menu bar mark is unchanged.

0.61.5 — 2026-10-18

Changed

  • About's mark follows the app icon: ␣ in Sage and ⌘ in cream on the charcoal tile, as on the site. The panel header's badge and the menu bar mark are unchanged.

0.61.4 — 2026-10-18

Changed

  • The focus offer, the next #focus offered once one is done, folds long text to two lines as the focus card does: a click shows all of it, and a second click or Esc folds it back. It shares the card's open state.

0.61.3 — 2026-10-18

Changed

  • The app has its icon, Charcoal, in the Dock and ⌘-Tab: the panel's warm charcoal tile with the favicon's ␣ in Sage and ⌘ in cream. It's an Icon Composer document in layers (the tile, then the mark), so macOS draws its dark, clear and tinted versions. Both builds share it.

0.61.2 — 2026-10-18

Changed

  • The focus card cuts long text to two lines, ending in "…", as rows do, with the bold lead kept in view. Clicking its text shows all of it, with the source line as before; a second click or Esc folds it back. Debug --unfold shows the card in full too.

0.61.1 — 2026-10-18

Changed

  • A nested project is named by its path from the project it sits in, its own name last: "w42/themes/w42" rather than "w42 (in w42)", or "w42/w42-theme" when it sits directly inside. More than one folder between elides to "…": "fugu/…/sites/site". Nested Hugo sites on Posts follow the same rule, and each sorts right after its parent in both menus.

0.61.0 — 2026-10-18

Added

  • App mode: Settings › General › Show in Dock and app switcher, on by default for now, puts Space Command in the Dock and ⌘-Tab, and changes at once, with no relaunch. Choosing it there, or clicking its Dock icon, shows the panel, or brings it forward when it's covered. Opening the panel (the hotkey, the menu bar mark, or Show Panel) brings the app forward, so the menu bar shows its menus while you type in it, and hiding the panel hands the keyboard back to the app you came from. Off, it's the menu bar app it was.
  • A main menu in app mode: Space Command (About, Settings… ⌘,, Services, Hide, Quit ⌘Q), Edit, View (Tasks, Posts and Clipboard as ⌘1–⌘3, and Search ⌘F), Window (Show Panel, Hide Panel ⌘W) and Help (Space Command Help).

Changed

  • ⌘1–⌘3 switch tabs, in either mode. The scope menu's first two options move to ⌥⌘1 and ⌥⌘2, shown there.

0.60.0 — 2026-10-18

Added

  • The way back: in a project's scope on Tasks, a ‹ before the title goes back to the list you came from, Today or All tasks (Today until you've left one). The title stays the scope picker.

0.59.0 — 2026-10-18

Added

  • View on Site: a post's expanded row offers View on Site beside Open, which opens its live page: the site's baseURL plus the post's path, with slug: replacing the last part and url: the whole path. It shows only when the page is built in the site's public/, so a draft that's live shows it too, and a post not built yet doesn't. On a draft, Publish stays last.
  • A group line's project name goes to that project's scope on a click, underlined on hover, and Go to Project leads the group line's right-click menu, before Squash Done. In the project's own scope the name is plain.

0.58.3 — 2026-10-18

Changed

  • The menus go by use, in groups, rather than alphabetically. The menu bar mark's right-click menu: Show Panel; Settings…; About Space Command and Space Command Help; Quit Space Command. The panel's ⋮: Hide Panel; the tab's list items (Squash Done, Clear Clipboard History); Settings…; About and Help; Quit.

0.58.2 — 2026-10-18

Changed

  • Scrolled lists keep the gap under the header: content stops at the line where the first card starts at rest, with a short fade under it, instead of running up against the header. Tasks, the All projects board, Posts and Clipboard alike, in both themes.
  • Debug: --scrolled starts every list at its end, for --snapshot.

0.58.1 — 2026-10-18

Fixed

  • Clipboard › Add as Item offers the likely file first: the last one used, then the copy's project's new-tasks file (Settings › Tasks › Add new tasks to) and its TODO.md, PLAN.md and BUGS.md, then other files with open tasks, newest first. Before, any file with a stray tagged line could lead the list, such as a help page that mentions #todo. Every file offered before still is.
  • Add as Item decides between a checkbox and a tagged line from the file's own tasks, ignoring checkboxes inside fenced examples.
  • Add as Item's text squeezes runs of spaces to one, so a copy whose blank lines held spaces no longer reads with triple spaces.

0.58.0 — 2026-10-18

Added

  • Space Command Help opens the help pages (space-command.ca/help/) in your browser. It's in the menu bar mark's right-click menu (About Space Command, Settings…, Show Panel, Space Command Help, then Quit) and in the panel's ⋮, and About's links are now Website, Help, Changelog and Privacy.

0.57.4 — 2026-10-18

Fixed

  • Clipboard's access card waits until macOS has asked once. Before that, Space Command isn't listed in Paste from Other Apps, so the card pointed at a setting that wasn't there; the first click on a waiting copy is what brings macOS's question. Set to Deny there, the tab now says so ("Space Command is set to Deny in Paste from Other Apps, so it can't list what you copy.") with Open System Settings, and no copies wait to be read.

0.57.3 — 2026-10-18

Changed

  • Clipboard's access card names the setting as macOS does: "Allow, in Paste from Other Apps, stops that for Space Command." It said "Always Allow", which System Settings doesn't offer.

0.57.2 — 2026-10-18

Changed

  • Long items fold to two lines, ending in "…", so a full BUGS.md entry no longer fills its section. Only the words are cut: tags and the priority chip sit at the end of the second line. Clicking the row, which opens its details, shows the whole text; a second click, Esc, or picking another row folds it back. Short rows look as before.
  • Debug: --unfold shows every row's whole text, for --snapshot.

0.57.1 — 2026-10-18

Changed

  • A project's Plan lines up its phase bars: the counts share one right-aligned column, as wide as the widest, in monospaced digits, so "1 / 1" and "11 / 14" no longer push their bars to different places.

0.57.0 — 2026-10-18

Added

  • Clear Clipboard History, in the header ⋮ on the Clipboard tab, empties the list in view (a project's copies, or All copies). The system clipboard keeps what you copied, but opening the panel again doesn't list it until you copy something new. A copy's right-click menu has Remove. ⌘Z brings back the last clear or removal while the panel is open. An empty list reads as on a fresh launch.

0.56.2 — 2026-10-18

Changed

  • Clipboard's Typography is now Smart Punctuation, on its chip, in the Services menu ("Space Command: Smart Punctuation") and in Settings › Shortcuts. A hotkey set for it before keeps working.

0.56.1 — 2026-10-18

Fixed

  • Clipboard › Unwrap starts each paragraph at the margin. Before, an indented paragraph (a first-line indent, or a terminal's) kept its leading spaces when another line sat at the margin. A block indented four spaces on every line is still kept as code.

0.56.0 — 2026-10-18

Added

  • A site's ⓘ has a Draft note row: the front-matter field its drafts' notes are read from, working_on unless you name another (status, say). Kept app-side, per site. The index now keeps each post's other one-line front-matter values, so every folder reads its files once more at the next launch.

0.55.0 — 2026-10-18

Added

  • Project detail. In a project's own scope, its PLAN.md is one Plan section, with → to open it: each phase is a line with a small bar and "3 / 7", the current phase in Text with its tasks listed under it, the others as their line only. The progress line still counts every phase's tasks. Lines tagged for the project from other folders gather under "Tagged #name", each showing its file underneath. Today and All tasks list plans and tagged lines as before.

0.54.0 — 2026-10-18

Added

  • "Treat as project?" suggestions show under the All projects board: "essays looks like a project", and a click says why (a PLAN.md, numbered chapters, a project: note, or a Hugo site inside another project), with Not Now and Treat as Project. Both are kept app-side.
  • Tag-link chips in a project's ⓘ: click a linked tag to Unlink it or Redirect it to another project (vaults aren't offered).
  • Settings › Advanced › Hidden lists what you put away, each with a way back: suggestions answered Not Now (Show Again), "Leave test folders out?" and "#app matches 2 projects" answered Not Now (Ask Again), hidden health checks and ignored setup files (Show Again), and unlinked tags (Link Again).

0.53.0 — 2026-10-18

Added

  • Health flags open to their evidence and choices. Click one on a project's health card. A doc that may be out of date shows when it was reviewed and how many commits came since, with Open, Add Task, and Mark Reviewed, which writes today's date to its reviewed: (or updated:, if that's the one it keeps) through the Writer, so ⌘Z takes it back. Each missing setup file is its own flag ("No LICENSE", "No CHANGELOG.md"), saying "Most projects here have one" when that's so, with Ignore (that file, this project, kept app-side) and Add Task. Activity shows its last change.
  • Add Task writes - [ ] Add a LICENSE #todo (or "Review README.md", and so on) to the project's new-tasks file, asking first if the file isn't there. A flag whose fix is on your list reads "· task in TODO.md" with Open: any open task naming the file counts, and so does the line Add Task wrote, even after you reword it.

Changed

  • The doc in a drift flag is named from the project's folder ("README.md", not "app/README.md").
  • Debug: --open-health opens every health flag, for --snapshot.

0.52.3 — 2026-10-18

Fixed

  • Settings opens in front of other windows, from the menu bar menu, ⌘, and Open Settings… alike. Before, it could open behind the frontmost app's windows.
  • Settings' window title changes with the tab as you pick it, rather than a moment later.

0.52.2 — 2026-10-18

Changed

  • Settings › Folders lists a followed folder directly under the folder it's linked from, rather than by its own path.

0.52.1 — 2026-10-18

Changed

  • About matches the site's copy: "No account, no cloud, and no tracking.", and the who-it's-for paragraph ends "If your to-do list is already a text file, this is for you."

0.52.0 — 2026-10-18

Added

  • Settings › Folders › Treat microsites as projects, off by default. On, a Hugo site inside a project (a docs/ site, a theme's example site) is a project of its own, with its own scope, instead of a "Treat as project?" suggestion. Changing it takes effect without a rescan.

0.51.0 — 2026-10-18

Added

  • Following symlinked folders. Settings › Folders lists a selected folder's symlinked folders with where each points. One pointing inside a watched folder reads "Already watched". Follow on another opens the open panel at its target; approving it watches the target as a folder of its own and adds the link to the folder's .spacecommand.toml (follow = ["shared/"]) through the Writer. A followed folder's row has a link mark in Dim and "Followed from ~/projects/shared/". Unfollow removes the folder and the entry. Removing the folder alone keeps the entry, so the link offers Follow again. The "not followed" count leaves out links that are watched or followed.

Changed

  • Debug builds take --grant more than once.

0.50.2 — 2026-10-18

Changed

  • About says who it's for, as the site now does: "Made for people who work in Markdown and plain text, with tools like Obsidian, Hugo, VS Code, and Git.", in Dim under the blurb.

0.50.1 — 2026-10-18

Fixed

  • The menu bar icon and the panel hotkey open the panel on whichever desktop and display you're on. Before, after the Mac slept, a click on another desktop could do nothing, since the panel counted as already shown on the desktop it started on.

0.50.0 — 2026-10-17

Added

  • Tag clashes ask which project they mean. When a tag's name matches several projects, Today and All tasks show a Sage card above the groups: "#app matches 2 projects. Which does it mean?" A click opens a choice per project, named as the scope menu names them, with the likeliest (the one holding most of the tag's lines, then the one in the same folder) as the primary, and Not Now. The pick and Not Now are kept app-side, by the tag. Until then the tag links to none of them.

Changed

  • A suggestion card's choices stack, right-aligned, when they don't fit on one line.

0.49.0 — 2026-10-17

Added

  • Obsidian vaults are projects. Each vault outside a project joins the projects list, sorted in by name (named "notes (vault)" only when a name clashes), and gets the All projects board's row, health (recency and doc drift; no setup-file flags), the daily focus prompt and its ⓘ, which says "Obsidian vault". A vault inside a project stays part of that project. A granted folder that is a vault is a project, as a granted repo already was.

Changed

  • Vaults never take part in tag linking: a tag matching a vault's name stays an ordinary tag, and a redirect can't point at one. A vault's group lists a line tagged for another project read-only, as every project does. A vault still gets the + only when it already has the new-tasks file.
  • Projects are worked out again from the folders already recorded each time a folder opens, so a change in what counts as a project applies without a rescan.

0.48.0 — 2026-10-17

Added

  • Settings › Folders: selecting a folder shows "Ignored in" it, the ignore entries of its .spacecommand.toml. + chooses folders inside it to leave out, and − removes the selected entry; both write through the Writer, keeping the file's comments and layout, and adding to a folder without the file creates it. Submodules named in its .gitmodules files that it doesn't ignore yet are listed in Sage with an Ignore button. Following symlinked folders is still to come.

0.47.0 — 2026-10-17

Added

  • The year row. In one site's Posts scope, its years sit over the list, newest first, in mono, wrapping as needed. A click scrolls to that year's posts, and the year picked stays lit. It shows once the posts span more than one year, and while searching it lists only the years with matches.

0.46.0 — 2026-10-17

Added

  • An @handle on a task or idea shows as a chip where it's written, in Dim on Overlay like a category tag: who it's assigned to or waiting on. The chip isn't clickable yet; filtering by person comes later.

0.45.4 — 2026-10-17

Changed

  • The index gathers the @handles your tasks and ideas mention, with how many open items name each, in place of a team file. Nothing shows them yet; how they show is still to be designed. An email address, a URL's /@user, a date such as @2026-10-17, @today, @tomorrow, @yesterday, and anything in backticks aren't handles.

0.45.3 — 2026-10-17

Changed

  • Demo world: sourdough-book's chapter 3 focus now sits in the chapter's ### Chapter 3 · Starters #todo block rather than under the file's title, so the project view shows that block once, at the top, instead of an empty heading over a second one with the same name. The teaser's screenshots are to be redrawn.

0.45.2 — 2026-10-17

Changed

  • When the focus on the card was the only open item in its section, that section's heading still shows at the top of its group, with any finished rows under it, so the set visibly rises. Before, the section wasn't listed at all.
  • The header ⋮ names what Squash Done clears: "Squash Done in Today", "Squash Done in All tasks", or the project's name.

0.45.1 — 2026-10-17

Changed

  • A list now runs down to the panel's bottom edge, and the fade where it's cut off is taller (44 pt, about two rows), so a cut-off row dissolves rather than being clipped with empty panel below it. Scrolled to the end, the list stops a small margin above the edge, and there's still no fade once the end is in view. Tasks, the All projects board, Posts and Clipboard all do it.

0.45.0 — 2026-10-17

Added

  • Squash Done takes finished rows off the list now instead of after the delay. Right-click a section's heading or a group's line for that block, or choose it from the header ⋮ for the whole list in view. Nothing is written to your files; the rows are marked rolled off, as they would be the day after next, and ⌘Z brings them back. A tagged section with every item squashed drops out. The right-click item shows only when the block has finished rows, and the ⋮ item is greyed out when nothing in view is finished.
  • The focus raises its block. Each group's focus moves its section to the top of the group, and in Today and All tasks, the group whose focus is on the card leads the list. It's ordering only: once the focus is completed, removed or moved, the block goes back to its place. With several #focus items in a group, the card's focus decides which section rises.

0.44.1 — 2026-10-17

Changed

  • A #focus line tagged for another project is that project's focus: it counts on B's card and in B's ranking, Today and All tasks included, and A's card leaves it out.
  • A row tracked in another project draws its text in Dim, so it reads as read-only before you hover. Its box, tooltip and click are as before.

0.44.0 — 2026-10-17

Changed

  • A line tagged for another project is changed only in that project. In project A, a line tagged #b (B being a project) belongs to B: there it's an ordinary row, and in A, or in a vault, it shows read-only. Its box shows whether it's done but can't be clicked, it has no actions, and a click (or Return) switches to B with the row selected. Its right-click menu offers Go to B, Open, Open With and Show in Finder. Before, it could be changed in both places.

0.43.1 — 2026-10-17

Changed

  • When ⌘Z is refused for a row that isn't in view (the file was edited since, or is gone), the panel switches to that row's view, its project in Tasks or its site in Posts, and shows the refusal there. Before, it beeped. It still beeps when no row from that file is listed anywhere.

0.43.0 — 2026-10-17

Added

  • The line picker. When a change to a task matches several lines in its file and nothing tells them apart, the row says "Matches 2 lines in TODO.md." and lists each line by number and section ("Line 12 · Methods"), then Cancel. A pick makes the same change on that line, with undo as usual; Cancel writes nothing. A change to two files at once (moving focus) still offers Open instead.

0.42.0 — 2026-10-17

Added

  • The Markdown chip has four named styles, and names the one in use: Markdown (## Heading, - bullets, * emphasis, inline links), Markdown · Bold headings (a **Heading** line), Markdown · Stars (* bullets), and Markdown · Plain links (plain heading lines, _ emphasis, links as "text (url)"). A click while it's on steps to the next style; a click while it's off turns it on. The style is remembered for the next copy and across launches, and the Services entry and the hotkey use it too. Code is left as written.
  • The Markdown chip is offered on plain copies with Markdown in them, not only on rich text.

Changed

  • Transform chips wrap to a second line when they don't fit, instead of squeezing.

0.41.0 — 2026-10-17

Added

  • Save as Reference, on an opened copy in the Clipboard tab: the copy becomes a ## section at the end of the project's REFERENCE.md, with a title you can edit (the copy's first line, to start). In a project scope it goes to that project; in All copies you pick the project first. It writes through the Writer, with undo, and asks before making the file.
  • A project's Clipboard scope lists its saved references under Saved, above its copies: each item's title over its first line. A click copies the item, and the → opens the file.
  • Settings › Tasks › Clipboard › Save references to: the file's name, REFERENCE.md by default. That file is never read for tasks, as changelogs aren't.

0.40.0 — 2026-10-17

Added

  • The Clipboard tab has a scope menu, like Tasks and Posts: All copies first, then each project. A copy belongs to the project the tab is scoped to when it's made; All copies shows every copy, and a project shows only its own. A project scope leads with that project's focus card. The tab remembers its scope, and history still lives in memory only, now up to 20 copies across all scopes.

0.39.1 — 2026-10-17

Changed

  • Posts: a draft's mark is a hollow Sage ring, so drafts and published posts differ in shape as well as colour; a published post keeps its filled Oak dot. In All sites, "Recent" reads "Published". Titles and the two-line rows are as they were.

0.39.0 — 2026-10-17

Added

  • A Terracotta dot beside the menu bar mark while any open #p0 exists (one inherited from its heading counts; snoozed and done ones don't). It follows each scan, so it comes and goes as you add or finish a #p0. The mark and dot are one image, the glyph in the menu bar's label colour, as before.

0.38.1 — 2026-10-17

Changed

  • Hovering a tab brightens its icon, with no background, so the open tab's highlight stays the only one.

0.38.0 — 2026-10-17

Added

  • Settings › General › Keep panel in front: the panel floats over other apps' windows. Off by default, when it's covered like any window you leave open.

0.37.0 — 2026-10-17

Added

  • A hotkey for the panel, in Settings › Shortcuts › Panel, unbound until you set one (⌃⌥Space is free on most Macs). It shows the panel, brings it back over other windows when it's covered, and hides it when it's in front.

0.36.3 — 2026-10-17

Fixed

  • The focus card looks the same on every tab. Showing where its item lives was remembered per scope, so Clipboard, which always shows Today's card, could differ from Tasks and Posts. Now the card has one open or closed state, kept across launches; a card open before this update stays open.

0.36.2 — 2026-10-17

Changed

  • One type scale on every tab, in five steps: the title at 16 semibold; every row's main text at 13 (tasks, ideas, posts, board names, clipboard copies and previews, the new-item fields); sentences under a row at 12; chips, text buttons and section labels at 12 medium; and ages, dates, file names and kinds at 11, up from 10.5. Mono sits a step under the text beside it (12 by body, 11 by meta), so the 10, 10.5 and 11.5 sizes are gone. About keeps its own sizes.
  • The Clipboard tab has more room: rows have 8 pt above and below, chips are larger and 6 pt apart, the preview has more padding and line spacing, and 10 pt separates the chips, the preview and the buttons. The preview's "Original" label is gone; the original shows in Dim with a Faint edge.

0.36.1 — 2026-10-17

Fixed

  • Links in task, idea and focus rows show as their text, underlined, instead of every bracket and URL: [Coconut lentils](http://…) reads "Coconut lentils". <https://…> autolinks and bare https:// URLs are links too. A click on a link opens it, the URL shows when you hover, and a click anywhere else on the row still shows its actions. Copy on the Clipboard tab links bare URLs in its HTML too.

Removed

  • Debug's --sample and the sample Today it drew, now that the teaser's demo world gives real screenshots.

0.36.0 — 2026-10-17

Added

  • The clipboard transforms are in the Services menu, for selected text in any app: Unwrap, Strip Prompts, Rich Text to Markdown, Plain Text, Typography, Verbatim Code Block, Format for Slack and Clean Up for Notion. Each changes the selection in place.
  • Settings › Shortcuts › Clipboard: a hotkey for each transform, which changes what's on the clipboard in place, ready to paste. None is set until you set one. A shortcut needs ⌘, ⌃ or ⌥; Delete clears it, and one another app holds is turned down.
  • Slack, a clipboard transform for pasting into Slack: headings become bold, **bold** becomes *bold*, *italic* becomes _italic_, and ~~struck~~ becomes ~struck~. Links stay [text](url), which Slack's message box turns into links. Offered on copies with Markdown in them.
  • Notion, a clean-up for Obsidian notes: wiki links become their text, embeds go, callouts become a bold label, and Space Command's own tags (#todo, #p1, #focus and the rest) go. Suggested for copies with wiki links, callouts or those tags.

0.35.0 — 2026-10-17

Added

  • The Clipboard tab. While the panel is open, it keeps your last 8 text copies, newest first, in memory only. Copies from password managers (marked concealed or transient) are never read. Each row is the copy itself (in mono when it looks like code or terminal output), its age, and in Sage what the app noticed: "Hard-wrapped Markdown", "Shell prompts", "Line art or aligned text", "Rich text with a link", "Straight quotes and dashes".
  • A click opens a copy: the transforms for it as chips, the suggested one already on, and the result with a Sage edge; click the result to see the original. Unwrap undoes hard-wrapping (the common indent goes, paragraphs join, lists and code keep their lines), Strip prompts drops $, Markdown and Plain are either-or, Typography curls quotes and sets dashes, arrows and ellipses outside code, and Verbatim keeps every character, as a fenced block (it can't combine with Unwrap, Plain or Typography). Rich text and HTML arrive as Markdown, links kept. Nothing changes until Copy, which writes plain text, HTML and rich text at once.
  • Add as Item turns a copy into a #todo or #idea in the file you used last (or another with open tasks), through the Writer with undo: a checkbox, or a tagged line in a file that uses those.
  • When macOS asks before each clipboard read, the tab never reads on its own: a new copy waits as "New copy, a link" (what kind, without reading it), and a click reads it. The first time, a card says so once and offers Open System Settings for Always Allow.
  • Debug: --clipboard-fixture <file> fills the tab from a JSON list (text or html, minutesAgo, optional open) instead of the clipboard, for snapshots; --light forces light mode, the mirror of --dark.

Changed

  • The leave-out card also looks for example folders (exampleSite/, examples/), and says what it found: "Leave example folders out?", or "Leave test and example folders out?" when there are both.

0.34.0 — 2026-10-17

Added

  • Test folders are offered out. A project with open tasks under tests/, Tests/, fixtures/ or Fixtures/ gets a one-time card in its Tasks scope: "3 tasks are in tests/. Leave test folders out?" Leave Out adds those folders to the project's own .spacecommand.toml ignores (made if it isn't there) through the Writer, with undo; Not Now is kept app-side. Nothing is left out until you say so.
  • A .spacecommand.toml inside a granted folder (a nested project's own) now counts for its ignore entries, which apply under that folder like a .gitignore there. Its other keys are still read only from the granted folder's own file.
  • Debug's --panel-size 380x720 fixes the panel's size for --snapshot, whatever the display.

Changed

  • Posts: each Hugo site nested in a project gets its own Show Posts card, shown only in that project's site scope, never in All sites (replacing one card per project, 0.32.0). A site with no posts at all (a theme's own config) shows nothing, and isn't listed in All sites; a project site with no posts keeps a scope while it has nested sites to offer. Sites in nested repos are named as in Tasks ("fugu (in not-a-chef)"), and nested sites by where they are ("exampleSite (in fugu)").

0.33.0 — 2026-10-17

Added

  • A repo inside a project (a submodule, or a theme cloned into a site) is a project of its own, without a "Treat as project?" step. It gets its own scope, listed right under its parent as "fugu (in not-a-chef)", its own group and focus card, and its tasks leave the parent's group. A Hugo site nested in a repo (a docs site, a theme's example site) is still only suggested.
  • Someone else's repo. A nested repo is yours when its remote has the same owner as its parent's (github.com/robotpony), when it has commits made in it here, or when it has no remote. Otherwise it's someone else's (a vendored theme): its health checks are off, and it's listed in Tasks only while it has tasks. The project's ⓘ says which and why ("Someone else's, so no health checks. nunocoracao on GitHub, no commits here.") and can flip it, kept app-side.

0.32.2 — 2026-10-17

Changed

  • Clicking the Tasks tab while it's open cycles its filters: both, then Tasks only, then Ideas only, then both. The title follows ("Today · Ideas"), as it does from the scope menu, whose filters stay. Coming from another tab, a click only switches; a second click on Posts or Clipboard does nothing.

0.32.1 — 2026-10-17

Changed

  • Where a list runs past the bottom of the panel, it fades into the panel over its last few points, so a card cut off there reads as continuing rather than ending square. No fade once the end of the list is in view. Tasks, the All projects board and Posts all do it; Clipboard doesn't scroll.

0.32.0 — 2026-10-17

Added

  • A Hugo site that's a project shows its posts without asking; Hide Posts in its name's right-click menu still hides them, and a hidden site is offered again with Show Posts. Hugo sites inside another project (a theme repo, its example site, a theme's test sites) are offered together on one dashed card per project ("not-a-chef has 8 Hugo sites inside it"); a click lists them, each with Show Posts.
  • A click on a post shows it in place: its opening paragraph, the full working_on: note, the section and full date, and its path, with Open, plus Publish on a draft. A double-click opens it in its editor. Unpublish stays in the right-click menu.
  • A double-click on any Tasks row (a task or an idea) opens its file at its line. The first click still shows the row's actions for a moment.
  • One site's card header is its control row: the name opens the live site (baseURL), and an ⓘ holds Site Info (folder, config file, content folder, live address, Recent count). In All sites the name still opens the site's scope. The name's right-click menu also opens the live site.

Fixed

  • A Hugo environment config folder (config/production, config/development) isn't counted as a site of its own.

0.31.2 — 2026-10-17

Fixed

  • Posts › a site leads with that site's own focus card (its focus, offer or daily prompt), the card Tasks shows for the project. Before, every Posts scope led with Today's focus. All sites keeps Today's card.

Changed

  • A group's focus card ranks a focus first seen today first, then priority, then the most recently changed file, then list order, as Today does. Before, a #focus just added sat behind an older #p0 focus.
  • A draft's working_on: note on a Posts row is 12 pt in Dim, so it reads as prose; the section and date stay small.

0.31.1 — 2026-10-17

Fixed

  • Debug's --snapshot waits for the first scan of a --grant folder (up to a minute) instead of a fixed two seconds, so a fresh test store no longer draws "Reading your folders…". Every --snapshot (the panel, --about, --settings) now quits once the PNG is written; before, the copy kept running.

0.31.0 — 2026-10-17

Added

  • The Posts tab. It offers each Hugo site it finds ("not-a-chef is a Hugo site"; click for Show Posts), and shows nothing for a site until you accept. All sites shows each site's drafts, then its 3 most recent posts, with More opening the site. A site (from the scope menu, its name, or More) shows its drafts, then every post by year, newest first. ⌘F searches titles, sections and notes, in the site or across all of them.
  • Each post is its title over its section and date (technique-essays (3 days ago)), with a Sage dot for a draft and Oak once published. A draft with a working_on: note shows the note instead. A click opens the post in its editor, by the usual order. The right-click menu has Publish or Unpublish (flipping draft: through the Writer, undone with ⌘Z), Open, Open With and Show in Finder. Right-click a site's name to open its folder or Hide Posts.
  • Posts come from the site's contentDir (content by default). _index.md section pages are left out, a leaf bundle's index.md counts, and files the site's ignoreFiles matches are skipped, as Hugo skips them.

Fixed

  • A Hugo site configured only by its config folder (config/_default/hugo.toml, or config.* there) is detected. Before, only a top-level hugo.* or config.* counted.

0.30.1 — 2026-10-17

Fixed

  • Add Task Here on a tagged ### section adds the task inside that section, after its last open item, or right under the heading when it has none. It's written as a plain - [ ] text, with no #todo, since the heading carries the tag; a typed #p1 still stays. The line under the field names it ("to TODO.md › Methods"), and the list offers it beside the file's ## sections. Before, it fell back to the file's default place. A section named only by its file keeps the file's default.

0.30.0 — 2026-10-17

Added

  • Add Task picks the section. Under the field, "to PLAN.md › Methods ▾" says where the line goes. Its list holds "Top of file", the file's ## headings in order, then the group's other files. In a section, the line goes after the section's last open task, or right under the heading when it has none. "Top of file" puts it before the first ##, after any title or front matter. The section last used in a file is picked next time; the first time, it's the top. A file with no ## headings works as before.
  • Right-clicking a section's heading offers Add Task Here, which opens the row with that section picked.

0.29.1 — 2026-10-17

Fixed

  • The ⓘ on a project's health card lines up with the + on the group line and the sections' → below it. It sat 4 pt further right.

0.29.0 — 2026-10-17

Added

  • A + on each group line adds a task. It opens a row at the top of the group with the field ready. Return writes - [ ] text #todo and leaves the field open for the next one, and Esc closes it. A typed #p0–#p4 is written as a tag and shows as the chip. The file shows under the field, and a click picks another of the group's files for one task. The new line goes after the file's last open task, or at its end. ⌘Z takes it back.
  • A project's new tasks go to its TODO.md. If it has none, you're asked first: "demo has no TODO.md. Create it, with this task?" A vault or a folder's loose items get the + only when they already have one.
  • Settings › Tasks, with "Add new tasks to" (default TODO.md).

0.28.1 — 2026-10-17

Changed

  • "Since" is one line now, the top row of a project's health card: "Since Oct 8th · 5 done · 2 new · 1 flag", with new flags in Amber and Hide trailing. Its height stays the same as the news grows. A click opens the done, new and flag lists in place, and they're closed again on the next visit. With news but nothing to count, it reads "files changed". A project's scope now runs focus card, progress line, health card, then tasks.
  • Review Complete is renamed Hide. It's the same action, with the same app-side baseline.

0.28.0 — 2026-10-17

Added

  • A click on a task shows its actions: the tier strip (p0–p4), Snooze, and Focus (Remove Focus on the focus). Clicking a tier sets it, and clicking the current tier clears it. Ideas get the strip too, before Snooze, Let Go and Make a Task. A click also selects the row, as the arrow keys do. A finished task still opens on click.
  • The progress line: "3 / 9" beside a thin Moss bar, under the focus card. It counts the tasks in scope, the focus card's included, and finished ones count until they roll off. Ideas and snoozed items are left out. It hides when the Tasks filter is off or the scope has no tasks, and its fill moves to each new value.

0.27.0 — 2026-10-17

Added

  • Finished items roll off. Every Tasks list, Today and project scopes included, keeps items finished today or yesterday, struck through, then drops them. Items already done when the app first read them stay out, as before. A tagged section goes once all its items have.

0.26.0 — 2026-10-17

Added

  • Tasks lists take the keyboard. ↑ and ↓ select an item, with a Sage ring. Space completes it, 0–4 set its priority (the same number again clears it), F focuses it, S snoozes it, and Return opens it, or picks it while choosing a focus. Esc clears the selection. The right-click menu shows each key.

0.25.2 — 2026-10-17

Changed

  • The "Since" card lists only health flags that are new since the last Review Complete. Flags that were already there stay on the health card, so none shows twice.

0.25.1 — 2026-10-17

Changed

  • A file holding both tasks and ideas shows its heading once, with its tasks first and its ideas below them, instead of the heading twice.

0.25.0 — 2026-10-17

Added

  • A project's ⓘ shows when its changelog isn't read for tasks, with a checkbox to read it after all.

Changed

  • CHANGELOG.md, CHANGES.md and HISTORY.md aren't read for tagged lines, since they mention tags in passing rather than track work. A format in the folder's .spacecommand.toml still reads one as it says.

0.24.1 — 2026-10-17

Changed

  • About's What's New shows features rather than tweaks: up to four recently added items, titled "Recently added". With none in the last ten releases, it shows the latest release's changes, as before.

0.24.0 — 2026-10-17

Added

  • Click an idea for Snooze, Let Go and Make a Task. Make a Task turns #idea into #todo in place, and Let Go finishes it the way completing does. Its right-click menu has the same, and no longer offers Focus: an idea becomes a task first.
  • A tag no project claims gets its own group in Today and All tasks, for tasks and ideas alike, with its chip as the header.

Changed

  • Within a group, tasks come first and ideas follow, each by priority. A file holding both lists its tasks and its ideas separately.

0.23.1 — 2026-10-17

Fixed

  • Rows render their inline Markdown: **bold**, *italic* and backtick code (in SF Mono) show formatted, with the markers hidden. Strike-through still means done, and text that isn't closed stays as typed.

0.23.0 — 2026-10-17

Added

  • A project with news leads its scope with "Since Oct 14th": what got done and what's new since you last reviewed it, up to three of each with "N more", and any health flag. Review Complete puts it away until there's news again. Opening the project doesn't count as reviewing it.
  • New tasks are now tracked from when they're first seen, as ideas already were, so a review can list them. Tasks already in your files count as older.

Changed

  • A project's name on All projects stays in full until you review it, rather than until you open it.

Fixed

  • Editing a line near a finished item no longer makes it look newly finished.

0.22.0 — 2026-10-17

Added

  • Project Info: an ⓘ on a project's health and plan card, and Project Info in the right-click menu on the project's name, open a popover with its folder (click to show it in the Finder), what it was detected as and from what, the editor it opens in, and its linked tags. Clicking the editor picks one for the project, the same override Settings › Open In lists.
  • Right-clicking a project's name in the header also offers Open in its editor, Open With and Show in Finder.

0.21.1 — 2026-10-17

Fixed

  • A second click on the mark in the panel's header closes About, as a popover's button does, instead of showing it again.

0.21.0 — 2026-10-17

Added

  • All projects shows eight weeks of activity beside each project, as small Moss bars on one scale: commits, plus files in the week they last changed. Projects sort by the last four weeks' activity, busiest first.
  • A project with activity since you last opened its scope shows its name in full; the rest are dim. Nothing counts as news on the first run.

Changed

  • Board rows put the plan or "Active 3 days ago" under the name, as in the mock.

0.20.0 — 2026-10-17

Added

  • Settings › Open In › Project overrides: give a project or vault its own editor. Its files open there ahead of every other rule, the folder's .spacecommand.toml included. + lists the projects and vaults, the row's menu changes the editor, and − takes the override away. Overrides go with --reset-all, like the other editor settings.

0.19.0 — 2026-10-17

Added

  • Only one copy of Space Command runs at a time, so two copies never index or write the same folders at once. Opening it again, from either the direct or the Store build, brings the running copy's panel forward instead.
  • The panel keeps the width you drag it to between runs. Reset panel state puts it back to the default.

Changed

  • Settings › Folders lists folders by path, ignoring case.

0.18.2 — 2026-10-17

Changed

  • The panel's ⋮ sits a little further in, where the window's corner curve starts, so it reads as inside the panel.

0.18.1 — 2026-10-17

Changed

  • A project past the stale threshold reads "Quiet since Aug 3rd", still in Amber, instead of "Active 2 months ago", on the All projects board and in its health card.

0.18.0 — 2026-10-17

Added

  • Three tabs: Tasks, Posts and Clipboard. Ideas and projects now live in Tasks.
  • Tasks' scope menu reads Today, All tasks, All projects, then each project, each with an icon, and a project's health dot. Below a separator, Tasks and Ideas filters choose what the lists show: both on at first, and one always stays on. With one off, the title names the other ("Today · Ideas"). The filters are kept between runs.
  • Ideas sit in their groups with Sage rings. Today shows #p0 and #p1 ideas, and ideas first seen in the last two days, judged by the line rather than the file. Ideas you already had count as older.
  • All projects is a first board: every project, busiest first, with its health dot and its plan's current phase or when it was last active. Clicking one opens it. ⌘F finds a project by name or folder.
  • A project's scope opens with its health and its plan's progress above its items.

Removed

  • The Ideas and Projects tabs.

Changed

  • The #idea chip is gone from idea rows, since the ring says it.

0.17.0 — 2026-10-17

Added

  • Every tab asks "What is your focus today?" when there's no focus, and Select a #todo goes to Tasks › Today to pick one.
  • Checking off another project's focus in All tasks shows its offer right there. The offer is that project's next #focus, or the next item in its file, never the focus already on the card.
  • Debug builds take --tab <name>, the open tab at launch.

Changed

  • A Debug run with --store keeps its settings and panel state apart from yours, so a test run, --reset-all included, leaves your own alone.

0.16.0 — 2026-10-17

Added

  • The panel opens where you left it: the same tab, and each tab's scope. A scope that's gone, such as a removed project, falls back to the tab's first option.
  • Settings › Advanced › Reset panel state starts the panel over, after a confirmation that says what goes and what stays. It clears the tabs' scopes, the open tab, focus prompts, offers, open focus cards and the panel's side. Folders, editor settings, other settings and the index stay.
  • Debug builds take --reset-state, the same reset at launch, and --reset-all, which also forgets every granted folder and the editor settings. Neither one implies the other.

0.15.0 — 2026-10-17

Added

  • Every tab leads with your focus: Ideas, Posts, Projects and Clipboard show Today's focus card, which you can check off there too.
  • Checking off a row that's its group's focus offers the next one, on that group's card, as checking off the card does.

Changed

  • An offered focus stays until you answer it, through leaving the view and between runs. ⌘Z or Reopen still takes it away.
  • The offered item stays in its list while it's offered, since it hasn't moved.
  • Code comments cite the docs at their new places under docs/.

0.14.1 — 2026-10-17

Fixed

  • Checking off a focus that was the last open item in its file now offers the first open item from the top of the file, instead of leaving no card.

0.14.0 — 2026-10-17

Added

  • Checking off the focus card offers the next focus, and never picks it: another #focus in the same group, then, in Today and All tasks, the next focus elsewhere, then the next open item after the finished one in its file. Make It the Focus takes it, writing #focus to its line if it doesn't have one. Not Now leaves the group without a focus, and the daily prompt stays away that day. ⌘Z on the completion takes the offer away too.

0.13.4 — 2026-10-17

Fixed

  • The focus card and the "What is your focus today?" card lead with "FOCUS" in small Leaf capitals again, as designed.

0.13.3 — 2026-10-17

Changed

  • The panel is a little wider, 380 pt from 360. The tabs sit further right, so the ⋮'s dots line up with the cards' right edge, and the scope name gets the room.
  • An open focus card, showing where its item lives, stays open between runs, per scope, until you click it closed.

0.13.2 — 2026-10-17

Changed

  • The header's › is gone, so the scope name has room: "Today" and "All tasks" no longer get cut off. Hide Panel (⌘W) now leads the ⋮ menu, and a double-click on the header's empty space, ⌘M and ⌘W still hide the panel. The tabs are a little narrower.

Fixed

  • The panel no longer stays in front of a full-screen app. It still follows you across desktops, but it stays off a full-screen app's Space.

0.13.1 — 2026-10-17

Fixed

  • Scanning this repo no longer picks up the test fixtures' tasks. A fixture's #focus #p0 line had become the repo's focus card, and the fixture PLAN.md put a #p1 item in Today. The vault note now lives in its test, and the other fixtures end in .fixture, which the scanner skips.

0.13.0 — 2026-10-17

Added

  • Four ways to hide the panel, none of which quits: a › at the header's screen-edge end, a double-click on the header's empty space (a drag there still moves the panel), ⌘M and ⌘W. ⌘W still closes Settings and About when one of them is in front.

Changed

  • Today and All tasks lead with a focus set today, from the app or typed in an editor, ahead of yesterday's focus. Then yesterday's while it's open, then priority and group activity, as before.

Fixed

  • A vault named like a project was missing from the Tasks scope menu. Names two scopes share are told apart: a vault by "(vault)", and any still alike by their folder ("app (projects/work)").

0.12.2 — 2026-10-17

Fixed

  • A second ⌘F puts search away, the way the first shows it. Esc still does too.

0.12.1 — 2026-10-17

Changed

  • While picking a focus, the card's Cancel is Dim, not Sage: cancelling is never the primary action.

0.12.0 — 2026-10-17

Added

  • Focus lives per group. Each project and vault has its own focus card, and Focus or Move Focus replaces only the one in that group, still asking first. A group with several #focus items shows one on the card: the highest priority, then the most recently changed file, then the first in the list.
  • Today and All tasks lead with one focus: yesterday's while it's still open, then by priority, then by the group with the most recent change to its task files. Today lists no other focus items as rows.
  • A ### heading #focus counts: every item under it is a focus item. Remove Focus on one of them says its focus comes from its heading, and moving focus away from one takes #focus off the heading.
  • When a scope has no focus, the card asks "What is your focus today?" with Later and Select a #todo, at most once a day per project, vault, Today and All tasks. Later puts it away until tomorrow. Select a #todo makes the next task you click the focus; its box still completes it, and Esc or Cancel stops picking. A focus seen during the day also puts that day's prompt away. Kept across launches.
  • Vaults get their own entries in the Tasks scope menu, after the projects.

Changed

  • Rows show the #focus chip again, since the card shows only one of a group's focus items. On trial.

0.11.4 — 2026-10-16

Changed

  • A section heading ends with a → that opens its file, in place of the file's path. The path stays hidden until you click the heading, which shows it underneath in mono; another click hides it.

0.11.3 — 2026-10-16

Changed

  • An Obsidian vault inside a granted folder gets its own group in Tasks, named after the vault's folder, with sources shown from the vault. Items outside every project and every vault still group under the granted folder's name.
  • /debug (tools/debug.sh) runs the app on your real folders, without --sample, so Today shows your own items. --sample stays for snapshots.

0.11.2 — 2026-10-16

Changed

  • About's blurb now names what Space Command reads. It says "your notes, plans, and TODO lists" instead of "them", on a wider measure so it still fits four lines.

0.11.1 — 2026-10-16

Fixed

  • A left-click on the menu bar mark goes to the panel again: it shows the panel, brings it forward when it's covered, or puts it away when it's in front. A right-click opens the app's menu. 0.11.0 had both clicks open the menu, which misread the decision.

0.11.0 — 2026-10-16

Removed

  • The tray popover, for now. Testing happens in the panel, and the tray comes back later (PLAN.md, Future). The Debug --show-tray flag went with it.

Changed

  • A left-click on the menu bar mark opens the same menu as a right-click: About Space Command, Settings…, Show Panel and Quit Space Command. The mark no longer shows, hides or brings forward the panel; Show Panel opens it, or brings it forward when it's covered.

0.10.1 — 2026-10-16

Fixed

  • Adding a folder that's already granted no longer adds it a second time, which showed every item in it twice. It was reachable through the Debug --grant flag, which runs before the saved folders load.

0.10.0 — 2026-10-16

Added

  • Today shows real items: your focus, every #p0 and #p1, and items in files changed today or yesterday, grouped by project like All tasks. Snoozed items stay out. With nothing to show, it says "Nothing for today." --sample still fills it with sample items in Debug builds.

0.9.1 — 2026-10-16

Fixed

  • The panel no longer stays above every other window. It comes to the front when it's shown, still without activating the app, and then other windows can cover it like any window left open. Clicking the menu bar mark brings a covered panel forward, and puts it away when it's already in front.

0.9.0 — 2026-10-16

Added

  • The Tasks tab shows real items from your folders, in All tasks or one project, picked from the title. Items group by project with the health dot, in sections by heading with the source file. A note tagged with a project's name joins that project's group, and items outside every project group under their folder. Snoozed items, ideas and finished items stay out.
  • The box completes or reopens an item in its file, through the Writer. Items finished here stay, struck through, until you leave the view. ⌘Z undoes the last change.
  • The right-click menu sets the priority (#p0 to #p4, or none), snoozes, focuses, and opens the item, in its editor at its line, with another app, or in the Finder. A click on the row opens it at its line.
  • The focus card leads the list. A click shows where the item lives. Moving focus asks first and names the item it replaces, and ⌘Z undoes both lines at once.
  • A refused write says why on its row, in Terracotta, with Open when that helps.
  • A write left half done shows as a card under the focus card, with Open, Keep File and Restore Original.

Changed

  • About's Changelog and Privacy links go to space-command.ca, where those pages will live.
  • Today waits for the next step: until then it says so, or shows sample items with --sample.

0.8.6 — 2026-10-16

Changed

  • About is laid out as designed. The mark, the name and the version, which copies on click. The site's blurb. What's New from this changelog. Website and Changelog links. Acknowledgements, which open in place. Then the copyright line.
  • About is 380 wide, grows to fit, and its type follows the panel's scale a step up.

0.8.5 — 2026-10-16

Fixed

  • The ⋮ in the panel opens the app's menu. It had kept an empty placeholder menu, set before the app handed the panel its own.
  • The ␣⌘ badge in the panel opens About, for the same reason.
  • About opens in front of other apps' windows and takes the keyboard, without activating the app.
  • Menus from the ⋮ and the title open on the first click, instead of flickering closed the first time.
  • The ⋮ and the badge no longer fire twice per click.
  • The app's menu no longer closes as it opens: the hidden main menu holds only the editing keys and ⌘W, and ⌘Q and ⌘, are answered separately.

Changed

  • The ⋮'s menu lines up with its right edge, as for a control at the end of the header.

0.8.4 — 2026-10-16

Fixed

  • ⌘Q quits the app. A main menu, never shown, now carries ⌘Q, ⌘, , ⌘W and the editing keys while the app is active.
  • The Settings window is titled with its tab instead of "Untitled".

Changed

  • The note about signed updates sits under the version in Settings › General, instead of as a footer below the group.
  • The ⋮ in the header has no hover state, like the tabs beside it.
  • tools/debug.sh (/debug) opens the app with sample items in the Tasks tab, until the tabs read real folders.

0.8.3 — 2026-10-16

Fixed

  • While a nested folder is unavailable, the folder around it covers its files, so they don't drop out of the index. When access returns (a volume is mounted, or Settings opens), the nested folder takes them back.

0.8.2 — 2026-10-16

Fixed

  • A folder granted inside another granted folder was indexed twice. It stays its own folder, so a submodule or microsite can be managed on its own, and its files are indexed once, under it; the outer folder skips it. Granting or removing the inner folder hands its files over or back.

0.8.1 — 2026-10-16

Changed

  • In an Xcode project or Swift package, only source files (.swift, .m, .h, .c, .cpp, .metal) open in Xcode. Scripts, YAML, TOML, JSON and the rest go to the code editor, as Markdown already did.

0.8.0 — 2026-10-16

Added

  • Files open in the editor that fits where they live, at the item's line when the editor can jump to one. The first match wins: the folder's .spacecommand.toml (editor = "zed"), Obsidian for Markdown in a vault, Xcode for source in an Xcode project or Swift package, the VS Code family for a project with .vscode/, a JetBrains IDE for .idea/, then the Markdown and code editors from Settings, then the system default. When one can't open the file, the next is tried.
  • Profiles for VS Code, Cursor, Windsurf, VSCodium, Zed, BBEdit, Nova, Xcode, Obsidian, iA Writer, Typora, MarkEdit and JetBrains IDEs. Zed, Windsurf and VSCodium jump to the line through their command-line tools, found on the login shell's PATH.
  • Settings › Open In: the code editor (marked Detected until you pick one), the Markdown editor, and Vault Markdown opens in Obsidian.

0.7.0 — 2026-10-16

Added

  • Settings is a native window with toolbar tabs: General, Folders and Advanced.
  • Folders lists the watched folders, with what each one holds: projects, an Obsidian vault, skipped symlinked folders, files not downloaded, and problems in its .spacecommand.toml, which opens on a click. + or a drop adds folders, and − stops watching one, leaving its files untouched.
  • The app opens its index at launch, scans and watches the granted folders, and saves where each one's history was left when it quits.
  • General: Launch at login, Appearance, the date format and when dates read as relative, the Health thresholds, and (in the direct build) Updates.
  • Advanced: the folders ignored everywhere, Honour .gitignore, and Rebuild Index.

0.6.11 — 2026-10-16

Changed

  • The tray's header says Today beside the mark, styled like the panel's title.

0.6.10 — 2026-10-16

Changed

  • Clicking the mark in the panel's or the tray's header opens About.
  • The panel and the tray are never open together: Show Panel closes the tray first.

0.6.9 — 2026-10-16

Changed

  • The panel's header no longer leaves extra space before Clipboard: the tabs and the ⋮ are evenly spaced, leaving more room for the title.

0.6.8 — 2026-10-16

Changed

  • About has no title bar buttons and closes like a popover: on Esc, ⌘W, or a click outside it.

0.6.7 — 2026-10-16

Changed

  • The ⋮ in the panel's header sits closer to the tabs, so it looks evenly spaced beside them.
  • About has the teaser site's colour stripe across its top edge, and a "Built in Canada 🇨🇦" line with the flag drawn larger.

0.6.6 — 2026-10-16

Changed

  • The cog is now a vertical ⋮ in the panel's and the tray's headers: narrower, and quieter beside the tabs. It opens the same menu.
  • The lines either side of Clipboard in the panel's header are gone; a little space sets Clipboard and the ⋮ apart from the file views instead.

0.6.5 — 2026-10-16

Changed

  • The app's menu (right-click on the mark, and the cogs) is in alphabetical order: About Space Command, Settings…, Show Panel, then Quit Space Command last.

0.6.4 — 2026-10-16

Fixed

  • A chip that wrapped onto its own line squashed that line to the chip's smaller height. Every line now keeps the text's height, and a wrapping chip takes the word before it along.
  • The suggestion card's dashes no longer shift as it opens: each edge starts its dashes from a fixed corner.

0.6.3 — 2026-10-16

Changed

  • A cog at the end of the panel's header, after the tabs and a divider, and in a slim header on the tray popover beside the ␣⌘ badge. It opens the same menu as right-clicking the menu bar mark; the panel's copy leaves out Show Panel. On trial.
  • Show Panel in that menu now only shows the panel; it no longer hides it when it's already open.

0.6.2 — 2026-10-16

Changed

  • With the panel open, clicking the menu bar mark puts the panel away instead of opening the tray. The next click opens the tray as usual. Right-click is unchanged. On trial.

0.6.1 — 2026-10-16

Changed

  • The pieces every tab is built from, ready for the Tasks tab:
  • The item row: a box for tasks, a Sage ring for ideas, and the text at full width with its tags as chips where they were written. Context goes on a faint line underneath. Done fills the box with Moss, strikes the words through and takes the colour out of the chips. #todo, #todone and #focus aren't shown as chips, since the box and the focus card already say them.
  • Section headings, with the source file trailing in mono. A tagged heading is a label with its chips, and it strikes through when all its items are done.
  • Group cards for a project, with its health dot.
  • Click to reveal, with a dotted underline on hover.
  • Friendly dates (Sep 4th, 2026; relative within 30 days, 3 days ago), in Core as FriendlyDate with its presets. Clicking a date shows the other form.
  • The dashed Sage suggestion card, which opens to show why and the choices, in HIG order with the primary in Sage.
  • Debug builds take --sample, which fills the Tasks tab with sample items to review these pieces, and --dark for dark mode.

0.6.0 — 2026-10-16

Added

  • The panel's header: the mark, the title as the scope menu, and the tabs (Tasks, Ideas, Posts, Projects, a divider, then Clipboard). Each tab remembers its scope. For now the scope menu holds only each tab's fixed options (Today and All tasks, All ideas, All sites, All projects); projects, groups, sites and folders join it as each tab gets its content. ⌘1 and ⌘2 pick the first two options. Clipboard has no scope menu.
  • Search, hidden until ⌘F: it slides in under the header (Reduce Motion: fades), scoped to the tab, and Esc puts it away. Clipboard has none. It doesn't filter anything yet.

0.5.1 — 2026-10-16

Changed

  • The menu bar mark is about an eighth smaller, with ␣ closer to ⌘. The stroke weight is unchanged.

0.5.0 — 2026-10-16

Added

  • The dockable panel: a floating, non-activating panel in solid charcoal, at the full height of the left or right screen edge. Drag it toward the other edge and it docks there; the edge is remembered. It slides in from its edge, or fades in place under Reduce Motion. Show Panel in the menu bar item's right-click menu opens it, as does the panel hotkey once it's set.
  • The tray popover shell: left-click the menu bar item. Its content arrives with Focus (Phase 9).
  • The palette as colour tokens, dark and light, and the type tokens: SF Pro Rounded for the UI, SF Mono for file names. The menu bar dot uses the Terracotta token.

0.4.0 — 2026-10-16

Added

  • The app target, generated with XcodeGen from project.yml: SpaceCommand, the direct build (Developer ID and the hardened runtime in Release, Sparkle 2.9.6, not sandboxed), and SpaceCommandStore, sandboxed and without Sparkle, which keeps building so the App Store stays possible. Both link Core and Index from the package.
  • The menu bar item: the mark in the label colour, with room for the Terracotta #p0 dot, and a right-click menu with About, Settings… and Quit. Left-click shows the same menu until the tray popover arrives. Settings and About open placeholder windows for now.
  • Sparkle points at https://space-command.ca/appcast.xml with automatic checks off until that feed exists.

0.3.1 — 2026-10-16

Fixed

  • A change to several files that fails part way no longer marks a file it couldn't roll back as never written. If another app saved that file in the meantime, the change is refused as interrupted, and the file waits in interruptedWrites for Keep File or Restore Original, like a crash. Every other refusal still means nothing was changed.

0.3.0 — 2026-10-16

Added

  • The Writer, the one place every change to the user's files goes through (IndexService.perform). It re-reads the file, finds the item by its anchor in a fresh parse, journals the original bytes, re-reads again just before writing, and writes in place: same inode, xattrs kept, and encoding (UTF-8, UTF-8 with a BOM, UTF-16 LE or BE), line endings and the final newline exactly as they were. Text that wouldn't encode back to the same bytes is refused. The file is re-indexed straight after, so the FSEvents echo of our own write finds nothing new.
  • Refusals that leave the file untouched: the item or file is gone, several lines match (with the candidates, and itemOnLine to write the one picked), an evicted cloud file, a change that doesn't apply, an unavailable root, and a file another app kept saving (retried three times first).
  • One change can touch several files (moving focus): all of it is written or none, and it undoes as one step.
  • Undo from the journal (lastUndoable, undo, undoLast). A file as we left it gets its original bytes back exactly; one edited since gets only our lines back, if they're still there as written, and is refused otherwise. Undos aren't themselves on the undo stack. The journal keeps the last 200 changes.
  • Crash recovery at launch: a write that never happened is dropped, one that finished is kept (and undoable), and one cut off part way is offered as Keep File or Restore Original (interruptedWrites, resolveInterrupted).
  • New files (FileChange.Kind.create), never overwriting, with any missing folders made. Undo removes the file, and the folders it made, only if the file is unchanged.
  • Front-matter changes (Publish, Unpublish, any key) and a general text-in, text-out change, for .spacecommand.toml later.

0.2.3 — 2026-10-16

Changed

  • A Hugo site nested inside another project is suggested too, like a nested repo, instead of being detected. Promoting it makes it a project. On ~/projects, utilities/scorekeep/site is now a suggestion: 35 projects (35 repos, 1 Hugo site) and 2 nested suggestions.
  • sc-snapshot --projects prints a one-line summary of projects and suggestions to stderr.

0.2.2 — 2026-10-16

Changed

  • The index notes when it first sees each item done, for roll-off (IndexedItem.doneSince). The note is app-side, keyed by anchor, kept through Rebuild Index, and never written to the file. Reopening an item drops it, so finishing it again restarts the clock. An item already done the first time its file is read is flagged (doneBeforeFirstRead), since the app can't know when it was finished.

0.2.1 — 2026-10-16

Changed

  • A git repo nested inside another project (a theme inside a site) isn't a project by itself any more. It gets a "Treat as project?" suggestion that names the project it's in, and promoting it makes it one. ~/projects now reads as 35 projects, down from 36.
  • The index counts each root's symlinked folders, which it skips, for Settings › Folders (RootInfo.skippedSymlinks). Ignored links aren't counted.

0.2.0 — 2026-10-16

Added

  • SpaceCommandIndex, the disposable cache and everything that reads the disk, in GRDB. Cache tables (scan state, folders, files, items, projects) are kept apart from app-side state (grants, promotions, dismissed suggestions, tag-link overrides, drift docs, hidden health checks, UI state keyed by anchor, and the journal's table), so Rebuild Index never loses a grant or an override.
  • Root access: security-scoped bookmarks for granted roots, refreshed when stale and followed when a folder moves; access is held while a root is watched.
  • Watcher: one FSEvents stream per root with file-level events, replay from the saved event ID (checked against the volume), and a full walk when history is lost or the root's config changed while closed.
  • Scanner: prunes the global ignores, .gitignore (git's rules, ! included) and a root's ignore entries; checks inode, mtime and size, then the hash, before parsing. Reads .md, .markdown, .txt and whatever a custom format names, in UTF-8 or UTF-16 with a BOM. Evicted cloud files are never read, and keep the items read before eviction.
  • Projects: detected by .git or a Hugo config (config.* only beside content/, archetypes/ or themes/), promoted in the UI or .spacecommand.toml, and "Treat as project?" suggestions from a PLAN.md, three or more numbered chapters, or a project: note. Tags link by slug; a slug matching two projects links to neither and asks.
  • Health: recency from .git/logs/HEAD and file changes (stale after 30 quiet days, a setting), doc drift on root-level docs or a chosen one, and missing setup files on git projects.
  • IgnoreRules in Core, and Health.recency.
  • sc-snapshot --projects <folder> scans a projects root with the index and fills projects, taskFiles and the repo item rows, and tools/snapshot-diff.py compares them.

0.1.0 — 2026-10-16

Added

  • SpaceCommandCore, the pure Swift core, as a Swift package with Swift Testing tests and a fixture corpus.
  • Tags: found at the start of a line or after a space, never inside fenced code, inline code or front-matter. #123, URL fragments and wiki-link headings aren't tags. The vocabulary includes plural aliases (#todos, #ideas, ...) and #principle.
  • Parsers for every task source: tagged headings and the items under them, tagged lines (strike-through counts as done), PLAN.md phases, checkbox-list and header-report task files, front-matter (YAML and TOML), and custom formats from .spacecommand.toml (a glob to a shape, or a regex with named groups).
  • Mutations as text in, text out: complete and reopen, priority, snooze, focus, Make a Task, and the draft: and reviewed: front-matter keys. Completing writes no date. Line endings, the BOM and the final newline are kept exactly.
  • Anchors and the location cascade: same text under the same heading, same text anywhere, same neighbours, then a tie-break or a refusal with the candidates.
  • The model: Item, Project, Anchor, HealthSignal.
  • sc-snapshot and tools/snapshot-diff.py, to compare Core's reading of a folder with warped-command's.