@oh-my-pi/pi-tui 17.2.7 → 17.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [17.2.9] - 2026-08-05
6
+
7
+ ### Fixed
8
+
9
+ - Fixed table borders (and adjacent cells) inheriting an open inline-code color when a cell's content wraps mid-code-span, by terminating each wrapped cell line's SGR state before the border glyphs ([#7575](https://github.com/can1357/oh-my-pi/issues/7575)).
10
+ - Fixed inline images not rendering under WSL + Windows Terminal: the SIXEL capability probe gated on `process.platform === "win32"`, but WSL reports `linux`, so the probe never ran and images fell back to the text placeholder even on Sixel-capable Windows Terminal. The probe now runs on any ConPTY host (native win32 or WSL) ([#6009](https://github.com/can1357/oh-my-pi/issues/6009)).
11
+
5
12
  ## [17.2.5] - 2026-08-03
6
13
 
7
14
  ### Fixed
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@oh-my-pi/pi-tui",
4
- "version": "17.2.7",
4
+ "version": "17.2.9",
5
5
  "description": "Terminal User Interface library with differential rendering for efficient text-based applications",
6
6
  "homepage": "https://omp.sh",
7
7
  "author": "Can Boluk",
@@ -37,8 +37,8 @@
37
37
  "fmt": "biome format --write ."
38
38
  },
39
39
  "dependencies": {
40
- "@oh-my-pi/pi-natives": "17.2.7",
41
- "@oh-my-pi/pi-utils": "17.2.7",
40
+ "@oh-my-pi/pi-natives": "17.2.9",
41
+ "@oh-my-pi/pi-utils": "17.2.9",
42
42
  "lru-cache": "11.5.2",
43
43
  "marked": "^18.0.6"
44
44
  },
@@ -34,7 +34,7 @@ export class CancellableLoader extends Loader {
34
34
  }
35
35
  }
36
36
 
37
- dispose(): void {
37
+ override dispose(): void {
38
38
  this.stop();
39
39
  }
40
40
  }
@@ -55,7 +55,7 @@ export class Loader extends Text {
55
55
  this.start();
56
56
  }
57
57
 
58
- render(width: number): readonly string[] {
58
+ override render(width: number): readonly string[] {
59
59
  const source = super.render(width);
60
60
  if (source !== this.#layoutSource) {
61
61
  const paddingX = getPaddingX(1);
@@ -804,11 +804,11 @@ markdownParser.use({
804
804
  // (no `m` flag), and stickiness only removes the futile later attempts. The
805
805
  // flags/anchor guard below skips any rule a future marked version changes.
806
806
  class AnchoredAtZero extends RegExp {
807
- exec(str: string): RegExpExecArray | null {
807
+ override exec(str: string): RegExpExecArray | null {
808
808
  this.lastIndex = 0; // sticky matches set lastIndex; rules are shared
809
809
  return super.exec(str);
810
810
  }
811
- test(str: string): boolean {
811
+ override test(str: string): boolean {
812
812
  this.lastIndex = 0;
813
813
  return super.test(str);
814
814
  }
@@ -2816,7 +2816,13 @@ export class Markdown implements Component, NativeScrollbackCommittedRows, Nativ
2816
2816
  while (wrapped.length > 1 && wrapped[wrapped.length - 1] === "") {
2817
2817
  wrapped.pop();
2818
2818
  }
2819
- return wrapped;
2819
+ // The native wrap deliberately leaves fg color and bold/italic open at
2820
+ // line ends so continuation lines can re-open them. Table rows splice
2821
+ // every cell line between unstyled border glyphs, so an open style
2822
+ // (e.g. mdCode) would bleed into the "│" and the following cells.
2823
+ // Terminate each line at default fg, clearing bold/italic but keeping
2824
+ // any ambient background (message-bg rendering) intact.
2825
+ return wrapped.map(line => `${line}\x1b[22m\x1b[23m\x1b[39m`);
2820
2826
  }
2821
2827
 
2822
2828
  /**
package/src/tui.ts CHANGED
@@ -1670,7 +1670,10 @@ export class TUI extends Container {
1670
1670
 
1671
1671
  #querySixelSupport(): void {
1672
1672
  if (TERMINAL.imageProtocol) return;
1673
- if (process.platform !== "win32") return;
1673
+ // win32 native or WSL under Windows Terminal — both are ConPTY-hosted and
1674
+ // reach the same WT graphics negotiation. WSL reports process.platform
1675
+ // "linux", so a bare win32 check silently skips the probe there (#6009).
1676
+ if (!isConPTYHosted()) return;
1674
1677
  if (!Bun.env.WT_SESSION) return;
1675
1678
  if (!process.stdin.isTTY || !process.stdout.isTTY) return;
1676
1679