Skip to content

feat(banner): show what is new in 3.2, readable at 80 columns - #182

Merged
LESdylan merged 1 commit into
developfrom
docs/whats-new-3.2
Oct 18, 2026
Merged

LESdylan merged 1 commit into
developfrom
docs/whats-new-3.2

Conversation

@LESdylan

Copy link
Copy Markdown
Member

The welcome panel's "Did you know?" block becomes What's new in 3.2: one row per new feature, written as the keys that reach it, then the switch for inline hints. The panel links to a new guide, wiki/whats-new.md, at univers42.github.io/hellish/whats-new. The guide covers every feature with an example run on a 3.2 build.

│           Welcome back, friend!           │ Getting started                  │
│                                           │                                  │
│                 :::      ::::::::         │   help       commands & options  │
│               :+:      :+:    :+:         │   update     check for updates   │
│             +:+ +:+         +:+           │   type NAME  what a name runs    │
│           +#+  +:+       +#+              │ ──────────────────────────────── │
│         +#+#+#+#+#+   +#+                 │  NEW  What's new in 3.2          │
│              #+#    #+#                   │                                  │
│             ###   ########.fr             │   ↑ ↓        history by prefix   │
│                                           │   make <TAB> Makefile targets    │
│  hellish 3.1.3 · a POSIX shell with bite  │   bind -x    key runs a command  │
│                     ~                     │   bindkey    zsh binds now work  │
│                                           │   ${var@P}   render as a prompt  │
│       the 3.2 guide, with examples        │   $SRANDOM   and $EPOCHREALTIME  │
│  → univers42.github.io/hellish/whats-new  │                                  │
│                                           │   export HELLISH_AUTOSUGGEST=1   │
│                                           │   → ^F End   take the dim hint   │
│                                           │   Alt-F      take one word       │
│                                           │   Alt-N/P    older/newer hint    │

(80 columns, rendered from this branch)

  • Fits 80 columns. The right column has 32 cells there. The 3.1 rows, and two "Getting started" rows, were written for about 40 and were cut with …. The link sits under the logo, because the left column is a fixed 43 columns.
  • LANG=C frame. The identity line printed a UTF-8 · that header_width() cannot decode in that locale, so the row came out too wide. It is a - there now.
  • HELLISH_HEADER_REV goes to 4. banner_update_test.py now reads the revision from incs/version.h instead of hard-coding it as 3.
  • The guide is in the mkdocs nav. mkdocs build --strict passes, and every in-page anchor resolves. interactive.md's autosuggestions roadmap entry is now marked shipped.

Tests: tests/banner_news_test.py (new, 27 checks) renders the panel at 80 and 120 columns in UTF-8 and C. It checks four things:

  • every framed row is exactly the terminal's width;
  • no news row is clipped;
  • the link shows in full;
  • the guide is in the nav and names every key the banner shows, so the two cannot drift apart.

It fails 7 checks on the 3.1.3 build. Lengthening one row makes it fail at 80 columns only. banner_update_test.py passes all 16 checks with a clean HOME. A personal ~/.hellishrc prompt hides the update badge, both before and after this change.

🤖 Generated with Claude Code

The welcome panel's "Did you know?" block becomes "What's new in 3.2":
one row per new feature, written as the keys that reach it, then the
switch for inline hints. The link to wiki/whats-new.md (new, and in the
site nav) sits under the logo. The left column is a fixed 43 columns, so
the URL shows in full at any width.

Every right-hand row now fits in the 32 cells the right column has on an
80-column terminal. The 3.1 rows, and two "Getting started" rows, were
written for about 40 and were cut with an ellipsis there. Under LANG=C,
the identity line printed a UTF-8 middle dot that header_width() cannot
decode, so it stopped counting and the frame went out of line. In that
locale it is now a dash.

HELLISH_HEADER_REV goes to 4, so users who saw the 3.1 panel see this
one. banner_update_test.py had the revision hard-coded as 3; it now reads
it from incs/version.h.

tests/banner_news_test.py renders the panel at 80 and 120 columns, in
UTF-8 and in C. It checks four things:
- every framed row is the terminal's width;
- no news row is clipped;
- the guide link shows in full;
- the guide is in mkdocs.yml's nav and names every key the banner shows.
On the 3.1.3 build it fails 7 checks, the LANG=C frame among them.
Lengthening one row makes it fail at 80 columns only.

Also: the autosuggestions entry on interactive.md's roadmap is now
marked shipped.
@LESdylan
LESdylan merged commit fcc231c into develop Oct 18, 2026
41 of 42 checks passed
@LESdylan
LESdylan deleted the docs/whats-new-3.2 branch October 18, 2026 02:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant