Commit Graph

860 Commits

Author SHA1 Message Date
can1357 639bac596d chore: bump version to 17.0.9 2026-07-23 14:40:52 +02:00
can1357 52ad6516ef feat(diff): implemented native UTF-16 diff processing and removed jsdiff
- Implemented native UTF-16 text processing in Rust diff module with support for unpaired surrogates.
- Removed `similar` crate from Rust workspace and `diff` npm package from coding-agent, hashline, and natives.
- Removed jsdiff fallback wrappers and `isWellFormed()` guards from TypeScript diff implementations.
- Added comprehensive test suite for native diff functions covering random inputs and edge cases including surrogates and emoji.
- Renamed model `codex-auto-review` to `gpt-5.3-codex-spark` with updated pricing and context window.
2026-07-23 01:35:31 +02:00
can1357 1db0d71825 style(iso): wrapped FICLONE comment for rustfmt 2026-07-23 00:56:36 +02:00
can1357 52e2fcb746 fix(iso): used libc::Ioctl for FICLONE request type on musl targets
- musl defines ioctl's request parameter as c_int while glibc uses
  c_ulong; the hardcoded libc::c_ulong constant broke linux musl
  x64/arm64 native builds.
2026-07-23 00:53:11 +02:00
can1357 9b54d9e9ac chore: bump version to 17.0.8 2026-07-23 00:41:54 +02:00
can1357 dd80dcd035 test(catalog): adapt ChatGPT-only retention test to multi-account discovery API
- #6266 replaced openaiCodexModelManagerOptions' accessToken field with resolveAccounts; #6219's authoritative-pruning test predates that and silently skipped discovery, leaving the absent static model unpruned.
2026-07-22 21:19:53 +02:00
can1357 eadfc9a4ec Merge PR #6280: perf(mnemopi): run recall vector kernels natively (@wolfiesch) 2026-07-22 21:13:24 +02:00
can1357 9a0a154e53 Merge PR #6279: perf(coding-agent): compute edit and word diffs natively (@wolfiesch) 2026-07-22 21:13:23 +02:00
can1357 1581a9719d fix(rm): skip empty operands in progress pre-count
count_files resolved "" to the scoped cwd, so rm -r --progress with an
empty operand walked the whole working directory and inflated the
progress total even though remove() rejects the operand.
2026-07-22 21:13:20 +02:00
roboomp bb7faf62ca fix(rm): rejected empty operand instead of deleting cwd
The in-process rm builtin passed each operand through
pi_uutils_ctx::resolve, which joins "" onto the shell working
directory and yields the cwd itself. rm -rf "" therefore resolved to
the cwd and recursively deleted it -- a real data-loss path when a
failed command substitution left an empty variable in a cleanup line.

Reject empty operands at the top of remove(), before resolution,
mirroring GNU rm: report ENOENT for an empty operand and stay silent
under -f. Added a regression test that runs the builtin rm -rf "" in a
scoped temp cwd and asserts the cwd and a sentinel file survive.

Fixes #6287
2026-07-22 11:45:27 +00:00
Wolfgang Schoenberger 4ffe1822d4 refactor(mnemopi): keep only production-backed native kernels after wrapper-level benchmarking 2026-07-22 04:45:13 -07:00
Wolfgang Schoenberger 8f17a0300d fix(natives): reject ill-formed UTF-16 in native diff and fall back to jsdiff 2026-07-22 04:32:46 -07:00
Wolfgang Schoenberger 492eb6e2cb style(natives): satisfy clippy for native diff module 2026-07-22 02:58:33 -07:00
Wolfgang Schoenberger 4ba69285df style(natives): satisfy clippy for vector kernels without breaking float parity 2026-07-22 02:43:40 -07:00
Wolfgang Schoenberger f3bbc23d0b perf(natives): vectorize dim-masked hamming whole-byte loop 2026-07-22 02:28:30 -07:00
Wolfgang Schoenberger 22a5fb3d9f perf(mnemopi): use native batch vector kernels in recall hot loops
Swap the batch-shaped scoring loops to the pi-natives kernels behind the
existing TS function signatures, so every caller keeps its guards and
observable behavior: mmrRerank (default Jaccard path), searchExactVectorIndex,
clusterBySimilarity, BinaryVectorStore.search, and FastBinarySearch.search.
cosine_similarity_pairs now takes Float64Array so f64 vectors round-trip
without f32 narrowing. Scalar one-off call sites stay in TS (query-cache
cosine probe, shmr centroid/confidence loops, recall per-row cosine map,
custom-similarity mmrRerank). Adds a seeded parity suite: 1e-9 relative
tolerance for floats, exact equality for Hamming distances and pair lists,
identical MMR index sequences across lambda/topK grids.
2026-07-22 01:24:37 -07:00
Wolfgang Schoenberger 23201555ee feat(natives): add batch vector kernels for mnemopi recall paths
Batch cosine similarity, pairwise similarity clustering, exact vector
index top-k, packed binary Hamming distance (plain and dimension-masked),
and MMR rerank index selection. One N-API crossing per recall operation:
flattened Float32/Float64Array candidate matrices with explicit dim,
packed Uint8Array binary batches with stride, and MMR taking scores plus
contents returning selected indices. Semantics mirror the TS reference
implementations bit-exactly (accumulation order, non-finite handling,
stable-sort tie-breaking, NaN-round MMR selection).
2026-07-22 01:14:57 -07:00
Wolfgang Schoenberger 3ec594f3e4 feat(natives): add jsdiff-compatible line/word diff and structured patch hunks 2026-07-22 01:14:23 -07:00
can1357 7b141199d5 chore: bump version to 17.0.7 2026-07-21 22:11:51 +02:00
can1357 aa1b89db49 chore: bump version to 17.0.6 2026-07-20 23:46:18 +02:00
can1357 9fd6e97113 chore: bump version to 17.0.5 2026-07-18 23:51:40 +02:00
roboomp 44c8627b09 fix(natives): preserved unsigned PTY process IDs
- Kept the raw u32 child ID for PTY start callbacks.
- Restricted signed conversion to the process-termination path.
2026-07-18 15:02:01 +00:00
roboomp 044b74594f fix(launch): prevented finite PTY start hangs
- Reported the spawned PTY child PID through the native start callback.
- Replaced broker PID-file polling with the authoritative spawn event.
- Covered finite PTY startup without the legacy handoff in integration tests.

Fixes #5996
2026-07-18 14:54:53 +00:00
can1357 0ca454befa chore: bump version to 17.0.4 2026-07-18 06:41:08 +02:00
can1357 2c225a0d00 chore: bump version to 17.0.3 2026-07-17 21:38:00 +02:00
can1357 4d4090a578 style: formatted shell tilde-expansion test 2026-07-17 21:24:45 +02:00
can1357 c081dedd3a Merge PR #5887: fix(tui): isolate wrapped OSC 8 links in tables (@roboomp) 2026-07-17 21:22:06 +02:00
roboomp 65d0d779f0 fix(tui): close OSC 8 links on explicit cell newlines
Closed active OSC 8 state on wrap_single_line's short-line fast path and wrapped whole table cells in one call so hyperlinks stay balanced across <br>-derived newlines.

Fixes #5885
2026-07-17 17:41:24 +00:00
roboomp 54fe6a4bcd fix(tui): isolated wrapped OSC 8 table links
Closed and restored OSC 8 hyperlinks at native wrap boundaries so composed table cells cannot inherit active link state.

Moved explicit-link spacing outside the clickable URL span and added wrapped table regression coverage.

Fixes #5885
2026-07-17 17:28:20 +00:00
roboomp 9e73821202 fix(shell): expanded tilde for every brace-expansion element
Brace expansion joined its results with spaces and re-parsed them as a single word, so tilde-at-word-start only fired on the leading element. Now each brace element is expanded as its own word, so `~/project/{a,b}` expands both tildes instead of leaving a literal `~/project/b`.

Fixes #5819
2026-07-17 09:15:30 +00:00
can1357 d527259c26 chore: bump version to 17.0.2 2026-07-17 07:40:54 +02:00
can1357 731a2cb5b2 test(natives): gave timeout drain repro a spawn-proof deadline
The 50ms budget raced external-process spawn on cold CI runners: cancel
could fire before yes produced output, so the builtin tail flushed an
empty ring buffer (0 lines instead of 5, Linux x64 modern). 750ms keeps
the post-cancel drain scenario while outlasting spawn latency.
2026-07-17 06:09:51 +02:00
can1357 b71841c4cc merge PR #5694 via eval/pr-5694: ci: retry flaky workspace tests 2026-07-17 04:39:14 +02:00
can1357 4d7e51413b merge PR #5671 via eval/pr-5671: fix(bash): drained piped output before timeout return 2026-07-17 04:37:11 +02:00
David Andrews (LexGenius.ai) 5cb9533436 fix(shell): parse uv run --extra values 2026-07-16 08:39:37 -04:00
roboomp 3e38a5b514 fix(bash): drained piped output before timeout return
- Delayed reader cancellation so pipeline consumers can flush after producers are terminated.
- Kept the JavaScript watchdog behind bounded native timeout cleanup.
- Added native and executor regressions for timeout-time output draining.

Fixes #5316
2026-07-16 07:22:58 +00:00
can1357 9fd19696e2 chore: bump version to 17.0.1 2026-07-16 04:56:03 +02:00
roboomp d12997278d fix(tail): stopped windows broken-pipe flush from killing omp
unbounded_tail emulated Unix SIGPIPE on Windows by calling
std::process::exit(13) when a broken-pipe flush failed. Inside the
long-lived host shell that terminated the entire omp process with code
13 and no output, breaking the run contract that pi-uutils builtins
never call std::process::exit.

Flush uniformly across platforms so a broken pipe surfaces as a normal
io::Error and propagates to the caller, matching every other builtin
(e.g. uu-cat's handle_broken_pipe). Added a regression test covering the
streaming unbounded_tail path the reported repro exercises.

Fixes #5609
2026-07-15 19:48:04 +00:00
can1357 1c9291b6e6 chore: bump version to 17.0.0 2026-07-15 19:17:34 +02:00
can1357 b51fd7f06d Merge remote-tracking branch 'origin/farm/58511219/fix-bash-process-substitution-hang' 2026-07-15 12:38:47 +02:00
can1357 f946d550ea fix(pi-uu-grep): normalized GNU basic alternation in default matching mode
- Added normalization that translated escaped `\|` alternation to `|` outside character classes before default-mode matching.
- Refactored default matcher construction into a helper that retries compilation with malformed patterns escaped as literals after an initial failure.
- Added a regression test confirming `tools.xdev\|tools.toolbox` now returns the expected two matches in default mode.
2026-07-15 12:35:59 +02:00
roboomp 8eb9b6d251 fix(shell): materialized process substitution fds for builtins
- Rewrote logical /dev/fd operands to live OS descriptors before invoking in-process uutils.
- Added regression coverage for diff reading two process substitutions.

Fixes #5557
2026-07-15 10:04:00 +00:00
can1357 e542f762ca fix(pi-shell): mapped BrokenPipe stdout errors to silent fd exit code 141
- Updated `run_fd_sync` to handle `io::ErrorKind::BrokenPipe` by returning exit code `141` without writing an error message.
- Added a regression test that verifies `fd` exits with `141` and empty stderr when stdout is closed early (e.g. `fd ... | head` scenario).
- Recorded the broken-pipe behavior fix in `packages/coding-agent/CHANGELOG.md`.
2026-07-15 10:09:41 +02:00
can1357 7d02778c60 chore: bump version to 16.5.2 2026-07-15 00:04:32 +02:00
roboomp 90c4726bae fix(launch): passed Windows PTY arguments directly
Added a direct-argv PTY entry point and used it for Windows launch sessions so portable-pty no longer re-quotes cmd.exe command text.

Rejected direct .bat and .cmd applications with guidance to use cmd.exe /c.

Fixes #5416
2026-07-14 20:17:03 +00:00
can1357 14b5da76a9 chore: bump version to 16.5.1 2026-07-14 19:21:54 +02:00
can1357 a3960bb4e1 chore: bump version to 16.5.0 2026-07-14 01:32:16 +02:00
can1357 198efb3e4e feat: enabled bsd compatibility for core utilities and command arguments
- Implemented bsd-to-gnu flag translation for `date`, `find`, `mktemp`, `sed`, and `tail` utilities to support native bsd command usage.
- Adjusted argument parsing logic in `ln` and `base32` to accommodate bsd-compatible short-flag aliases and behavior.
- Added comprehensive regression tests and bsd-specific compatibility suites across modified utilities to ensure consistent behavior.
- Updated project documentation to reflect the expanded cross-platform utility support.
2026-07-13 05:16:18 +02:00
can1357 6b2f4ad5de feat(vendor/uu-stat): enabled bsd-style stat syntax support
- Added `rewrite_bsd_invocation` to detect macOS-style `stat -f FORMAT` syntax, preventing misinterpretation as GNU filesystem mode.
- Implemented `translate_bsd_format` to map BSD-specific format directives to GNU equivalents, including support for time forms, user/group IDs, and file metadata.
- Enabled BSD flag cluster parsing (`-LnfqF`) to allow common macOS command patterns to function correctly within the in-process `stat` utility.
- Added comprehensive unit tests to validate BSD syntax translation, sub-field handling, and error reporting for unsupported directives.
2026-07-13 05:06:22 +02:00
can1357 01d3fc9b6b chore: bump version to 16.4.8 2026-07-12 20:48:09 +02:00