feat: benchmark fast regex search against the current shell based search flow and document rollout#445
Conversation
Measure native code_search against the shell baseline so rollout guidance reflects current fallback and index behavior.
Rename rollout benchmark result-shape variants so the example passes the repo push checks without changing benchmark behavior.
Update the remaining rollout benchmark enum references so the example compiles under the repo push checks.
Update the remaining benchmark runner and test references so the renamed result-shape variants match the lint-safe enum.
Update shared and app stylesheet imports to the url() form required by the current import-notation rule so pre-push checks can pass.
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 6 minutes and 37 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughAdds an evidence-focused rollout for the native Changes
Sequence Diagram(s)sequenceDiagram
participant CLI as Benchmark Runner
participant Shell as Shell Baseline
participant Native as Native code_search
participant Index as Index State
participant Report as Markdown Report
CLI->>Shell: Run grep baseline (repeated, drift detection)
Shell-->>CLI: Baseline timings & canonical lines
CLI->>Index: Clear artifacts (no-index)
CLI->>Native: Run native search (no index)
Native-->>CLI: Results + plan metadata
CLI->>CLI: Canonicalize & verify parity vs shell
CLI->>Index: Clear artifacts (cold-build)
CLI->>Index: Rebuild/refresh index (measure)
CLI->>Native: First search after build (measure)
Native-->>CLI: Results + plan metadata
CLI->>CLI: Verify parity, record build/search/total
CLI->>Index: Prepare index once (warm-index)
loop samples
CLI->>Native: Repeat search (measure)
Native-->>CLI: Results + plan metadata
end
CLI->>CLI: Verify stability, compute medians/p95
CLI->>Report: Aggregate env, timings, parity
Report-->>CLI: Emit markdown matrix & per-case stats
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
✅ Contributor ReportUser: @yacosta738
Contributor Report evaluates based on public GitHub activity. Analysis period: 2025-04-05 to 2026-04-05 |
Provide the required frontmatter descriptions so docs metadata validation passes for the new rollout guide pages.
Deploying corvus with
|
| Latest commit: |
775bb50
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://267bd42e.corvus-42x.pages.dev |
| Branch Preview URL: | https://feature-360-benchmark-fast-r.corvus-42x.pages.dev |
There was a problem hiding this comment.
Actionable comments posted: 14
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@clients/agent-runtime/docs/design/code-search-tool.md`:
- Around line 21-25: Update the doc so its statements about v1 are consistent
with the "Implementation note (2026-04-05)" that now allows safe literal queries
to use workspace trigram index narrowing and regex queries to fall back via the
`query_regex_not_supported` path; find and change any lines that currently
assert "v1 has no index/no cache" to instead describe the conditional behavior
(literal queries use index narrowing when a compatible index exists; regex
queries use planning fallback → discovery + live verification). Also update the
canonical summary section and cross-reference in
docs/clients/agent-runtime/tools/code-search.md so both places describe the same
contract and include the same terminology (e.g., "trigram index narrowing",
"query_regex_not_supported", "discovery plus live verification").
In `@clients/agent-runtime/examples/code_search_rollout_benchmark.rs`:
- Around line 350-376: The Regex benchmark cases (BenchmarkCase structs using
QueryKind::Regex like the ones with ids "regex_small_hit", "regex_large_hit",
"regex_no_hit") currently pass plain literal patterns so they only exercise the
literal fallback; change their pattern fields to actual regex expressions that
cannot be represented as a fixed substring (e.g., use character classes,
quantifiers, alternation, word-boundary anchors, or dot-wildcards such as
"\bfixture_regex_unique_target\b" -> use "\b" or "\w+",
"fixture_regex_bulk_case_" -> use "fixture_regex_bulk_case_\d+" or
"fixture_regex_bulk_case_.+" and the no-hit pattern to include a regex construct
like "fixture_regex_rollout_no_match_\d{8}" or alternation) and adjust
case_sensitive/whole_word flags if needed so the benchmark truly exercises the
regex engine; apply the same changes to the other Regex cases around the later
block mentioned.
- Around line 1004-1011: The percentile_ms function currently floors the index
and returns the lower sample, which underreports tail latencies; change
percentile calculation to compute a floating-point rank r = (percentile/100.0) *
(n - 1) and perform linear interpolation between values[floor(r)] and
values[ceil(r)] (convert Duration::as_millis to a floating type for
interpolation), then round/clamp the result and return as u64; update the
implementation inside percentile_ms to use the float rank, lower/upper indices
and fractional weight to produce the interpolated millisecond value.
- Around line 1115-1119: The report currently prints absolute developer
workspace paths (report.metadata.workspace_root) because
repo_workspace_context() canonicalizes the repo path; remove or redact that
output by default: stop emitting the absolute workspace_root in the standard
printlns (the block printing report.metadata.workspace_kind and
report.metadata.workspace_root), and instead either omit printing workspace_root
or replace it with a non-sensitive placeholder (e.g., "<redacted>" or a relative
path derived from repo_workspace_context()) so that
report.metadata.workspace_root is not written out as an absolute path in
generated markdown.
In
`@clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md`:
- Around line 159-168: Update the "SHOULD prefer native `code_search`" guidance
to scope the regex recommendation by execution mode: change the recommendation
to prefer native code_search only for no-index or warm-index fallback runs (or
when measured regex rows show parity), and explicitly call out native_cold_build
as a shell-favored exception; mention the fallback labeling behavior
(`query_regex_not_supported`) and keep the rationale about canonical parity and
measured performance limited to the supported modes rather than blanket advice.
Ensure the header text ("SHOULD prefer native `code_search`") and the paragraph
referencing native_cold_build, query_regex_not_supported, and code_search are
edited so the doc accurately reflects mode-specific guidance.
- Around line 1-9: The page frontmatter for title: code_search is missing a
required description field; open the top YAML block for the document (the
frontmatter around title: code_search) and add a concise description:
"description: Short summary of the native code_search tool, rollout guidance,
benchmarks, and behavior." Also add the same description metadata to the Spanish
counterpart of this file so both locales include the required description
frontmatter.
- Around line 17-20: Summary: The doc incorrectly implies index_unavailable is
unconditional; it should be limited to queries that are otherwise eligible for
indexed planning. Update the four bullet lines so they state that indexed
planning is attempted only for queries eligible for index-based narrowing (e.g.,
literal queries when a compatible/fresh trigram index exists), make clear that
regex queries return query_regex_not_supported (and are labeled
fallback_discovery_live_verification) before index loading, and explicitly state
that index_unavailable applies only when an otherwise-eligible query cannot find
a compatible index; update the phrases 'index_unavailable',
'query_regex_not_supported', and 'fallback_discovery_live_verification'
accordingly to match planner behavior.
In
`@clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md`:
- Around line 17-20: The Spanish paragraph unconditionally claims
index_unavailable for queries even when regex/native_no_index rows should report
query_regex_not_supported first; update the Spanish text in the lines mentioning
index_unavailable to mirror the English fix so that index_unavailable is only
used for queries that would otherwise be eligible for indexed planning, keep the
regex rows reporting query_regex_not_supported (and executions labeled
fallback_discovery_live_verification) and ensure the phrasing mentions that when
no compatible index exists for an otherwise index-eligible query the planner
returns index_unavailable.
- Around line 159-168: Update the Spanish guidance under the "SHOULD prefer
native `code_search`" section to match the English scope: limit the
recommendation to no-index or warm-index regex cases (or explicitly note
cold-build as an exception where native regex may be slower), and ensure the
same caveat around `query_regex_not_supported` (discovery + live verification)
is present; adjust the wording so it calls out that measured cold-build rows
were slower than shell and therefore are excluded. Also verify EN/ES parity for
this `code_search` recommendation and ensure the phrase `code_search` and the
tag `query_regex_not_supported` appear with the same technical nuance in both
languages.
- Around line 1-9: The frontmatter for the "code_search" document is missing the
required description field; add a top-level description entry to the YAML
frontmatter (e.g., directly under title/summary) so the file includes a
descriptive sentence for the page. Update the frontmatter block where title:
code_search appears to include description: "<short Spanish description of the
guide>" ensuring it is a plain string and follows the existing frontmatter keys.
In `@openspec/changes/archive/2026-04-05-code-search-benchmark-rollout/design.md`:
- Around line 125-126: The archived design references shorthand doc paths (e.g.,
"docs/clients/agent-runtime/tools/code-search.md" and
"docs/es/clients/agent-runtime/tools/code-search.md") which are inaccurate;
update those to the actual repo doc locations
("clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md"
and
"clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md"),
and search for the same shorthand occurrences elsewhere in the file (the other
block noted around the 281-289 region) and replace them with their corresponding
full paths so the archived design matches the real file locations.
In `@openspec/changes/archive/2026-04-05-code-search-benchmark-rollout/tasks.md`:
- Line 24: Update the checklist item that currently reads “targeted Rust
validation” to explicitly require running Rust validation for files under
clients/agent-runtime/**/*.rs by naming the exact commands: `cargo fmt --all --
--check`, `cargo clippy --all-targets -- -D warnings`, and `cargo test` (or
include an explicit skip rationale for any omitted checks); modify the text in
the tasks.md entry so the three commands are listed and the requirement to
document skipped checks is stated.
In
`@openspec/changes/archive/2026-04-05-code-search-benchmark-rollout/verify-report.md`:
- Line 99: Append a single trailing newline to the end of the verify-report.md
file so the file ends with one blank line (to satisfy markdownlint rule MD047);
simply open verify-report.md and ensure the final byte is a newline character,
then save.
- Around line 16-40: The verification report is missing Clippy results or an
explicit skip rationale; update the "Executed during verification" section to
either include a successful run of `cargo clippy --manifest-path
clients/agent-runtime/Cargo.toml --all-targets -- -D warnings` (and its
pass/fail evidence) or add a clear documented rationale under "Not rerun during
verification" stating why Clippy was skipped for `clients/agent-runtime/**/*.rs`
(e.g., known infra timeout, intentional short-run policy) and reference that
`cargo fmt --all -- --check` and `cargo test` were run; ensure the report text
mentions the exact command string and the files/targets it covers so readers can
reproduce the check or understand the skip.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: bbb6cbe6-1731-48f6-ba9d-836d2b46b1c7
📒 Files selected for processing (23)
clients/agent-runtime/benches/agent_benchmarks.rsclients/agent-runtime/docs/design/code-search-tool.mdclients/agent-runtime/examples/code_search_rollout_benchmark.rsclients/agent-runtime/src/search/tests.rsclients/web/apps/chat/src/style.cssclients/web/apps/dashboard/src/style.cssclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.mdclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/core.mdclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/index.mdxclients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.mdclients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/core.mdclients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/index.mdxclients/web/apps/docs/src/styles/custom.cssclients/web/apps/marketing/src/styles/global.cssclients/web/packages/shared/app-shell.cssclients/web/packages/shared/tokens.cssopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/design.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/proposal.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/specs/code-search-rollout/spec.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/state.yamlopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/tasks.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/verify-report.mdopenspec/specs/code-search-rollout/spec.md
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: report / Contributor Quality Report
- GitHub Check: pr-checks
- GitHub Check: sonar
- GitHub Check: Cloudflare Pages
🧰 Additional context used
📓 Path-based instructions (5)
**/*
⚙️ CodeRabbit configuration file
**/*: Security first, performance second.
Validate input boundaries, auth/authz implications, and secret management.
Look for behavioral regressions, missing tests, and contract breaks across modules.
Files:
clients/web/packages/shared/tokens.cssclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/index.mdxclients/web/apps/chat/src/style.cssclients/web/apps/dashboard/src/style.cssclients/web/apps/docs/src/styles/custom.cssclients/agent-runtime/benches/agent_benchmarks.rsclients/web/packages/shared/app-shell.cssclients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/index.mdxclients/web/apps/marketing/src/styles/global.cssclients/agent-runtime/docs/design/code-search-tool.mdclients/agent-runtime/src/search/tests.rsopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/state.yamlclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/core.mdclients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/core.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/tasks.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/verify-report.mdopenspec/specs/code-search-rollout/spec.mdclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/proposal.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/specs/code-search-rollout/spec.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/design.mdclients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.mdclients/agent-runtime/examples/code_search_rollout_benchmark.rs
**/*.{md,mdx}
⚙️ CodeRabbit configuration file
**/*.{md,mdx}: Verify technical accuracy and that docs stay aligned with code changes.
For user-facing docs, check EN/ES parity or explicitly note pending translation gaps.
Files:
clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/index.mdxclients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/index.mdxclients/agent-runtime/docs/design/code-search-tool.mdclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/core.mdclients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/core.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/tasks.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/verify-report.mdopenspec/specs/code-search-rollout/spec.mdclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/proposal.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/specs/code-search-rollout/spec.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/design.mdclients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md
clients/agent-runtime/**/*.rs
📄 CodeRabbit inference engine (clients/agent-runtime/AGENTS.md)
Run
cargo fmt --all -- --check,cargo clippy --all-targets -- -D warnings, andcargo testfor code validation, or document which checks were skipped and why
Files:
clients/agent-runtime/benches/agent_benchmarks.rsclients/agent-runtime/src/search/tests.rsclients/agent-runtime/examples/code_search_rollout_benchmark.rs
**/*.rs
⚙️ CodeRabbit configuration file
**/*.rs: Focus on Rust idioms, memory safety, and ownership/borrowing correctness.
Flag unnecessary clones, unchecked panics in production paths, and weak error context.
Prioritize unsafe blocks, FFI boundaries, concurrency races, and secret handling.
Files:
clients/agent-runtime/benches/agent_benchmarks.rsclients/agent-runtime/src/search/tests.rsclients/agent-runtime/examples/code_search_rollout_benchmark.rs
clients/agent-runtime/src/**/*.rs
📄 CodeRabbit inference engine (clients/agent-runtime/AGENTS.md)
clients/agent-runtime/src/**/*.rs: Never log secrets, tokens, raw credentials, or sensitive payloads in any logging statements
Avoid unnecessary allocations, clones, and blocking operations to maintain performance and efficiency
Files:
clients/agent-runtime/src/search/tests.rs
🧠 Learnings (9)
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/**/*.rs : Run `cargo fmt --all -- --check`, `cargo clippy --all-targets -- -D warnings`, and `cargo test` for code validation, or document which checks were skipped and why
Applied to files:
clients/agent-runtime/benches/agent_benchmarks.rsopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/tasks.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/verify-report.mdclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.mdclients/agent-runtime/examples/code_search_rollout_benchmark.rs
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/**/Cargo.toml : Do not add heavy dependencies for minor convenience; justify new crate additions
Applied to files:
clients/agent-runtime/benches/agent_benchmarks.rsclients/agent-runtime/examples/code_search_rollout_benchmark.rs
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/src/main.rs : Preserve CLI contract unless change is intentional and documented; prefer explicit errors over silent fallback for unsupported critical paths
Applied to files:
clients/agent-runtime/benches/agent_benchmarks.rsclients/agent-runtime/docs/design/code-search-tool.mdclients/agent-runtime/src/search/tests.rsclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.mdclients/agent-runtime/examples/code_search_rollout_benchmark.rs
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/**/Cargo.toml : Preserve release-size profile assumptions in `Cargo.toml` and avoid adding heavy dependencies unless clearly justified
Applied to files:
clients/agent-runtime/benches/agent_benchmarks.rsclients/agent-runtime/examples/code_search_rollout_benchmark.rs
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/src/**/*.rs : Avoid unnecessary allocations, clones, and blocking operations to maintain performance and efficiency
Applied to files:
clients/agent-runtime/benches/agent_benchmarks.rsclients/agent-runtime/examples/code_search_rollout_benchmark.rs
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/src/{security,gateway,tools,config}/**/*.rs : Do not silently weaken security policy or access constraints; keep default behavior secure-by-default with deny-by-default where applicable
Applied to files:
clients/agent-runtime/benches/agent_benchmarks.rsclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.mdclients/agent-runtime/examples/code_search_rollout_benchmark.rs
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/src/main.rs : Keep startup path lean and avoid heavy initialization in command parsing flow
Applied to files:
clients/agent-runtime/benches/agent_benchmarks.rsclients/agent-runtime/examples/code_search_rollout_benchmark.rs
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/src/tools/**/*.rs : Implement `Tool` trait in `src/tools/` with strict parameter schema, validate and sanitize all inputs, and return structured `ToolResult` without panics in runtime path
Applied to files:
clients/agent-runtime/benches/agent_benchmarks.rsclients/agent-runtime/docs/design/code-search-tool.mdopenspec/changes/archive/2026-04-05-code-search-benchmark-rollout/tasks.mdclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.mdclients/agent-runtime/examples/code_search_rollout_benchmark.rs
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/src/{security,gateway,tools}/**/*.rs : Treat `src/security/`, `src/gateway/`, `src/tools/` as high-risk surfaces and never broaden filesystem/network execution scope without explicit policy checks
Applied to files:
clients/agent-runtime/examples/code_search_rollout_benchmark.rs
🪛 GitHub Actions: Docs Quality
clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md
[error] 1-1: Documentation metadata validation failed: missing required field 'description'.
[error] 1-1: Documentation metadata validation failed: locale counterpart 'clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md' is missing required field 'description'.
clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md
[error] 1-1: Documentation metadata validation failed: locale counterpart is missing required field 'description'. Missing 'description' in 'clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md'.
[error] 1-1: Documentation metadata validation failed: missing required field 'description'.
🪛 LanguageTool
clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/index.mdx
[grammar] ~21-~21: Agrega una palabra o signo.
Context: ... en cinco categorías principales: - Herramientas Core — Ejecución de comando...
(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_OTHER)
clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/core.md
[grammar] ~19-~19: Corrige la mayúscula.
Context: ...turados de coincidencias. - Nivel de Seguridad: Solo Lectura (Segura). - **Ejecución:...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)
[grammar] ~19-~19: Corrige la mayúscula.
Context: ...encias. - Nivel de Seguridad: Solo Lectura (Segura). - Ejecución: Herramienta nativa del runt...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_UPPERCASE)
clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md
[style] ~191-~191: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...orkspace, so scoped literal searches in very large repos can make cold-build evidence look...
(EN_WEAK_ADJECTIVE)
[uncategorized] ~202-~202: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...mark artifact export in addition to the markdown tables above. Those items are future o...
(MARKDOWN_NNP)
openspec/changes/archive/2026-04-05-code-search-benchmark-rollout/design.md
[grammar] ~221-~221: Use a hyphen to join words.
Context: ...ll output will be parsed from grep -nH style lines. - Native output will be der...
(QB_NEW_EN_HYPHEN)
[uncategorized] ~389-~389: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...ifact in addition to the recorded markdown tables, or whether the docs page alone ...
(MARKDOWN_NNP)
clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md
[grammar] ~13-~13: Corrige la minúscula.
Context: ...uide --- # code_search code_search es la herramienta nativa de búsqueda en el ...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~21-~21: Agrega un signo de puntuación.
Context: ...olos nunca son resultados autoritativos. ## Para qué sirve esta página Esta página es l...
(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~23-~23: Agrega un signo de puntuación.
Context: ... autoritativos. ## Para qué sirve esta página Esta página es la fuente de evidencia de...
(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~25-~25: Cambia la palabra o signo.
Context: ...nt-runtime/benches/agent_benchmarks.rs`. - Benches de Criterion: solo microbenchmarks de...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_OTHER)
[grammar] ~49-~49: Corrige la minúscula.
Context: ...### Modos nativos - native_no_index: elimina state/code-search/index.db antes de c...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~50-~50: Elimina la puntuación
Context: ...da corrida medida. - native_cold_build: elimina el índice, mide refresh_or_rebuild() ...
(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_PUNCTUATION)
[grammar] ~51-~51: Elimina la puntuación
Context: ... de code_search. - native_warm_index: construye o refresca una vez y luego mide búsqued...
(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_PUNCTUATION)
[grammar] ~67-~67: Corrige la minúscula.
Context: ...### Workspace fixture determinístico - tipo de workspace: fixture - generado por:...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~68-~68: Oración con errores
Context: ...stico - tipo de workspace: fixture - generado por: `clients/agent-runtime/examples/co...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~69-~69: Oración con errores
Context: ...les/code_search_rollout_benchmark.rs- cantidad de archivos:4` - fecha del benchmark:...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~70-~70: Oración con errores
Context: ...hmark.rs- cantidad de archivos:4- fecha del benchmark:2026-04-05T19:34:18.060...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~71-~71: Aquí puede haber un error.
Context: ...k: 2026-04-05T19:34:18.060248+00:00 - host: macOS / aarch64 / Apple M2 Max - perfil...
(QB_NEW_ES)
[grammar] ~72-~72: Oración con errores
Context: ... host: macOS / aarch64 / Apple M2 Max - perfil de Rust: debug #### Snapshot actual ...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~76-~76: Corrige la minúscula.
Context: ...ebug #### Snapshot actual del repo - tipo de workspace:repo_snapshot` - raíz de...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~77-~77: Oración con errores
Context: ... - tipo de workspace: repo_snapshot - raíz del workspace: `/Users/acosta/Dev/corvu...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~78-~78: Oración con errores
Context: ...workspace: /Users/acosta/Dev/corvus - commit SHA: 82fa4896 - cantidad de archivos:...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~79-~79: Oración con errores
Context: .../Dev/corvus- commit SHA:82fa489- cantidad de archivos:234763` - fecha del bench...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~80-~80: Oración con errores
Context: ...896- cantidad de archivos:234763- fecha del benchmark:2026-04-05T19:47:11.665...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~81-~81: Aquí puede haber un error.
Context: ...k: 2026-04-05T19:47:11.665525+00:00 - host: macOS / aarch64 / Apple M2 Max - perfil...
(QB_NEW_ES)
[grammar] ~82-~82: Oración con errores
Context: ... host: macOS / aarch64 / Apple M2 Max - perfil de Rust: debug ## Matriz de benchmar...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~161-~161: Agrega un signo de puntuación.
Context: ...ida estructurada con paridad verificada. Por qué: - todas las filas publicadas pasaron la pa...
(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~165-~165: Corrige la minúscula.
Context: ...da con paridad verificada. Por qué: - todas las filas publicadas pasaron la paridad...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~165-~165: Aquí puede haber un error.
Context: ...las filas publicadas pasaron la paridad canónica, - las filas regex están etiquetadas cor...
(QB_NEW_ES)
[grammar] ~166-~166: Elimina la palabra o signo.
Context: ...no como reducción regex-aware por índice, - incluso en el snapshot grande del repo, las fil...
(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_SPACE)
[grammar] ~169-~169: Aquí puede haber un error.
Context: ...local en debug. ### MAY prefer native code_search Usa code_search nativo para búsquedas ...
(QB_NEW_ES)
[grammar] ~173-~173: Corrige la minúscula.
Context: ... cumpla alguna de estas condiciones: - ya tienes un índice reusable y warm para e...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~173-~173: Aquí puede haber un error.
Context: ...ienes un índice reusable y warm para el workspace, - te importa más la salida estructurada...
(QB_NEW_ES)
[grammar] ~174-~174: Elimina la palabra o signo.
Context: ...ificados que la latencia cruda del shell, - el workspace es lo bastante pequeño para q...
(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_SPACE)
[grammar] ~179-~179: Agrega un signo de puntuación.
Context: ... no tienes un índice reusable listo. Por qué: - las filas cold-build del snapshot del re...
(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~183-~183: Corrige la minúscula.
Context: ... un índice reusable listo. Por qué: - las filas cold-build del snapshot del repo ...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~183-~183: Aquí puede haber un error.
Context: ... del workspace completo en esta corrida debug, - las filas literales warm-index del sn...
(QB_NEW_ES)
[grammar] ~184-~184: Elimina la palabra o signo.
Context: ...49 ms`) para los casos literales medidos, - este cambio no depreca la búsqueda por s...
(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_SPACE)
[grammar] ~190-~190: Corrige la minúscula.
Context: ...ada en v1. - query_regex_not_supported es una razón de fallback del planner, no un...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~192-~192: Elimina la puntuación
Context: ... corrida local en perfil debug. Si se re-ejecuta en otro entorno, los números absolutos ...
(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_PUNCTUATION)
[grammar] ~198-~198: Corrige la minúscula.
Context: ... la recomendación actual de rollout: - reducción de candidatos regex-aware por índice, -...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
🪛 markdownlint-cli2 (0.22.0)
openspec/changes/archive/2026-04-05-code-search-benchmark-rollout/verify-report.md
[warning] 99-99: Files should end with a single newline character
(MD047, single-trailing-newline)
openspec/changes/archive/2026-04-05-code-search-benchmark-rollout/proposal.md
[warning] 13-13: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
[warning] 20-20: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below
(MD022, blanks-around-headings)
openspec/changes/archive/2026-04-05-code-search-benchmark-rollout/specs/code-search-rollout/spec.md
[warning] 163-163: Files should end with a single newline character
(MD047, single-trailing-newline)
🪛 Stylelint (17.6.0)
clients/web/packages/shared/tokens.css
[error] 1-1: Expected "url("./theme.css")" to be ""./theme.css"" (import-notation)
(import-notation)
clients/web/apps/chat/src/style.css
[error] 1-1: Expected "url("@corvus/shared/app-shell.css")" to be ""@corvus/shared/app-shell.css"" (import-notation)
(import-notation)
[error] 2-2: Expected "url("tailwindcss")" to be ""tailwindcss"" (import-notation)
(import-notation)
clients/web/apps/dashboard/src/style.css
[error] 1-1: Expected "url("@corvus/shared/app-shell.css")" to be ""@corvus/shared/app-shell.css"" (import-notation)
(import-notation)
[error] 2-2: Expected "url("tailwindcss")" to be ""tailwindcss"" (import-notation)
(import-notation)
clients/web/apps/docs/src/styles/custom.css
[error] 7-7: Expected "url("@corvus/shared/base.css")" to be ""@corvus/shared/base.css"" (import-notation)
(import-notation)
[error] 8-8: Expected "url("@corvus/shared/theme.css")" to be ""@corvus/shared/theme.css"" (import-notation)
(import-notation)
clients/web/packages/shared/app-shell.css
[error] 1-1: Expected "url("./theme.css")" to be ""./theme.css"" (import-notation)
(import-notation)
[error] 2-2: Expected "url("./base.css")" to be ""./base.css"" (import-notation)
(import-notation)
clients/web/apps/marketing/src/styles/global.css
[error] 1-1: Expected "url("@corvus/shared/theme.css")" to be ""@corvus/shared/theme.css"" (import-notation)
(import-notation)
[error] 2-2: Expected "url("@corvus/shared/base.css")" to be ""@corvus/shared/base.css"" (import-notation)
(import-notation)
🔇 Additional comments (15)
clients/web/apps/chat/src/style.css (1)
1-2: Same blocking@importnotation issue as already reported.Please apply the same fix here (
@import "...";string form) to satisfyimport-notation.clients/web/apps/docs/src/styles/custom.css (1)
7-8: Same blocking@importnotation issue as already reported.Use string imports here as well (
@import "...";) to match the configured stylelint rule.clients/web/apps/dashboard/src/style.css (1)
1-2: Same blocking@importnotation issue as already reported.Please switch these imports back to string notation to pass
import-notation.clients/web/packages/shared/app-shell.css (1)
1-2: Same blocking@importnotation issue as already reported.Apply the same string-form import fix on both lines.
clients/web/apps/marketing/src/styles/global.css (1)
1-2: Same blocking@importnotation issue as already reported.Please use string imports here too to keep lint passing.
clients/agent-runtime/src/search/tests.rs (2)
686-686: Good contract hardening for regex fallback behavior.The exact reason assertion makes fallback behavior explicit and protects the documented API surface.
Based on learnings: "Preserve CLI contract unless change is intentional and documented; prefer explicit errors over silent fallback for unsupported critical paths."
661-704: Include Rust validation results for this test file addition.Cargo commands (
cargo fmt --all -- --check,cargo clippy --all-targets -- -D warnings,cargo test) could not be executed in the verification environment due to timeout constraints. Please confirm that these checks pass locally before merging, as required by the coding guidelines forclients/agent-runtime/**/*.rs.clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/index.mdx (1)
21-21: No action needed—EN/ES parity confirmed.The Spanish tools index (
es/clients/agent-runtime/tools/index.mdx) already mirrors the English version at line 21, includingcode_searchwith correct localization. Supporting documentation (code-search.mdandcore.md) exists in both languages.clients/web/packages/shared/tokens.css (1)
1-1: No changes needed—code is compliant with stylelint configuration.The
@import url("./theme.css");notation is correct and matches the defaultimport-notation: "url"rule instylelint-config-standard. All CSS files in the project using this pattern are already compliant.> Likely an incorrect or invalid review comment.openspec/changes/archive/2026-04-05-code-search-benchmark-rollout/state.yaml (1)
1-12: State transition metadata looks consistent.
current_phase,completed,next, andupdatedform a coherent archive-ready state record.clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/index.mdx (1)
21-21: Good update to core tool taxonomy.Including
code_searchin the ES index aligns navigation with the documented core tool set.clients/agent-runtime/benches/agent_benchmarks.rs (1)
1-5: Benchmark scope clarification is clear and useful.This comment cleanly separates microbench intent from rollout evidence runs and points to the correct command.
clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/core.md (1)
13-25: Strong core reference entry forcode_search.The section is concise, correctly scoped for reference docs, and accurately calls out regex fallback labeling and rollout evidence location.
clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/core.md (1)
15-27: ES documentation parity forcode_searchlooks solid.The section preserves the same behavioral constraints and fallback semantics as the EN core reference.
openspec/changes/archive/2026-04-05-code-search-benchmark-rollout/proposal.md (1)
45-46:⚠️ Potential issue | 🟡 MinorPoint the proposal at the checked-in docs tree.
These rows still reference
docs/..., but the actual docs in this PR live underclients/web/apps/docs/src/content/docs/.... The archived proposal should use the real paths so the rollout artifacts stay traceable.As per coding guidelines,
**/*.{md,mdx}: Verify technical accuracy and that docs stay aligned with code changes.⛔ Skipped due to learnings
Learnt from: CR Repo: dallay/corvus PR: 0 File: clients/agent-runtime/AGENTS.md:0-0 Timestamp: 2026-02-17T12:31:17.076Z Learning: Applies to clients/agent-runtime/**/*.rs : Run `cargo fmt --all -- --check`, `cargo clippy --all-targets -- -D warnings`, and `cargo test` for code validation, or document which checks were skipped and why
| --- | ||
| title: code_search | ||
| summary: Rollout guidance, benchmark evidence, and current behavior for the native code_search tool. | ||
| owner: team-runtime | ||
| status: canonical | ||
| lastReviewed: 2026-04-05 | ||
| appliesTo: main | ||
| docType: guide | ||
| --- |
There was a problem hiding this comment.
Add the required description frontmatter.
Docs Quality is already failing because this page and its ES counterpart are missing description.
Suggested metadata fix
---
title: code_search
+description: Rollout guidance, benchmark evidence, and current behavior for the native code_search tool.
summary: Rollout guidance, benchmark evidence, and current behavior for the native code_search tool.
owner: team-runtime
status: canonical📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| --- | |
| title: code_search | |
| summary: Rollout guidance, benchmark evidence, and current behavior for the native code_search tool. | |
| owner: team-runtime | |
| status: canonical | |
| lastReviewed: 2026-04-05 | |
| appliesTo: main | |
| docType: guide | |
| --- | |
| --- | |
| title: code_search | |
| description: Rollout guidance, benchmark evidence, and current behavior for the native code_search tool. | |
| summary: Rollout guidance, benchmark evidence, and current behavior for the native code_search tool. | |
| owner: team-runtime | |
| status: canonical | |
| lastReviewed: 2026-04-05 | |
| appliesTo: main | |
| docType: guide | |
| --- |
🧰 Tools
🪛 GitHub Actions: Docs Quality
[error] 1-1: Documentation metadata validation failed: missing required field 'description'.
[error] 1-1: Documentation metadata validation failed: locale counterpart 'clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md' is missing required field 'description'.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md`
around lines 1 - 9, The page frontmatter for title: code_search is missing a
required description field; open the top YAML block for the document (the
frontmatter around title: code_search) and add a concise description:
"description: Short summary of the native code_search tool, rollout guidance,
benchmarks, and behavior." Also add the same description metadata to the Spanish
counterpart of this file so both locales include the required description
frontmatter.
|
|
||
| **PASS WITH WARNINGS** | ||
|
|
||
| The implementation matches the proposal/spec/design/tasks and preserves the required regex fallback semantics (`query_regex_not_supported` with no regex-aware narrowing). Formatting is now clean, targeted behavioral evidence still passes, and the remaining gap is limited to fresh repo-snapshot benchmark reproduction. No newline at end of file |
There was a problem hiding this comment.
Add a single trailing newline at end of file.
This will satisfy markdownlint MD047.
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)
[warning] 99-99: Files should end with a single newline character
(MD047, single-trailing-newline)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@openspec/changes/archive/2026-04-05-code-search-benchmark-rollout/verify-report.md`
at line 99, Append a single trailing newline to the end of the verify-report.md
file so the file ends with one blank line (to satisfy markdownlint rule MD047);
simply open verify-report.md and ensure the final byte is a newline character,
then save.
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (4)
clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md (2)
21-21:⚠️ Potential issue | 🟠 MajorScope
index_unavailableto index-eligible queries only.This sentence is still broad and can conflict with the regex rule (
query_regex_not_supportedfirst). Please mirror the scoped wording used in English soindex_unavailableapplies only when the query is otherwise index-eligible.As per coding guidelines,
**/*.{md,mdx}: Verify technical accuracy and that docs stay aligned with code changes. For user-facing docs, check EN/ES parity or explicitly note pending translation gaps.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md` at line 21, Update the Spanish sentence that currently states "Cuando no existe un índice compatible, el planner devuelve `index_unavailable` y la ejecución se etiqueta como `index_unavailable`" to mirror the English wording and scope `index_unavailable` only to queries that are otherwise index-eligible; specifically, reference the same condition ordering as the `query_regex_not_supported` rule so `index_unavailable` is only returned when the query could have used an index but none is available. Replace the broad claim with a scoped sentence that mentions "consultas elegibles para indexación" and keeps the identifiers `index_unavailable` and `query_regex_not_supported` intact so the doc aligns with the code behavior.
162-168:⚠️ Potential issue | 🟠 MajorNarrow the “SHOULD prefer native” regex recommendation.
This recommendation remains too broad: repo-snapshot
native_cold_buildregex rows are much slower than shell in the published table. Restrict this SHOULD guidance to no-index/warm-index regex paths, or explicitly exclude cold-build as an exception.As per coding guidelines,
**/*.{md,mdx}: Verify technical accuracy and that docs stay aligned with code changes. For user-facing docs, check EN/ES parity or explicitly note pending translation gaps.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md` around lines 162 - 168, The recommendation to “SHOULD prefer native `code_search` regex” is too broad; update the text to narrow it to only no-index or warm-index regex paths and explicitly exclude cold-build cases (mention `native_cold_build` as an exception), and clarify that regex fallback rows are labeled `query_regex_not_supported` (discovery + live verification) rather than an index-aware regex reduction; adjust the sentence that currently advises native use to read that native `code_search` is preferred for warm-index/no-index regex use but should not be used for cold-build scenarios, and add a short note ensuring EN/ES parity of this change.clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md (2)
160-168:⚠️ Potential issue | 🟠 MajorScope the regex recommendation to exclude cold-build mode.
The guidance "Use native
code_searchfor the measured regex cases" (line 162) and "measured regex fallback rows were materially faster" (line 168) is incorrect when cold-build is included. The repo snapshot data shows:
- Regex cold-build: 26974-27997ms (native) vs 244-248ms (shell) → shell is ~100× faster
- Regex no-index/warm: 28-36ms (native) vs 244-248ms (shell) → native is ~7× faster
The recommendation should explicitly state that native
code_searchfor regex is preferred only when the index is already built (warm) or unavailable (no-index), not for cold-build scenarios. As per coding guidelines,**/*.{md,mdx}: Verify technical accuracy and that docs stay aligned with code changes.🎯 Proposed scoping fix
### SHOULD prefer native `code_search` --Use native `code_search` for the measured regex cases and for fixture-scale searches where you want structured output plus verified parity. ++Use native `code_search` for regex searches when a warm index exists or no index is available (no-index and warm-index modes), and for fixture-scale searches where you want structured output plus verified parity. Why: - every published row passed canonical parity, - regex rows are correctly labeled as fallback (`query_regex_not_supported` → discovery + live verification), not as regex-aware indexed narrowing, -- - even in the large repo snapshot, measured regex fallback rows were materially faster than the shell baseline in this local debug run. ++ - in the large repo snapshot, measured regex no-index and warm-index rows were materially faster than the shell baseline; cold-build regex cases remain shell-favored due to index construction overhead.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md` around lines 160 - 168, Update the recommendation text that currently favors native `code_search` for "measured regex cases" to explicitly exclude cold-build scenarios: state that native `code_search` is preferred for regex when the index is warm or when no-index fallback/verification is required, but that for cold-build (cold index construction) the shell-based regex path is substantially faster; edit the section around the `code_search` recommendation and the sentence about "measured regex fallback rows were materially faster" to add this scoping and clarify the warm vs cold timing differences, referencing `code_search` and the regex fallback labeling (`query_regex_not_supported`) so the doc aligns with the reported cold-build vs warm/no-index metrics.
21-21: 🧹 Nitpick | 🔵 TrivialClarify that
index_unavailableapplies only to index-eligible queries.The current wording could imply that any query without an index gets
index_unavailable, but based on the code (plan_candidatesin snippet 2), this label is only returned for queries that pass theextract_required_trigramscheck. Regex queries returnquery_regex_not_supportedbefore index loading is attempted.📝 Suggested precision improvement
-- When no compatible index exists, the planner returns `index_unavailable` and execution is labeled `index_unavailable`. +- For queries eligible for indexed planning, when no compatible index exists or can be loaded, the planner returns `index_unavailable` and execution is labeled `index_unavailable`.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md` at line 21, The sentence incorrectly implies any query without an index is labeled index_unavailable; update the wording to state that index_unavailable is returned only for index-eligible queries (i.e., queries that pass extract_required_trigrams in plan_candidates), and note that regex queries are handled earlier and return query_regex_not_supported before index loading is attempted. Refer to plan_candidates, extract_required_trigrams, index_unavailable, and query_regex_not_supported when making the change.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md`:
- Line 78: Replace the user-identifying local filesystem path string "raíz del
workspace: `/Users/acosta/Dev/corvus`" with a sanitized placeholder such as
"raíz del workspace: `/path/to/repo`" (or a project-agnostic token) in the docs
content to remove the local username/path leak; search for the exact literal
string in the file (the line containing "raíz del workspace") and update it to
the placeholder, ensuring no other occurrences of `/Users/` remain in the
published documentation.
---
Duplicate comments:
In
`@clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md`:
- Around line 160-168: Update the recommendation text that currently favors
native `code_search` for "measured regex cases" to explicitly exclude cold-build
scenarios: state that native `code_search` is preferred for regex when the index
is warm or when no-index fallback/verification is required, but that for
cold-build (cold index construction) the shell-based regex path is substantially
faster; edit the section around the `code_search` recommendation and the
sentence about "measured regex fallback rows were materially faster" to add this
scoping and clarify the warm vs cold timing differences, referencing
`code_search` and the regex fallback labeling (`query_regex_not_supported`) so
the doc aligns with the reported cold-build vs warm/no-index metrics.
- Line 21: The sentence incorrectly implies any query without an index is
labeled index_unavailable; update the wording to state that index_unavailable is
returned only for index-eligible queries (i.e., queries that pass
extract_required_trigrams in plan_candidates), and note that regex queries are
handled earlier and return query_regex_not_supported before index loading is
attempted. Refer to plan_candidates, extract_required_trigrams,
index_unavailable, and query_regex_not_supported when making the change.
In
`@clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md`:
- Line 21: Update the Spanish sentence that currently states "Cuando no existe
un índice compatible, el planner devuelve `index_unavailable` y la ejecución se
etiqueta como `index_unavailable`" to mirror the English wording and scope
`index_unavailable` only to queries that are otherwise index-eligible;
specifically, reference the same condition ordering as the
`query_regex_not_supported` rule so `index_unavailable` is only returned when
the query could have used an index but none is available. Replace the broad
claim with a scoped sentence that mentions "consultas elegibles para indexación"
and keeps the identifiers `index_unavailable` and `query_regex_not_supported`
intact so the doc aligns with the code behavior.
- Around line 162-168: The recommendation to “SHOULD prefer native `code_search`
regex” is too broad; update the text to narrow it to only no-index or warm-index
regex paths and explicitly exclude cold-build cases (mention `native_cold_build`
as an exception), and clarify that regex fallback rows are labeled
`query_regex_not_supported` (discovery + live verification) rather than an
index-aware regex reduction; adjust the sentence that currently advises native
use to read that native `code_search` is preferred for warm-index/no-index regex
use but should not be used for cold-build scenarios, and add a short note
ensuring EN/ES parity of this change.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 52a50372-fa7d-4a30-b501-ba1b2a7c1ac7
📒 Files selected for processing (2)
clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.mdclients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: sonar
- GitHub Check: Cloudflare Pages
🧰 Additional context used
📓 Path-based instructions (2)
**/*.{md,mdx}
⚙️ CodeRabbit configuration file
**/*.{md,mdx}: Verify technical accuracy and that docs stay aligned with code changes.
For user-facing docs, check EN/ES parity or explicitly note pending translation gaps.
Files:
clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.mdclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md
**/*
⚙️ CodeRabbit configuration file
**/*: Security first, performance second.
Validate input boundaries, auth/authz implications, and secret management.
Look for behavioral regressions, missing tests, and contract breaks across modules.
Files:
clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.mdclients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md
🧠 Learnings (3)
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/src/main.rs : Preserve CLI contract unless change is intentional and documented; prefer explicit errors over silent fallback for unsupported critical paths
Applied to files:
clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md
📚 Learning: 2026-02-17T12:31:17.076Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: clients/agent-runtime/AGENTS.md:0-0
Timestamp: 2026-02-17T12:31:17.076Z
Learning: Applies to clients/agent-runtime/**/*.rs : Run `cargo fmt --all -- --check`, `cargo clippy --all-targets -- -D warnings`, and `cargo test` for code validation, or document which checks were skipped and why
Applied to files:
clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md
📚 Learning: 2026-02-17T07:28:38.934Z
Learnt from: CR
Repo: dallay/corvus PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-02-17T07:28:38.934Z
Learning: Applies to .agents/AGENTS.md : Maintain comprehensive agent metadata including name, description, purpose, and capabilities
Applied to files:
clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md
🪛 LanguageTool
clients/web/apps/docs/src/content/docs/es/clients/agent-runtime/tools/code-search.md
[grammar] ~14-~14: Corrige la minúscula.
Context: ...uide --- # code_search code_search es la herramienta nativa de búsqueda en el ...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~22-~22: Agrega un signo de puntuación.
Context: ...olos nunca son resultados autoritativos. ## Para qué sirve esta página Esta página es l...
(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~24-~24: Agrega un signo de puntuación.
Context: ... autoritativos. ## Para qué sirve esta página Esta página es la fuente de evidencia de...
(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~26-~26: Cambia la palabra o signo.
Context: ...nt-runtime/benches/agent_benchmarks.rs`. - Benches de Criterion: solo microbenchmarks de...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_OTHER)
[grammar] ~50-~50: Corrige la minúscula.
Context: ...### Modos nativos - native_no_index: elimina state/code-search/index.db antes de c...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~51-~51: Elimina la puntuación
Context: ...da corrida medida. - native_cold_build: elimina el índice, mide refresh_or_rebuild() ...
(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_PUNCTUATION)
[grammar] ~52-~52: Elimina la puntuación
Context: ... de code_search. - native_warm_index: construye o refresca una vez y luego mide búsqued...
(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_PUNCTUATION)
[grammar] ~68-~68: Corrige la minúscula.
Context: ...### Workspace fixture determinístico - tipo de workspace: fixture - generado por:...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~69-~69: Oración con errores
Context: ...stico - tipo de workspace: fixture - generado por: `clients/agent-runtime/examples/co...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~70-~70: Oración con errores
Context: ...les/code_search_rollout_benchmark.rs- cantidad de archivos:4` - fecha del benchmark:...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~71-~71: Oración con errores
Context: ...hmark.rs- cantidad de archivos:4- fecha del benchmark:2026-04-05T19:34:18.060...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~72-~72: Aquí puede haber un error.
Context: ...k: 2026-04-05T19:34:18.060248+00:00 - host: macOS / aarch64 / Apple M2 Max - perfil...
(QB_NEW_ES)
[grammar] ~73-~73: Oración con errores
Context: ... host: macOS / aarch64 / Apple M2 Max - perfil de Rust: debug #### Snapshot actual ...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~77-~77: Corrige la minúscula.
Context: ...ebug #### Snapshot actual del repo - tipo de workspace:repo_snapshot` - raíz de...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~78-~78: Oración con errores
Context: ... - tipo de workspace: repo_snapshot - raíz del workspace: `/Users/acosta/Dev/corvu...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~79-~79: Oración con errores
Context: ...workspace: /Users/acosta/Dev/corvus - commit SHA: 82fa4896 - cantidad de archivos:...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~80-~80: Oración con errores
Context: .../Dev/corvus- commit SHA:82fa489- cantidad de archivos:234763` - fecha del bench...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~81-~81: Oración con errores
Context: ...896- cantidad de archivos:234763- fecha del benchmark:2026-04-05T19:47:11.665...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~82-~82: Aquí puede haber un error.
Context: ...k: 2026-04-05T19:47:11.665525+00:00 - host: macOS / aarch64 / Apple M2 Max - perfil...
(QB_NEW_ES)
[grammar] ~83-~83: Oración con errores
Context: ... host: macOS / aarch64 / Apple M2 Max - perfil de Rust: debug ## Matriz de benchmar...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~162-~162: Agrega un signo de puntuación.
Context: ...ida estructurada con paridad verificada. Por qué: - todas las filas publicadas pasaron la pa...
(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~166-~166: Corrige la minúscula.
Context: ...da con paridad verificada. Por qué: - todas las filas publicadas pasaron la paridad...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~166-~166: Aquí puede haber un error.
Context: ...las filas publicadas pasaron la paridad canónica, - las filas regex están etiquetadas cor...
(QB_NEW_ES)
[grammar] ~167-~167: Elimina la palabra o signo.
Context: ...no como reducción regex-aware por índice, - incluso en el snapshot grande del repo, las fil...
(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_SPACE)
[grammar] ~170-~170: Aquí puede haber un error.
Context: ...local en debug. ### MAY prefer native code_search Usa code_search nativo para búsquedas ...
(QB_NEW_ES)
[grammar] ~174-~174: Corrige la minúscula.
Context: ... cumpla alguna de estas condiciones: - ya tienes un índice reusable y warm para e...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~174-~174: Aquí puede haber un error.
Context: ...ienes un índice reusable y warm para el workspace, - te importa más la salida estructurada...
(QB_NEW_ES)
[grammar] ~175-~175: Elimina la palabra o signo.
Context: ...ificados que la latencia cruda del shell, - el workspace es lo bastante pequeño para q...
(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_SPACE)
[grammar] ~180-~180: Agrega un signo de puntuación.
Context: ... no tienes un índice reusable listo. Por qué: - las filas cold-build del snapshot del re...
(QB_NEW_ES_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~184-~184: Corrige la minúscula.
Context: ... un índice reusable listo. Por qué: - las filas cold-build del snapshot del repo ...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~184-~184: Aquí puede haber un error.
Context: ... del workspace completo en esta corrida debug, - las filas literales warm-index del sn...
(QB_NEW_ES)
[grammar] ~185-~185: Elimina la palabra o signo.
Context: ...49 ms`) para los casos literales medidos, - este cambio no depreca la búsqueda por s...
(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_SPACE)
[grammar] ~191-~191: Corrige la minúscula.
Context: ...ada en v1. - query_regex_not_supported es una razón de fallback del planner, no un...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
[grammar] ~193-~193: Elimina la puntuación
Context: ... corrida local en perfil debug. Si se re-ejecuta en otro entorno, los números absolutos ...
(QB_NEW_ES_OTHER_ERROR_IDS_UNNECESSARY_PUNCTUATION)
[grammar] ~199-~199: Corrige la minúscula.
Context: ... la recomendación actual de rollout: - reducción de candidatos regex-aware por índice, -...
(QB_NEW_ES_OTHER_ERROR_IDS_REPLACEMENT_ORTHOGRAPHY_LOWERCASE)
clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md
[style] ~192-~192: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...orkspace, so scoped literal searches in very large repos can make cold-build evidence look...
(EN_WEAK_ADJECTIVE)
[uncategorized] ~203-~203: Did you mean the formatting language “Markdown” (= proper noun)?
Context: ...mark artifact export in addition to the markdown tables above. Those items are future o...
(MARKDOWN_NNP)
🔇 Additional comments (5)
clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.md (5)
1-10: Frontmatter is now complete.The
descriptionfield has been added, addressing the previous review concern. All required metadata fields are present.
54-62: Parity rules align with implementation.The documented canonical parity tuple
file + line + full line contentmatches the implementation ininsert_canonical_line(snippet 4), which validates against conflicting content on the same line.
98-157: Benchmark data is comprehensive and parity-verified.All measured cases show
parity: pass, providing strong evidence for correctness claims. The tables clearly separate execution modes and expose the cold-build overhead in the repo snapshot context.
188-205: Limitations section accurately sets v1 scope.The explicit call-out that
query_regex_not_supportedis a planner fallback (not an error) aligns with the code behavior and helps prevent misinterpretation. The future optimizations list provides clear scope boundaries for this rollout.
1-10: No action needed—Spanish translation is complete and aligned with the English version, including the updated description and regex recommendation sections.
|


This pull request introduces comprehensive documentation and rollout guidance for the native Rust
code_searchtool, clarifies its behavior and limitations, and updates references to it throughout the documentation. It also includes a minor fix to CSS import syntax in web client stylesheets.Documentation and Rollout Guidance:
New canonical rollout and benchmark guide for
code_search:clients/web/apps/docs/src/content/docs/clients/agent-runtime/tools/code-search.mdwith detailed rollout evidence, benchmark results, parity checks, and recommendations for when to use nativecode_searchversus shell/grep. This document establishes the current behavior, measured performance, and limitations of the tool, and is referenced as the canonical source for rollout decisions.core.md) to summarizecode_search's API, security, execution, and fallback behavior, and to link to the new rollout guide for detailed evidence and guidance.code_searchas a core tool alongsideshelland file access tools.Behavior and Implementation Notes:
query_regex_not_supported).Benchmarks and Microbenchmarking:
agent_benchmarks.rsclarifying the distinction between Criterion microbenchmarks and rollout evidence, and directs users to the new rollout benchmark runner for comprehensive comparisons.Web Client Style Fixes:
clients/web/apps/chat/src/style.cssandclients/web/apps/dashboard/src/style.cssto use@import url(...)for compatibility and correctness. [1] [2]Closes: #360