Stop describing a desktop this repository does not install
Phase 5. The README advertised two desktops that coexist -- GNOME with Forge, Dash-to-Dock, Openbar and Vitals, alongside Hyprland -- and nothing in setup/ installed or configured any of the first one. Panama configures one desktop, and now says so. config/dot/forge is deleted along with its entry in link-dotfiles. It was the hedge from when the GNOME session was still the fallback and Hyprland was being built beside it; the hedge has been paid off. Nine files, six of which were Forge's own editor backups that should never have been committed. Searching for the rest of GNOME found nothing else to cut, which is recorded in the spec so nobody goes looking again. change-settings never enabled an extension. The mentions of Dash-to-Dock, Openbar and Vitals through the shell are comments saying what a component was modelled on -- which intellihide behaviour the dock reproduces, where a colour came from -- and DESKTOP-PARITY.md is the table of what replaced what. That is provenance, and it is the reason those components behave the way they do. Vitals in services/ is Panama's own bar service and merely shares a name with the extension it replaced. The handoff panel list was wrong in two places. It named Wacom, which nothing hands off to, and Region, which is a subpage of System rather than a panel. The nine real ones are read off the call sites and the allow-list that gates them. The spec said it, the comment on gnome-control-center repeated it, and the README would have made it three. One test gap turned up and is closed. The assets contract caught a directory under config/dot/ that nothing links, but not the inverse: a name left in the dirs array with nothing behind it, which makes link-dotfiles point ~/.config/<name> at a path that does not exist. Deleting Forge is the exact move that introduces that, and nothing would have failed if the array entry had been left. A dangling symlink is worse than a missing one, because everything that looks there finds something. Verified by putting the entry back and watching it fail. The audit of docs/settings.md this phase asked for needed nothing: it is generated from PreferenceSchema.qml, a contract already fails when it goes stale, and it carries no claim about GNOME or Forge. The README gained the section it was missing instead -- the 121 contracts under tests/ were the main safety net in this repository and went entirely unmentioned in it. Claude-Session: https://claude.ai/code/session_01NvgBuSWB5sE43yWmg21ozj
This commit is contained in:
@@ -280,6 +280,33 @@ The README's Desktops section is rewritten to describe one desktop. The comment
|
||||
depends on it, so a future reader does not mistake it for GNOME-session residue and
|
||||
remove it. `gnome-settings-hyprland.desktop` stays.
|
||||
|
||||
Searching for the rest of it found nothing else to cut, and that is worth
|
||||
recording so nobody goes looking again. `change-settings` never enabled a GNOME
|
||||
extension. The mentions of Dash-to-Dock, Openbar and Vitals scattered through the
|
||||
shell are comments saying what a component was modelled on — `Dock.qml` explaining
|
||||
which intellihide behaviour it reproduces, `Theme.qml` naming where a colour came
|
||||
from — and `DESKTOP-PARITY.md` is the table of what replaced what. Those are
|
||||
provenance, not residue: they are the reason the components behave the way they
|
||||
do, and deleting them would cost the explanation while saving nothing. `Vitals` in
|
||||
`config/dot/quickshell/services/` is Panama's own bar service and merely shares a
|
||||
name with the extension it replaced.
|
||||
|
||||
The panel list this spec gave for the handoff was already wrong when it was
|
||||
written: it named Wacom, which nothing hands off to, and Region, which is a
|
||||
subpage of System rather than a panel. The nine actual panels are colour,
|
||||
keyboard, network, online-accounts, privacy, sound, system, universal-access and
|
||||
wellbeing, and the allow-list in `services/SystemSettings.qml` is what decides.
|
||||
The comment on `gnome-control-center` in `desktop-packages` repeated the wrong
|
||||
list and has been corrected to match.
|
||||
|
||||
One test gap turned up here and is closed. The assets contract caught a directory
|
||||
under `config/dot/` that nothing links, but not the inverse — a name left in the
|
||||
`dirs` array with no directory behind it, which makes `link-dotfiles` point
|
||||
`~/.config/<name>` at nothing. Deleting Forge was the exact move that introduces
|
||||
it, and nothing would have failed if the array entry had been left behind. A
|
||||
dangling symlink is worse than a missing one, because everything that looks there
|
||||
finds something.
|
||||
|
||||
### The `panama` command
|
||||
|
||||
Three subcommands are added to the existing dispatcher, which was written to grow
|
||||
@@ -401,7 +428,11 @@ installer. They remain recoverable from sunhat's git history.
|
||||
They are clutter, not risk; pruning them stays in phase 6.
|
||||
- Guard the `.cargo/env` source in `config/bash/.bashrc` and remove the Codex block.
|
||||
- Rewrite the README: one desktop, the real install stages, and the test suite.
|
||||
- Audit `docs/settings.md` (21K) for claims that no longer hold.
|
||||
- **Done, and it needed nothing.** `docs/settings.md` is generated from
|
||||
`PreferenceSchema.qml` by `panama-settings-docs`, and a contract already fails
|
||||
when the copy is stale. It is current, all 133 settings, and carries no claim
|
||||
about GNOME or Forge at all. The audit this line asked for was a manual reading
|
||||
of a file that cannot go stale without a test saying so.
|
||||
|
||||
## Phases
|
||||
|
||||
|
||||
Reference in New Issue
Block a user