Commit Graph
430 Commits
Author SHA1 Message Date
can1357 8b4810c828 fix(natives): enabled cross-line grep and per-file match caps
multiline never set Searcher::multi_line so \n patterns matched nothing; added maxCountPerFile + skippedOversized to GrepResult; parallelized the mtime-ranked glob walk with bounded per-thread heaps.
2026-06-10 01:26:30 +02:00
can1357 57ae61ed8a chore: bump version to 15.10.10 2026-06-09 23:20:47 +02:00
can1357 7207929c72 chore: bump version to 15.10.9 2026-06-09 19:52:12 +02:00
can1357 74d4f00928 chore: bump version to 15.10.8 2026-06-09 05:06:04 +02:00
can1357 1a2602ce92 chore: bump version to 15.10.7 2026-06-09 00:32:37 +02:00
can1357 7d2eb3c550 chore: bump version to 15.10.6 2026-06-08 22:39:20 +02:00
can1357 348ba44293 chore: bump version to 15.10.5 2026-06-08 19:11:24 +02:00
can1357 9d457f73d9 test: migrated test imports to package subpath exports
- Replaced relative `../src` imports with `@oh-my-pi/pi-ai` and `@oh-my-pi/pi-agent-core` subpaths.
2026-06-08 19:03:55 +02:00
can1357 5ba7180d48 feat(pi-shell): added nohup builtin that doesn't mask SIGHUP
- Ran the operand as an ordinary descendant so it is reaped with the host instead of leaking as an orphan.
- Propagated the command's exit status; reported missing operand and exit 125 with no operand.
- Updated the bash tool prompt's daemon guidance away from nohup/setsid/disown detachment.
- Switched shell renderer success icon/state to "done".
2026-06-08 18:28:08 +02:00
can1357 4a85add1f1 feat(builtins): implemented previously stubbed builtin behaviors
- Added fc editor mode, history -n/-r, and mapfile callbacks.
- Implemented symbolic umask parsing, unset namerefs, and declare -I.
- Rendered builtin man pages and replaced unimp errors with diagnostics.
- Added regex/substring tests, nameref unset, and exec-in-subshell paths.
2026-06-08 18:28:07 +02:00
can1357 b5582278a0 feat(builtins): implemented wait for pids, -f, -n, and -p flags
- Added process ID resolution and selectors for waited jobs.
- Implemented terminate-only waits and next-job polling.
- Recorded completed job IDs into the variable named by -p.
- Added shell integration tests covering the new wait paths.
2026-06-08 18:28:07 +02:00
can1357 a84da2a61e feat(coding-agent): added AST-condition matching for interrupt flow rule handling
- Added astCondition to rule frontmatter parsing and rule metadata, with AST-grep normalization.
- Updated TTSR bucketing so astCondition-only rules are treated as interruptible matches.
- Added ts-redundant-clear-guard as a built-in JS/TS tool rule for guarded clear* calls.
- Added AST snapshot matching in agent sessions with per-stream cache throttling and cleanup.
2026-06-08 14:57:17 +02:00
can1357 1e5017bf7d feat: enabled block-boundary context support across read and diff previews
- Added tree-sitter `enclosing_block_boundaries` API with line range models.
- Added N-API `enclosingBlockBoundaries` bridge and exported JS declarations.
- Replaced matching-bracket context resolution with source-aware block context in read and diff flows.
- Passed source path through diff/read generators to surface native block boundary previews.
2026-06-08 14:29:59 +02:00
can1357 98c91cfa99 chore: bump version to 15.10.4 2026-06-08 12:27:26 +02:00
can1357 246d7dd0ab chore: bump version to 15.10.3 2026-06-08 06:52:49 +02:00
can1357 f38af64430 chore: bump version to 15.10.2 2026-06-08 02:57:31 +02:00
can1357 16f9c199da ux(coding-agent/task): adjusted running task progress output to animate descriptions
- Reworked running-task rendering so shimmer animation is applied to descriptions instead of IDs.
- Added accent coloring for the separator and description text to keep the status line formatting consistent.
2026-06-08 01:46:03 +02:00
can1357 854c854033 fix(natives): kept Linux clipboard alive to preserve X11 selection ownership
- Reworked Linux clipboard writes to use a shared `OnceLock<Mutex<Option<Clipboard>>>` so a `Clipboard` instance persists for the process and keeps X11 ownership alive.
- Updated `copy_to_clipboard` to route Linux calls through the persistent helper while macOS and Windows keep transient on-thread writes.
- Added changelog entries for the native X11 clipboard fix and the AI default Anthropic model note.

Fixes #2075
2026-06-08 01:39:48 +02:00
roboomp 5bfad210a6 fix(tui): recognized Ghostty's super+alt+backspace as word delete
Ghostty on macOS reports Option+Backspace as kitty modifier 11
(wire) = 10 (mask) = super(8) | alt(2). The native key matcher only
recognised shift/ctrl/alt, so:

- format_kitty_key in crates/pi-natives/src/keys.rs rejected any
  sequence whose effective modifier had bits beyond shift/ctrl/alt
  set; parseKey returned undefined for \x1b[127;11u.
- parse_key_id recognised only those three modifiers, so even an
  explicit 'super+alt+backspace' degraded to 'alt+backspace' and
  could not match an actual super+alt encoded press.
- The editor's matchesKey(data, 'alt+backspace') branch was never
  reached and Option+Backspace either no-op'd or fell through to
  single-character delete.

Added a MOD_SUPER constant, taught parse_key_id, format_with_mods,
and format_kitty_key about the super bit, added super+alt+backspace
(and super+alt+delete / super+alt+d) to tui.editor.deleteWord*
defaults, and broadened the editor's direct matchesKey calls to
accept the super+alt variants. Existing alt+backspace / alt+d /
alt+delete paths are untouched, so the legacy ESC+DEL workaround
keeps working too.

Added Rust unit tests for the super modifier (positive and
negative for hyper/meta sequences we still drop) and TS
regressions in keys.test.ts and editor.test.ts that exercise
\x1b[127;11u end-to-end.

Fixes #2064
2026-06-07 16:17:29 +00:00
can1357 84573a0d1a chore: bump version to 15.10.1 2026-06-07 09:18:25 +02:00
can1357 003f89b7c4 fix: fixed UTF-8 command slicing in shell fixups
- Converted brush-parser source positions to byte offsets before slicing commands in `try_strip_head_tail` and `try_strip_2to1`, preventing multibyte UTF-8 from misplacing fixup deletions.
- Added regression tests covering trailing `head`/`tail` and `2>&1` strips with Unicode content, and verified rewritten commands re-parse successfully.
2026-06-07 03:49:15 +02:00
can1357 fe607cf22c chore: bump version to 15.10.0 2026-06-07 00:16:09 +02:00
can1357 a7f5e83067 chore: bump version to 15.9.69 2026-06-06 20:13:59 +02:00
can1357 b65d173dcd chore: bump version to 15.9.67 2026-06-06 16:03:53 +02:00
can1357 d9f5a8c7ac chore: bump version to 15.9.5 2026-06-06 01:14:48 +02:00
can1357 388deb1c14 chore: bump version to 15.9.4 2026-06-05 21:59:43 +02:00
can1357 529a9dd351 chore: bump version to 15.9.3 2026-06-05 16:36:02 +02:00
can1357 241a42350c chore: bump version to 15.9.2 2026-06-05 13:27:40 +02:00
can1357 9da448f01d chore: bump version to 15.9.1 2026-06-04 18:46:52 +02:00
can1357 17a39ebd3a chore: bump version to 15.9.0 2026-06-04 05:41:53 +02:00
Can BölükandGitHub 5217e14d53 Merge pull request #1762 from can1357/farm/a3a27476/bound-broad-find-scans
fix(natives): bound sorted glob scans
2026-06-04 06:21:27 +03:00
can1357 29a24da3c5 fix(text): treated BEL-terminated APC as zero-width in wrapping
- Recognized BEL as a string-sequence terminator so the TUI cursor marker measures zero width.
- Advanced past unclassifiable ESC bytes to stop break_long_word spinning forever.
2026-06-04 04:59:33 +02:00
can1357 53aaced81f feat: enabled text-sizing and fixed OSC66 and DECCARA rendering behavior
- Added `textSizing` terminal capability and `tui.textSizing` setting for Kitty OSC66 scaling.
- Updated OSC66 range and visible-width handling to preserve grapheme slice behavior.
- Updated markdown rendering to apply heading text sizing only when enabled.
- Fixed DECCARA trailing-background fill tracking and DECRPM status 3/4 recognition.
2026-06-04 01:33:48 +02:00
can1357 86c56d6472 feat(tui): added DECCARA fill optimizer with OSC 66 and DEC 2026/2048
- Added a Kitty-only DECCARA optimizer painting solid bg panels as rectangles, with `PI_NO_DECCARA` kill switch.
- Added OSC 66 text-sizing width handling to slicing, truncation, and wrapping.
- Added DECRQM probes for DEC 2026 sync output and 2048 in-band resize.
- Added structured OSC 99 notification formatting.
2026-06-04 00:27:20 +02:00
can1357 2f9deba2fb fix(poll): treated /dev/null as ready to avoid infinite poll on macOS
- Short-circuited poll for the null device, which never reports readable on macOS/BSD.
- Prevented `read` with no `-t` deadline from spinning forever on `/dev/null`.
- Added tests verifying null-device readiness and detection specificity.
2026-06-04 00:27:20 +02:00
can1357 f967f9d789 chore: bump version to 15.8.3 2026-06-03 16:37:19 +02:00
can1357 139a995d84 chore: bump version to 15.8.2 2026-06-03 12:11:46 +02:00
roboomp c8919f3619 fix(natives): stream sorted glob admits only
Tied uncached sortByMtime onMatch callbacks to bounded heap admission so live progress and timeout partials reflect the same mtime-ranked set the call returns, with the JS-side mtime sort+truncate converging on the native top-N.
2026-06-03 06:26:26 +00:00
roboomp f73745235c fix(natives): streamed bounded glob progress
Preserved bounded onMatch progress during uncached sorted glob traversal so timed-out find scans can still return partial matches without unbounded callback growth.
2026-06-03 06:20:25 +00:00
roboomp d3477372a2 fix(natives): bounded sorted glob scans
Kept uncached sort-by-mtime glob traversal bounded to maxResults and emitted onMatch callbacks only for returned matches so broad find scans cannot grow parent memory independently of the limit.

Fixes #1761
2026-06-03 06:15:26 +00:00
can1357 b82d29c6ff fix: fixed VS16 emoji width handling on macOS
- Switched `grapheme_width_str` to compute multi-character widths from `UnicodeWidthStr::width` and then apply the macOS Hangul Compatibility Jamo correction on top of that result.
- Added regression tests in native and TUI text-width tests for VS16 emoji-presentation symbols, keycaps, and related bare-symbol cases.
- Adjusted the AuthStorage codex ranking timeout test fallback to 2s with a 1s elapsed assertion so slow aborted requests cannot mask the fast timeout path.
2026-06-02 23:06:35 +02:00
can1357 cd9fc55572 fix: aborted internal background jobs during shell cancellation
- Added Job::abort_internal_tasks to abort internal async tasks and drop their join handles.
- Updated shell cancellation paths to call this abort logic and handle mutable shell job lists before signaling remaining process groups.
- Added Rust and TypeScript tests that verify cancellation prevents background shell jobs from completing after abort.
2026-06-02 19:30:40 +02:00
can1357 ecc5a6d5d5 chore: bump version to 15.8.1 2026-06-02 18:15:17 +02:00
can1357 e214b92240 chore: bump version to 15.8.0 2026-06-02 11:17:17 +02:00
can1357 cfea72f0f2 chore: bump version to 15.7.6 2026-06-01 19:24:27 +02:00
can1357 da58949320 chore: bump version to 15.7.5 2026-06-01 15:04:12 +02:00
can1357 38fcd53d64 chore: bump version to 15.7.4 2026-05-31 17:08:17 +02:00
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