Repository navigation
chore(deps): tantivy 0.27 without zstd, every grammar to its latest release (Dart 0.3, Swift 0.7.4 from crates.io, Nim, C++) - #874
Conversation
… wildcards, refresh the lockfile
- tantivy: the git pin at 5ca39332 (taken for the LRU panic fix, #3034) is
replaced by crates.io 0.27.0, which carries that fix. Default features are
off: zstd only compresses columnar fast-field dictionaries and the index
has no fast field (old .fast files are header-only), and no tokenizer
stems. lz4 stays for the doc store. zstd, zstd-sys and frostem leave the
tree, so RUSTSEC-2026-0391/-0398/-0403 no longer apply and their ignores
in .cargo/audit.toml and deny.toml go.
- Grammar wildcards ("*") pinned to the locked versions: tree-sitter-dart
0.3.0 renames node kinds the Dart queries match, and a plain cargo update
would have pulled it in. tree-sitter-crystal pinned to the locked rev.
- cargo update: tree-sitter-md 0.5.4 (scanner buffer overflow on deep
nesting), notify 8.2.1 (inotify deleted-path cleanup, FSEvents crash),
rmcp 3.7, memmap2, similar, smallvec, uuid and transitive patches.
… upstream HEAD - tree-sitter-dart 0.2.0 -> 0.3.0. Nine node kinds were renamed; ecp matched four of them (initialized_variable_definition, enum_constant, qualified), each a pure rename with the same fields and children. 0.3.0 also parses `(x) => f(x)` with the call inside the closure, so the arrow closure test now asserts the call attaches to <anonymous>. - tree-sitter-swift: the vendored 0.7.3 (kept for a tree-sitter 0.23 binding patch) is replaced by crates.io 0.7.4, which depends on tree-sitter-language only. 0.7.4 adds a CWE-476 fix, an LLP64 shift fix, SE-0451 raw identifiers and SE-0458 syntax. - tree-sitter-nim: upstream ac72ba30 (factors the post-expression do block into its own hidden rule; node-types.json unchanged). The vendored files matched its parent byte for byte. - tree-sitter-cpp: rev c0092228, upstream HEAD (highlights query only).
…operator calls tree-sitter-swift 0.7.4 parses `!a.m(x)` as `(!a.m)(x)` and a continued `a +\n B.m(x)` as `(a + B.m)(x)`, so the callee slot held a prefix_expression or a binary expression and the call was dropped. swift_callee_name now unwraps to the operand that touches the argument list. The implicit member `.m(x)` stays opaque, as under 0.7.3. A/B against f6a669d (vendored 0.7.3): the 12 Swift and Swift-cli calls lost by the grammar bump are back, resolved through the typed receiver (confidence 0.85, was 1.0 by bare same-file name). One wrong edge goes away: `copy.arguments.append(contentsOf:)` no longer binds to the fileprivate `Array.append(optional:)`. The grammar test dimension is now `swift_grammar.rs` (0.7.3 and 0.7.4 guards in one file); the exemption list follows the rename. Dart gains a nested-arrow-closure test that pins the typed receiver.
…nd full typed callee The assertion accepted any function whose calls end with fetchItems, so a bare name attached to main would still pass.
…er ??, ternary and range swift_callee_node holds the unwrap, so the `calls_local` guard sees the same callee as swift_callee_name: `!make().bar()` with a local `make` closure no longer types `bar` through the same-named global function. A trailing closure after `??`, a ternary or a range attaches to the operand the same way a binary operator does, so those calls are named too. Doc drift: the Dart module doc names `initialized_variable_declaration`, NOTICES.md drops the vendored tree-sitter-swift entry, and the Swift test header describes the 0.7.4 shapes without claiming 0.7.3 parity.
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Update grammar dependency declarations crates/ecp-analyzer/Cargo.toml, crates/ecp-cli/Cargo.toml, Cargo.toml, .github/workflows/*, LICENSES/NOTICES.md |
Grammar dependencies now use explicit versions or revisions. Swift uses a registry dependency, and Tantivy uses registry version 0.27 with mmap and lz4-compression. Repository references to the vendored Swift grammar were removed or generalized. |
Remove the vendored Swift grammar package crates/vendor/tree-sitter-swift/** |
The vendored Swift grammar, its bindings, build and package metadata, queries, and fixtures were deleted. |
Adapt analyzer extraction to grammar nodes crates/ecp-analyzer/src/dart/*, crates/ecp-analyzer/src/swift/receiver_types.rs, crates/ecp-analyzer/tests/{dart_anonymous_callbacks.rs,swift_grammar.rs,swift_grammar_073.rs,lang_dimension_exemptions.txt} |
Dart extraction now matches updated grammar node names. Swift callee extraction unwraps selected expression nodes. Tests cover updated grammar syntax and call-graph behavior; the prior Swift 0.7.3 test file was removed. |
Restructure Nim post-expression blocks crates/vendor/tree-sitter-nim/grammar.js, crates/vendor/tree-sitter-nim/src/grammar.json |
Nim grammar rules route do blocks through a rule that permits an optional post-expression block tail. |
Rust advisory exception updates
| Layer / File(s) | Summary |
|---|---|
Remove Rust advisory exceptions .cargo/audit.toml, deny.toml |
The three listed RustSec advisory exceptions were removed from both advisory ignore lists. |
Priority:
Estimated code review effort: 3 (Moderate) | ~25 minutes
Change: Other
Possibly related PRs
- coseto6125/egent-code-plexus#861: Updates Swift and Dart receiver and chained-call extraction, which is related to this pull request’s parser extraction changes.
Merge Risk: 
Minimal · up to 3840c
-
No actionable issue remains from the reviewed changes; the PR is mergeable after normal checks.
Pre-merge checks: 
4 · 
1
-
Failed checks: 1 warning Passed checks: 4 passed-
Full details: Description check
-
Explanation
The description provides a detailed summary of the dependency and grammar updates, explains the motivation, and documents verification results. It uses "## Why," "## What changed," and "## How to verify" instead of the template headings, but it includes the required information and is substantially complete.
-
Full details: Docstring Coverage
-
Explanation
Docstring coverage is 10.71% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 28 functions across 6 files. (9 skipped: 9 unsupported.)
Resolution
Write docstrings for the functions missing them to satisfy the coverage threshold.
-
Finishing Touches: 💡 1
-
📝 Generate docstrings: 💡
-
- Commit to this branch
- Create a new PR
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands.
ecp impact cache (0 symbols) — internal, used by
|
* fix(release): list breaking `type!:` commits in the changelog The type filter matched only `feat:` and `feat(scope):`, so `feat!:` and `feat(scope)!:` subjects were dropped: the v0.17.0 preview omitted #871. Breaking subjects now get a **Breaking:** marker. * release: 0.16.4 -> 0.17.0 — bump workspace + internal dep versions * docs(changelog): list the 0.17.0 dependency and grammar refresh (#874) * docs(changelog): list the peer watcher fix in 0.17.0 (#876)
Why
Outcome. tantivy moves to crates.io 0.27 with only the features the index uses (
mmap,lz4-compression), which dropszstdfrom the dependency tree and with it the two RustSec advisories that.cargo/audit.tomlanddeny.tomlignored since #871; both ignore lists are empty again. Every tree-sitter grammar that had a newer release moves to it: Dart 0.2 → 0.3 (ported, not deferred), Swift 0.7.3 vendored → 0.7.4 from crates.io (the 64-file vendored copy is deleted), Nim and C++ to upstream HEAD, and the wildcard grammar pins become the locked version (caret, so patch releases still flow and minor releases need a manifest edit). The release binary shrinks from 106.3 MB to 103.3 MB. Door: two-way. Onegit revertrestores the old dependencies; tantivy's on-diskINDEX_FORMAT_VERSIONis 7 on both sides, and the graph format bump that already ships in 0.17.0 rebuilds every L2 anyway. Blast radius:swift_callee_name(3 upstream callers:extract_swift_calls_and_path_literals, a closure in it,parse_file) andcollect_typed_dart_locals(2:collect_bindings,parse_file); the rest is Dart query/kind renames insideDartProviderand grammar sources.Wildcard pins (
"*") letcargo updatepull a grammar's breaking minor release silently, and caret pins on0.xblocked the upgrades this PR makes on purpose. tantivy's default features built zstd for columnar fast-field dictionaries and the stemmer; the index has no fast field and no stemming tokenizer.What changed
default-features = false,features = ["mmap", "lz4-compression"]. Wildcard grammar pins set to the locked version as a caret requirement (go, python, typescript, java, rust, javascript, php, ruby, c-sharp, c).cargo updateover the lockfile..cargo/audit.tomlanddeny.tomlignores back to[].initialized_variable_declaration,enum_entry,qualified_name,member_declaration,field_formal_parameter,map_element,null_aware_map_element,null_aware_expression_element,negation_operator) indart/parser.rs,dart/receiver_types.rs,dart/queries.scm. tree-sitter-swift 0.7.4 from crates.io;crates/vendor/tree-sitter-swift/removed with its workspaceexcludeentry and the two workflow comments that named it. tree-sitter-md 0.5. Nim vendored sources replaced with upstream ac72ba30. tree-sitter-cpp at c0092228, tree-sitter-crystal at 50ca9e6f.!a.m(x)parses as(!a.m)(x)anda + b.m(x)as(a + b.m)(x); a trailing closure does the same through??, a ternary and a range. The newswift_callee_nodeunwraps to the operand that touches the argument list and is shared byswift_callee_nameand its local-closure guard; the implicit member.m(x)stays opaque, as under 0.7.3.<anonymous>node, so the former grammar-limitation test now asserts the attachment; a nested arrow closure keeps its typed receiver.swift_grammar_073.rsbecomesswift_grammar.rsand holds the 0.7.3 and 0.7.4 guards (exemption list follows the rename).Supersedes #873 (its four bumps are in this lockfile).
How to verify
Edge A/B,
f6a669d1(main before this branch) vs this branch, release builds,ecp admin index --forcethen a full edge and node dump per repo:.sample_reposubrepos (C++, Nim, Crystal included)boundarycalls move from bare same-file (1.0) to typed receiver (0.85), same targets; +2 calls 0.7.3 missed (encode → query,refresh → isRefreshExcessive)split.containscalls same targets, 1.0 → 0.85; −1 wrong edge (append(contentsOf:)bound to the fileprivateArray.append(optional:)); +3 calls throughHelpGenerator(...)and a typedusage<anonymous>nodes; 5 wrongExtendsedges to type arguments removed; 10 edges that 0.2 resolved by luck are lost to pre-existing resolver gaps, filed as FU-2026-10-27-33dce4b607d9Before the Swift fix the same A/B lost 12 Swift/Swift-cli calls and, with an unnarrowed first attempt, gained ~400 bare-name implicit-member calls;
test_swift_callee_implicit_member_call_adds_no_bare_callpins the narrowed form.Suites (serial,
-j 4,--test-threads=4):--tests)cargo clippy -p egent-code-plexus --testsand-p ecp-analyzer --tests: 0 warnings. The four new Swift tests (??, ternary, range, negated local-closure call) fail on 2ec9ad0 and pass on HEAD; a Swift/Swift-cli edge A/B between those two commits shows 0 diff.cargo audit: no advisory over 481 crates.cargo deny check: advisories, bans, licenses, sources ok, with empty ignore lists.Follow-ups resolved: FU-2026-10-27-e78e40f4616a (tantivy), FU-2026-10-27-d12b40666a72 (Dart 0.3). Opened: FU-2026-10-27-33dce4b607d9 (Dart typed-receiver gaps), FU-2026-10-27-03fa6cdd6058 (Swift bare call behind an operator also gets a
Referencesedge; pre-existing on 0.7.3).Review: simplify Tier 2. deep-review (sonnet) raised 7; fixed 6 (shared unwrap for the local-closure guard,
??/ternary/range arms, NOTICES and doc drift, the Dart test assertion, the Swift comment), filed 1 as FU. codex raised 2 (pin wording in this body, the Dart test assertion), both fixed. Free reader: leads checked, none held (only binary operators carryrhsin 0.7.4; tantivy features compile and the CLI search tests pass). Gemini skipped: quota.Summary by CodeRabbit
doblocks in call arguments.