office: --new creates the Paperclip project, --remote adopts a folder on another machine
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
---
|
||||
type: session
|
||||
id: session.paperclip-harness.paperclip-harness-new-existing-dry-runs-clean-test-plan-pi-v
|
||||
title: paperclip-harness: --new/--existing dry runs, clean test plan, Pi version dry-run on .13/.27
|
||||
status: active
|
||||
source_of_truth: false
|
||||
freshness: current
|
||||
last_reviewed: 2026-11-11
|
||||
tags:
|
||||
- pack/paperclip-harness
|
||||
- agent-memory/session
|
||||
- paperclip-harness
|
||||
- bin/office
|
||||
- dry-run
|
||||
- tuios
|
||||
- clean-tests
|
||||
- nix
|
||||
- pi
|
||||
- nixos
|
||||
---
|
||||
|
||||
# paperclip-harness: --new/--existing dry runs, clean test plan, Pi version dry-run on .13/.27
|
||||
|
||||
Discovery snapshot from a rich turn on the paperclip-harness repo (path `~/paseo/projects/paperclip-harness`, remote `https://gitea.lab.audasmedia.com.au/sam/paperclip-harness.git`, pushed as commit `08a4b4e`, prior `d2cf643`).
|
||||
|
||||
Harness CLI: `bin/office <folder> --new <name>` (new tonight) creates a Paperclip project, its workspace and task-worktree policy, writes `.harness/`, creates a TUIOS session and builds eight panes. `bin/office . --project <name> --session <name>` attaches an existing project without creating one. Eight panes named: board, agents, work, new, project, shell, repair, and one more per the panel list shown in the walkthrough.
|
||||
|
||||
Dry-run behavior discovered: a dry run still creates the TUIOS session (it appeared in the session list and had to be killed with `Killed session 'dryrun-alpha'`), and it refused when the Paperclip project name did not match: `refused: no Paperclip project matches '(dry run)'`. Dry-run output lines: `would create a Paperclip project ...`, `would write /tmp/dryrun-alpha/.harness/harness.toml`, `would create or reuse session 'dryrun-alpha' and build eight panes there`, `dry run: nothing was written`.
|
||||
|
||||
Test plan written to `docs/CLEAN-TESTS.md`: Test 1 = brand-new folder (`git init -b main`, README, commit, then `bin/office ~/paseo/projects/test-alpha --new test-alpha`); pass = Repair all pass, Shell shows the right folder, Board empty, `R` restores all eight panes, then a task end-to-end producing STATUS.md on main, task done, cost visible in Project>costs, nothing typed into a terminal after step 2. Test 2 = existing repo attached as `harness-repo` in its own session (must not rebuild the working `paperclip-harness` session); pass = only new files under `.harness/`, both projects listed in Project>project, board empty, create a README task, review the diff and cancel with `c` without merging, `git log` proves main untouched.
|
||||
|
||||
Pi version investigation (no system touched; `/etc/nixos` copied to `/tmp/nixos-dryrun`): host `.13` nixpkgs lock 2026-07-29 → 2026-11-07 yields pi **1.5.0**; same for `.27`; host `.51` is on a 2026-09-26 pin and has pi 0.87.1, so .51 is ahead, not a target to copy. Bumping the lock does not give 0.87.1. On `.13` the dry-run build fails on a real migration: `programs.zsh.initExtra no longer has any effect; please remove it. Use programs.zsh.initContent instead.` Options presented: (1, recommended) leave .13/.27 on 0.82.1 since they work and the harness is tested against them; (2) pin only Pi to a newer version via a small overlay, contained and dry-runnable; (3) full lock bump plus `initContent` fix tested on .13 first. Open question awaiting the user: which option, and whether to walk the clean tests together.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Confidence: 85%
|
||||
- Reason: Rich discovery snapshot with concrete CLI behavior, test plan, host versions, and an open decision; useful context for a future agent.
|
||||
|
||||
## Related
|
||||
|
||||
- [[packs/paperclip-harness/00-system/pi-agent/memory-manifest|Memory Manifest]]
|
||||
|
||||
## Related learned memories <!-- same-turn-2026-11-11 22:37:01 -->
|
||||
|
||||
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|bin/office dry run still creates the TUIOS session and refuses on project-name mismatch]]
|
||||
- runbook: [[packs/paperclip-harness/70-runbooks/tmp-deployment-operations|clean end-to-end acceptance tests for paperclip-harness (`docs/CLEAN-TESTS.md`)]]
|
||||
- action: [[packs/paperclip-harness/40-actions/2026-11-11-paperclip-harness-added-new-onboarding-clean-test-doc-and-pi|paperclip-harness: added `--new` onboarding, clean-test doc, and Pi dry-run analysis; pushed 08a4b4e]]
|
||||
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-new-existing-dry-runs-clean-test-plan-pi-v|paperclip-harness: --new/--existing dry runs, clean test plan, Pi version dry-run on .13/.27]]
|
||||
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-root-2026-11-11-22-37-01|Rich discovery: root 2026-11-11 22:37:01]]
|
||||
- context: [[packs/paperclip-harness/20-context/paperclip-harness|root]]
|
||||
@@ -0,0 +1,147 @@
|
||||
---
|
||||
type: session
|
||||
id: session.paperclip-harness.rich-discovery-root-2026-11-11-22-37-01
|
||||
title: Rich discovery: root 2026-11-11 22:37:01
|
||||
status: active
|
||||
source_of_truth: false
|
||||
freshness: current
|
||||
last_reviewed: 2026-11-11
|
||||
tags:
|
||||
- pack/paperclip-harness
|
||||
- agent-memory/session
|
||||
- autolearn
|
||||
- rich-discovery
|
||||
- repo/root
|
||||
---
|
||||
|
||||
# Rich discovery: root 2026-11-11 22:37:01
|
||||
|
||||
Sanitized rich discovery snapshot captured automatically from the completed turn.
|
||||
|
||||
|
||||
## Source paths observed
|
||||
|
||||
- `nix-community/home-manager/82ce401aa350502897c3f2e85f384d61cd3b0b6d`
|
||||
- `NixOS/nixpkgs/0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5`
|
||||
- `NixOS/nixpkgs/f4a03c008967841f2a0b3cb7c436fc6fc31671f6`
|
||||
- `nix/store/lslq5ihfblb905y8jazs15isad5zh97z-source/home.nix`
|
||||
- `tmp/dryrun-alpha/.harness/harness.toml`
|
||||
- `gitea.lab.audasmedia.com.au/sam/paperclip-harness.git`
|
||||
- `paseo/projects/test-alpha`
|
||||
- `paseo/projects/paperclip-harness`
|
||||
- `home/sam/paseo/projects/test-alpha`
|
||||
|
||||
## Final answer snapshot
|
||||
|
||||
Steps below, and the dry runs are done.
|
||||
|
||||
## Test 1 — a project that does not exist yet
|
||||
|
||||
```sh
|
||||
mkdir -p ~/paseo/projects/test-alpha
|
||||
cd ~/paseo/projects/test-alpha
|
||||
git init -b main
|
||||
printf '# test alpha\n' > README.md
|
||||
git add . && git commit -m "initial commit"
|
||||
```
|
||||
|
||||
Then **one command**:
|
||||
|
||||
```sh
|
||||
cd ~/paseo/projects/paperclip-harness
|
||||
bin/office ~/paseo/projects/test-alpha --new "test-alpha"
|
||||
```
|
||||
|
||||
`--new` is new tonight: it creates the Paperclip project, its workspace and the task-worktree policy, then writes `.harness/`, creates the session and builds all eight panes. Expected:
|
||||
|
||||
```
|
||||
project: test-alpha created (…)
|
||||
folder: /home/sam/paseo/projects/test-alpha
|
||||
session: test-alpha
|
||||
wrote …/.harness/harness.toml
|
||||
wrote …/.harness/check.sh
|
||||
wrote …/.harness/NOTES.md
|
||||
board created Board
|
||||
… eight panes
|
||||
```
|
||||
|
||||
Then, in TUIOS's session switcher (or `tuios attach test-alpha`):
|
||||
|
||||
1. `Repair>repair` — every check passes.
|
||||
2. `Shell>shell` — the box says the folder is `…/test-alpha`.
|
||||
3. `Board>board` — "no tasks in this project".
|
||||
4. Press `R` once — all eight panes come back, still on `test-alpha`.
|
||||
|
||||
Then one task end to end: `New task>new` → title `Add a STATUS.md with one line`, description `Create STATUS.md at the repository root with the line: alpha is running. Change no other file. Commit it.`, no blocker, no command, assign `yes`. Watch it in `Board` then `Agents>agents` (`)` to runs, `↑`, `Enter` for the log). Then `Work>work`: `change` shows one file, `v` starts a review, `m` asks and then merges with `y`.
|
||||
|
||||
**Pass:** the file is on `main`, the task is `done`, the cost is in `Project>costs`, and nothing was typed into a terminal after step 2.
|
||||
|
||||
## Test 2 — a folder that already exists (this repository)
|
||||
|
||||
I created the Paperclip project for it already, so this is one command:
|
||||
|
||||
```sh
|
||||
cd ~/paseo/projects/paperclip-harness
|
||||
bin/office . --project harness-repo --session harness-repo
|
||||
```
|
||||
|
||||
A separate session on purpose — the working session `paperclip-harness` shows the sandbox project and must not be rebuilt.
|
||||
|
||||
Then:
|
||||
|
||||
1. `git status --short` — **only new files under `.harness/`**. If anything existing shows as modified, stop and tell me.
|
||||
2. `tuios attach harness-repo`.
|
||||
3. `Project>project` → `projects` tab lists both `spike-2026-11-10` and `harness-repo` with folder and machine.
|
||||
4. `Board>board` — empty; this project has no tasks.
|
||||
5. Create `Add a line to README`, description `Add the line "tested by the harness" at the end of README.md. Change nothing else. Commit it.`, assign `yes`.
|
||||
6. Watch it, read the diff in `Work>work`, and **do not merge it** — cancel it with `c` in `Board>board` and confirm with `git log` that `main` is untouched.
|
||||
|
||||
Both are written out in `docs/CLEAN-TESTS.md` with the expected output at each step.
|
||||
|
||||
## Dry runs on `.13` and `.27` for Pi
|
||||
|
||||
I copied `/etc/nixos` to `/tmp/nixos-dryrun`, updated the lock there, and evaluated — no system was touched.
|
||||
|
||||
| | locked nixpkgs | pi after update |
|
||||
|---|---|---|
|
||||
| `.13` | 2026-07-29 → 2026-11-07 | **1.5.0** |
|
||||
| `.27` | 2026-07-29 → 2026-11-07 | **1.5.0** |
|
||||
| `.51` today | 2026-09-26 | 0.87.1 |
|
||||
|
||||
Two things this tells us:
|
||||
|
||||
1. Bumping the lock does not give you 0.87.1 — it gives **1.5.0**, because nixpkgs has moved a long way.
|
||||
2. On `.13` the dry-run build **fails** on a real migration:
|
||||
|
||||
```
|
||||
programs.zsh.initExtra no longer has any effect; please remove it.
|
||||
Use programs.zsh.initContent instead.
|
||||
```
|
||||
|
||||
So aligning Pi is not a one-line change: it is a lock bump, a `home.nix` edit for the zsh option, and a rebuild with a session to test afterwards. `.51` is ahead because its nixpkgs pin is newer, which is also why it has 0.87.1.
|
||||
|
||||
Three options, my recommendation first:
|
||||
|
||||
1. **Leave `.13`/`.27` on 0.82.1 for now.** They work, and the harness is tested against them.
|
||||
2. **Pin only Pi** to a newer version with a small overlay, leaving everything else alone — a contained change I can prepare and dry-run.
|
||||
3. **Full lock bump plus the `initContent` fix**, tested on `.13` first. Biggest change, most churn.
|
||||
|
||||
Committed as `08a4b4e` and pushed. Which of the three for Pi, and do you want me to walk the tests with you as you run them?
|
||||
|
||||
## Evidence
|
||||
|
||||
- Confidence: 86%
|
||||
- Reason: Preserve full sanitized discovery detail from a rich investigation turn
|
||||
|
||||
## Related
|
||||
|
||||
- [[packs/paperclip-harness/00-system/pi-agent/memory-manifest|Memory Manifest]]
|
||||
|
||||
## Related learned memories <!-- same-turn-2026-11-11 22:37:01 -->
|
||||
|
||||
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|bin/office dry run still creates the TUIOS session and refuses on project-name mismatch]]
|
||||
- runbook: [[packs/paperclip-harness/70-runbooks/tmp-deployment-operations|clean end-to-end acceptance tests for paperclip-harness (`docs/CLEAN-TESTS.md`)]]
|
||||
- action: [[packs/paperclip-harness/40-actions/2026-11-11-paperclip-harness-added-new-onboarding-clean-test-doc-and-pi|paperclip-harness: added `--new` onboarding, clean-test doc, and Pi dry-run analysis; pushed 08a4b4e]]
|
||||
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-new-existing-dry-runs-clean-test-plan-pi-v|paperclip-harness: --new/--existing dry runs, clean test plan, Pi version dry-run on .13/.27]]
|
||||
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-root-2026-11-11-22-37-01|Rich discovery: root 2026-11-11 22:37:01]]
|
||||
- context: [[packs/paperclip-harness/20-context/paperclip-harness|root]]
|
||||
Reference in New Issue
Block a user