Skip to content

Reject incompatible FTS and literal search modes #4879

Description

@Widthdom

Summary

--fts --exact-substring is accepted and records both incompatible semantic flags as true, leaving clients unable to know which matching model actually ran.

Audit IDs: Q-17. Reproduced with locally built cdidx v1.40.3 at 404db09489c305f17d94f37026e00564d3ac527a.

Existing issue relationship

No exact existing issue was found.

Expected behavior and PR scope

FTS and literal/exact-substring modes are one mutually exclusive option group. Keep this to parser/normalized query-context validation.

Implementation guide for Codex 5.6 sol xhigh

  • Validate after aliases/defaults are normalized and before query execution.
  • Return a typed usage error that explains the two modes and safe alternatives.
  • Cover option ordering, other exact flags, count/output modes, JSON/human errors, and replay generation.
  • Ensure query context never reports mutually exclusive modes simultaneously.
  • Add focused regression/contract tests, run the full net8.0 and net9.0 suite, and add the required bilingual changelog.d/unreleased/ fragment.

Acceptance criteria

  • The conflicting invocation is rejected.
  • Each mode alone retains its current semantics.
  • Replay/help accurately describe the applied mode.

Metadata

Metadata

Assignees

No one assigned

    Labels

    .NETPull requests that update .NET codebugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions