~bigbes/sourcehut-root: f2005d11

patches: core-nav-groups, and where it can actually be applied

The service switcher becomes a pinned row plus a grouped remainder behind
a counter; this is the Python half of that, against core.sr.ht. It adds
srht/app/nav.py and keeps its contact with upstream to three small hunks
in flask.py, which is the difference between a patch that survives a
version bump and one that has to be re-derived after every refresh.

Checked against 0.84.5 — what the instance actually runs — as well as
0.83.8 and 0.83.0, with no offsets anywhere, and the patched 0.84.5 scss
compiles. That range is not luck: the hunks stay clear of the two regions
upstream moved in between.

The section spends most of its length on how the patch would reach
production, because the obvious answer is wrong and the wrongness is
reusable. sr.ht-apkbuilds here is upstream's own repo, read-only and
pinned three minor versions behind; the apk arrives from a channel that
mirrors upstream's prebuilt packages, so there is no local build to hook
a source= patch into. What this instance actually does to core.sr.ht is
rewrite the installed files in Dockerfile.base, which nav.html already
carries twice.

The scss half has no answer yet and the section says so rather than
implying one. Python services get their CSS prebuilt inside upstream's
apks and cannot be reached through core.sr.ht's scss at all; Go services
compile theirs in CI from a clone, where the patch does apply. Until that
is decided the panel opens everywhere and is styled nowhere — <details>
needs no CSS to work, so the failure is a plain nested list rather than a
broken navbar.

The fixture and the expected switcher land beside the patch. No test can
span Python and Go, so a shared answer key is what keeps two separate
checks about the same question.

Eugene Blikh <bigbes@gmail.com> — 2026-08-23 07:17:00 UTC

Commit f2005d11070fef1945764c55e6525d58ade55b37view raw patch

Parent(s): 7778356a

4 changed file(s)

FileStatus+
patches/README.md M +56
patches/core-nav-groups.expected A +44
patches/core-nav-groups.fixture.ini A +89
patches/core-nav-groups.patch A +382