Skip to content

v1.0.26

Latest

Choose a tag to compare

@QuangThai QuangThai released this 12 Oct 02:32

The prompt band, one row like Claude Code's

This release makes your messages in the claude-code preset look like Claude Code's: the band covers only the text. It also fixes the spacing under the welcome card that this change would otherwise have broken.

Changed

  • Your messages' band covers only their text. This applies with messages.assistantMarker on (the claude-code preset).
    • Cause: measured on screenshots of both, the ❯ already sat where Claude Code puts it, about 6 px inside the band's first cell. The cramped look came from the band's shape. Pi's band had a full blank row above and below the text but nothing to the left of the marker. Claude Code's band is just the text rows.
    • Pi's blank band rows above and below your text are gone. A blank row between paragraphs stays inside the band.
    • Pi's own spacing still leaves one blank row above and below each message.
    • The ❯, the band's left edge, and the text columns stay where 1.0.25 put them.

Fixed

  • Your first message would have sat on the welcome card's bottom edge.
    • Pi normally puts blank rows around its own startup header. A quiet startup (quietStartup: true) leaves them out, and Pi adds no blank row before the first message in an empty chat.
    • Since 1.0.23 dropped the card's bottom padding, the band's blank top row was all that separated the card from your first message, whether new or restored on resume.
    • When the card is Pi's header, it now keeps one blank row below it.

Side effects

  • Verbose startup (quietStartup: false or --verbose): Pi adds its own blank row as well. That leaves two blank rows between the card and Pi's resource list, as above the card. An extension can't tell which kind of startup ran.
  • Pi 0.85 at startup: two blank rows between the card and the editor instead of one. Pi 1.1 keeps the editor at the bottom of the screen, so nothing visible changes there.
  • default preset: your first message's band starts one row lower.
  • startup.mode: "off": with no card, your first message is the first row on screen. Its text row now sits at the top, where Pi's painted blank band row used to be.
  • Card as a widget: when the card sits above the editor as a widget, it is unchanged.

Verification

  • CI: this repository has no configured GitHub Actions workflows, check-runs, or commit-status contexts for the release commit. The local release gates below all passed.
  • npm ci and npm run check: typecheck, 435 unit/integration/golden tests, dependency boundaries, production build, and package smoke.
    • New tests check four things:
      • the band drops Pi's blank rows above and below the text;
      • a blank row between paragraphs stays painted;
      • the card mounted as Pi's header ends with a blank row;
      • the card as a widget, or a card with no rows, adds none.
    • Mutation checks:
      • Restoring the old row handling fails exactly the three band tests.
      • Removing the header row, or adding it to the widget too, fails the header test.
    • Each of the two change commits passes npm run check on its own.
  • npm run test:e2e:readonly-tools: 25/25 packed-package CLI/RPC cases on Pi 0.99.1 with pi-hashline-edit-pro 4.5.1.
  • npm publish --dry-run: the expected 7-file npm artifact.
  • Real TUI on Pi 1.1.0 (bundled build), set up like the reporter's:
    • Setup: Titanium theme, quietStartup: true, an isolated agent directory, the project outside the home directory, and no fd/rg or trust notices in the chat.
    • The prompts were a link-first message that wraps, then a short follow-up. Cell backgrounds were read back from the terminal buffer.
    • claude-code:
      • The card's bottom edge is on row 17 and row 18 is unpainted.
      • The band covers only rows 19–20 (the two text rows), from column 1 to 98 of 100. The ❯ is in column 1 and the text and its wrapped row start in column 3.
      • The follow-up's band is its one text row. The rows above and below it are plain.
      • Compared with 1.0.25 in the same setup, exactly the two blank band rows per message are gone. Nothing else moved.
    • default: one blank row under the card, then Pi's own padded band from column 0 to 99 with no marker, as before.
    • Other cases:
      • Pi 0.85.0 renders the same rows and cells as Pi 1.1.
      • A resumed session (-c) puts the restored first message one blank row under the card.
      • A 64-column terminal puts it one blank row under the compact logo.
      • A verbose startup shows two blank rows between the card and the resource list.

Tested on Windows x64 with Node 24.11.1. Linux/macOS runs were not part of this verification.

Install / update

Published on npm. Verified:

  • the registry latest tag, gitHead (the release commit), and tarball shasum;
  • a clean install whose files match the release build byte for byte;
  • the same real-TUI runs on the installed package. On Pi 1.1 (claude-code, default, verbose startup, 64 columns) and Pi 0.85, the transcript matches the pre-release build row for row, apart from run timings and the test directory's name.
pi install npm:@nguyenquangthai/pi-omp-theme@1.0.26
# For an existing unpinned installation:
pi update npm:@nguyenquangthai/pi-omp-theme