Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 10:53
· 42 commits to main since this release

fold 0.2.0

You can use fold without Git and record your own edits alongside agent work. You can also require project checks before proposals and integration, and let reviewers fix issues within the agreed task scope.

Git and your changes

  • Start a project with fld init. To use Git, run fld init --with-git in a new folder, an existing fold project, or an existing repository. For an existing repository, fold starts from HEAD and keeps its history.
  • Edit the project folder, then run fld record to save your changes as one revision of main. Conflicts with agent work appear in Needs you.
  • Run fld stash to put unrecorded changes aside, fld stash list to list them, and fld unstash to restore the newest stash. Resolve any conflict markers, then run fld record.
  • Manage remotes with fld remote add <name> <url> [<branch>], fld remote remove <name>, and fld remote list. When you have one remote, fld push and fld pull can use it without a name.
  • Put local ignore rules in .fold/exclude. They apply to the project folder and agent workspaces. Git reads the same rules when enabled.

Project checks

  • Define build, test, and lint commands in fold-checks.toml.
  • Proposal checks run in the task workspace or review checkout before fold creates an agent's proposal version.
  • Checks with stage = "integration" run on the merged result before it reaches main. fold processes integrations one at a time.
  • A required check failure blocks the proposal version or integration. Use required = false to report a result without blocking. The files patterns select checks by changed path, and timeout limits how long they run.
  • The proposal page shows check results and queued integrations. Changes to the checks file require human review. An invalid checks file on main appears in Needs you.

Review and agent work

  • Reviewers can fix issues within the agreed task scope and submit a version under their own name. They can approve it after its checks pass. Product decisions and work outside that scope return to the author.
  • When a proposal changes, the review shows its changes since the last reviewed version, with main's intervening changes kept out. fold suggests a change review or full review. The review lead can choose another scope and give a reason.
  • During human review, you can edit a proposal file in the web app. The new version keeps existing agent approvals until you send it for review again. You must approve the edited version yourself.
  • Leads assign task and review claims when they start workers. Task workers stop when their tasks finish.
  • The main agent can map existing code into areas and, with your approval, make changes directly on main.

Improvements and fixes

  • The project folder follows main with or without Git. fold preserves your unrecorded changes and waits when they conflict with main.
  • With Git enabled, fold writes revisions of main as commits using your Git identity. It also records commits you make yourself.
  • A Git branch switch, reset, or stash pauses folder updates and shows a recovery command.
  • Needs you shows pending folder changes, conflicts with main, unstash conflicts, Git branch changes, and invalid checks configuration.
  • Diffs, file views, and Markdown code blocks highlight every language Shiki provides. Commands appear as inline code, and the web app includes a favicon.
  • fold asks for your name once per device. When creating a Git repository, it asks for a Git name and email only if Git has none.
  • fold writes its instructions into the file Claude Code reads. The first fld claude or fld setup asks to add fold to your Claude Code user configuration.
  • When you delete a project's .fold folder, fold closes the project and removes it from the registry. You can initialize the folder again with fld init.
  • Plain fld init rejects folders inside another Git repository, even when Git is not installed.

Breaking changes

  • Replace fld init --from-git with fld init --with-git. Plain fld init creates a project without Git.
  • Replace fld remote set with fld remote add <name> <url> [<branch>]. To change a remote, remove it with fld remote remove <name>, then add it again.
  • Only the main agent and area leads can claim tasks. Only the main agent and review lead can claim reviews. Workers receive their claims through start_worker.
  • Rename batch_reviewer to reviewer in .fold/config.toml and custom role files in .fold/roles/.
  • Project history starts at r0: an empty tree for a new project, or the existing Git commit at HEAD.

Install or upgrade

  • Install or update fold:

    curl -fsSL https://omukk.dev/fold/install.sh | sh
  • The installer puts fld in ~/.local/bin. Set FOLD_VERSION to choose a release or FOLD_INSTALL_DIR to choose another folder.

  • Binaries support Linux x86_64 and aarch64, and macOS 13 or newer on Apple silicon. Linux binaries are static. The web app comes with fld.

  • Use Claude Code 2.1.299 or newer and sign in before starting fold. Projects with Git require Git 2.36 or newer.

Full changelog