| Filename | Latest commit message | Latest commit date |
|---|---|---|
Requires
|
||
| .. | ||
| 0001-resume-offer.patch | ||
| 0002-think-fence-collision.patch | ||
| 0003-typed-chat-segments-tool-cards.patch | ||
| 0004-shell-keep-typed-segments-QML-compatible.patch | ||
| 0006-stepup-authenticate-through-pam.patch | ||
| 0007-shell-render-context-occupancy-and-stop-reading-hypr.patch | ||
| README.md | ||
patches/
Staged shell changes that are not applied to the tree.
Why this directory exists
~/.config/quickshell/souveraine/*.qml are symlinks into this repo, and
quickshell reloads on write. So editing a file here edits the running shell,
immediately. When the agent is the one editing, that means an edit can take
down the process the agent's own turn is running inside — and a shell that
fails to compile does not come back on its own (see 29ec9fe: one bad root type
failed the whole qs.services module).
So the rule is: the agent writes patches, the human applies them. The
reload happens on a human's beat, when nothing is in flight, with a known-good
tree one git checkout away.
Applying
cd ~/Projects/souveraine
git am surfaces/quickshell/patches/0001-....patch
# then reload the shell yourself and watch it come up
Verify before trusting:
cd surfaces/quickshell
./deploy.sh
timeout 40 qs -c souveraine 2>&1 | grep -E "ERROR|Configuration Loaded"
If it does not come up, git reset --hard HEAD~1 and the patch is just a file
again.
Discipline
- One patch, one behaviour. Reviewable in a sitting.
- The patch's commit message says what it changes and what it deliberately leaves alone.
- A patch is untested against a running shell unless its notes say otherwise. Say which: verified / reasoned / untested.
- Applied patches get deleted from this directory in the same commit that applies them. This directory is a queue, not an archive — git keeps history.
In the queue
0001–0004 are still on disk and still unapplied — resume-offer,
think-fence collision, typed chat segments, and the QML-compat follow-up. They
carry their own notes in their commit messages; none has been described here.
Anything applied or retired is deleted from this directory by design.
Recently closed
- 0005 — config: never store a null option. Applied and committed as
f7e0e51. Null-valued options serialised intoconfig.jsonand segfaultedJsonAdapter::deserializeRecon the next launch — the session that wrote the option ran fine, every launch after it died ~10 s in. Replaced with tristate strings (auto/on/off), booleans still honoured. Verified live: shell loads clean, no nulls written back. - 0005 (earlier) — mount the agent island. Retired by
013a06a; the island left the bar to sit beside chat (2179b62). The number was reused.