diff --git a/docs/NEXT.md b/docs/NEXT.md index 39a3ded..2e17df1 100644 --- a/docs/NEXT.md +++ b/docs/NEXT.md @@ -184,3 +184,32 @@ After a reboot TUIOS restores a session with a fresh shell in every pane and kee `board` now checks the pane's process instead of trusting the name. What is still missing is a single command that repairs this project after a reboot without a person looking at each pane — `board` is that command now, and it does rebuild, but nothing runs it automatically. + +## Done: git is a gate, a tab and a warning — 2026-11-12 + +Researched first: Paperclip has no CLI git commands, does not check that a project folder is a +repository, and has no hook for `git init`. What it does have is a git scan of every execution +workspace (`GET /api/execution-workspaces/{id}/close-readiness` → `git{}`), which is the only +place branch, dirtiness, distance behind the base and merged-ness are known. Its web screen +("Git status", "Source control") is per task worktree, not per project folder. + +So the three pieces were built round that: + +- **the gate** in `bin/office`: Y makes the repository and a `.gitignore` containing + `.paperclip/`, stages everything and stops before committing; N creates a `local_path` + project; `--commit-all` does both. Nothing ever commits on the person's behalf. +- **the `git` tab** in `Project>project`: this folder read with git, then Paperclip's scan of each + worktree. `t` opens lazygit, which is also what edits `.gitignore` (files panel `i`). +- **the warning line** in every pane while the folder cannot hold a worktree. One line, drawn once + per screen by a wrapper model, taking the title line rather than the key hints. + +Two bugs were found and fixed on the way: a bare `4` meaning "the projects tab" (now named +constants), and the base branch being hardcoded to `main`, which would have broken every project +on a repository whose default branch is `master`. + +Still open, and now visible in the git tab rather than invisible: + +- a project's worktree policy cannot be changed after creation, so a `local_path` project stays + that way; the tab says so plainly but offers no conversion. +- the banner is read once at pane start; a folder fixed in another pane keeps its warning until + `R`.