feat(ingest): 벡터 임베딩 진행률 로그 추가 - #9
Conversation
hang-in
left a comment
There was a problem hiding this comment.
코드 변경 — 승인 ✅
ingest.rs의 진행률 로그 추가는 정확하고 깔끔합니다. 병합 준비됐습니다.
필수 수정 2건
🚨 1. desktop_conversation/ 제거 필수
이 PR에 다음 파일들이 포함되어 있습니다:
desktop_conversation/claude/exported/conversations.jsondesktop_conversation/claude/exported/memories.jsondesktop_conversation/claude/exported/projects.jsondesktop_conversation/claude/exported/users.jsondesktop_conversation/chatGPT/*.zipdesktop_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
left a comment
There was a problem hiding this comment.
리뷰 결과
진행률 로그 추가 자체는 실제 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개처럼 큰 배치에서 멈춘 것처럼 보이던 체감 문제를 해결한다.
867b83e to
8d666fa
Compare
|
수정했습니다. |
hang-in
left a comment
There was a problem hiding this comment.
모든 수정 사항 반영됐습니다. ingest.rs 변경만 남아 깔끔합니다. 감사합니다.
파싱 리뷰(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.
Summary
ingest_sessions벡터 임베딩 루프에[i/total] <session_id> (N turns)진행 로그 추가Background
secall ingest --auto가 수백 개 세션을 긁어오면 BM25/vault 인덱싱은 빠르게 끝나지만, 이후 순차 HNSW insert 단계가 수십 분 걸릴 수 있음. 기존에는 시작 시Embedding N session(s)...한 줄만 찍고 침묵하여, 프로세스 행인지 진행 중인지sample떠서 확인해야 했음.Test plan
cargo check -p secall통과secall ingest실행 시 진행 로그가 세션마다 stderr에 출력되는지 확인