next: record what the git work found, and what it left open

This commit is contained in:
Sam
2026-11-12 20:38:49 +11:00
parent c419de5b48
commit 4be72dae2e

View File

@@ -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 `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 — 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. `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`.