You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Index for a residual-work sweep run on 2026-07-30, in the same shape as #456's code-climate sweep. Filing the index so the cluster is skippable as a unit rather than reading as fourteen unrelated tickets.
Nothing here is a new feature request. Every item is work that was already started, promised, or documented and then left behind — a deferral whose follow-up never happened, a doc that describes a tree that no longer exists, or plumbing that was built and never wired.
Method, and what it is worth
Four blind sweeps ran independently over the workspace, each with a different modality so none could see what the others surfaced:
in-tree TODO/FIXME/"for now"/"stand-in" markers and their surrounding code
deferred scope announced in the last 60 merged PR bodies, then checked for a successor that never came
documentation drift — CLAUDE.md, etc/*/README.md, docs/superpowers/, docs/live-verify.md — every checkable factual claim verified against the current tree
built-but-unwired plumbing: public accessors, effect variants, and config options with zero consumers
Each sweep's output then went through a hostile stage that had to dedup against all ~400 open and closed issues, confirm the work had not since been done, and actively try to refute the finding. 44 candidates went in; 20 were killed — as duplicates of existing issues, as work already quietly shipped, or as false positives from the search technique. The 24 survivors are clustered here into 14 issues.
I then re-verified the load-bearing citation of every cluster against HEAD myself before filing. That pass corrected at least one earlier finding in the same family (a sleep(2s) that looked like a retry loop and is actually a one-shot debounce), so treat the surviving citations as checked rather than asserted — but the severity ratings are judgement, not measurement.
None of these is a crash or a data-loss bug. The medium ratings are mostly misleading-to-a-reader rather than broken-for-a-user: a plugin author who declares Capability::Niri and gets silence, or a contributor who reads CLAUDE.md and looks for a file that is now a directory. The documentation items are rated the way they are because this repo's docs are load-bearing for both humans and agents working in it.
Pick from this rather than working it top to bottom — it is a menu, not a queue.
Index for a residual-work sweep run on 2026-07-30, in the same shape as #456's code-climate sweep. Filing the index so the cluster is skippable as a unit rather than reading as fourteen unrelated tickets.
Nothing here is a new feature request. Every item is work that was already started, promised, or documented and then left behind — a deferral whose follow-up never happened, a doc that describes a tree that no longer exists, or plumbing that was built and never wired.
Method, and what it is worth
Four blind sweeps ran independently over the workspace, each with a different modality so none could see what the others surfaced:
TODO/FIXME/"for now"/"stand-in" markers and their surrounding codeCLAUDE.md,etc/*/README.md,docs/superpowers/,docs/live-verify.md— every checkable factual claim verified against the current treeEach sweep's output then went through a hostile stage that had to dedup against all ~400 open and closed issues, confirm the work had not since been done, and actively try to refute the finding. 44 candidates went in; 20 were killed — as duplicates of existing issues, as work already quietly shipped, or as false positives from the search technique. The 24 survivors are clustered here into 14 issues.
I then re-verified the load-bearing citation of every cluster against
HEADmyself before filing. That pass corrected at least one earlier finding in the same family (asleep(2s)that looked like a retry loop and is actually a one-shot debounce), so treat the surviving citations as checked rather than asserted — but the severity ratings are judgement, not measurement.The issues
Wiring that was built and never connected
Effect::{Niri,Media,Audio}are declared in the proto, capability-gated, and named in the audit log, but the host broker drops all three with awarn!the plugin author never seesOwnState; a contested bus name is silent, and the already-owned path retriesRequestNameat 4 Hz forever with no log outputmpris::selected_player()has zero subscribers, so the Media panel's "Auto" chip can never stay pressedspawn_supervised_blockingand no process panic hook; niri's IPC loop, the source of workspaces and fullscreen detection, is still unsupervisedWarningLevelthe toasts already rideGetSecretsroundStubs and duplication left behind
displays.rsanddisplay_config.rseach open their own socket to poll niriOutputsevery 2 s and never shared a sourcehytte-plugin-pet'sface.rsis the last hand-rolled raster buffer in the fleet, never migrated ontopreem::Frameprograms.trollshell.nightlight.*options are declared in the shared module base and document themselves as workingDocumentation that is actively wrong
hytte-bustest)docs/CHOOM-INIT.mdandCLAUDE.mdassert facts the tree contradictsetc/describe shipped features as unshipped, and feat(shell): d-bus command surface so niri keybinds can drive sidebar, drawer pages, and power menu #219's GAction verbs are bound nowhere in the shipped niri configdocs/live-verify.mdstops at fix(wifi): retry an inconclusive backend probe instead of latching "no backend" (#613) #634 while fix(overlays): destroy unrealized layer windows on teardown, not close() (#632) #637/fix(hytte-ui): destroy() the three remaining close()-teardown sites (#638) #639/fix(places): correct the shipped default station id (#641) #642 merged behind itSequencing notes
crates/trollshell-control-center/src/main.rs.Severity, honestly
None of these is a crash or a data-loss bug. The
mediumratings are mostly misleading-to-a-reader rather than broken-for-a-user: a plugin author who declaresCapability::Niriand gets silence, or a contributor who readsCLAUDE.mdand looks for a file that is now a directory. The documentation items are rated the way they are because this repo's docs are load-bearing for both humans and agents working in it.Pick from this rather than working it top to bottom — it is a menu, not a queue.