You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#264 supplies a snapshot-bound, dependency-keyed multi-view index, but the built-in understanding path still stops at artifact catalog + lexical content. The Agent-facing gaps remain:
Symbol, call/reference/import relationships and their confidence are not available as shared views behind ProjectContext; each tool/provider still exposes its own graph/query vocabulary.
Graft is materially smarter than the current heuristics, but upstream 0.11.0 has no stable complete-graph export API. graft build writes the private/local cache file graft/.graph/wiring.json; adopting that file layout or the Node/npm runtime as a production boundary would make Graft the center by accident.
The product needs Graft-level semantic capability built in, while Pipeline remains the authority, identity, cache, budget and Agent-query center.
Define closed, versioned SymbolView and RelationView artifact contracts. Every record carries producer, producerVersion, consumedSnapshotIdentity, evidence location/hash, and a non-numeric confidence class.
Implement the native extractor for Rust plus one second-language fixture that exercises owner-qualified member calls. Keep grammar/extractor registration behind a provider boundary; do not add Graft/Node/npm as a production dependency.
Add typed SymbolNeighborhood intent behind ProjectContext. CLI and MCP construct the same intent and decode to the same domain answer; existing evidence-query JSON remains unchanged.
Query precedence is explicit: compiler/native exact facts > LSP resolved > AST extracted > unique-name inferred > existing heuristics. A weaker producer never overwrites stronger evidence.
Emit an internal query receipt with chosen producer/view key, rejected/fallback reasons, snapshot/freshness, confidence basis, bytes/items/time and budget/truncation state. It is audit evidence, not authority.
Add a fixed benchmark comparing symbol localization, relation precision/recall, context bytes and warm/cold latency against the current heuristic path.
Acceptance
Same admitted snapshot + config + producer version yields byte-identical Symbol/Relation views and view keys.
Editing one file invalidates only its extraction and dependent relation projection; freshness-only checkout changes do not mutate committed view keys.
Duplicate cross-file names are not resolved; unknown receiver member calls do not resolve to bare same-named methods.
contains never enters impact/dependency traversal.
Missing LSP is a recorded no-op, not a core failure; heuristic fallback remains available and labeled.
Staging, forged, non-completed or mismatched publications never enter committed semantic views; cache hits never bypass A07/A08/Artifact Ref verification.
code-intel query --kind symbol and the MCP projection decode to the same bounded domain answer with explicit snapshot, freshness, confidence, coverage and truncation.
Benchmark uses the same snapshot/query corpus for old and new paths, at least 3 repetitions, reports cold build separately from warm queries, and shows higher relation precision with no material symbol-recall regression. Enabling by default requires a measured Agent-context reduction or latency win, not architectural preference.
a general-purpose route planner or monolithic “tool fabric” in this issue;
numeric confidence aggregation across heterogeneous producers;
making semantic views gate/adoption authority;
supporting every language in the first slice;
public release promotion during the DR-0006 RC freeze.
Follow-up: tool fragmentation
After this slice proves two producers can answer one typed intent, open a separate issue for AgentIntent + QueryPolicy + CapabilityCatalog + RoutePlanner + QueryReceipt across at least two intents. Keep catalog declaration, route selection, execution, answer assembly and receipt recording in separate modules; do not combine them into one orchestration god object.
Problem
#264 supplies a snapshot-bound, dependency-keyed multi-view index, but the built-in understanding path still stops at artifact catalog + lexical content. The Agent-facing gaps remain:
native_code_evidenceand Agent-map ranking are heuristic; known ceilings are tracked in Agent 地图排序:test/example 文件霸榜,entrypoint 误判文件名前缀 #128, bug(evidence): Rust mod / #[path] 声明边零覆盖 — 抽了名字边,没抽文件边 #221, bug(evidence): group use 未展开 + 跨行 use 静默丢失(连 unresolved 都不计) #223 and model: 第二类语言(名字空间与文件解耦)整体失配 — Rust/Java/C#/Go 同一个根因 #225.ProjectContext; each tool/provider still exposes its own graph/query vocabulary.0.11.0has no stable complete-graph export API.graft buildwrites the private/local cache filegraft/.graph/wiring.json; adopting that file layout or the Node/npm runtime as a production boundary would make Graft the center by accident.The product needs Graft-level semantic capability built in, while Pipeline remains the authority, identity, cache, budget and Agent-query center.
Decision
Add one native Rust semantic producer after #264:
Borrow these semantics from Graft pinned at
d834ca227d765b2736cfeafb97b0e71e2ea21d50, not its product/runtime:contains|calls|references|imports|implements|extends;lsp_resolved|lsp_dispatch|ast_extracted|name_inferred|heuristic;containsis structural and never participates in dependency walks;Upstream evidence:
First vertical slice
SymbolViewandRelationViewartifact contracts. Every record carriesproducer,producerVersion,consumedSnapshotIdentity, evidence location/hash, and a non-numeric confidence class.ViewKind::SymbolCatalogandViewKind::Relationsto the feat(index): add snapshot-bound multi-view query index #264 index. Reuse its view keys, retained-byte budget, corruption rebuild and freshness separation.SymbolNeighborhoodintent behindProjectContext. CLI and MCP construct the same intent and decode to the same domain answer; existing evidence-query JSON remains unchanged.Acceptance
containsnever enters impact/dependency traversal.code-intel query --kind symboland the MCP projection decode to the same bounded domain answer with explicit snapshot, freshness, confidence, coverage and truncation.artifact query, MCP six-tool compatibility, primary run, install topology, repin, hardcoded-path and Sentrux gates remain green.Non-goals
--deeplayer;Follow-up: tool fragmentation
After this slice proves two producers can answer one typed intent, open a separate issue for
AgentIntent + QueryPolicy + CapabilityCatalog + RoutePlanner + QueryReceiptacross at least two intents. Keep catalog declaration, route selection, execution, answer assembly and receipt recording in separate modules; do not combine them into one orchestration god object.Depends on #264. Refs #58 #128 #188 #221 #223 #225 #263.