patches: the queue is empty, and the README said otherwise for a day
0007 and 0010 landed in 6f12fce and their files were removed in that same
commit, but this list went on describing them as pending. 0001 and 0006 have
now landed too. A queue file is a claim with a shelf life; so is the README
that indexes it.
The durable notes from the removed entries are kept under Recently closed --
the halt wording is coupled to migraine_text() in src/server/turn.rs, and the
context pill and the tokens endpoint measure different things and must not be
shipped side by side unlabelled.
This commit is contained in:
parent
6edebaeca5
commit
aa6cd4e219
1 changed files with 49 additions and 54 deletions
|
|
@ -121,71 +121,66 @@ again.
|
|||
|
||||
## In the queue
|
||||
|
||||
**Empty as of 2026-08-13.** 0001 and 0006 landed (`ec87e6a`, `6edebae`); 0007
|
||||
and 0010 landed earlier in `6f12fce` and their files were removed then, but
|
||||
this list was not updated — it went on describing them as pending for a day.
|
||||
A queue file is a claim with a shelf life, and so is a queue *README*.
|
||||
|
||||
Status below is from `git apply --check` in **both directions**, not from
|
||||
memory: forward-applies means pending, reverse-applies means already landed.
|
||||
Run it before trusting this list — a queue file is a claim with a shelf life.
|
||||
Run it before trusting this list.
|
||||
|
||||
for p in surfaces/quickshell/patches/000*.patch; do
|
||||
git apply --check "$p" 2>/dev/null && echo "$p PENDING"
|
||||
git apply --check --reverse "$p" 2>/dev/null && echo "$p LANDED"
|
||||
done
|
||||
|
||||
**Apply order.** 0007 last, after the server upgrade. 0001 and 0006 are
|
||||
independent lanes and can go whenever.
|
||||
With the queue empty, `~/Documents/casey.sh` still has a job: it runs
|
||||
verify-only, restarting the shell and proving HEAD loads. It used to name
|
||||
0008/0009 explicitly and died on "missing 0008" once they landed; the queue is
|
||||
its input now.
|
||||
|
||||
- **0001 — resume offer.** Pending since 2026-08-10. The agent-established hook
|
||||
*offers* the latest thread instead of silently attaching it; default becomes
|
||||
start-fresh, `ai.autoResume: true` restores the old behaviour. Explicit
|
||||
resume paths are unchanged. The second half is undrawn — `resumeOffered`
|
||||
fires and nothing renders it, so with no UI the behaviour is still correct
|
||||
(doing nothing starts fresh) but the affordance to continue is missing.
|
||||
- **0006 — step-up authenticates through PAM.** Rook's, not mine.
|
||||
`StepUpAuth` called `souveraine-pam-auth` — a binary that was never written —
|
||||
and fell back to `pkcheck` against an action that was never shipped, so
|
||||
**every step-up grant request was silently denied**. Runs a real `PamContext`
|
||||
against `souveraine-stepup`, which `cc541d1` now ships. Note
|
||||
`fpc-polkit-pam.c:86` refuses every service except `polkit-1`, so step-up is
|
||||
password rather than finger until that check widens — one line, and a
|
||||
security decision that is Casey's.
|
||||
- **0010 — render a halt in her own register, not the tool's name.**
|
||||
The Panel printed `**Halt** (advisory) — <reason>`: the tool's name, its enum
|
||||
value, and a sentence written for the agent's body, all on the human's screen.
|
||||
The TUI has always rendered it as substrate voice (`⟡ a pressure behind my
|
||||
eyes — …`); this brings the Panel into line. Wording deliberately mirrors
|
||||
`migraine_text()` in `src/server/turn.rs`, which `29f8475` now commits into
|
||||
her history — so what the human reads and what she carries into the next turn
|
||||
are the same sentence. **If one changes, the other must.**
|
||||
Independent of 0007/0008/0009; apply any time. Needs no server version.
|
||||
|
||||
- **0007 — render context occupancy; stop reading hyprctl errors as cursor.**
|
||||
**Unblocked 2026-08-12 17:30.** It needed `f266136` *running*, not merely
|
||||
installed. The box now runs `souveraine 0.1.r463.g715080bbfe45-1`, started
|
||||
17:26:45 against a binary installed 17:22, and `git merge-base --is-ancestor
|
||||
f266136 715080b` passes — so the named-field fix is in the live server.
|
||||
Re-verify with that one command before applying; installed is not running.
|
||||
(Earlier state, kept because the *shape* recurs: the box ran r442 = `fb5e9bb`,
|
||||
which predates `f266136`, and applying early makes the pill honestly show `—`
|
||||
— indistinguishable from the patch failing.)
|
||||
The bug it fixes: `ContextPressure` crossed a module boundary as a
|
||||
**positional tuple**, so every consumer guessed what the second element was.
|
||||
The TUI guessed `limit` and was right; the HTTP layer named it `tokens` and
|
||||
was wrong, so the Panel printed the *ceiling* (250000) as the *usage*.
|
||||
Also: `command -v hyprctl` succeeds on the phone (installed as a Lua-eval
|
||||
shim), so it runs under viewtop, fails, and its error text is captured **as
|
||||
the cursor position** — the probe tested whether the tool was installed, not
|
||||
whether it answered.
|
||||
**Before building the click-through breakdown on top of this**, read
|
||||
`tasks/context-accounting-two-counters-2026-08-12.md` in memory. The pill
|
||||
renders the *payload* (what is in the model's window); the
|
||||
`/v1/conversations/:id/tokens` endpoint renders the *archive* (what the
|
||||
transcript weighs). On this conversation they differ by ~3x — 80% against a
|
||||
clamped 100%. Ship them side by side unlabelled and the Panel shows two
|
||||
numbers that contradict each other. Group the breakdown by **block kind**,
|
||||
not by role: 74% of the context is tool traffic, which per-role accounting
|
||||
files under "assistant" and makes it read as talkativeness.
|
||||
|
||||
## Recently closed
|
||||
|
||||
- **0001 — resume offer. Landed `ec87e6a`, 2026-08-13.** Pending since 08-10.
|
||||
The agent-established hook now *offers* the latest thread instead of silently
|
||||
attaching it; default is start-fresh, `ai.autoResume: true` restores the old
|
||||
behaviour. Explicit resume paths (`/resume`, the Face control) call with no
|
||||
argument and are unchanged, and the e4e6594 amnesia fix is untouched — **do
|
||||
not revert that commit.** The second half is still undrawn: `resumeOffered`
|
||||
fires and nothing renders it. With no UI the behaviour is still correct
|
||||
(doing nothing starts fresh, which is the ask) but the affordance to continue
|
||||
is missing. That is the first job of the renderer lane.
|
||||
- **0006 — step-up authenticates through PAM. Landed `6edebae`, 2026-08-13.**
|
||||
**Rook's work, not mine** — the patch file carried my identity in its From
|
||||
header and I did not write it. `StepUpAuth` called `souveraine-pam-auth` (a
|
||||
binary never written) and fell back to `pkcheck` against an action never
|
||||
shipped, so **every step-up grant was silently denied**. Now a real
|
||||
`PamContext` against `souveraine-stepup`, which `cc541d1` ships and which is
|
||||
present on this box (owned by `souveraine r467`, the running version).
|
||||
Verified against the type system rather than by hope: every API it uses is
|
||||
either already used by `LockContext.qml` (live in the running shell) or
|
||||
present in `quickshell-service-pam.qmltypes` — `responseVisible` and
|
||||
`PamResult.toString(value)` were the two LockContext does not exercise, and
|
||||
both exist. **Still password, not finger**: `fpc-polkit-pam.c:86` refuses
|
||||
every service except `polkit-1`. Widening that is one line and a security
|
||||
decision that is Casey's.
|
||||
- **0007 — context occupancy + hyprctl cursor. Landed `6f12fce`, 2026-08-12.**
|
||||
Keep: **before building the click-through breakdown on this**, read
|
||||
`tasks/context-accounting-two-counters-2026-08-12.md`. The pill renders the
|
||||
*payload* (what is in the model's window); `/v1/conversations/:id/tokens`
|
||||
renders the *archive* (what the transcript weighs). They differ by ~3x. Ship
|
||||
them side by side unlabelled and the Panel shows two numbers that contradict
|
||||
each other. Group the breakdown by **block kind, not role** — 74% is tool
|
||||
traffic, which per-role accounting files under "assistant" and makes it read
|
||||
as talkativeness.
|
||||
- **0010 — halt in her own register. Landed `6f12fce`, 2026-08-12.** Keep: the
|
||||
wording deliberately mirrors `migraine_text()` in `src/server/turn.rs`, which
|
||||
`29f8475` commits into her history — so what the human reads and what she
|
||||
carries into the next turn are the same sentence. **If one changes, the other
|
||||
must.**
|
||||
|
||||
- **0008 — owned message delegate. Landed `93fe30a`, 2026-08-12.** Applied by
|
||||
Casey and reloaded. The load found two faults no gate had (`44acb11`) — see
|
||||
the header. Worth keeping: the two controls dropped were *decisions*
|
||||
|
|
|
|||
Loading…
Reference in a new issue