@paigy/harness 0.2.12 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -1
- package/dist/cli.js +518 -71
- package/dist/main.js +514 -68
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -70,9 +70,37 @@ silent history from "answer me now" is `urgency`, not a second store:
|
|
|
70
70
|
| a turn that failed | `push` | worth knowing soon, not worth a sound |
|
|
71
71
|
| our own parse failure | — | not on the rail at all; it's our problem, not yours |
|
|
72
72
|
|
|
73
|
-
`paigy/level.ts` decides; `apps/api/src/
|
|
73
|
+
`paigy/level.ts` decides; `apps/api/src/arbitration/arbitrate.ts` still arbitrates against your
|
|
74
74
|
session mode and account permissions and can only lower it.
|
|
75
75
|
|
|
76
|
+
## The working log, and the one thing it's allowed to do on your phone
|
|
77
|
+
|
|
78
|
+
A tool call is NOT on that table, and that is deliberate: the ⚙ line is the live texture of
|
|
79
|
+
a turn, and shipping it to the rail would be the working log arriving one tool at a time.
|
|
80
|
+
But "Working" is equally true of four minutes of `pnpm test` and four minutes of an agent
|
|
81
|
+
gently going nowhere, and the only place that told them apart was a log window on a machine
|
|
82
|
+
you'd walked away from.
|
|
83
|
+
|
|
84
|
+
So the **tail** takes a different road (`paigy/activity.ts`): the last two ⚙ lines ride the
|
|
85
|
+
**presence beat**, on the session's own token, and the agent's page on the phone renders
|
|
86
|
+
them under its standing sentence. Every property that makes it not-a-notification is load-bearing:
|
|
87
|
+
|
|
88
|
+
- **Pulled, not pushed.** It never rings, never queues, never waits to be answered. You see
|
|
89
|
+
it only if you are already looking at that one screen.
|
|
90
|
+
- **A window, not a log.** Two lines, replaced in place — the newest arrives on the bottom
|
|
91
|
+
row, the one before it dims. Nothing accumulates and there is no history to open.
|
|
92
|
+
- **It expires.** Overwritten in place by every beat, retired at the turn boundary, and drawn
|
|
93
|
+
only while the process is live (`isLive`, the same window as the dot). A tail over a dead
|
|
94
|
+
run is the working-over-a-corpse state the party already refused.
|
|
95
|
+
- **It stays off the rail.** `entryFor` still returns null for every work event, and
|
|
96
|
+
`bridge.test.ts` pins it — that assertion is now the guard on this feature too.
|
|
97
|
+
|
|
98
|
+
Only sessions the harness drives have one. A hatched identity used straight from a terminal
|
|
99
|
+
(`PAIGY_AGENT="…" claude`) emits no work events, so its page shows no strip rather than an
|
|
100
|
+
empty box. Note also that presence is **not** in the E2EE lane (`e2ee/flow.md` covers
|
|
101
|
+
notifications and responses) — which is why the publisher clips each line and shortens
|
|
102
|
+
absolute paths to their last two segments before it leaves the machine.
|
|
103
|
+
|
|
76
104
|
## The catalog and the doctor
|
|
77
105
|
|
|
78
106
|
The other thing Buzz got right: connecting a harness should be a status line and a
|