Skip to content

v0.4.0

Choose a tag to compare

@jperdior jperdior released this 06 Sep 12:27
· 34 commits to main since this release
dd20f8b

The host contract is committed, and found out from the host's own docs

LOOP_GATES, LOOP_CLEAN_WORKTREE, LOOP_SIZE_EXCLUDES and LOOP_DENIALS_EXTRA are facts about the repository, the same for everyone who builds in it. They move out of the gitignored .loop/loop.env into a committed .loop/host.env, reviewed like any other file.

  • The loop reads host.env before loop.env; the shell still overrides both. --dry-run reports where the gates came from.
  • There is no default gate. A repository that declares none is refused at pre-flight, naming the file.
  • The agent finds it out. /ship gains a step 0: when host.env is missing or names no gates, it reads the host's AGENTS.md / CLAUDE.md, derives the four values from what the host documents, shows each line beside the sentence it came from, and commits the file on the feature branch. /run-gates derives the gates the same way when the file is missing and says so; it never invents a default.
  • loop.env keeps what is personal: the two sandbox credentials, LOOP_MODEL, LOOP_SANDBOX, the bounds.
  • reclaim-worktree.sh and unit-size.sh read host.env first; install.sh vendors host.env.dist and leaves host.env alone.

Upgrade from 0.3.0

Move the four host lines from .loop/loop.env into a committed .loop/host.env (format in .loop/host.env.dist), or let the next /ship write it. Until then pre-flight refuses with the file's name.

PRs #7, #8.