5.9 KiB
type, id, title, status, source_of_truth, freshness, last_reviewed, tags
| type | id | title | status | source_of_truth | freshness | last_reviewed | tags | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| context | context.paperclip-harness.paperclip-harness-tui-office-project-components | paperclip-harness TUI office/project components | active | false | current | 2026-11-11 |
|
paperclip-harness TUI office/project components
The paperclip-harness is a Go TUI (project model with tabs) plus a bin/office launcher script, driving TUIOS panes.
Key structure discovered in the Go code:
projectModelrenders tabs;switch m.tabin the View selects body: case 0 =overviewLines, case 1 =factLines, case 2 =costLines, default =settingLines. A projects/cleanup style tab renders viaprojectListLines(width int)(near line 481), used to list every adopted project and where it lives.- Project tab follows a table pattern: columns project / machine / session / folder, with a "(this machine)" marker.
bin/office behavior:
- Adopts projects and records each in
~/.config/paperclip-harness/projects.toml(keyed by paperclip UUID, name, folder, host, session). - Creates TUIOS workspaces/panes for: project, New task, Repair (e.g. "workspaces in use: 8").
- Header comment in that TOML: adopted projects are one folder, one machine, one session each; Paperclip owns the project itself, the file only records where it lives.
- A project on another machine can be listed but not opened locally; opening requires attaching to its session or running
bin/office <folder>on that machine.
This overview should be the anchor for future changes to the office/project tab, cleanup tab, and project registry.
Detailed context from completed turn
Five of the six are in, and one has a caveat I want to be straight about.
Built
1. Repair>repair → cleanup tab. Sessions with pane count and last use; space ticks, x closes the ticked ones after asking. Protected and attached sessions are refused, and the screen says so:
session panes last used state
paperclip-harness 9 11 Nov 14:14 this project's session
tuios coding harness 4 11 Nov 14:09 attached, or on another machine
office 32 10 Nov 13:57 attached, or on another machine
office-test-1 26 10 Nov 11:24
office-test-1-card-t3-cover-image… 1 9 Nov 19:50
space ticks a session, x closes the ticked ones after asking.
closing a TUIOS session ends its panes. It does not delete anything in
~/.pi/paperclips, where every Pi conversation is kept.
2. Pi sessions in t — two new entries: pi sessions opens ~/.pi/paperclips in Yazi, pi resume gives Pi's own session list ready to open.
4. v in Work>review — starts bin/review <task> --post and the tab shows the review running, then the verdict, which is also written on the task.
6. Board>board needs-you — enter on a card now selects that task and switches you to the Reply workspace, so the answer is one key away.
3. Project>project → projects tab — bin/office now records each adopted project in ~/.config/paperclip-harness/projects.toml, and the tab lists them:
project machine session folder
spike-2026-11-10 nixos-desktop paperclip-har… /tmp/pc-sandbox-2026-… (this machine)
a project on another machine can be listed here but not opened from this one.
to open one: attach to its session, or run bin/office <folder> there.
Caveat: that is a list, not a switch. Switching would mean tearing down these panes and building another project's — and a project on .27 cannot be opened from .13 at all. I would rather show you the truth than a button that half-works.
Not done: 7 (the spend chart)
Project>overview already has a runs sparkline. Spend-per-day needs cost per run, and the only cheap source is company runs, which cost 8 seconds to read. I did not put an 8-second read behind a tab without asking you first.
A finding that changes the key map
While testing the cleanup tab I found why tabs would not switch: TUIOS binds [, ], Tab, ,, ., =, ; and the digits in its own key map, and they never reached the program in that pane. Tabs are now switched with ( and ), which TUIOS leaves alone; [ and ] still work where the pane is in terminal mode, so both are accepted.
If a pane ever stops responding to letters, press i or Enter first — that is TUIOS's window mode, not a broken program.
Committed as 3ec960e; docs/NEXT.md updated with what is done and what remains (spend chart, the office scaffold, memory per agent, MOUSE-1).
Evidence
- Confidence: 85%
- Reason: Evidence-backed architecture of the Go TUI tabs and bin/office registry from grep output and rendered UI.; enriched with final-answer detail because persistence should be reusable
Related
Related learned memories
- context: packs/paperclip-harness/20-context/paperclip-harness-tui-office-project-components
- context: packs/paperclip-harness/20-context/tuios-key-bindings-interpose-on-harness-key-map
- action: packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups
- session: packs/paperclip-harness/80-sessions/rich-discovery-config-2026-11-11-03-16-34
- context: packs/paperclip-harness/20-context/config
- runbook: packs/paperclip-harness/70-runbooks/tmp-deployment-operations
- observation: packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns