Watch
1
0
Fork
You've already forked SouveraineOS
0

task 72: steps 1 and 2 committed, source only; evidence labelled per step

This commit is contained in:
Souveraine 2026-08-12 13:11:51 -04:00
commit 7d1df02458

View file

@ -5,6 +5,52 @@ Patches 0002 and 0003 are applied on `souveraine/primary`; 0004 fixes their
QML compatibility. The running instance logged `Configuration Loaded`. This
proves composition and startup only: a live agent turn containing a tool call
has not yet exercised the new cards.
**2026-08-12 — steps 1 and 2 committed, source only.**
`surfaces/quickshell/modules/souveraine/agent/` now exists and is owned:
`ToolVocabulary` (all 19 registry tools — kind, icon, summary, transcribed
from `src/ui/chat/tool_renderers.rs` rather than reinvented), `ToolCard`,
`ThinkingCard`, `AgentMessage`. Commits `3def292` and `6d0f891`.
The gap that motivated it, measured: the vendor `ToolCallBlock` names **8**
tools; the registry holds **19**. The 11 it cannot name are precisely the
interiority verbs — `outfit`, `nickname`, `subagent`, `atmosphere`, `reach`,
`consult`, `itinerary`, `todo`, `schedule`, `halt`, `intrusive`. Filesystem
verbs rendered richly; every verb about being someone rendered as an
anonymous grey block.
`MessageTextBlock` / `MessageCodeBlock` are deliberately still imported from
the vendor snapshot. They are markdown renderers, not agent vocabulary; the
ii-base rule forbids landing agent-surface *features* there, not importing a
markdown engine we already have.
Evidence, labelled per this task's own instruction:
- **source committed** — yes, pushed to `gitea/primary`.
- **composed** — no. New files plus MANIFEST lines are inert until
`deploy.sh` runs. Nothing imports the module.
- **candidate activated** — no. The activating edit (`delegate: AiMessage`
`AgentMessage`, plus one import) is queued as
`surfaces/quickshell/patches/0008`, applies clean against HEAD, one line to
revert.
- **real tool round rendered** — no, and not claimed.
Gate: Qt6 `qmllint` (`/usr/lib/qt6/bin/qmllint` — the `/usr/bin` one is Qt5
and silent on every input), run against a staged copy of the composed tree so
`qs.*` resolves. Zero syntax findings across all four files. Residual warnings
are the widget-resolution class; the vendor `AiMessage` produces 38 of the
same family against 46 here, which is order-parity for a file that draws two
additional card types. The gate was proven able to fail on a deliberately
broken input.
Still step 2b, not done: `AgentPaneHost` / `AgentChat` do not exist yet, so
the sidebar still owns list lifecycle. The 0003 ii-base modifications are
therefore **not** deleted — parity has not been proven by a load, and this
task says not to call that complete from a clean startup alone.
Known parity gaps carried deliberately into the owned delegate: in-place
message editing (Ctrl+S) is not reimplemented, and the attached-file
indicator is not drawn — it belongs with the image-intake half, which has no
picker yet either.
**Source:** Casey, this morning. **Adjacent:** TASK-70 (the island — same
renderer, different surface), TASK-65 (subconscious stall wedges the surface),
TASK-59 (her face).