From c50c1efa220a0442e3553098b28ea43e7dbb204c Mon Sep 17 00:00:00 2001 From: sam Date: Wed, 11 Nov 2026 16:28:48 +1100 Subject: [PATCH] Mouse-1 notes: measured behaviour, the cold start trap, and where it is worth using Cold call 503 after ~30s, retry 200 after ~13s, warm 489-1044ms, stable answers at ~0.98 confidence. Effective for failure routing, unblock triage, intake clarity and task sizing. Never for merge decisions, judging tests, keystroke paths, vague options, or as the only record. Not needed before Milestone 1. --- ...re-it-closes-anything-and-the-three-que.md | 95 ++++++++++++++++++ ...ry-structure-and-configuration-patterns.md | 79 +++++++++++++++ ...p-now-asks-before-it-closes-anything-an.md | 98 +++++++++++++++++++ docs/DOCMAP.md | 1 + docs/MOUSE-1-NOTES.md | 89 +++++++++++++++++ 5 files changed, 362 insertions(+) create mode 100644 .pi/memory-vault/packs/paperclip-harness/20-context/cleanup-now-asks-before-it-closes-anything-and-the-three-que.md create mode 100644 .pi/memory-vault/packs/paperclip-harness/80-sessions/rich-discovery-cleanup-now-asks-before-it-closes-anything-an.md create mode 100644 docs/MOUSE-1-NOTES.md diff --git a/.pi/memory-vault/packs/paperclip-harness/20-context/cleanup-now-asks-before-it-closes-anything-and-the-three-que.md b/.pi/memory-vault/packs/paperclip-harness/20-context/cleanup-now-asks-before-it-closes-anything-and-the-three-que.md new file mode 100644 index 0000000..82a1af6 --- /dev/null +++ b/.pi/memory-vault/packs/paperclip-harness/20-context/cleanup-now-asks-before-it-closes-anything-and-the-three-que.md @@ -0,0 +1,95 @@ +--- +type: context +id: context.paperclip-harness.cleanup-now-asks-before-it-closes-anything-and-the-three-que +title: cleanup-now-asks-before-it-closes-anything-and-the-three-que +status: active +source_of_truth: false +freshness: current +last_reviewed: 2026-11-11 +tags: + - pack/paperclip-harness + - agent-memory/context + - autolearn + - rich-discovery + - repo/cleanup-now-asks-before-it-closes-anything-and-the-three-que +--- + +# cleanup-now-asks-before-it-closes-anything-and-the-three-que + +## Rich discovery update (2026-11-11 04:58:08) + +Cleanup now asks before it closes anything, and the three questions have proper answers. + +## Cleanup: the confirmation was missing entirely + +`x` set a flag that nothing drew, so it looked like a no-op — and if it had run, it would have closed things with no chance to stop it. There is now a dialog, and the list refreshes afterwards: + +``` +╭─ close 1 session? ───────────────────────────────────·focus· ╮ +│ what happens these TUIOS sessions are closed and their p…│ +│ nothing in ~/.pi/paperclips is deleted; tha…│ +│ this project's session and attached session…│ +│ y close them │ +│ esc or n do nothing │ +│ office-test-1-card-t1-build-skele… │ +``` + +I tested it by closing one junk card session: the row disappeared and the list reloaded. `↑`/`↓` move, `▸` marks the cursor, `*` marks a tick. + +## What `verify.sh` is + +`.harness/verify.sh` is a script in the project folder whose only job is to answer *"is this project's work finished?"* — exit 0 means yes. + +- It is **not** Paperclip's. Paperclip has no such idea; an agent sets a task's status. +- It is **ours**, from the old project, and `bin/office` now writes a template that says `no verify command agreed for this project` and exits 0. Replace the body with the real tests when there are any (`exec go test ./...`). +- `bin/merge` runs it in the task's worktree, and again on `main` after merging. A task can carry its own command in its description, which wins for that task. + +A per-project default, a per-task override, both optional. If neither exists, merge says so and the `ocr` review decides. + +## Headroom + +You are right to question my line. Headroom is a **compression proxy** — long prompts get shortened before reaching the model. It is good where prompts are long and repetitive (big repos, long threads, many tool results) and pointless for a small task where it adds a hop and a failure mode. The lever is per **agent**, because the provider is configured on the agent: `adapterConfig.env` can point one agent at `192.168.20.13:8787` without touching the others. That is why I put a read-out in `Agents>settings` first: until one agent runs both ways and you compare cost and quality, "good for some projects" is a hypothesis, not a setting. + +## Mouse-1 — I was wrong + +It is a **hosted API**, not software. `MOUSE_API_KEY` is present; nothing needs installing; what is missing is a client call from our side. The old project's rule still holds: triage only, never a gate, never a permit — it could order `Board>needs`, never decide a merge. That correction is now in the docs. + +## Switching projects — and your mental model is the right one + +You are exactly right, and TUIOS has the verb for it: + +``` +tuios call switch-session '{"name":"office","host":"nixos-desktop"}' +``` + +A session lives on a **daemon**, and a daemon runs on one machine; where you sit is irrelevant. Today you sit at `.27` driving a session whose daemon is on `.13`. So "another machine" really means "another daemon". + +`Project>project` → **projects** now lists every adopted project with session, machine and folder, and `enter` asks once and switches your client in place: + +``` +╭─ switch to paperclip-harness? ───────────────────────·focus· ╮ +│ what happens your TUIOS client moves to that session │ +│ session paperclip-harness │ +│ machine nixos-desktop │ +│ folder /tmp/pc-sandbox-2026-11-10 │ +│ y switch │ +``` + +A session on a daemon that is not in your client's `[hosts]` table is still listed, and the dialog tells you which machine it needs — that is the one case where you attach by hand. + +Committed as `e02b399`. `docs/SESSIONS.md` explains sessions versus daemons, `docs/PLAN-INTERFACE.md` carries the three explanations above, and `docs/NEXT.md` is updated. + +## Evidence + +- Confidence: 84% +- Reason: Update component/repository context with detailed discovered structure and configuration + +## Related + +- [[packs/paperclip-harness/00-system/pi-agent/memory-manifest|Memory Manifest]] + +## Related learned memories + +- session: [[packs/paperclip-harness/80-sessions/rich-discovery-cleanup-now-asks-before-it-closes-anything-an|Rich discovery: cleanup-now-asks-before-it-closes-anything-and-the-three-que 2026-11-11 04:58:08]] +- context: [[packs/paperclip-harness/20-context/cleanup-now-asks-before-it-closes-anything-and-the-three-que|cleanup-now-asks-before-it-closes-anything-and-the-three-que]] +- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|cleanup-now-asks-before-it-closes-anything-and-the-three-que repository structure and configuration patterns]] diff --git a/.pi/memory-vault/packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns.md b/.pi/memory-vault/packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns.md index 92a3d34..57f11cb 100644 --- a/.pi/memory-vault/packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns.md +++ b/.pi/memory-vault/packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns.md @@ -2817,3 +2817,82 @@ Everything else in `docs/NEXT.md` is now marked done. Committed as `36abdc1`; th - session: [[packs/paperclip-harness/80-sessions/rich-discovery-omni-2026-11-11-04-06-03|Rich discovery: omni 2026-11-11 04:06:03]] - context: [[packs/paperclip-harness/20-context/omni|omni]] - observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|omni repository structure and configuration patterns]] + + +--- + +## Update (2026-11-11 04:58:08) + +## Structural/configuration observations (2026-11-11 04:58:08) + +Cleanup now asks before it closes anything, and the three questions have proper answers. + +## Cleanup: the confirmation was missing entirely + +`x` set a flag that nothing drew, so it looked like a no-op — and if it had run, it would have closed things with no chance to stop it. There is now a dialog, and the list refreshes afterwards: + +``` +╭─ close 1 session? ───────────────────────────────────·focus· ╮ +│ what happens these TUIOS sessions are closed and their p…│ +│ nothing in ~/.pi/paperclips is deleted; tha…│ +│ this project's session and attached session…│ +│ y close them │ +│ esc or n do nothing │ +│ office-test-1-card-t1-build-skele… │ +``` + +I tested it by closing one junk card session: the row disappeared and the list reloaded. `↑`/`↓` move, `▸` marks the cursor, `*` marks a tick. + +## What `verify.sh` is + +`.harness/verify.sh` is a script in the project folder whose only job is to answer *"is this project's work finished?"* — exit 0 means yes. + +- It is **not** Paperclip's. Paperclip has no such idea; an agent sets a task's status. +- It is **ours**, from the old project, and `bin/office` now writes a template that says `no verify command agreed for this project` and exits 0. Replace the body with the real tests when there are any (`exec go test ./...`). +- `bin/merge` runs it in the task's worktree, and again on `main` after merging. A task can carry its own command in its description, which wins for that task. + +A per-project default, a per-task override, both optional. If neither exists, merge says so and the `ocr` review decides. + +## Headroom + +You are right to question my line. Headroom is a **compression proxy** — long prompts get shortened before reaching the model. It is good where prompts are long and repetitive (big repos, long threads, many tool results) and pointless for a small task where it adds a hop and a failure mode. The lever is per **agent**, because the provider is configured on the agent: `adapterConfig.env` can point one agent at `192.168.20.13:8787` without touching the others. That is why I put a read-out in `Agents>settings` first: until one agent runs both ways and you compare cost and quality, "good for some projects" is a hypothesis, not a setting. + +## Mouse-1 — I was wrong + +It is a **hosted API**, not software. `MOUSE_API_KEY` is present; nothing needs installing; what is missing is a client call from our side. The old project's rule still holds: triage only, never a gate, never a permit — it could order `Board>needs`, never decide a merge. That correction is now in the docs. + +## Switching projects — and your mental model is the right one + +You are exactly right, and TUIOS has the verb for it: + +``` +tuios call switch-session '{"name":"office","host":"nixos-desktop"}' +``` + +A session lives on a **daemon**, and a daemon runs on one machine; where you sit is irrelevant. Today you sit at `.27` driving a session whose daemon is on `.13`. So "another machine" really means "another daemon". + +`Project>project` → **projects** now lists every adopted project with session, machine and folder, and `enter` asks once and switches your client in place: + +``` +╭─ switch to paperclip-harness? ───────────────────────·focus· ╮ +│ what happens your TUIOS client moves to that session │ +│ session paperclip-harness │ +│ machine nixos-desktop │ +│ folder /tmp/pc-sandbox-2026-11-10 │ +│ y switch │ +``` + +A session on a daemon that is not in your client's `[hosts]` table is still listed, and the dialog tells you which machine it needs — that is the one case where you attach by hand. + +Committed as `e02b399`. `docs/SESSIONS.md` explains sessions versus daemons, `docs/PLAN-INTERFACE.md` carries the three explanations above, and `docs/NEXT.md` is updated. + +## Evidence + +- Confidence: 82% +- Reason: Captured factual repo structure/configuration patterns from rich discovery + +## Related learned memories + +- session: [[packs/paperclip-harness/80-sessions/rich-discovery-cleanup-now-asks-before-it-closes-anything-an|Rich discovery: cleanup-now-asks-before-it-closes-anything-and-the-three-que 2026-11-11 04:58:08]] +- context: [[packs/paperclip-harness/20-context/cleanup-now-asks-before-it-closes-anything-and-the-three-que|cleanup-now-asks-before-it-closes-anything-and-the-three-que]] +- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|cleanup-now-asks-before-it-closes-anything-and-the-three-que repository structure and configuration patterns]] diff --git a/.pi/memory-vault/packs/paperclip-harness/80-sessions/rich-discovery-cleanup-now-asks-before-it-closes-anything-an.md b/.pi/memory-vault/packs/paperclip-harness/80-sessions/rich-discovery-cleanup-now-asks-before-it-closes-anything-an.md new file mode 100644 index 0000000..ead0337 --- /dev/null +++ b/.pi/memory-vault/packs/paperclip-harness/80-sessions/rich-discovery-cleanup-now-asks-before-it-closes-anything-an.md @@ -0,0 +1,98 @@ +--- +type: session +id: session.paperclip-harness.rich-discovery-cleanup-now-asks-before-it-closes-anything-an +title: Rich discovery: cleanup-now-asks-before-it-closes-anything-and-the-three-que 2026-11-11 04:58:08 +status: active +source_of_truth: false +freshness: current +last_reviewed: 2026-11-11 +tags: + - pack/paperclip-harness + - agent-memory/session + - autolearn + - rich-discovery + - repo/cleanup-now-asks-before-it-closes-anything-and-the-three-que +--- + +# Rich discovery: cleanup-now-asks-before-it-closes-anything-and-the-three-que 2026-11-11 04:58:08 + +Sanitized rich discovery snapshot captured automatically from the completed turn. + + +## Final answer snapshot + +Cleanup now asks before it closes anything, and the three questions have proper answers. + +## Cleanup: the confirmation was missing entirely + +`x` set a flag that nothing drew, so it looked like a no-op — and if it had run, it would have closed things with no chance to stop it. There is now a dialog, and the list refreshes afterwards: + +``` +╭─ close 1 session? ───────────────────────────────────·focus· ╮ +│ what happens these TUIOS sessions are closed and their p…│ +│ nothing in ~/.pi/paperclips is deleted; tha…│ +│ this project's session and attached session…│ +│ y close them │ +│ esc or n do nothing │ +│ office-test-1-card-t1-build-skele… │ +``` + +I tested it by closing one junk card session: the row disappeared and the list reloaded. `↑`/`↓` move, `▸` marks the cursor, `*` marks a tick. + +## What `verify.sh` is + +`.harness/verify.sh` is a script in the project folder whose only job is to answer *"is this project's work finished?"* — exit 0 means yes. + +- It is **not** Paperclip's. Paperclip has no such idea; an agent sets a task's status. +- It is **ours**, from the old project, and `bin/office` now writes a template that says `no verify command agreed for this project` and exits 0. Replace the body with the real tests when there are any (`exec go test ./...`). +- `bin/merge` runs it in the task's worktree, and again on `main` after merging. A task can carry its own command in its description, which wins for that task. + +A per-project default, a per-task override, both optional. If neither exists, merge says so and the `ocr` review decides. + +## Headroom + +You are right to question my line. Headroom is a **compression proxy** — long prompts get shortened before reaching the model. It is good where prompts are long and repetitive (big repos, long threads, many tool results) and pointless for a small task where it adds a hop and a failure mode. The lever is per **agent**, because the provider is configured on the agent: `adapterConfig.env` can point one agent at `192.168.20.13:8787` without touching the others. That is why I put a read-out in `Agents>settings` first: until one agent runs both ways and you compare cost and quality, "good for some projects" is a hypothesis, not a setting. + +## Mouse-1 — I was wrong + +It is a **hosted API**, not software. `MOUSE_API_KEY` is present; nothing needs installing; what is missing is a client call from our side. The old project's rule still holds: triage only, never a gate, never a permit — it could order `Board>needs`, never decide a merge. That correction is now in the docs. + +## Switching projects — and your mental model is the right one + +You are exactly right, and TUIOS has the verb for it: + +``` +tuios call switch-session '{"name":"office","host":"nixos-desktop"}' +``` + +A session lives on a **daemon**, and a daemon runs on one machine; where you sit is irrelevant. Today you sit at `.27` driving a session whose daemon is on `.13`. So "another machine" really means "another daemon". + +`Project>project` → **projects** now lists every adopted project with session, machine and folder, and `enter` asks once and switches your client in place: + +``` +╭─ switch to paperclip-harness? ───────────────────────·focus· ╮ +│ what happens your TUIOS client moves to that session │ +│ session paperclip-harness │ +│ machine nixos-desktop │ +│ folder /tmp/pc-sandbox-2026-11-10 │ +│ y switch │ +``` + +A session on a daemon that is not in your client's `[hosts]` table is still listed, and the dialog tells you which machine it needs — that is the one case where you attach by hand. + +Committed as `e02b399`. `docs/SESSIONS.md` explains sessions versus daemons, `docs/PLAN-INTERFACE.md` carries the three explanations above, and `docs/NEXT.md` is updated. + +## 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 + +- session: [[packs/paperclip-harness/80-sessions/rich-discovery-cleanup-now-asks-before-it-closes-anything-an|Rich discovery: cleanup-now-asks-before-it-closes-anything-and-the-three-que 2026-11-11 04:58:08]] +- context: [[packs/paperclip-harness/20-context/cleanup-now-asks-before-it-closes-anything-and-the-three-que|cleanup-now-asks-before-it-closes-anything-and-the-three-que]] +- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|cleanup-now-asks-before-it-closes-anything-and-the-three-que repository structure and configuration patterns]] diff --git a/docs/DOCMAP.md b/docs/DOCMAP.md index e7d7266..8f1bd01 100644 --- a/docs/DOCMAP.md +++ b/docs/DOCMAP.md @@ -13,6 +13,7 @@ it is a pointer and should be deleted or replaced. | `CHECKLIST.md` | project root | the next session, step by step, with tick boxes | | `docs/OPERATING-RULES.md` | this project | the nine rules: project folder, how work is judged, approvals, untrusted text, secrets, review and merge, one project per machine, cost, existing commands | | `docs/TUIOS-RUNBOOK.md` | this project | how TUIOS works, the three machines, how to start a session, how to drive panes | +| `docs/MOUSE-1-NOTES.md` | this project | the decision model: how to call it, the cold start, and the four places it helps and the five it must not be used | | `docs/PLAN.md` | this project | the plan: four screens, five milestones, who owns what | | `docs/ENVIRONMENT-FACTS.md` | this project | ids, installed tools, the unproven heartbeat step | | `docs/PAPERCLIP-API-NOTES.md` | this project | what we measured against the running Paperclip, with endpoints | diff --git a/docs/MOUSE-1-NOTES.md b/docs/MOUSE-1-NOTES.md new file mode 100644 index 0000000..65c3760 --- /dev/null +++ b/docs/MOUSE-1-NOTES.md @@ -0,0 +1,89 @@ +# Mouse-1: what it is, how to call it, and where it actually helps + +Written from measurements on this machine, 2026-11-08/09. Nothing here is guesswork; the +numbers are the ones we saw. + +## What it is + +A small decision model, called over HTTPS, that answers a **typed multiple-choice +question** about a **state you describe**. You do not ask it to write anything. You give it +up to a handful of options with a sentence defining each, and it returns the option it +thinks fits, with a confidence and a probability per option. + +- Endpoint: `POST https://api.mouse.dev/v1/decisions` +- Auth: `Authorization: Bearer $MOUSE_API_KEY` (already in your environment) +- Body: `{"model":"mouse-1","state":{...},"questions":{"":{"type":"choice","instructions":"...","criteria":{"