Fixed
lnow says why the layout did not change on a narrow terminal. The
gridpreset auto-degrades tostackbelow 96 columns of dashboard width
so two columns never squeeze to ~40 cols each. That guard is correct, but it
was silent: on an 80-col window (or a 140-col one with the process table open,
which leaves the panel at ~66) pressinglflipped the requested preset
internally while the screen never changed and nothing explained it — the key
read as broken.lnow raises a toast reporting the layout actually applied,
and when a requested grid was degraded it names the requirement and the
measured width (grid needs >=96 cols (panel has 80)). Matches howt
already reports the theme. The in-app help (?) documents the width rule too,
andHardwareDashboard.grid_min_widthis exposed so the app can explain the
degrade without reaching into the widget.
Changed
-
PyPI publishing moved out of CI/CD into the local tag cut.
.github/workflows/publish-pypi.ymlis deleted and OIDC Trusted Publishing is
no longer used;scripts/tag_release.shnow builds the sdist + wheel and
uploads them withtwineimmediately after pushing the tag and creating the
GitHub Release, so cutting and publishing a release are one act on the
maintainer's machine. Credentials come fromTWINE_USERNAME/TWINE_PASSWORD
in the environment. The script pre-flights the credentials, the.venv, and
thebuild/twinemodules before it pushes anything, because a
credential failure discovered after the tag is pushed would leave a tagged,
released, unpublished version that cannot be re-cut. It also wipesdist/
before building (the upload glob would otherwise ship stale artifacts),
verifies the built filenames match the tag, and runstwine checkbefore
uploading. Newreleaseoptional-dependency group (build,twine), kept out
ofdevso Linux CI stays lean. Maintainer-facing only — no change to the
published package. -
record-tui-gifskill: prose re-synced with the bundled tape.SKILL.md
still described a pre-v1.9 stack-based recipe and contradicted
actop-demo.tape's own comments: it recommendedWidth 1400(which the tape
documents as silently degrading grid to stack mid-take), aSleep 6swarm-up
(the tape covers the full ~330s chart span, noting 7s fills 2% of the chart),
Height 1050/900(actual:930), an off-cameralgrid->stack switch and an
l -> g -> tchoreography the tape never performs, plus a stale keybinding
table (tlabelled processes,plabelled pause). An agent following it would
have set the known-broken width and warm-up, pressedlon camera against a
grid-sizedHeight, and used the wrong keys. The prose now matches the tape,
states explicitly that the hero take is grid start-to-finish and thatlmust
not be pressed on camera, and lists the real bindings. The skill description no
longer claims an on-camera layout toggle. No change to the tape itself.