Skip to content

v3.18.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 15:39
· 7 commits to main since this release
3035e95

fastf 3.18.0: todo owners, the hat, fastf agent, the desk and fastf peek

Nothing about an existing project changes. Every PROJECT_INFO.md,
config.toml and template works untouched, and no command, flag or file format
was removed. A todo nobody dates or gives an owner is written as it always was.

This release is for one person keeping track of many projects at once, with
agents working inside them. A todo can now carry an owner: a name you write
for yourself to say who the todo is with, such as an agent or a client. From
that and the folders alone, fastf answers which todos are yours, which are
with an agent or a client, and which projects have gone quiet.

Todos carry their owner and their dates

A todo's line may end in @owner, added:<stamp> and done:<stamp>, each a
plain token a person or an agent can write by hand.

- [ ] colour grade @claude added:2026-10-12T14:02:11Z
- [x] shoot @sales added:2026-09-20T10:00:00Z done:2026-09-28T18:30:00Z
  • fastf todo add writes added:; todo done writes done: and --undo
    removes it; todo edit keeps the tokens; todo owner <id> <n> <name> (or
    --none) changes the owner; --owner and --mine on todo add set the
    owner as the todo is written. todo list shows the owner and the day.
  • In the pane the owner and the day sit at the row's right, and O on a
    todo
    sets its owner: an owner the list already names, the hat, nobody, or
    a name you type.
  • A template's starter todos may end in @owner, so a new project starts
    with those owners on those todos.
  • fastf journal --todos lists every ticked todo (and with --todos=all,
    every added todo) between the notes, each row saying which it is; the JSON
    rows gain kind.
  • Only the tokens at the end of the line count. A @word in the middle of
    the text stays text.
  • A line without these tokens is a todo without an owner and without dates,
    and nothing fills them in: fastf does not know when it was written.

The hat

fastf hat sales sets the hat to @sales. The hat is the owner name you
use for your own todos: the app's header shows it, the desk lists the todos
with that owner under yours, todo add --mine uses it, and FASTF_HAT sets it
for one shell without writing the config file. Nothing else reads it; the hat
never changes what a file says.

fastf agent

agent = "claude" in config.toml (or fastf config set agent claude) names
one shell line, the shape a post-create command has. fastf agent <query>
runs it with the project as its working folder and FASTF_PROJECT_PATH set,
in the terminal you are in, so you never cd. From a desktop launcher it opens
a terminal window running the agent. In the app, x opens a new window
per agent so the desk stays up, and X runs it in the same terminal: the
app steps aside until the agent exits and re-reads the pane when it comes
back. fastf keeps no list of running agents: what the agent wrote in the
folder is its status.

The desk

w in the app, and fastf desk on the command line: every project as
one line, grouped by the owner of its next open todo. The next open
todo is the first unticked todo in the file. The groups are yours (the
hat), @claude, @acme, no owner (the next todo has no @name) and
no open todos. Within a group the project nothing has written in for the
longest comes first. Each line says how long the project has been quiet,
active when a program is working in it right now (Linux, from the process
table), and ⚠ when the next todo has an owner, nothing has been
written in the folder for three days, and no program is working in it. No due
dates, no priorities, no lifecycle to set.

  • f shows one group alone, F or Esc every group again; s/S change the
    order within a group (quiet, recent, name, id); z puts the cursor on a
    project picked at random. The desk's pane is the library's pane and every
    project verb works on the row under the cursor. Esc steps back to the
    library; w too.
  • The records are read once each, a base at a time, and checked against the
    disk every ten seconds while the desk is on screen, so a todo an agent
    ticks moves its project to the right group without a keypress.
  • On the command line: fastf desk --mine, --owner claude, --no-owner,
    --no-open-todos, --quiet 7, --random, --order, --as <hat>,
    --json. On a terminal it opens the app on the tab; --plain prints the
    list.
  • A bare fastf opens on the desk when it was quit there; the session
    remembers the group, the order and when the desk was last open.

What is going on in a project, without opening its folder

  • fastf peek <query> prints one project's summary: the next open todo
    and its owner, the todo counts, which programs are working in the folder (Linux),
    the newest file under it, the repository's head (read from .git as files,
    no git started), the last note, and how long the project has been quiet.
  • The pane gains a glance section ahead of the variables: last moved
    (the newest file under the folder, from the size scan; a dot-folder such as
    .git is skipped), head, and working (the programs whose working
    folder is inside the project, checked once a second while the pane shows
    it; Linux).
  • L gains a journal page: every dated note and every todo added or
    ticked across every project, newest first, with a rule where the desk was
    last open, so what happened since you last looked is above the rule.

Smaller things

  • The header keeps all three tabs down to forty columns.
  • fastf show --json carries the todos' owner, added and done_at.
  • The settings screen has hat and agent rows beside editor.

Full key list: docs/app.md;
the desk: docs/cli.md.

What's Changed

  • packaging: bump both AUR packages to 3.17.1-1 by @cristocola in #124
  • ci: bump actions/upload-artifact from 7.0.1 to 7.0.2 by @dependabot[bot] in #126
  • ci: bump dtolnay/rust-toolchain from 02cb101ec7c40f2c49e1d9714d64511d8e1b74de to e2a55d2ffb04f378e9626c28d38b36d230d1e12f by @dependabot[bot] in #127
  • ci: bump actions/download-artifact from 8.0.1 to 8.0.2 by @dependabot[bot] in #128
  • fastf 3.18.0: todo owners, the hat, fastf agent, the desk and fastf peek by @cristocola in #129

Full Changelog: v3.17.1...v3.18.0