Skip to content

Heft 0.4.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 00:17
· 87 commits to master since this release

The command line learns new tricks and better manners, and a proposal points at the words that moved.

Added

  • A proposal marks which words moved, not only which lines. A word edited in place is marked at the letter that changed, a word replaced outright is marked whole, and two lines with too little in common are left alone rather than painted end to end.
  • heft capture <vault> "text" adds one timestamped line to the inbox note, or to today's daily log with --daily. It is the one thing an agent writes straight into a note instead of proposing, because adding a line cannot disturb what is already there. The same write Spotlight capture has always made.
  • Settings ▸ Capture ▸ Review agent captures turns those captures into proposals, so nothing an agent does reaches a note until you accept it. Off by default, and it governs the command line only: your own captures from Spotlight and Shortcuts always land straight in.
  • heft read --lines N-M, for a note too long to pull whole.
  • heft find --files answers which notes matched and how often, rather than which lines.
  • --json on find, files, outline, links, backlinks and tags, because a path can hold a quote and a column cannot say so.
  • heft version, which also answers to --version and -v.

Changed

Four commands stop doing what they used to. Each wrote without review, and each now names what to use instead.

  • heft rename needs --now. It repoints every link to the old name the moment it runs, and heft propose <vault> <path> --move <new> was already the reviewed form of the same thing.
  • heft export refuses when the output file already exists, unless you pass --force. The path is arbitrary and outside the vault, so a mistyped one used to overwrite whatever was there.
  • heft propose refuses a whole body for a note that was never read, as it already did for one that changed since. Read it first, or send anchored edits with --replace. A note that is new or empty still needs no read.
  • heft daily refuses a date it cannot read instead of writing today's note. A shell variable that did not expand used to leave a templated note on a day nobody asked about.

Fixed

  • heft find said nothing when it stopped at 40 matches, so a cut list read as the whole answer. It now says how many it withheld, and takes --limit.
  • Every verb resolves a note's name the same way. heft outline rejected Folder/Note where heft read took it, and neither said which spelling it wanted.
  • heft export takes its flags in any position. Written before the output path, a flag became the output path.
  • heft files lists attachments as well as notes, which it always did and never said. --notes narrows it to Markdown.