Commit Graph
2026 Commits
Author SHA1 Message Date
Chess Luo 32d6421e84 test(tui): isolate Herdr env in direct-terminal fixtures 2026-08-06 16:06:40 +08:00
Chess Luo c720597d43 fix(tui): preserve scrollback in Herdr panes 2026-08-06 15:29:21 +08:00
can1357 f7f8e040ee chore: bump version to 17.2.9 2026-08-05 03:07:47 +02:00
can1357 34ecb4a107 chore(changelog): normalized unreleased entries after merges 2026-08-05 01:13:13 +02:00
can1357 40d47b557f Merge PR #7580: fix(tui): run sixel probe under WSL + Windows Terminal (@roboomp) 2026-08-05 01:11:56 +02:00
can1357 2eea289648 Merge PR #7576: fix(tui): terminate wrapped table cell lines' SGR state so borders keep default color (@miaopan607) 2026-08-05 01:11:56 +02:00
metaphorics 3802d2dd80 chore(ts): enforce noImplicitOverride 2026-08-05 02:49:01 +09:00
can1357 003bb5548c chore: bump version to 17.2.8 2026-08-04 05:53:35 +02:00
roboomp 6eb9574436 fix(tui): ran sixel probe under wsl windows terminal
The SIXEL capability probe gated on process.platform === "win32", but
under WSL process.platform is "linux", so the probe never ran and inline
images fell back to the text placeholder even on Sixel-capable Windows
Terminal. Gate on isConPTYHosted() (native win32 or WSL) instead; the
existing WT_SESSION and TTY requirements still scope it to WT.

Fixes #6009
2026-08-04 02:55:38 +00:00
淼畔 6b2d532269 fix(tui): terminate wrapped table cell lines' SGR state so borders keep default color
Table rows splice every wrapped cell line between unstyled border glyphs.
The native wrap deliberately leaves fg color and bold/italic open at line
ends so continuation lines can re-open them, so a codespan broken across a
wrap leaked its color into the '|' borders, inter-cell padding, and the
following cells. Close SGR state per cell line (bold/italic off, default
fg; background preserved) in #wrapCellText.

Closes #7575
2026-08-04 09:56:54 +08:00
can1357 a5090f1f81 chore: bump version to 17.2.7 2026-08-04 01:19:36 +02:00
can1357 bc39ffa265 feat: introduced omptype validation package and migrated workspace dependencies
- Introduce `@oh-my-pi/omptype` as a new ArkType-compatible schema validation package featuring a lazy JIT runtime, JSON Schema emission, and compatibility adapters.
- Replace `arktype` across workspace packages and test utilities with `@oh-my-pi/omptype`.
- Add benchmark suites, tests, and documentation for the new validation engine and adapters.
- Update workspace build, test runner, and release configurations to include the new package.
2026-08-03 21:56:48 +02:00
can1357 01c1f91ff5 chore: bump version to 17.2.6 2026-08-03 16:44:19 +02:00
can1357 c53b85aaf4 chore: bump version to 17.2.5 2026-08-03 05:53:12 +02:00
can1357 63b07f8ec0 chore: rewrite changelogs 2026-08-03 05:52:53 +02:00
can1357 a7f3bc2a17 chore: normalized changelog entries after merges 2026-08-02 21:01:11 +02:00
can1357 c6b282bc68 fix(tui): preserve kitty event reporting mode 2026-08-02 20:54:39 +02:00
can1357 ce7d037240 Merge PR #7321: fix(tui): requested base-layout keys for shortcuts (@roboomp) 2026-08-02 20:54:39 +02:00
can1357 d595332fc6 chore: bump version to 17.2.4 2026-08-02 00:19:30 +02:00
roboomp 422aeeea49 fix(tui): requested base-layout keys for shortcuts
Requested Kitty flag 4 alongside escape-code disambiguation so Ghostty reports base-layout key codepoints for non-Latin keyboard layouts.

Added negotiation and shortcut-matching regression coverage.

Fixes #7320
2026-08-01 20:36:22 +00:00
can1357 5b2aefe584 Merge PR #7263: fix(tui): prevent test env from suppressing interactive launch (@roboomp)
# Conflicts:
#	packages/utils/test/env.test.ts
2026-08-01 20:14:08 +02:00
roboomp b1b6d99627 fix(tui): backpressured slow loader paints
Measured each animated Loader paint and recursively scheduled the next frame with a 10% duty-cycle target, capped at 200ms to retain responsiveness.

Added a regression covering a slow synchronized-output direct-write path and documented the fix.

Fixes #7290
2026-08-01 17:23:26 +00:00
roboomp 9f9c9758a1 fix(tui): prevented test env from suppressing interactive launch
Scoped test-runtime detection to explicit runner markers and Bun test entrypoints, so application NODE_ENV/BUN_ENV values no longer make ProcessTerminal headless.

Added subprocess regression coverage and propagated the private marker to test children.

Fixes #7261
2026-08-01 11:39:57 +00:00
can1357 8baa3300bc chore: bump version to 17.2.3 2026-08-01 08:35:39 +02:00
can1357 d5861c2c66 chore: bump version to 17.2.2 2026-07-31 20:56:49 +02:00
can1357 2c85a74cd4 chore: rewrite changelog 2026-07-31 20:40:52 +02:00
can1357 161073a79e docs(natives): moved workspace addon fix note to unreleased 2026-07-31 19:43:17 +02:00
can1357 e1ad89abe1 fix(changelog): place PR 7055 notes under Unreleased 2026-07-31 19:42:43 +02:00
can1357 a91fa13116 Merge PR #7055: fix(tui): preserve literal code block rows (@GratefulDave) 2026-07-31 19:42:43 +02:00
can1357 f1f7ed7f75 Merge PR #7113: fix(tui): ignore system sleep in loop watchdog (@wolfiesch) 2026-07-31 19:28:43 +02:00
can1357 540e8f5797 Merge PR #7188: fix(coding-agent): preserve scrollback on appearance changes (@Sairen777)
# Conflicts:
#	packages/coding-agent/src/modes/controllers/input-controller.ts
2026-07-31 19:08:16 +02:00
Alex Jaden daa9b99aab fix(coding-agent): preserve scrollback on appearance changes 2026-07-31 10:34:43 +05:00
can1357 652647770e feat(coding-agent): added app.live.toggle keybinding and map display reset to alt+l
- Add the `app.live.toggle` keybinding defaulted to `Ctrl+L` to start or stop live voice mode.
- Remap the default display-reset action (`app.display.reset`) from `Ctrl+L` to `Alt+L`.
- Update the live visualizer to listen for stop keys so the toggle chord terminates active sessions.
2026-07-31 00:20:04 +02:00
Wolfgang Schoenberger 2841e99a95 fix(tui): ignore system sleep in loop watchdog 2026-07-30 14:48:06 -07:00
David Andrews 9502bc2341 fix(tui): preserve literal fenced code rows 2026-07-30 15:41:35 -04:00
David Andrews aa2417c8f6 fix(tui): preserve literal fenced code rows 2026-07-30 15:27:21 -04:00
David Andrews 048edef450 style(tui): format code copy tests 2026-07-30 15:27:21 -04:00
David Andrews 096ff49fc5 fix(tui): preserve nested code copy 2026-07-30 15:27:21 -04:00
David Andrews 7928353e02 fix(tui): preserve assistant code copy 2026-07-30 15:27:21 -04:00
David Andrews cf069f37c8 fix(tui): preserve literal code block rows 2026-07-30 15:27:21 -04:00
can1357 df9d9c8899 chore: bump version to 17.2.1 2026-07-30 17:27:05 +02:00
can1357 3d6b5b7ac8 chore: bump version to 17.2.0 2026-07-30 07:58:50 +02:00
can1357 93eb95b3b1 chore: rewrite changelogs 2026-07-29 23:34:04 +02:00
can1357 f2251b7d59 chore: normalize changelogs and formatting after merging open fixes 2026-07-29 23:09:40 +02:00
can1357 83294afc0a Merge PR #7013: fix(tui): prevent UUID prefixes rendering color swatches (@roboomp) 2026-07-29 23:09:04 +02:00
roboompandcan1357 4e06b7f1f5 fix(tui): prevented UUID prefixes rendering color swatches
Excluded canonical hash-prefixed UUIDs from prose hex-color matching while preserving standalone 8-digit CSS colors.

Fixes #7002

(cherry picked from commit b423fe6e51bb1d45b88916f885f1b81e1ce54ff0)
2026-07-29 23:09:03 +02:00
can1357 e24babd8e1 Merge PR #6941: fix(tui): stop loader spinner re-wrapping text every tick (@roboomp) 2026-07-29 23:08:40 +02:00
roboompandcan1357 beaafb9955 fix(tui): handled mixed-width spinner frames
Cached one stable layout representative per frame display width so same-width animation retains the fast path while width transitions rewrap before painting. Added coverage for wider custom frames remaining within terminal bounds.

(cherry picked from commit 3aa173a574538d754e68f8d10f7b88d437709884)
2026-07-29 23:08:40 +02:00
roboompandcan1357 b152f40134 fix(tui): stopped loader spinner re-wrapping text every tick
The Loader baked the advancing braille glyph into the underlying Text
via setText, so Text.render's wrap cache (keyed on text) missed every
80ms tick and re-ran wrapTextWithAnsi plus per-line width measurement
over the whole message even though only a 1-cell glyph changed. On a
single-subagent hub wait the direct-write render loop consumed ~48% of
a saturated core.

The wrapped text now carries a stable sentinel glyph (frames[0]); the
spinner advance only bumps the frame index and requests a repaint, and
render() swaps the visible glyph over the cached layout. wrapTextWithAnsi
and stringWidth now run only when the message actually changes.

Fixes #6940

(cherry picked from commit 6ec38053ebc1e33859358df3b66f71fea27532c7)
2026-07-29 23:08:40 +02:00
can1357 7d29a65b1c Merge PR #6923: fix(coding-agent): sync WezTerm theme changes on macOS (@Sairen777) 2026-07-29 23:08:35 +02:00