Commit Graph

683 Commits

Author SHA1 Message Date
can1357 24341e4abf chore: bump version to 16.2.2 2026-06-27 13:24:46 +02:00
can1357 d738329485 chore: bump version to 16.2.1 2026-06-27 06:35:42 +02:00
can1357 7463818a32 chore: bump version to 16.2.0 2026-06-27 04:39:59 +02:00
can1357 011f036ef5 chore: bump version to 16.1.23 2026-06-26 18:29:01 +02:00
can1357 60e02d2e6d fix(pi-shell): satisfied clippy trivially-copy and or-fun-call lints
- pass fs::FileType by value in matches_unix_file_type (Copy type)
- swap unwrap_or for unwrap_or_else in parse_utc_datetime to defer fallback
2026-06-26 18:28:36 +02:00
can1357 70a439ace3 feat(pi-shell): implemented fd filesystem search builtin
- Added an `fd` command-line utility for searching the filesystem.
- Implemented file filtering capabilities for type, size, modification time, and ownership.
- Integrated directory traversal and ignore-pattern support for search optimization.
- Registered the builtin in the shell and added comprehensive integration tests for filtering and globbing.
2026-06-26 17:35:59 +02:00
can1357 40e56a6318 Merge PR #3562: resume by ID, Nix/Mermaid highlighting (@arg3t)
# Conflicts:
#	packages/coding-agent/test/issue-3461-repro.test.ts
2026-06-26 17:07:48 +02:00
can1357 39a055a1e5 feat: implemented ripgrep-based rg shell builtin
- Implemented `rg` shell builtin using ripgrep libraries to enable file and directory searching.
- Added `RgSink` to handle output formatting, context, and vimgrep compatibility.
- Updated shell context and IO flags to support stdin as search input.
- Added integration tests for directory recursion, ignore filtering, and stdin handling.
2026-06-26 16:33:05 +02:00
can1357 02f870fb20 feat: supported markdown section operations for block edits
- Added tree-sitter markdown support to resolve headings into full sections in `pi-ast`.
- Enabled block operations (`SWAP.BLK`, `DEL.BLK`, `INS.BLK.POST`) on markdown headings so they encompass the entire section, including nested deeper headings.
- Updated system prompt to guide agents in using structured markdown heading edits for plans.
- Fixed `plan-mode-guard` to correctly resolve local protocol options for subagents.
2026-06-26 16:14:23 +02:00
can1357 c39b655ae7 feat: implemented -q and -x flags for in-process grep
- Added support for `--quiet` (`-q`) and `--line-regexp` (`-x`) to the `grep` builtin.
- Enabled short-circuiting behavior for `-q` to suppress output and return early on the first match.
- Configured exit status logic to prioritize successful matches over error states when using `-q`.
- Added integration tests to verify correct exit status codes and line anchoring behavior.
2026-06-26 15:47:24 +02:00
arg3t 17f91f04ec test(natives): cover vendored syntax definitions in Rust 2026-06-26 06:18:46 -07:00
arg3t b10cea54d7 Merge branch 'main' of https://github.com/can1357/oh-my-pi into lsp-reload-nix-highlight
# Conflicts:
#	packages/coding-agent/src/lsp/index.ts
2026-06-26 06:03:33 -07:00
can1357 683877f924 build(vendor/uu-find): disabled unit tests for uu-find crate
- Disabled unit tests for the uu-find crate by setting test to false.
- Added a note explaining that the tests depend on missing vendored fixtures.
2026-06-26 14:41:01 +02:00
arg3t e894753603 feat(tui): add mermaid rendering toggle 2026-06-26 04:34:44 -07:00
arg3t dacce3bc53 feat(natives): add Nix syntax highlighting 2026-06-26 04:34:44 -07:00
can1357 68d7593244 chore: reorg 2026-06-26 12:24:42 +02:00
can1357 7bd326e6f4 fix(pi-shell): resolved find -exec paths against shell working directory
- Ensure `-exec` commands run in the shell current working directory rather than the host process CWD.
- Update operand path resolution in `find` matchers to use the display path, matching behavior expected by shell-integrated utilities.
- Add an integration test to verify path substitution and execution context for shell-integrated `find`.
2026-06-26 12:04:12 +02:00
can1357 b5dac65b31 feat: implemented coreutils shell builtins via in-process execution
- Introduced `pi-uutils-ctx` to manage thread-local I/O redirection, environment context, and path resolution for in-process utilities.
- Integrated a suite of vendored coreutils (cat, find, grep, head, ls, mkdir, mv, rm, sort, tail, uniq, wc) as shell builtins.
- Added infrastructure for command cancellation, streaming I/O, and locale-aware error reporting within the shell environment.
- Configured shell-side dispatch logic to route commands through the new utility context, enhancing performance and binary integration.
2026-06-26 12:00:34 +02:00
can1357 ff759ed850 chore: bump version to 16.1.22 2026-06-26 09:19:53 +02:00
can1357 018a9638c0 chore: bump version to 16.1.21 2026-06-26 07:39:22 +02:00
can1357 0fc6d136c3 chore: bump version to 16.1.20 2026-06-25 22:45:00 +02:00
can1357 451af61280 chore: bump version to 16.1.19 2026-06-25 13:14:44 +02:00
can1357 1a89d784e7 chore: bump version to 16.1.18 2026-06-25 05:17:47 +02:00
can1357 8d60776a6f chore: bump version to 16.1.17 2026-06-24 21:11:31 +02:00
changhee.an 82ef6c0a04 feat(tui): runtime Hangul Compatibility Jamo width override + Ghostty detection
Replace the compile-time cfg!(target_os = "macos") jamo-width heuristic
with a runtime override (process-global AtomicU8 in pi-natives, mirrored in
the TS width engine) plus terminal-identity detection: Ghostty renders
Hangul Compatibility Jamo (U+3131..U+318E) at 2 cells, so it is forced wide;
every other terminal keeps the platform default (macOS narrow, otherwise
UAX#11), making the override a no-op outside Ghostty.

Fixes doubled/ghosted jamo during Korean IME composition on Ghostty, where
the hardware cursor landed inside the typed text and the IME candidate window
drifted from the glyph. The width is resolved synchronously before the first
paint, so no stdin/CPR probe or async cache invalidation is needed.

A runtime DSR/CPR probe that auto-detects the width on unknown terminals is
tracked in a follow-up.
2026-06-24 10:27:17 +09:00
can1357 2c3e0d79a4 chore: bump version to 16.1.16 2026-06-23 08:22:21 +02:00
can1357 00dcd54597 feat: implemented reparenting for backgrounded wrappers
- Introduce `detach_reparent` parameter to command execution to support process reparenting.
- Add `detach_session_reparent` to Unix command extensions using a double-fork technique to orphan processes from the shell descendant tree.
- Update background pipeline logic to automatically apply reparenting when unwrapping transparent wrappers like `nohup`.
- Remove unused `command_is_resolvable` helper.
2026-06-23 08:06:54 +02:00
can1357 c6fcc155a2 fix: nohup 2026-06-23 06:51:11 +02:00
can1357 7f7a7e59db chore: bump version to 16.1.15 2026-06-22 17:47:45 +02:00
can1357 0fbcb63539 fix: preserved shells with running background jobs
- Added `Shell.liveBackgroundJobCount` to query active background processes.
- Retained per-call `:async:` shells if background jobs are still running upon turn completion.
- Reaped shells automatically once their last background process exits to prevent lingering processes.
2026-06-22 17:25:19 +02:00
can1357 320261fca9 chore: bump version to 16.1.14 2026-06-22 07:23:40 +02:00
can1357 cc0c67beb1 chore: bump version to 16.1.13 2026-06-22 04:47:47 +02:00
can1357 0a1323ae80 chore: bump version to 16.1.12 2026-06-22 01:14:32 +02:00
can1357 bcdd37260e feat(pi-natives): added Julia syntax highlighting support
- Enabled Julia language support by adding a sub-syntax definition file.
- Integrated the new syntax into the highlighter by updating the syntax set builder.
- Configured the dependency to support YAML syntax loading via syntect feature flags.
2026-06-21 19:34:00 +02:00
can1357 7962a39f86 chore: bump version to 16.1.11 2026-06-21 18:34:15 +02:00
can1357 35508c48f7 chore: bump version to 16.1.10 2026-06-21 08:40:20 +02:00
can1357 5ba474656c chore: bump version to 16.1.9 2026-06-21 04:16:49 +02:00
can1357 12cfb530ad chore: bump version to 16.1.8 2026-06-21 00:39:58 +02:00
can1357 29f7b57fde feat: migrated core rendering and context transformation to async
- Updated `render`, `renderMany`, and native snapcompact methods to return promises, ensuring scalable async execution.
- Refactored `transformProviderContext` and `buildSideRequestContext` to support asynchronous operations in agent loops.
- Integrated `Promise.all` for improved concurrency when processing frame rendering and rendering batch operations.
- Updated all internal call sites, SDK hooks, and test suites to accommodate the asynchronous API signatures.
2026-06-21 00:32:13 +02:00
can1357 70d48a43c9 Merge PR #3087: fix(natives): gate unix-only test helpers and imports with #[cfg(unix)] (@oldschoola) 2026-06-20 22:35:58 +02:00
Can Bölük c6126c75d9 Merge pull request #3083 from oldschoola/fix/pi-natives-clippy-dead-code
fix(natives): resolve pre-existing clippy dead-code warnings breaking CI
2026-06-20 22:33:51 +02:00
can1357 5a77619258 fix(natives): budget parallel grep stop on returned matches
The parallel streaming walker accumulated match_count toward the
first-page stop budget, but match_count can exceed the matches actually
returned (collected) by one whenever a file overflows its per-file cap.
With the production config (max_count=2000, max_count_per_file=21) that
over-count could quit the walk a few percent short of the requested
page. Budget on collected instead, matching run_sequential_grep and
aggregate_parallel_results.
2026-06-20 22:12:48 +02:00
roboomp 4575b75573 fix(natives): extended grep budget to parallel walker
Carried the streaming-grep match budget into the parallel visitor via a shared atomic counter so production callers (`maxCount: INTERNAL_TOTAL_CAP`) early-stop the walker instead of scanning the rest of the tree. Kept the sequential ordered path for small budgets where strict path ordering matters; the parallel path tolerates up to one extra file per worker in the tail, far better than walking the entire tree.\n\nFixes #2738
2026-06-20 12:10:59 +00:00
roboomp f03a553949 fix(natives): resolved grep merge conflict
Merged main into the PR branch and preserved the ordered small-budget grep cutoff on top of main's searched-file accounting and active-streaming worker fallback.\n\nFixes #2738
2026-06-20 12:04:26 +00:00
roboomp a1b65108a5 fix(natives): kept broad grep parallel
Limited the ordered streaming grep early-stop path to small first-page budgets so broad content searches keep the parallel walker. Added coverage that large budgets do not take the serial early-stop route.\n\nFixes #2738
2026-06-20 11:57:42 +00:00
can1357 62756efb8f chore: bump version to 16.1.7 2026-06-20 05:40:49 +02:00
can1357 73065ea431 chore: bump version to 16.1.6 2026-06-20 02:47:39 +02:00
oldschoola 824f435878 fix(natives): gate unix-only test helpers and imports with #[cfg(unix)]
The pi-natives test module had 8 warnings on Windows. Root cause: test
helpers (TempDirGuard, write_file, make_fifo, base_grep_config) and their
imports are only used by #[cfg(unix)] tests, so they appear as dead code
when compiled on Windows where those tests are excluded.

Fix: gate all unix-only test helpers, their imports, and the super::
imports they reference (classify_file_type, GrepConfig, GrepOutputMode,
grep_sync, crate::task, mpsc) with #[cfg(unix)] so they are excluded
from Windows compilation entirely. On Linux (CI), all helpers compile
and are used by the unix test suite.

Also removed genuinely unused import: Duration (from grep.rs test module
only — Duration in shell.rs is used by a non-cfg-gated test).

Verified: 0 warnings, 105 tests pass on Windows. Unix tests retain all
their helpers and imports.
2026-06-19 17:42:57 -07:00
oldschoola fe6375cbb2 fix(natives): resolve pre-existing clippy dead-code warnings
Gate platform-specific XDG functions (APP_NAME, xdg_state_logs,
default_agent_dir) and their tests with #[cfg(any(target_os = "linux",
target_os = "macos"))] so they are not flagged as dead code on Windows.
Suppress the false-positive missing_const_for_fn lint on Process::group_id
(#[napi] generates a non-const wrapper).

These 4 clippy warnings broke bun check (check:rs) and the CI
native_linux_x64 baseline job on every PR.
2026-06-19 17:01:46 -07:00
can1357 1a92b3f854 chore: bump version to 16.1.5 2026-06-19 22:27:50 +02:00