Commit Graph

866 Commits

Author SHA1 Message Date
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 9b54d9e9ac chore: bump version to 17.0.8 2026-07-23 00:41:54 +02:00
can1357 7d404686c2 chore: updated changelogs + remove summarization marker 2026-07-22 23:59:32 +02:00
can1357 0002905ec5 chore: untrack node_modules symlinks and harden ignore pattern
- An eval-worktree cherry-pick swept 16 packages/*/node_modules symlinks into the index; 'node_modules/' with a trailing slash only matches directories, so symlinked installs bypassed the ignore. Dropped the slash and removed the tracked links.
2026-07-22 21:43:22 +02:00
can1357 1b7dc1c3f6 docs: normalize changelog entries under [Unreleased]
- Promoted union-merge strays back under [Unreleased] and merged duplicate headings across ai, catalog, coding-agent, natives, and tui changelogs (scripts/fix-changelogs.ts --since 7b141199d5).
- Restored the pi-ai changelog entry for #6139 that its fix commit missed.
2026-07-22 21:14:15 +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 b9072f1991 fix(extensibility): validate Type.Unsafe against the draft-2020-12 upgraded schema
Aligns the shim's runtime safeParse/__validator with the wire/tool-call
path, so legacy draft-07 documents (tuple items) accept the same values
validateToolArguments does. Adds a regression test.
2026-07-22 21:13:21 +02:00
Wolfgang Schoenberger 72394db605 test(mnemopi): refresh bench artifact on an idle host and sync changelog claims 2026-07-22 05:30:52 -07:00
Wolfgang Schoenberger b1653f51eb test(natives): refresh diff bench evidence on an idle host with guard-inclusive timings 2026-07-22 05:30:52 -07:00
Wolfgang Schoenberger 973bad0c61 test(natives): include production isWellFormed guards in native diff timings 2026-07-22 05:09:09 -07: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 ee6717872c test(natives): cover ill-formed UTF-16 rejection and jsdiff fallback 2026-07-22 04:32:46 -07:00
Wolfgang Schoenberger 6b9726552b chore(mnemopi): add changelog attribution links 2026-07-22 03:21:13 -07:00
Wolfgang Schoenberger 55bba890ab chore(coding-agent): add changelog attribution links 2026-07-22 03:21:07 -07:00
Wolfgang Schoenberger c718340406 chore(coding-agent): sync changelog numbers with final bench artifact 2026-07-22 03:18:38 -07:00
Wolfgang Schoenberger 85b44bb0e4 test(natives): refresh diff bench results at final revision 2026-07-22 03:13:29 -07:00
Wolfgang Schoenberger 1b3e35716e chore(natives): regenerate diff export docs 2026-07-22 02:58:47 -07:00
Wolfgang Schoenberger 63124d044e chore(coding-agent): add changelog entries for native diff 2026-07-22 02:58:34 -07:00
Wolfgang Schoenberger 81aa4ad27f test(natives): add seeded randomized word-diff parity coverage 2026-07-22 02:58:33 -07:00
Wolfgang Schoenberger 4de678f44d chore(mnemopi): add changelog entries for native vector kernels 2026-07-22 02:32:35 -07:00
Wolfgang Schoenberger c1495d9ff2 test(natives): make diff bench iterations and scenario ceiling tunable 2026-07-22 02:30:33 -07:00
Wolfgang Schoenberger 178dd214b7 perf(natives): add crossing-inclusive diff benchmark 2026-07-22 01:55:56 -07:00
Wolfgang Schoenberger 5f41203f00 test(natives): add jsdiff parity suite for native line/word diff 2026-07-22 01:25:31 -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 c081dedd3a Merge PR #5887: fix(tui): isolate wrapped OSC 8 links in tables (@roboomp) 2026-07-17 21:22:06 +02: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 f4bbf2dec6 chore: normalized changelogs after merge sweep
Ran scripts/fix-changelogs.ts --since 1424cae06 to merge duplicate
Unreleased headings and promote entries the union merge driver misfiled.
2026-07-17 05:01:09 +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
can1357 2c355102ce chore: applied biome formatting to merged sources 2026-07-16 03:52:48 +02:00
can1357 5e9d03f152 chore: normalized changelog entries misfiled by union merges 2026-07-16 03:52:19 +02:00
can1357 a29627142c fix(natives): verify disk before stale-process diagnosis 2026-07-16 03:32:03 +02:00
can1357 29b6649ff9 merged PR #5423: fix(natives): distinguish process-stale from disk-stale sentinel mismatch 2026-07-16 03:32:03 +02:00