Skip to content

fix(search): '-' 로 시작하는 검색어를 표현할 방법이 없다 — -- 구분자 추가 - #3748

Closed
kevin9327 wants to merge 1 commit into
edwardkim:develfrom
kevin9327:pr/mcp-search-dash-query
Closed

kevin9327 wants to merge 1 commit into
edwardkim:develfrom
kevin9327:pr/mcp-search-dash-query

Conversation

@kevin9327

@kevin9327 kevin9327 commented Aug 1, 2026 •

Copy link
Copy Markdown
Contributor

Issue: #3608

devel 재기준 정리 — 중복분을 걷어냈습니다

이 PR 은 원래 search 에 -- 구분자를 추가하는 내용이었습니다. 그 사이 #3742 통합 머지로 구분자 자체는 이미 devel 에 들어갔습니다 (main.rs 의 end_of_options, 7723행~). MCP hwp_search 배선도 이미 ["search", "{path}", "--json", "--", "{query}"] 입니다. 충돌이 난 이유입니다.

중복분을 전부 걷어내고, devel 에 아직 없는 것만 남겼습니다.

남은 결함 — exit 2 인데 고칠 방법을 안 알려준다

devel 현재 동작:

$ rhwp search 문서.hwp "-회계" --json
알 수 없는 옵션: -회계
$ echo $?
2

종료 코드 계약상 exit 2 는 "인자를 고쳐 다시 부르라" 는 뜻인데, 고치는 방법(--)이 어디에도 드러나 있지 않습니다. 에이전트는 고칠 수 있는 오류 앞에서 고치는 법을 모른 채 멈춥니다.

옵션 오타는 계속 거부합니다 — 삼키면 오타가 검색어가 되어 조용히 0건이 되기 때문입니다. 거부는 유지하되 빠져나갈 길만 한 줄 덧붙입니다.

$ rhwp search 문서.hwp "-회계" --json
알 수 없는 옵션: -회계
힌트: 검색어가 '-' 로 시작한다면 `--` 뒤에 두세요 — rhwp search <파일> --json -- <검색어>

문서

devel 은 구현만 들어가고 문서화가 안 된 상태였습니다. mydocs/manual/cli_commands.md 의 시그니처를 search <파일> [--json] [--ignore-case] [--limit N] [--] <검색어> 로 고치고 사용법을 적었습니다.

테스트

tests/search_dash_query_contract.rs — 표면 동작만 검증하는 계약 테스트입니다.

  • 구분자 없이 -회계 는 여전히 exit 2 이고, stderr 가 -- 를 안내한다
  • -- 뒤의 -회계 와 -i 가 검색어로 그대로 엔진에 닿는다
  • -- 가 평범한 검색 결과를 바꾸지 않는다
  • MCP hwp_search 배선이 {query} 앞에서 옵션 파싱을 닫는다

batch search --query 와 세션 hwp_doc_search 는 위치 인자가 아니라 원래부터 영향이 없습니다.

검증

작업 PC 의 MSVC 링커(dbghelp.lib)가 손상되어 있고 GNU 툴체인에는 dlltool 이 없어 로컬 cargo test 가 돌지 않습니다. rustfmt 로 변경 파일 포맷은 확인했고, 저장소 기준 검증은 CI 에 맡깁니다.

@kevin9327
kevin9327 force-pushed the pr/mcp-search-dash-query branch from edc28c9 to 97d9f09 Compare August 1, 2026 23:42
devel 재기준 정리. `--` 구분자 자체는 edwardkim#3742 통합 머지로 이미 들어가 있어
(main.rs 의 end_of_options) 중복분을 걷어내고, 아직 없는 부분만 남긴다.

남은 결함: 검색어가 '-' 로 시작해 옵션으로 파싱되면 "알 수 없는 옵션: -회계"
로 exit 2 가 나는데, 이 메시지가 `--` 를 알려주지 않는다. 종료 코드 계약상
exit 2 는 "인자를 고쳐 다시 부르라" 는 뜻인데, 고치는 방법이 어디에도
드러나 있지 않아 에이전트가 멈춘다.

옵션 오타는 계속 거부한다 — 삼키면 오타가 검색어가 되어 조용히 0건이 된다.
거부는 유지하되 힌트 한 줄을 덧붙인다.

    알 수 없는 옵션: -회계
    힌트: 검색어가 '-' 로 시작한다면 `--` 뒤에 두세요 —
    rhwp search <파일> --json -- <검색어>

문서(mydocs/manual/cli_commands.md)도 시그니처를
`search <파일> [--json] [--ignore-case] [--limit N] [--] <검색어>` 로 고치고
사용법을 적는다 — devel 은 구현만 들어가 있고 문서화가 안 된 상태였다.

회귀 테스트: tests/search_dash_query_contract.rs
- 구분자 없이 '-회계' 는 여전히 exit 2 이고, stderr 가 `--` 를 안내한다
- `--` 뒤의 '-회계' 와 '-i' 가 검색어로 그대로 엔진에 닿는다
- `--` 가 평범한 검색 결과를 바꾸지 않는다
- MCP hwp_search 배선이 {query} 앞에서 옵션 파싱을 닫는다

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@edwardkim edwardkim added the enhancement New feature or request label Aug 2, 2026
@edwardkim edwardkim added this to the v1.0.0 milestone Aug 2, 2026
@jangster77
jangster77 self-requested a review August 2, 2026 10:48
@jangster77

Copy link
Copy Markdown
Collaborator

통합 검토 PR #3801이 devel에 merge되었습니다.

이 PR의 contributor 기능 commit은 cherry-pick -x로 통합했으며, 누적 과정에서 확인된 binding
계약과 회귀 테스트 보정도 같은 통합 PR에 포함했습니다. 원 source branch는 수정하거나 삭제하지
않았습니다.

원 PR별 검토 기록과 적용 SHA는
mydocs/pr/archives/pr_3747_3779_kevin_review_impl.md 및 해당 pr_<번호>_review.md에 남겼습니다.
기여해 주셔서 감사합니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants