@oh-my-pi/pi-tui 15.11.2 → 15.11.3
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 +6 -0
- package/dist/types/tui.d.ts +4 -0
- package/package.json +3 -3
- package/src/tui.ts +11 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [15.11.3] - 2026-06-11
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Fixed the root compose letting a lower child's native-scrollback live seam overwrite a higher one: the topmost seam (and its commit-safe extension) now defines the commit boundary, so a status loader below a streaming transcript can no longer cause still-mutable transcript rows to be committed as stale history ([#2328](https://github.com/can1357/oh-my-pi/pull/2328)).
|
|
10
|
+
|
|
5
11
|
## [15.11.2] - 2026-06-11
|
|
6
12
|
|
|
7
13
|
### Fixed
|
package/dist/types/tui.d.ts
CHANGED
|
@@ -83,6 +83,10 @@ export interface Component {
|
|
|
83
83
|
* of history until it finalizes. Volatile live blocks (tool previews that
|
|
84
84
|
* collapse) omit it. Defaults to `liveRegionStart` when absent; a root that
|
|
85
85
|
* reports no seam at all commits everything that scrolls (shell semantics).
|
|
86
|
+
*
|
|
87
|
+
* When several root children report a seam in the same frame, the topmost
|
|
88
|
+
* one (and its commit-safe extension) defines the boundary: commits are
|
|
89
|
+
* prefix-only, so everything below the first seam is already excluded.
|
|
86
90
|
*/
|
|
87
91
|
export interface NativeScrollbackLiveRegion {
|
|
88
92
|
getNativeScrollbackLiveRegionStart(): number | undefined;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-tui",
|
|
4
|
-
"version": "15.11.
|
|
4
|
+
"version": "15.11.3",
|
|
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": "15.11.
|
|
41
|
-
"@oh-my-pi/pi-utils": "15.11.
|
|
40
|
+
"@oh-my-pi/pi-natives": "15.11.3",
|
|
41
|
+
"@oh-my-pi/pi-utils": "15.11.3",
|
|
42
42
|
"lru-cache": "11.5.1",
|
|
43
43
|
"marked": "^18.0.4"
|
|
44
44
|
},
|
package/src/tui.ts
CHANGED
|
@@ -185,6 +185,10 @@ export interface Component {
|
|
|
185
185
|
* of history until it finalizes. Volatile live blocks (tool previews that
|
|
186
186
|
* collapse) omit it. Defaults to `liveRegionStart` when absent; a root that
|
|
187
187
|
* reports no seam at all commits everything that scrolls (shell semantics).
|
|
188
|
+
*
|
|
189
|
+
* When several root children report a seam in the same frame, the topmost
|
|
190
|
+
* one (and its commit-safe extension) defines the boundary: commits are
|
|
191
|
+
* prefix-only, so everything below the first seam is already excluded.
|
|
188
192
|
*/
|
|
189
193
|
export interface NativeScrollbackLiveRegion {
|
|
190
194
|
getNativeScrollbackLiveRegionStart(): number | undefined;
|
|
@@ -833,7 +837,13 @@ export class TUI extends Container {
|
|
|
833
837
|
// the last render the engine actually observed.
|
|
834
838
|
reported = getRenderStablePrefixRows(child);
|
|
835
839
|
}
|
|
836
|
-
|
|
840
|
+
// Topmost seam wins. Commits are prefix-only: the first child that
|
|
841
|
+
// reports a live region (plus its own commit-safe extension) already
|
|
842
|
+
// bounds everything below it, so a lower sibling's seam (e.g. a
|
|
843
|
+
// status loader under a streaming transcript) must never overwrite
|
|
844
|
+
// it — moving the boundary down would commit the earlier child's
|
|
845
|
+
// still-mutable rows as stale history.
|
|
846
|
+
if (liveLocalStart !== undefined && this.#nativeScrollbackLiveRegionStart === undefined) {
|
|
837
847
|
this.#nativeScrollbackLiveRegionStart = offset + liveLocalStart;
|
|
838
848
|
if (commitLocalEnd !== undefined) {
|
|
839
849
|
this.#nativeScrollbackCommitSafeEnd = offset + commitLocalEnd;
|