Retire crates/plugins: 24k lines of extractors no release contains are still maintained twice; default build differs from release #515
Labels
No labels
code-review
correctness
dos
performance
security
severity/high
severity/low
severity/medium
tech-debt
Kind/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
h-dv/code-index#515
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Consolidated scope (triage 2026-11-09)
Priority: Medium: about 25k lines maintained twice; the default build is not the product.
This issue is now the canonical tracker for:
receiver_file_anchor) (from #309, closed and merged here; its full report stays readable there)common.rs/pos.rsandmethod_or_functioninto guest-kit (from #516, closed and merged here; its full report stays readable there)Original report
Summary
crates/pluginsholds about 24k source lines of language extractors (rust 3,864, typescript 3,787, python 3,731, csharp 3,671, ruby 3,282 and php 2,160 lines), plus about 5k lines of tests. No release build contains any of it. Every releasecargo buildpasses--no-default-features(.forgejo/workflows/release.yml:711, 718, 799, 1250, 1257), and the running daemon reports "NO builtin for csharp, javascript, php, python, ruby, rust, typescript". Even so, the code is maintained as a second, drifting implementation:crates/guest/*/srcstarted as copies and now differ from the builtins by 1,217–2,608 diff lines per language.crates/plugins/srchas taken 7 commits since the 2026-10-08 freeze (git log --since=2026-10-08 -- crates/plugins/src), so fixes are written twice.crates/indexer/tests/package_parity/(deltas.rs 1,369 lines, mod.rs 1,823),first-party-tests/.../walker_parity.rs(1,115),crates/plugins/tests/builtin_frozen.rs, and aparity-deltas.tomlper package.search_text "builtin"finds over 1,200 hits in 64 production files, for exampleindexer/src/languages.rs181,packages.rs120,mcp-server/src/eligibility.rs93 andindex.rs92.all_plugins()(crates/plugins/src/lib.rs:33-49) has 18 non-test call sites and returns an empty Vec in release.cargo buildhasbuiltin-ruby(default = ["builtin-ruby"]in the cli, daemon, indexer, mcp-server and pluginsCargo.toml), and tests have all of them. No test exercises the shape that ships.crates/guest/languages/src/lib.rs:22, 40pulls../../../plugins/src/common.rsandpos.rsin with#[path].crates/guest/csharp/src/common.rsandpos.rsare byte-identical copies (same git blobs79177592…anda7de63d2…), even thoughcrates/guest-kitexists for exactly this sharing.Proposal
default = []in all five manifests now, so that dev, CI and release build the same product. This is a one-line change in each.crates/plugins/src/{rust,python,typescript,csharp,php,ruby}.rs, thebuiltin-*features,all_plugins/builtin_compiledand the in-process parse paths (embedded.rsextract_builtin,index.rsparse_with_plugin_within). Collapse the ownership logic to "package or not indexed".common.rsandpos.rsintoguest-kit. No#[path]may point into a host crate, which is the rulecrates/guest/vue/Cargo.toml:7already states.Acceptance and risk
corpus_ratchet,precision_gateand the parity suites run against the recorded oracle and stay green with an unchangedbaseline.json. Removing the code removes the oracle these suites compare against, so step 2 has to land first.Related: #309 (epic), #49, #318. This issue makes the double-maintenance cost and the always-empty release path concrete. Found by automated bloat and architecture reviews (2026-11-09), with release.yml, the Cargo features and the blob hashes verified by hand.
Filed from a five-agent review of master @
e3ec6ead(bloat, robustness, agent usefulness, docs, architecture). Every finding was spot-checked in the main session before filing.buildagent referenced this issue2026-11-09 09:21:02 +01:00
readofpkg.digestbinds a same-named pub field in another crate, and localising the receiver does not move it #270Priority raised to High. #581 supplies a second reason for this work besides double maintenance: workspace tests compile the builtin parsers in and hide the cost of the shipped shape. The same startup steps take 0.08 s in the workspace test build and 8.5 s in the shipped build. Qualification must exercise the shipped package-only shape; retiring the duplicate producers removes this blind spot.