office --new creates the Paperclip project; the two clean tests written step by step

This commit is contained in:
Sam
2026-11-12 09:36:37 +11:00
parent d2cf643eca
commit 08a4b4e822
9 changed files with 691 additions and 1 deletions

View File

@@ -0,0 +1,94 @@
---
type: session
id: session.paperclip-harness.rich-discovery-link-2026-11-11-21-45-49
title: Rich discovery: link. 2026-11-11 21:45:49
status: active
source_of_truth: false
freshness: current
last_reviewed: 2026-11-11
tags:
- pack/paperclip-harness
- agent-memory/session
- autolearn
- rich-discovery
- repo/link
---
# Rich discovery: link. 2026-11-11 21:45:49
Sanitized rich discovery snapshot captured automatically from the completed turn.
## Source paths observed
- `nix/store/rgnappqqc5vbq60gza5fflyk84sylwl6-python3-3.14.6/lib/python3.14/json/__init__.py`
- `nix/store/rgnappqqc5vbq60gza5fflyk84sylwl6-python3-3.14.6/lib/python3.14/json/decoder.py`
- `outline.lab.audasmedia.com.au/api/collections.list`
- `home/sam/obsidian/010`
- `gitea.lab.audasmedia.com.au/sam/paperclip-harness.git`
- `paseo/projects/paperclip-harness`
- `hosts/sam-thinkpad/configuration.nix`
## Final answer snapshot
## Headroom: what the failure actually is, and what you do
I tested three configurations on a throwaway container on a spare port, so the running one was untouched:
| Configuration | Result |
|---|---|
| default image (`HEADROOM_BACKEND` unset → `anthropic`) + your router key | `502 proxy_error` |
| plus `OPENAI_API_KEY` | `openai/deepseek-v4-flash` → `404 No active credentials for provider: openai`; `deepseek/deepseek-v4-flash` → `502` |
| plus `HEADROOM_BACKEND=openai` | `502 proxy_error` |
Two things that answer your questions directly:
- **`openai/` is not OpenAI's model.** In this stack the prefix names the *protocol* to speak — "use the OpenAI-compatible client" — and the rest is the model name your router uses. So `openai/deepseek-v4-flash` means "call the router with its `deepseek-v4-flash` model". That is why I wrote it that way, and it was a guess about headroom's routing, not a fact.
- **The `404 … provider: openai` came from your router, not headroom.** The router read `openai/` as a provider name and had no key for it. So that path was never going to work with our router's ids.
`/stats` on the test container reported `api_requests: 0` for all of those attempts — headroom refused or failed before forwarding. That is inside headroom's deployment, and it needs someone with its logs open; nothing in our software can fix it.
**What does work, re-checked:** `POST /v1/compress` answers 200 and reports tokens before and after. That is the endpoint `headroom-bridge` uses, and `headroom-ai` is now installed on `.13`, `.27` and `.51`.
**So: use Path A, not both.** `Agents>agents` → `)` to extensions → `space` on `headroom-bridge`. That agent, and no other, gets `compress_for_agent`. Path B is yours to fix in the headroom container if you still want automatic compression; I have recorded the three tests and their exact responses so nobody repeats them.
## The rest
**Archify in the Obsidian note** — added, with the map URL, the Mermaid source path, the Outline collection and the repository link. Note is now 3,511 bytes at `010 inbox/Paperclip Harness.md` on `.27`.
**Outline — pushed.** New collection **Paperclip Harness** with five published documents:
```
/doc/00-index-o6hhlKTFXR
/doc/01-system-overview-dGpfQOk1vt
/doc/02-configuration-and-environment-redTWei0y2
/doc/03-code-map-y6KPFbBbIC
/doc/04-agent-runbook-Sd9ZznhBqo
```
**Point 4, specifically.** Two tests, both about whether a person can get from "a folder" to "a working set of panes":
1. **A brand-new project.** An empty folder, a new Paperclip project, then `bin/office /tmp/fresh-project-2026-11-11 --project fresh-project`. Expected: session created, eight panes built, `Shell>shell` in that folder. **This already passed tonight** — except the session opened at 78 columns and `Board>board` correctly said "this workspace needs 80 × 24", which is the too-small screen doing its job, not a failure. The real test is: switch to that session, press `R` to rebuild at full size, create one task, assign it, watch it run, merge it.
2. **An existing folder.** Adopt this repository: `bin/office ~/paseo/projects/paperclip-harness --project <new paperclip project>`. Expected: `.harness/` appears, nothing existing is overwritten, the panes read *this* repo's tasks. That proves adoption is safe on real code.
**Pi versions.** `.51` is 0.87.1; `.13` and `.27` are 0.82.1. You rebuilt `.51` — the Go addition there is in place (`go gopls` in `hosts/sam-thinkpad/configuration.nix`, dry-run evaluates). For Pi: on `.13` and `.27`, Pi is the Nix package `pi-coding-agent`, so aligning means bumping that package in each machine's flake and rebuilding. Do you want me to prepare those two bumps (I can edit both flakes and run the dry-run evaluations), or leave `.13`/`.27` on 0.82.1 since they work?
Committed as `d2cf643` and pushed to Gitea.
## 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 21:45:49 -->
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|Paperclip Harness acceptance test plan (Point 4) and Pi/Go host versions]]
- runbook: [[packs/paperclip-harness/70-runbooks/tmp-deployment-operations|publish Paperclip Harness docs to Outline and update Obsidian note]]
- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Paperclip Harness: use Path A (headroom-bridge agent extension), not automatic headroom compression]]
- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Paperclip Harness: docs published to Outline, Obsidian note updated, repo pushed]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-link-2026-11-11-21-45-49|Rich discovery: link. 2026-11-11 21:45:49]]
- context: [[packs/paperclip-harness/20-context/home|link.]]