Skip to content

v1.0.25

Choose a tag to compare

@QuangThai QuangThai released this 12 Oct 01:24
· 3 commits to main since this release

The prompt marker, fixed at the root

This release fixes two problems with the 1.0.24 prompt marker in the claude-code preset.

Fixed

  • A message that opened with a link had its ❯ on the second row.
    • Cause: the theme's text check in the messages module read an OSC escape sequence as running to the next BEL. Pi closes its OSC 8 hyperlinks with ST (ESC \), so a link swallowed the rest of its row, the row read as blank, and the marker went to the next row.
    • The same misread kept the messages.assistantPrefix gutter off an answer that opens with a link. This predates 1.0.24; the new marker made it visible.
    • OSC sequences now end at BEL or ST. Other parts of the theme already read them that way.
  • The prompt's band didn't line up with the answers' ●. In 1.0.24 Pi's band still ran edge to edge, with the ❯ one column inside it. Claude Code's band starts in the marker column, and now this one does too:
    • The band starts under the answers' ● and stops one column short of the right edge.
    • The ❯ fills the band's first cell, and the text starts in the same column as the answers' text.

Kept

  • Pi's blank band rows above and below the text are kept. This is the one visible difference from Claude Code, whose band covers only the text rows.
  • Without the assistant marker, your messages are untouched.

How it stays contained

  • If any band row lacks Pi's shape (background escape, padding, text), the whole message keeps Pi's own rendering. A partly marked block would mix widths, so the theme never draws one.

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, 433 unit/integration/golden tests, dependency boundaries, production build, and package smoke.
    • New regression tests feed the exact link row Pi 1.1 writes (OSC 8 closed with ST) to the prompt marker and to the assistantPrefix gutter.
    • With the ST handling removed, exactly those two tests fail.
    • The layout tests check that every band row is painted from column 1 to one column short of the right edge, with the edge columns left plain.
    • The fix commit 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 (152.0 kB packed).
  • Real TUI on Pi 1.1.0 (bundled build), with the Titanium theme and an isolated agent directory. The prompt typed was https://github.com/… tôi đang cần…. Cell backgrounds were read back from the terminal buffer:
    • claude-code: every band row is painted from column 1 to column 98 of 100, and columns 0 and 99 are plain. The ❯ sits at column 1 on the link row, with the answers' ● also at column 1. The text and its wrapped row start at column 3, like the answers' text.
    • default: the band runs from column 0 to 99 with no marker, as before.

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;
  • a real Pi 1.1.0 run of the installed package with the same link-first prompt. In the claude-code and default presets, it renders exactly as the pre-release build did, apart from run timings.
pi install npm:@nguyenquangthai/pi-omp-theme@1.0.25
# For an existing unpinned installation:
pi update npm:@nguyenquangthai/pi-omp-theme