Commit Graph
383 Commits
Author SHA1 Message Date
can1357 a043826723 chore: bump version to 15.7.3 2026-05-31 12:30:20 +02:00
can1357 f9f213e53e chore: bump version to 15.7.2 2026-05-31 03:46:17 +02:00
can1357 73de3bf926 chore: bump version to 15.7.1 2026-05-31 02:50:54 +02:00
can1357 e72fe367e5 chore: bump version to 15.7.0 2026-05-31 02:17:33 +02:00
can1357 cb00a07203 feat: added block replace syntax with block edits in hashline parser
- Added `replace block N:` syntax in grammar/parser/tokenizer/types, emitting `kind: "block"` edits with empty-body checks.
- Added block-resolution in hashline apply/recovery, wiring `BlockResolver` to resolve edits with throw/drop unresolved behavior.
- Added native `blockRangeAt` support and exported block range/options types through pi-ast, pi-natives, and JS bindings.
- Added coding-agent resolver wiring plus internal visibility/exports updates and new parser, patcher, and setup-wizard tests.
2026-05-31 00:46:03 +02:00
can1357 4ee35bec7a fix: corrected child-session behavior to DetachSession for non-term stdin
- Renamed non-terminal stdin pipeline tests and updated non-terminal expectations to DetachSession behavior.
- Updated child_session_action behavior so non-terminal, non-pipeline stdin now yields DetachSession instead of None.
- Updated execute_external_command to skip process_group for detached children and move take_foreground into its foreground arm.
- Added async regression coverage for detached pipeline stages and logged the fix in the natives CHANGELOG.
2026-05-30 20:55:55 +02:00
can1357 474eb92047 chore: bump version to 15.6.0 2026-05-30 19:01:54 +02:00
can1357 5f3856ee7c chore: bump version to 15.5.15 2026-05-30 04:49:01 +02:00
can1357 e004585f39 chore: bump version to 15.5.14 2026-05-30 01:25:28 +02:00
can1357 62e1dabf48 fix(pi-natives): updated alt key handling for kitty mode and alt+enter decoding
- Removed legacy lowercase Alt+arrow byte handling so alt-arrow sequences are matched through kitty-aware CSI/u paths instead of deprecated escape-letter forms.
- Added support for `alt+enter` from both `\x1b\r` and `\x1b\n` during key parsing and matching.
- Expanded tests to cover mixed Kitty/tmux modes and to restrict legacy uppercase Alt+arrow aliases to non-Kitty protocol mode only.
2026-05-29 18:36:25 +02:00
can1357 1422afd54d chore: bump version to 15.5.13 2026-05-29 18:21:43 +02:00
can1357 64daece638 fix(pi-natives): handled legacy Alt+letter pairs in mixed enhanced-keyboard mode
- Preserved Alt and Ctrl+Alt letter ESC-prefix matching when kitty_protocol_active is true to support mixed tmux and Kitty keyboard modes.
- Parsed two-byte ESC sequences before legacy sequence lookup so mixed-mode Meta pairs are treated as Alt letter keys instead of legacy aliases.
- Updated native and TUI key tests to verify Alt+letter and Alt+Shift+letter parsing and matching while enhanced mode is active.

Fixes #1511
2026-05-29 18:21:30 +02:00
can1357 14c366b049 chore: bump version to 15.5.12 2026-05-29 14:06:38 +02:00
can1357 e707b90652 chore: bump version to 15.5.11 2026-05-29 07:19:54 +02:00
can1357 3f073b82de chore: bump version to 15.5.10 2026-05-28 14:50:02 +02:00
can1357 3327d51b4c fix(pi-natives): coalesced shell pipe output into capped batches
- Changed `bridge_chunks` to drain all currently queued output chunks into one string before invoking the JS callback.
- Added a 64 KiB batch cap with a small initial buffer so each N-API dispatch stays bounded while reducing callback churn from chatty processes.
2026-05-28 14:33:58 +02:00
can1357 eca3a08d25 chore: bump version to 15.5.9 2026-05-28 12:09:01 +02:00
can1357 6cc91fcb37 chore: bump version to 15.5.8 2026-05-28 10:37:49 +02:00
can1357 b87cd8f93f chore: bump version to 15.5.7 2026-05-27 19:01:33 +02:00
can1357 bf92a3dd4d chore: bump version to 15.5.6 2026-05-27 15:04:44 +02:00
can1357 f0c7df60d5 chore: bump version to 15.5.5 2026-05-27 14:44:30 +02:00
can1357 69ab1656ff chore: bump version to 15.5.4 2026-05-27 10:27:32 +02:00
can1357 77b852a1ad chore: reformat 2026-05-27 10:27:15 +02:00
can1357 3b37ffe22f chore: reformat 2026-05-27 04:10:23 +02:00
can1357 56c34a0d13 feat(summary): added BFS unfold and file-scoped line ranges to search
- Added `unfoldUntilLines`/`unfoldLimitLines` options to progressively reveal nested elidable spans breadth-first instead of collapsing everything behind the outermost elision.
- Added `minTotalLines` setting to skip summarization for short files, returning verbatim content instead.
- Added `:` selector support to `search` paths for constraining matches to specific line ranges.
- Extracted `parseLineRanges`/`parseLineRangeChunk`/`isLineInRanges` from `read.ts` into shared `path-utils.ts`.
2026-05-27 03:55:04 +02:00
can1357 280b638cc8 chore: bump version to 15.5.3 2026-05-27 03:20:33 +02:00
can1357 739903f970 feat(hashline)!: disallowed inline payload on op lines, required + rows
- Removed inline_body from grammar; op sigils (↑, ↓, :) now accept no trailing content.
- Executor emits INLINE_PAYLOAD_ACCEPTED_WARNING when legacy inline form is encountered but still applies the edit leniently.
- Updated prompt docs and all tests to use bare op + `+`-prefixed continuation rows.
2026-05-27 03:20:20 +02:00
can1357 0dee295dc6 fix(pi-natives): prevented partial file writes on AST apply failures
- Queued modified file contents during ast_edit and flushed writes only after all file edits succeeded.
- Extracted write-logic into ast_edit_blocking with in-memory pending writes to avoid partial disk updates.
- Added a regression test ensuring no file is written when overlapping apply_edits fails partway through a run.
2026-05-27 02:35:31 +02:00
can1357 2ae57b85dc chore: bump version to 15.5.2 2026-05-27 00:46:37 +02:00
can1357 8d429e96fb chore: bump version to 15.5.1 2026-05-27 00:05:59 +02:00
can1357 f19469c96c chore: bump version to 15.5.0 2026-05-26 22:55:07 +02:00
can1357 bc355472af ci(ci): added automated release note generation to the GitHub release workflow
- Added a Bun-based `scripts/ci-release-notes.ts` utility that extracts `## [version]` entries from `packages/*/CHANGELOG.md` and writes a combined `release-notes.md` for the release tag.
- Updated the GitHub release workflow to install Bun, run the notes generator, and pass the generated `release-notes.md` to `softprops/action-gh-release` via `body_path`.
2026-05-26 20:53:59 +02:00
can1357 7f08b51f28 test(tests): updated test setup to use shared E2E helpers and reset settings
- Updated the auth-gateway OpenAI responses caching test to use shared E2E helper utilities and the common gateway URL constant.
- Initialized and reset in-memory settings in the nested live rendering test fixture to isolate test state between runs.
2026-05-26 20:51:03 +02:00
Can BölükandGitHub 129fa47fb9 Merge pull request #1406 from nikzasel/fix/zellij-progressive-enhancement-keyboard
fix(tui): progressive enhancement keyboard negotiation for Zellij
2026-05-26 21:30:32 +03:00
Can BölükandGitHub 170b6e535e Merge pull request #1410 from hanbinnoh/fix/jamo-width-platform-conditional
fix(tui): apply Hangul jamo width correction only on macOS
2026-05-26 21:29:34 +03:00
oldschoolaandcan1357 b48cf6d255 fix(pi-shell): preserve heredocs on no-thread targets 2026-05-26 20:12:39 +02:00
oldschoolaandcan1357 ae927b6f81 fix(pi-shell): unblock bash heredocs >4 KiB on Windows and >64 KiB on macOS
brush_core::interp::setup_open_file_with_contents wrote the entire heredoc/here-string body into an anonymous pipe synchronously before handing the reader to the downstream command. Bodies that exceed the OS pipe buffer (~4 KiB on Windows, 16-64 KiB on macOS) deadlocked the writer forever, and the bash tool tripped its 305 s hard timeout without ever launching the consumer. The Linux fast path still uses F_SETPIPE_SZ to grow the pipe inline; every other platform (and Linux bodies that overflow pipe-max-size) now decouples the write onto a fire-and-forget thread that terminates on drain or BrokenPipe.

Adds a 256 KiB regression test that exercises the worst-case shape (: builtin, which never drains stdin), guarded by tokio::time::timeout(10s) so a regression fails CI fast instead of hanging.
2026-05-26 20:12:39 +02:00
can1357 6899e0aaed chore: bump version to 15.4.3 2026-05-26 18:55:58 +02:00
can1357 eb97859995 fix(coding-agent): improved run lookup and made test temp directories unique
- Updated `TempDirGuard` creation in grep tests to include PID and an atomic sequence, preventing temp path collisions.
- Removed the `branch` filter from GitHub action run queries so results are matched by `head_sha` only.
- Adjusted run-watch calls to the simplified `fetchRunsForCommit` interface without the branch argument.
2026-05-26 18:54:22 +02:00
can1357 38b7966894 chore: bump version to 15.4.2 2026-05-26 17:51:35 +02:00
Hanbin Lee 79103dbc4e fix(tui): apply Hangul jamo width correction only on macOS
The Hangul Compatibility Jamo width correction (U+3131..=U+318E → 1 cell)
was applied unconditionally, but macOS terminals (Ghostty, Terminal.app,
iTerm2) are the only ones that render jamo as 1 cell. WezTerm and most
Linux terminals follow UAX#11 and render them as 2 cells.

The unconditional correction caused a width mismatch between the TUI's
calculated column positions and the terminal's actual rendering, resulting
in corrupted layout and broken Korean input on non-macOS platforms.

- Rust: gate the correction with cfg!(target_os = "macos")
- TS: gate the correction with process.platform === "darwin"
- On non-macOS, use UnicodeWidthStr for multi-char graphemes (perf)

Constraint: macOS terminals render jamo as 1 cell despite UAX#11.
Rejected: removing the correction entirely — would break macOS.
Tested: native build succeeds, typecheck passes.
Not-tested: visual verification on macOS terminals.
Scope-risk: narrow
2026-05-27 00:16:59 +09:00
can1357 774d32cc3f chore: bump version to 15.4.1 2026-05-26 16:53:12 +02:00
Nick 7acb6987bf fix(tui): progressive enhancement keyboard negotiation for Zellij 2026-05-26 17:47:31 +04:00
can1357 732dae7b11 chore: bump version to 15.4.0 2026-05-26 11:26:08 +02:00
can1357 4a44bd1e52 fix(pi-shell): added Sync bound to descendant termination helper
- Updated `terminate_new_descendants` to require the `Sync` marker on its hash-set hasher.
- This tightened async helper bounds without changing its termination-wave logic.
2026-05-25 21:20:23 +02:00
Can BölükandGitHub 8b4525e869 Merge branch 'main' into farm/70c1e455/bash 2026-05-25 21:56:06 +03:00
roboomp 8e5c7c9bf1 fix(bash): kept persistent shells after cancel
Stopped marking persistent bash sessions as permanently broken when the JavaScript abort or timeout race wins.

Stopped the Rust descendant kill-wave helper once no cancellation targets remain so later commands are not swept into old cancels.

Fixes #1347
2026-05-25 18:40:22 +00:00
can1357 7acc631ce9 chore: bump version to 15.3.2 2026-05-25 20:30:37 +02:00
roboomp de5b0a51e2 fix(bash): forcefully terminated canceled shells
Added Rust-side descendant termination on shell cancellation paths so aborts and timeouts escalate to SIGKILL even if brush cleanup stalls.

Covered SIGTERM-ignoring shell workloads in native tests.

Fixes #1347
2026-05-25 18:13:49 +00:00
Can BölükandGitHub 5798b9436d Merge pull request #1362 from can1357/farm/f7b9e6bd/keybinding-collides-with-enter-both-reso
fix(keys): named keys win over colliding ctrl+letter in legacy mode
2026-05-25 20:26:23 +03:00