Skip to content

feat(ingest): 벡터 임베딩 진행률 로그 추가 - #9

Merged
hang-in merged 1 commit into
hang-in:mainfrom
yeonsh:ingest-embed-progress
Apr 11, 2026
Merged

feat(ingest): 벡터 임베딩 진행률 로그 추가#9
hang-in merged 1 commit into
hang-in:mainfrom
yeonsh:ingest-embed-progress

Conversation

@yeonsh

@yeonsh yeonsh commented Apr 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • ingest_sessions 벡터 임베딩 루프에 [i/total] <session_id> (N turns) 진행 로그 추가
  • 대용량 배치(예: 455개 세션)에서 마지막 임베딩 단계가 멈춘 것처럼 보이던 체감 문제 해결

Background

secall ingest --auto가 수백 개 세션을 긁어오면 BM25/vault 인덱싱은 빠르게 끝나지만, 이후 순차 HNSW insert 단계가 수십 분 걸릴 수 있음. 기존에는 시작 시 Embedding N session(s)... 한 줄만 찍고 침묵하여, 프로세스 행인지 진행 중인지 sample 떠서 확인해야 했음.

Test plan

  • cargo check -p secall 통과
  • 수 개 세션으로 secall ingest 실행 시 진행 로그가 세션마다 stderr에 출력되는지 확인

@hang-in hang-in left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드 변경 — 승인 ✅

ingest.rs의 진행률 로그 추가는 정확하고 깔끔합니다. 병합 준비됐습니다.


필수 수정 2건

🚨 1. desktop_conversation/ 제거 필수

이 PR에 다음 파일들이 포함되어 있습니다:

  • desktop_conversation/claude/exported/conversations.json
  • desktop_conversation/claude/exported/memories.json
  • desktop_conversation/claude/exported/projects.json
  • desktop_conversation/claude/exported/users.json
  • desktop_conversation/chatGPT/*.zip
  • desktop_conversation/claude/data-*.zip

이 중 conversations.json은 GitHub Secret Scanning에서 Google API 키가 감지된 바로 그 파일입니다. 브랜치에서 완전히 제거해야 합니다.

git filter-repo --path desktop_conversation/ --invert-paths
git push --force

또는 .gitignore에 추가 후 git rm -r --cached desktop_conversation/로 처리하세요.

2. README.ja.md / README.zh.md / docs/plans/ 처리

불필요한 파일이 포함된 것인지 의도한 변경인지 확인해 주세요. 이 PR의 범위(ingest 진행률 로그)와 무관해 보입니다.


ingest.rs 단독으로 다시 PR 올려주시면 즉시 승인하겠습니다.

@hang-in hang-in left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

리뷰 결과

진행률 로그 추가 자체는 실제 UX 문제를 깔끔하게 해결한 좋은 변경입니다. 수백 개 세션 ingest 시 프로세스가 멈춘 것처럼 보이던 문제를 최소한의 코드로 해결했습니다. 감사합니다.

다만 merge 전에 정리가 필요한 항목이 있습니다.


필수 수정 1 — desktop_conversation/ 디렉토리 제거

PR에 아래 파일들이 포함되어 있습니다:

desktop_conversation/claude/exported/conversations.json
desktop_conversation/claude/exported/memories.json
desktop_conversation/claude/exported/projects.json
desktop_conversation/claude/exported/users.json
desktop_conversation/chatGPT/...zip
desktop_conversation/claude/data-...zip

이 디렉토리에 Google API 키가 포함된 파일이 있어 GitHub Secret Scanning에서 감지됐고, main 브랜치에서는 이미 git 히스토리까지 제거한 상태입니다. 이 PR이 merge되면 해당 파일들이 다시 들어오게 됩니다.

브랜치에서 제거해 주세요:

git rm -r desktop_conversation/
git commit -m "remove: desktop_conversation/ (contains sensitive data)"
git push

필수 수정 2 — README 및 docs/plans 파일 제외

README.md, README.ja.md, README.zh.md, docs/plans/secall-p17-*.md 파일이 PR에 포함되어 있습니다.

  • README 3개: main 브랜치에서 최근 대규모 수정이 있었습니다. 현재 PR의 버전으로 merge되면 변경 내용이 덮어써집니다.
  • docs/plans 파일: 이 PR의 목적(진행률 로그)과 무관한 파일입니다.

main 기준으로 rebase 후 해당 파일들의 충돌을 해결하거나, 이 PR에서 제외해 주시면 됩니다:

git rebase origin/main
# 충돌 시 README는 origin/main 버전 유지
git push --force-with-lease

핵심 변경(crates/secall/src/commands/ingest.rs)은 그대로 유효합니다. 위 두 가지만 정리되면 바로 merge 가능합니다.

벡터 임베딩 루프에서 [i/total] <session_id> (N turns) 형식으로
진행 상황을 stderr에 출력한다. 455개처럼 큰 배치에서 멈춘 것처럼
보이던 체감 문제를 해결한다.
@yeonsh
yeonsh force-pushed the ingest-embed-progress branch from 867b83e to 8d666fa Compare April 11, 2026 08:58
@yeonsh

yeonsh commented Apr 11, 2026

Copy link
Copy Markdown
Contributor Author

수정했습니다.

@hang-in hang-in left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

모든 수정 사항 반영됐습니다. ingest.rs 변경만 남아 깔끔합니다. 감사합니다.

@hang-in
hang-in merged commit c3811ec into hang-in:main Apr 11, 2026
hang-in added a commit that referenced this pull request Jul 6, 2026
파싱 리뷰(23 confirmed) Stage 3 — MED/LOW 폴리시. 8-에이전트 병렬.

- #9/#20 codex: 주입 컨텍스트 skip + 파일명 trailing uuid 추출.
- #10 opencode: tool 파트 매핑 + tool-only 턴 보존.
- #11 gemini_web: 비텍스트 파트 lenient 파싱.
- #12/#21 gemini: startTime earliest fallback + 토큰 누적(saturating).
- #13/#22 chatgpt: code content_type text 읽기 + create_time earliest fallback.
- #17/#18 claude: user text 보존 + ANSI strip.
- display byte-slice 6파일: id[..8] → chars().take(8) (비ASCII panic 방지).
- 리뷰 반영: codex fast_dedup_key ↔ fallback_session_id 정합, gemini 토큰 saturating.

드롭(재설계): #14/#15 markdown parse (render-이스케이프가 기존 vault reindex 백워드호환 깨짐).
검증: cargo test 742 pass, clippy -Dwarnings clean. CI green.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants