Watch
1
0
Fork
You've already forked souveraine
0

shell: document which edits are live and block patch 0008

deploy.sh: name the hazard the composer already implements — a new file
plus a manifest line is inert until the next deploy, while editing a file
already in the manifest is live in the running shell immediately.
Registration is the dangerous act, not creation.

patches/README: 0008 swaps the message delegate to one that does not carry
the vendor control row (regenerate, speak, re-synthesize, copy, edit, raw,
delete). Applying it would remove all seven.
This commit is contained in:
Fimeg 2026-08-12 13:24:34 -04:00
commit 1951d2b69b
2 changed files with 32 additions and 0 deletions

View file

@ -32,6 +32,29 @@ II="${QS}/ii"
SV="${QS}/souveraine"
TARGET_ARCH="${SOUVERAINE_TARGET_ARCH:-$(uname -m)}"
# ── Which edits are live, and which are inert ────────────────────────────
# Our manifest entries are composed as SYMLINKS into this repo, so the repo IS
# the running shell for every file listed below. quickshell reloads on write.
# The consequence, and it is the thing to know before touching anything here:
#
# - Adding a NEW file + its MANIFEST line is INERT. The composed tree gains
# nothing until the next deploy.sh run. Build whole modules this way.
# - Editing a file ALREADY in the manifest is LIVE, immediately, in the
# running shell — no deploy needed, no confirmation, no undo.
#
# So registration is the dangerous act, not creation. A QML file that fails to
# compile takes its whole module with it (a QtObject root with no default
# property failed all of qs.services once, 29ec9fe), and quickshell will not
# restart a config that crashes within 10s of launch — the bar simply stays
# gone. Restarting the shell also re-locks the session via PAM, so it costs
# the human a password.
#
# Practice: write patches into surfaces/quickshell/patches/ and let the human
# apply and reload on their own beat; edit in a detached git worktree, never in
# this tree. TASK-72's AgentPaneHost makes this structural — a candidate pane
# loads beside the active one and only swaps on its ready signal — after which
# a bad edit leaves the working pane drawn instead of taking the surface down.
#
# Manifest: "<repo-relative> <target-relative-to-~/.config/quickshell>"
MANIFEST="
shell.qml souveraine/shell.qml