Agents workspace: roster, runs, and a readable run log; layout now eight workspaces

This commit is contained in:
Sam
2026-11-10 16:58:59 +11:00
parent 7f18c548fe
commit b15216aa7b
14 changed files with 1339 additions and 2 deletions

View File

@@ -205,3 +205,107 @@ Theme/styling conventions:
- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Built Work workspace and polished Board styling (4e3c955)]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-config-2026-11-10-03-01-16|Rich discovery: .config 2026-11-10 03:01:16]]
- context: [[packs/paperclip-harness/20-context/tmp|.config]]
---
## Update (2026-11-10 05:41:48)
## Rich discovery update (2026-11-10 05:41:48)
Reverted. Seven workspaces, one pane each, all drawing again — that is the state you had, restored.
I was wrong to split it. You said panels were missing and I read that as "make panes", then made nineteen. That was my invention, not your request.
## ocr is installed — it has already blocked a merge
```
/home/sam/.local/bin/ocr
open-code-review v1.13.6
```
It is the review gate in `bin/merge`. On `AUD-165` it reported a **critical** finding — `rm -rf "$HOME/tmp"` empties `/tmp` when `HOME` is unset — and the merge was refused; `cleanup.sh` never reached `main`. The Repair screen once said it was missing because a pane started by TUIOS gets a smaller PATH than your shell; that check now looks in `~/.local/bin` and the system profiles as well.
So the review is real, and the interface lacks a place to show the verdict. That is item 4 in the plan.
## Where you see the Pi agents: nowhere yet, and that is the real gap
Paperclip has 281 runs recorded on this instance, each with a 300 KB log I can read:
```
GET /api/companies/{id}/heartbeat-runs → 281 runs
GET /api/heartbeat-runs/{runId}/log → the agent's own output, grows while it runs
POST /api/agents/{id}/pause | /resume | /wakeup
PATCH /api/agents/{id} {role, adapterConfig (model), runtimeConfig, budgetMonthlyCents}
```
No screen shows any of it. That is the missing workspace, and it is next.
## The plan, in Paperclip's terms
`docs/PLAN-INTERFACE.md` now holds it, with a table of every Paperclip object and the screen that shows it. The parts that do not exist:
**Agents>agents** — one pane, tabs `roster | runs | log`:
- roster: every agent with its state, current task, spend and budget
- runs: the company's runs — agent, task, state, what woke it, duration, cost
- log: the tail of the chosen run, which is the closest thing to watching Pi work
Actions: `enter` opens a run's log, `p`/`P` pause and resume an agent, `w` wakes one.
**Agents>settings** — role, job title, who it reports to, model, heartbeat, monthly budget. These map straight onto `PATCH /api/agents/{id}`. Two rules: a model change applies to that agent's next run, never one in flight; a budget change is recorded with who made it.
**Tool panels** — Lazygit and Hunk are installed (`/run/current-system/sw/bin/lazygit`, `/etc/profiles/per-user/sam/bin/hunk`) and are **not** wired in. Proposal: `t` in `Work>work` opens a chooser — `shell · lazygit · hunk · git log · ocr` — as a pane in the current workspace, `esc` closes it and focus returns. Nothing is created until you ask.
**Review panel** in `Work>work` — the last verdict and its findings, blocking ones in red, beside the diff. The merge stays a command, because a merge is a decision with a lock, not a keystroke.
## Mouse-1 and Switch
Measured: **not installed** — no `mouse`, `mouse1` or `switch` binary here, and nothing serving them locally. So nothing can be built on them yet.
Where they would fit honestly: cheap, repeatable judgement — "is this task ready", "does this comment answer the question", "which agent should take this" — not prose. That comes after agents, settings, tool panels and the review panel, and only once they are installed and measured against the model already configured for your agents (`omni/deepseek/deepseek-v4-flash`).
## Order
1. Agents>agents (read-only, cannot break anything)
2. Agents>settings (role, model, budget, pause/resume)
3. Tool panels (`t` → Lazygit, Hunk, shell, ocr)
4. Review panel in Work>work
5. Mouse-1 / Switch, if installed
Each is one pane, one program, and none of them changes the layout you have now.
Committed as `7f18c54`. Say which item you want first and I will build only that.
## Source paths observed
- `.pi/memory-vault/packs/paperclip-harness/20-context/tmp.md`
- `.pi/memory-vault/packs/paperclip-harness/60-observations/paperclip-harness-tui-editor-pitfall-illegal-rune-literal-af.md`
- `.pi/memory-vault/packs/paperclip-harness/50-decisions/use-real-tuios-panes-per-workspace-panels-as-panes.md`
- `.pi/memory-vault/packs/paperclip-harness/80-sessions/paperclip-harness-tui-workspace-rename-new-panels-commit-264.md`
- `.pi/memory-vault/packs/paperclip-harness/80-sessions/rich-discovery-how-to-tell-whether-the-icons-loaded-2026-11-.md`
- `home/sam/.local/bin/ocr`
- `api/agents/me`
- `api/agents/me/connections`
- `api/agents/me/inbox-lite`
- `api/agents/me/inbox/mine`
- `api/agents/me/secret-proposals`
- `api/agents/me/secrets`
- `home/sam/paseo/projects/paperclip-harness/docs/PLAN-INTERFACE.md`
- `run/current-system/sw/bin/lazygit`
- `etc/profiles/per-user/sam/bin/hunk`
- `omni/deepseek/deepseek-v4-flash`
## Evidence
- Confidence: 84%
- Reason: Update component/repository context with detailed discovered structure and configuration
## Related learned memories <!-- same-turn-2026-11-10 05:41:48 -->
- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]]
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|paperclip-harness runtime caveats: ocr PATH in TUIOS panes, missing mouse/switch, installed tool paths]]
- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Keep 7 single-pane workspaces; map Paperclip objects to screens instead of splitting panes]]
- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Reverted 19-pane workspace split and wrote docs/PLAN-INTERFACE.md mapping Paperclip objects to screens]]
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-reverted-pane-split-interface-gap-discover|Paperclip-harness — reverted pane split, interface gap discovery, and PLAN-INTERFACE roadmap]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-home-2026-11-10-05-41-48|Rich discovery: home 2026-11-10 05:41:48]]
- context: [[packs/paperclip-harness/20-context/home|home]]

View File

@@ -137,3 +137,44 @@ Committed as `351cb35`. Next, when you are back: tell me which of the six you wa
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-tui-six-workspace-build-screens-and-bug-fi|paperclip-harness TUI: six-workspace build, screens, and bug fixes (351cb35)]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-what-you-will-see-when-you-open-it-2026-11-10|Rich discovery: what-you-will-see-when-you-open-it 2026-11-10 03:29:19]]
- context: [[packs/paperclip-harness/20-context/paperclip-harness|what-you-will-see-when-you-open-it]]
---
## Update (2026-11-10 05:41:48)
Repo: `/home/sam/paseo/projects/paperclip-harness` — a TUI harness that maps Paperclip company objects (agents, runs, tasks, workspace) to terminal workspaces/panes.
## Current layout (as of commit 7f18c54)
- 7 workspaces, one pane per workspace, all drawing: `board`, `work`, `reply`, `new`, `project`, `repair`, `shell`.
- Board headers look like: `Board · spike-2026-11-10`; work: `Work · AUD-161 Tree render check (no work)`.
- Do NOT split workspaces into multiple panes unless explicitly asked — a 19-pane split (commit 32fa275) was reverted by the user context.
## Key support files
- `bin/merge` — merge command with a lock; also the review gate invoking `ocr`.
- `docs/PLAN-INTERFACE.md` — the design doc mapping Paperclip objects to screens (Agents>agents, Agents>settings, Tool panels, Review panel, Mouse-1/Switch). Maintain this when the interface evolves.
- `.pi/memory-vault/packs/paperclip-harness/` — pack with 20-context, 50-decisions, 60-observations, 80-sessions subfolders.
## Paperclip API surface used
- Agents: `PATCH /api/agents/{id}` (role/title/reportsTo/adapterConfig/runtimeConfig/budgetMonthlyCents/status etc.), `POST /api/agents/{id}/pause|resume|wakeup|approve|clear-error`, `GET /api/agents/{id}/configuration|runtime-state|task-sessions|config-revisions|skills`, `POST /api/agents/{id}/skills/sync`.
- Companies: `GET /api/companies/{companyId}/agents`, `/built-in-agents`, `/heartbeat-runs`.
- Runs: `GET /api/heartbeat-runs/{runId}/log` (streaming, ~300 KB per run), `/events`.
- Instance sample: 281 runs recorded. Agent adapter model `omni/deepseek/deepseek-v4-flash`.
## Tooling caveat
TUIOS panes get a smaller PATH than the user shell — health checks should look in `~/.local/bin` and system profiles, not just PATH.
## Evidence
- Confidence: 90%
- Reason: Durable repo/component overview; would update an existing context note rather than create transcript noise.
## Related learned memories <!-- same-turn-2026-11-10 05:41:48 -->
- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]]
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|paperclip-harness runtime caveats: ocr PATH in TUIOS panes, missing mouse/switch, installed tool paths]]
- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Keep 7 single-pane workspaces; map Paperclip objects to screens instead of splitting panes]]
- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Reverted 19-pane workspace split and wrote docs/PLAN-INTERFACE.md mapping Paperclip objects to screens]]
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-reverted-pane-split-interface-gap-discover|Paperclip-harness — reverted pane split, interface gap discovery, and PLAN-INTERFACE roadmap]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-home-2026-11-10-05-41-48|Rich discovery: home 2026-11-10 05:41:48]]
- context: [[packs/paperclip-harness/20-context/home|home]]

View File

@@ -248,3 +248,35 @@ Deliverables: built six (plus shell = seven) styled TUI workspaces in the paperc
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-tui-six-workspace-build-screens-and-bug-fi|paperclip-harness TUI: six-workspace build, screens, and bug fixes (351cb35)]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-what-you-will-see-when-you-open-it-2026-11-10|Rich discovery: what-you-will-see-when-you-open-it 2026-11-10 03:29:19]]
- context: [[packs/paperclip-harness/20-context/paperclip-harness|what-you-will-see-when-you-open-it]]
---
## Update (2026-11-10 05:41:48)
Deliverable: (1) Reverted commit 32fa275 ("Every workspace split into real panes: 19 panes across 7 workspaces") via 851a15b, restoring the 7-workspace / 1-pane-per-workspace layout the user already had (board, work, reply, new, project, repair, shell). No new layout was invented. (2) Wrote `docs/PLAN-INTERFACE.md` (~7.8 KB) mapping every Paperclip object to a screen, listing missing screens and an order. Commit 7f18c54.
Plan highlights (order):
1. Agents>agents — roster | runs | log tabs; actions enter (open run log), p/P (pause/resume), w (wake). Read-only first.
2. Agents>settings — role, job title, reportsTo, model, heartbeat, monthly budget, mapping to PATCH /api/agents/{id}. Model change applies to next run not in-flight; budget changes recorded with actor.
3. Tool panels — `t` in Work>work opens chooser `shell · lazygit · hunk · git log · ocr` as a pane in the current workspace, esc closes and returns focus. Nothing created until user asks.
4. Review panel in Work>work — last ocr verdict/findings (blocking in red) beside diff; merges remain a command.
5. Mouse-1 / Switch only if installed and measured against omni/deepseek/deepseek-v4-flash.
Validation: workspace listing confirmed 7 workspaces with 1 pane each and all drawing.
Follow-up: user asked to pick item 1..5; only build the chosen item.
## Evidence
- Confidence: 90%
- Reason: Completed concrete work with commit hashes, deliverables, and an explicit follow-up ask.
## Related learned memories <!-- same-turn-2026-11-10 05:41:48 -->
- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]]
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|paperclip-harness runtime caveats: ocr PATH in TUIOS panes, missing mouse/switch, installed tool paths]]
- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Keep 7 single-pane workspaces; map Paperclip objects to screens instead of splitting panes]]
- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Reverted 19-pane workspace split and wrote docs/PLAN-INTERFACE.md mapping Paperclip objects to screens]]
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-reverted-pane-split-interface-gap-discover|Paperclip-harness — reverted pane split, interface gap discovery, and PLAN-INTERFACE roadmap]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-home-2026-11-10-05-41-48|Rich discovery: home 2026-11-10 05:41:48]]
- context: [[packs/paperclip-harness/20-context/home|home]]

View File

@@ -82,3 +82,36 @@ Consequences: responsive layouts by terminal width (>=150 wide, 110-149 two pane
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-etc-2026-11-10-02-26-18|Rich discovery: etc 2026-11-10 02:26:18]]
- context: [[packs/paperclip-harness/20-context/home|etc]]
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|etc repository structure and configuration patterns]]
---
## Update (2026-11-10 05:41:48)
Decision: Do not split workspaces into multiple panes. Keep the existing 7-workspace / 1-pane-per-workspace layout and evolve the interface by adding/mapping screens (Agents>agents, Agents>settings, tool panels, review panel, optional Mouse-1/Switch).
Context: The user said some panels were "missing". The agent interpreted this as "split workspaces into real panes" and created 19 panes across 7 workspaces (commit 32fa275). The user rejected it; it was reverted (851a15b) and replaced by a plan (7f18c54).
Rationale: The user's existing layout should not be replaced by an agent's invention. Missing functionality should be added as focused panes/screens, each one pane / one program, without changing current layout.
Consequences / review caveats:
- New features are added as one pane per program (e.g. `t` chooser opens lazygit/hunk/shell/ocr as a pane in the current workspace).
- Prefer read-only screens first (Agents>agents) before mutating settings.
- Merges stay a command (`bin/merge`), not a keystroke; merges are decisions with a lock.
- Model changes apply to next run only; budget changes are attributed.
- Only build the specific item the user asks for next (items 1–5 in PLAN-INTERFACE.md).
## Evidence
- Confidence: 90%
- Reason: A clear architectural/convention decision with rationale, alternatives (rejected pane split), and consequences.
## Related learned memories <!-- same-turn-2026-11-10 05:41:48 -->
- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]]
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|paperclip-harness runtime caveats: ocr PATH in TUIOS panes, missing mouse/switch, installed tool paths]]
- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Keep 7 single-pane workspaces; map Paperclip objects to screens instead of splitting panes]]
- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Reverted 19-pane workspace split and wrote docs/PLAN-INTERFACE.md mapping Paperclip objects to screens]]
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-reverted-pane-split-interface-gap-discover|Paperclip-harness — reverted pane split, interface gap discovery, and PLAN-INTERFACE roadmap]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-home-2026-11-10-05-41-48|Rich discovery: home 2026-11-10 05:41:48]]
- context: [[packs/paperclip-harness/20-context/home|home]]

View File

@@ -778,3 +778,123 @@ Tell me which of those you want first, and whether the icons appear after reopen
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-tui-icon-font-fix-help-filter-unblock-safe|paperclip-harness TUI: icon font fix, help/filter/unblock, safe rebuild (commit 09e32da)]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-config-2026-11-10-05-00-01|Rich discovery: .config 2026-11-10 05:00:01]]
- context: [[packs/paperclip-harness/20-context/tmp|.config]]
---
## Update (2026-11-10 05:41:48)
- TUIOS-spawned panes inherit a smaller PATH than the interactive shell; the Repair health check for `ocr` originally reported it missing. Fixed by also checking `~/.local/bin` and system profiles. ocr lives at `/home/sam/.local/bin/ocr` (open-code-review v1.13.6, sha 891df1b6, built 2026-11-05).
- ocr is a real merge gate wired into `bin/merge`. Verified: on AUD-165 it reported a critical finding (`rm -rf "$HOME/tmp"` empties /tmp when HOME is unset) and refused the merge, so `cleanup.sh` never reached main.
- Lazygit: `/run/current-system/sw/bin/lazygit`. Hunk: `/etc/profiles/per-user/sam/bin/hunk`. Both installed, not wired into UI.
- `mouse`, `mouse1`, `switch` binaries are NOT installed and nothing serves them locally — no Mouse-1/Switch integration is currently possible without installation.
- Paperclip agent API surface includes pause/resume/wakeup/approve/clear-error endpoints and PATCH /api/agents/{id} fields (role, adapterConfig, runtimeConfig, budgetMonthlyCents, etc.). Runs are discoverable via heartbeat-runs with streaming logs at /api/heartbeat-runs/{runId}/log.
## Evidence
- Confidence: 90%
- Reason: Factual runtime discoveries with exact paths and a verified merge-blocking example; durable for future work.
---
## Update (2026-11-10 05:41:48)
## Structural/configuration observations (2026-11-10 05:41:48)
Reverted. Seven workspaces, one pane each, all drawing again — that is the state you had, restored.
I was wrong to split it. You said panels were missing and I read that as "make panes", then made nineteen. That was my invention, not your request.
## ocr is installed — it has already blocked a merge
```
/home/sam/.local/bin/ocr
open-code-review v1.13.6
```
It is the review gate in `bin/merge`. On `AUD-165` it reported a **critical** finding — `rm -rf "$HOME/tmp"` empties `/tmp` when `HOME` is unset — and the merge was refused; `cleanup.sh` never reached `main`. The Repair screen once said it was missing because a pane started by TUIOS gets a smaller PATH than your shell; that check now looks in `~/.local/bin` and the system profiles as well.
So the review is real, and the interface lacks a place to show the verdict. That is item 4 in the plan.
## Where you see the Pi agents: nowhere yet, and that is the real gap
Paperclip has 281 runs recorded on this instance, each with a 300 KB log I can read:
```
GET /api/companies/{id}/heartbeat-runs → 281 runs
GET /api/heartbeat-runs/{runId}/log → the agent's own output, grows while it runs
POST /api/agents/{id}/pause | /resume | /wakeup
PATCH /api/agents/{id} {role, adapterConfig (model), runtimeConfig, budgetMonthlyCents}
```
No screen shows any of it. That is the missing workspace, and it is next.
## The plan, in Paperclip's terms
`docs/PLAN-INTERFACE.md` now holds it, with a table of every Paperclip object and the screen that shows it. The parts that do not exist:
**Agents>agents** — one pane, tabs `roster | runs | log`:
- roster: every agent with its state, current task, spend and budget
- runs: the company's runs — agent, task, state, what woke it, duration, cost
- log: the tail of the chosen run, which is the closest thing to watching Pi work
Actions: `enter` opens a run's log, `p`/`P` pause and resume an agent, `w` wakes one.
**Agents>settings** — role, job title, who it reports to, model, heartbeat, monthly budget. These map straight onto `PATCH /api/agents/{id}`. Two rules: a model change applies to that agent's next run, never one in flight; a budget change is recorded with who made it.
**Tool panels** — Lazygit and Hunk are installed (`/run/current-system/sw/bin/lazygit`, `/etc/profiles/per-user/sam/bin/hunk`) and are **not** wired in. Proposal: `t` in `Work>work` opens a chooser — `shell · lazygit · hunk · git log · ocr` — as a pane in the current workspace, `esc` closes it and focus returns. Nothing is created until you ask.
**Review panel** in `Work>work` — the last verdict and its findings, blocking ones in red, beside the diff. The merge stays a command, because a merge is a decision with a lock, not a keystroke.
## Mouse-1 and Switch
Measured: **not installed** — no `mouse`, `mouse1` or `switch` binary here, and nothing serving them locally. So nothing can be built on them yet.
Where they would fit honestly: cheap, repeatable judgement — "is this task ready", "does this comment answer the question", "which agent should take this" — not prose. That comes after agents, settings, tool panels and the review panel, and only once they are installed and measured against the model already configured for your agents (`omni/deepseek/deepseek-v4-flash`).
## Order
1. Agents>agents (read-only, cannot break anything)
2. Agents>settings (role, model, budget, pause/resume)
3. Tool panels (`t` → Lazygit, Hunk, shell, ocr)
4. Review panel in Work>work
5. Mouse-1 / Switch, if installed
Each is one pane, one program, and none of them changes the layout you have now.
Committed as `7f18c54`. Say which item you want first and I will build only that.
## Source paths observed
- `.pi/memory-vault/packs/paperclip-harness/20-context/tmp.md`
- `.pi/memory-vault/packs/paperclip-harness/60-observations/paperclip-harness-tui-editor-pitfall-illegal-rune-literal-af.md`
- `.pi/memory-vault/packs/paperclip-harness/50-decisions/use-real-tuios-panes-per-workspace-panels-as-panes.md`
- `.pi/memory-vault/packs/paperclip-harness/80-sessions/paperclip-harness-tui-workspace-rename-new-panels-commit-264.md`
- `.pi/memory-vault/packs/paperclip-harness/80-sessions/rich-discovery-how-to-tell-whether-the-icons-loaded-2026-11-.md`
- `home/sam/.local/bin/ocr`
- `api/agents/me`
- `api/agents/me/connections`
- `api/agents/me/inbox-lite`
- `api/agents/me/inbox/mine`
- `api/agents/me/secret-proposals`
- `api/agents/me/secrets`
- `home/sam/paseo/projects/paperclip-harness/docs/PLAN-INTERFACE.md`
- `run/current-system/sw/bin/lazygit`
- `etc/profiles/per-user/sam/bin/hunk`
- `omni/deepseek/deepseek-v4-flash`
## Evidence
- Confidence: 82%
- Reason: Captured factual repo structure/configuration patterns from rich discovery
## Related learned memories <!-- same-turn-2026-11-10 05:41:48 -->
- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]]
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|paperclip-harness runtime caveats: ocr PATH in TUIOS panes, missing mouse/switch, installed tool paths]]
- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Keep 7 single-pane workspaces; map Paperclip objects to screens instead of splitting panes]]
- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Reverted 19-pane workspace split and wrote docs/PLAN-INTERFACE.md mapping Paperclip objects to screens]]
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-reverted-pane-split-interface-gap-discover|Paperclip-harness — reverted pane split, interface gap discovery, and PLAN-INTERFACE roadmap]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-home-2026-11-10-05-41-48|Rich discovery: home 2026-11-10 05:41:48]]
- context: [[packs/paperclip-harness/20-context/home|home]]

View File

@@ -0,0 +1,70 @@
---
type: session
id: session.paperclip-harness.paperclip-harness-reverted-pane-split-interface-gap-discover
title: Paperclip-harness — reverted pane split, interface gap discovery, and PLAN-INTERFACE roadmap
status: active
source_of_truth: false
freshness: current
last_reviewed: 2026-11-10
tags:
- pack/paperclip-harness
- agent-memory/session
- paperclip-harness
- tui
- plan-interface
- ocr
- agents
- heartbeat-runs
- revert
- mouse-1
---
# Paperclip-harness — reverted pane split, interface gap discovery, and PLAN-INTERFACE roadmap
Sanitized discovery snapshot from a paperclip-harness workspace session at /home/sam/paseo/projects/paperclip-harness.
## Repo state change
A change titled "Every workspace split into real panes: 19 panes across 7 workspaces, one program per panel" (commit 32fa275) was reverted in 851a15b, then a follow-up commit 7f18c54 "Revert the pane split; write the plan that maps every Paperclip object to a screen" was made. Current state: 7 workspaces, one pane each, all drawing.
- Workspaces: board, work, reply, new, project, repair (plus a Shell workspace = 7 total).
- Workspace titles: `Board · spike-2026-11-10`, `Work · AUD-161 Tree render check (no work)`, `Reply · ...`, `Author · new task in spike-2026-11-10`, `Project · spike-2026-11-10`, `Repair · layout and health`.
- Lesson: the user said "panels were missing"; the agent over-interpreted and built 19 panes; correct interpretation was not to split into panes. Reverted.
## Tooling discovered
- `ocr` (open-code-review) v1.13.6 at `/home/sam/.local/bin/ocr`. It is the review gate in `bin/merge`. On AUD-165 it flagged a **critical** finding (`rm -rf "$HOME/tmp"` empties /tmp when HOME unset) and blocked the merge; cleanup.sh never reached main.
- Repair screen previously said ocr was missing because a TUIOS pane started with a smaller PATH than the shell; the check now also looks in `~/.local/bin` and system profiles.
- Lazygit at `/run/current-system/sw/bin/lazygit`, Hunk at `/etc/profiles/per-user/sam/bin/hunk` — installed but not wired into the interface.
- `mouse`, `mouse1`, `switch` binaries: **not installed**, nothing serving them locally (checked; local listeners on 8080, 3000, 8000 are unrelated).
## Paperclip harness facts
- 281 runs recorded on this instance.
- `GET /api/companies/{id}/heartbeat-runs` lists runs (sample keys include agentId, companyId, invocationSource, exitCode, status, error, logRef, store=local_file).
- `GET /api/heartbeat-runs/{runId}/log` streams the agent's own output (sample ~300 KB log).
- `GET /api/heartbeat-runs/{runId}/events`.
- Agent control: `POST /api/agents/{id}/pause | /resume | /wakeup | /approve | /clear-error`; `PATCH /api/agents/{id}` accepts name, role, title, icon, reportsTo, capabilities, desiredSkills, adapterType, adapterConfig, instructionsBundle, runtimeConfig, defaultEnvironmentId, budgetMonthlyCents, metadata, storedSessionId, applyStoredClaudeLogin, replaceAdapterConfig, status, spentMonthlyCents.
- Read APIs: `GET /api/agents/{id}/configuration`, `/runtime-state`, `/task-sessions`, `/config-revisions`, `/skills`; `POST /api/agents/{id}/skills/sync`; `GET /api/companies/{companyId}/agents`, `/built-in-agents`.
- Adapter/model currently configured for the user's agents: `omni/deepseek/deepseek-v4-flash` (referenced in the roadmap for Mouse-1/Switch).
## Missing screens / roadmap written by the assistant
- `docs/PLAN-INTERFACE.md` (written, 7,843 bytes) maps every Paperclip object to a screen and lists missing screens.
- Identified gap: no screen shows agents or runs — this is the missing workspace.
- Proposed order: 1) Agents>agents (roster/runs/log, read-only; enter opens run log, p/P pause/resume, w wake), 2) Agents>settings (role, model, heartbeat, budget — maps to PATCH /api/agents/{id}), 3) Tool panels (`t` in Work>work opens chooser shell · lazygit · hunk · git log · ocr as a pane in current workspace), 4) Review panel in Work>work (last ocr verdict/findings), 5) Mouse-1/Switch only if installed.
- Rules stated: model change applies to agent's next run, never in-flight; budget changes recorded with who made it; merges stay a command, not a keystroke.
## Evidence
- Confidence: 90%
- Reason: Rich discovery: repo state change, tooling, API surface, and a written roadmap document with concrete commit hashes and paths.
## Related
- [[packs/paperclip-harness/00-system/pi-agent/memory-manifest|Memory Manifest]]
## Related learned memories <!-- same-turn-2026-11-10 05:41:48 -->
- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]]
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|paperclip-harness runtime caveats: ocr PATH in TUIOS panes, missing mouse/switch, installed tool paths]]
- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Keep 7 single-pane workspaces; map Paperclip objects to screens instead of splitting panes]]
- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Reverted 19-pane workspace split and wrote docs/PLAN-INTERFACE.md mapping Paperclip objects to screens]]
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-reverted-pane-split-interface-gap-discover|Paperclip-harness — reverted pane split, interface gap discovery, and PLAN-INTERFACE roadmap]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-home-2026-11-10-05-41-48|Rich discovery: home 2026-11-10 05:41:48]]
- context: [[packs/paperclip-harness/20-context/home|home]]

View File

@@ -0,0 +1,123 @@
---
type: session
id: session.paperclip-harness.rich-discovery-home-2026-11-10-05-41-48
title: Rich discovery: home 2026-11-10 05:41:48
status: active
source_of_truth: false
freshness: current
last_reviewed: 2026-11-10
tags:
- pack/paperclip-harness
- agent-memory/session
- autolearn
- rich-discovery
- repo/home
---
# Rich discovery: home 2026-11-10 05:41:48
Sanitized rich discovery snapshot captured automatically from the completed turn.
## Source paths observed
- `.pi/memory-vault/packs/paperclip-harness/20-context/tmp.md`
- `.pi/memory-vault/packs/paperclip-harness/60-observations/paperclip-harness-tui-editor-pitfall-illegal-rune-literal-af.md`
- `.pi/memory-vault/packs/paperclip-harness/50-decisions/use-real-tuios-panes-per-workspace-panels-as-panes.md`
- `.pi/memory-vault/packs/paperclip-harness/80-sessions/paperclip-harness-tui-workspace-rename-new-panels-commit-264.md`
- `.pi/memory-vault/packs/paperclip-harness/80-sessions/rich-discovery-how-to-tell-whether-the-icons-loaded-2026-11-.md`
- `home/sam/.local/bin/ocr`
- `api/agents/me`
- `api/agents/me/connections`
- `api/agents/me/inbox-lite`
- `api/agents/me/inbox/mine`
- `api/agents/me/secret-proposals`
- `api/agents/me/secrets`
- `home/sam/paseo/projects/paperclip-harness/docs/PLAN-INTERFACE.md`
- `run/current-system/sw/bin/lazygit`
- `etc/profiles/per-user/sam/bin/hunk`
- `omni/deepseek/deepseek-v4-flash`
## Final answer snapshot
Reverted. Seven workspaces, one pane each, all drawing again — that is the state you had, restored.
I was wrong to split it. You said panels were missing and I read that as "make panes", then made nineteen. That was my invention, not your request.
## ocr is installed — it has already blocked a merge
```
/home/sam/.local/bin/ocr
open-code-review v1.13.6
```
It is the review gate in `bin/merge`. On `AUD-165` it reported a **critical** finding — `rm -rf "$HOME/tmp"` empties `/tmp` when `HOME` is unset — and the merge was refused; `cleanup.sh` never reached `main`. The Repair screen once said it was missing because a pane started by TUIOS gets a smaller PATH than your shell; that check now looks in `~/.local/bin` and the system profiles as well.
So the review is real, and the interface lacks a place to show the verdict. That is item 4 in the plan.
## Where you see the Pi agents: nowhere yet, and that is the real gap
Paperclip has 281 runs recorded on this instance, each with a 300 KB log I can read:
```
GET /api/companies/{id}/heartbeat-runs → 281 runs
GET /api/heartbeat-runs/{runId}/log → the agent's own output, grows while it runs
POST /api/agents/{id}/pause | /resume | /wakeup
PATCH /api/agents/{id} {role, adapterConfig (model), runtimeConfig, budgetMonthlyCents}
```
No screen shows any of it. That is the missing workspace, and it is next.
## The plan, in Paperclip's terms
`docs/PLAN-INTERFACE.md` now holds it, with a table of every Paperclip object and the screen that shows it. The parts that do not exist:
**Agents>agents** — one pane, tabs `roster | runs | log`:
- roster: every agent with its state, current task, spend and budget
- runs: the company's runs — agent, task, state, what woke it, duration, cost
- log: the tail of the chosen run, which is the closest thing to watching Pi work
Actions: `enter` opens a run's log, `p`/`P` pause and resume an agent, `w` wakes one.
**Agents>settings** — role, job title, who it reports to, model, heartbeat, monthly budget. These map straight onto `PATCH /api/agents/{id}`. Two rules: a model change applies to that agent's next run, never one in flight; a budget change is recorded with who made it.
**Tool panels** — Lazygit and Hunk are installed (`/run/current-system/sw/bin/lazygit`, `/etc/profiles/per-user/sam/bin/hunk`) and are **not** wired in. Proposal: `t` in `Work>work` opens a chooser — `shell · lazygit · hunk · git log · ocr` — as a pane in the current workspace, `esc` closes it and focus returns. Nothing is created until you ask.
**Review panel** in `Work>work` — the last verdict and its findings, blocking ones in red, beside the diff. The merge stays a command, because a merge is a decision with a lock, not a keystroke.
## Mouse-1 and Switch
Measured: **not installed** — no `mouse`, `mouse1` or `switch` binary here, and nothing serving them locally. So nothing can be built on them yet.
Where they would fit honestly: cheap, repeatable judgement — "is this task ready", "does this comment answer the question", "which agent should take this" — not prose. That comes after agents, settings, tool panels and the review panel, and only once they are installed and measured against the model already configured for your agents (`omni/deepseek/deepseek-v4-flash`).
## Order
1. Agents>agents (read-only, cannot break anything)
2. Agents>settings (role, model, budget, pause/resume)
3. Tool panels (`t` → Lazygit, Hunk, shell, ocr)
4. Review panel in Work>work
5. Mouse-1 / Switch, if installed
Each is one pane, one program, and none of them changes the layout you have now.
Committed as `7f18c54`. Say which item you want first and I will build only that.
## 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-10 05:41:48 -->
- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]]
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|paperclip-harness runtime caveats: ocr PATH in TUIOS panes, missing mouse/switch, installed tool paths]]
- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Keep 7 single-pane workspaces; map Paperclip objects to screens instead of splitting panes]]
- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Reverted 19-pane workspace split and wrote docs/PLAN-INTERFACE.md mapping Paperclip objects to screens]]
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-reverted-pane-split-interface-gap-discover|Paperclip-harness — reverted pane split, interface gap discovery, and PLAN-INTERFACE roadmap]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-home-2026-11-10-05-41-48|Rich discovery: home 2026-11-10 05:41:48]]
- context: [[packs/paperclip-harness/20-context/home|home]]