feat(memory): kick scoped nunchi ingest on distill local-sink completion - #989
Merged
Conversation
seoseo-ai
approved these changes
Aug 6, 2026
seoseo-ai
left a comment
Collaborator
There was a problem hiding this comment.
Approved after explicit operator authorization using the local seoseo-ai credential.
On audience-scoped Piri nodes the nunchi lane (primary working memory during the gate-3 transition) only ingested via the 10-minute cron dispatcher, so a session started right after the previous one closed was injected with pre-close memory. The distill local-sink worker now fires one detached, body-free scoped piri-feed run for the job's own route once the sink+index land: the closed session reaches the scope DB/snapshot before the next session starts. The cron dispatcher remains the owner of record; feed-side flock + seen-file keep overlap idempotent, kick failures never affect job state, and an absent/unsafe feed path skips silently.
jinon86
force-pushed
the
feat/nunchi-session-close-kick
branch
from
August 6, 2026 10:16
f62e4d5 to
726c6cd
Compare
seoseo-ai
approved these changes
Aug 6, 2026
seoseo-ai
left a comment
Collaborator
There was a problem hiding this comment.
Approved after explicit operator authorization using the local seoseo-ai credential.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
문제
audience-scoped Piri 노드에서 세션이 끝나고 다음 세션이 시작될 때 예전 메모리가 주입되는 증상(오너 보고). 조사 결과 nunchi 레인(gate-3 동안 primary 작업 메모리)은 10분 cron dispatcher로만 ingest되므로, 직전 세션이 닫힌 직후 시작한 세션은 닫힌 세션 내용이 아직 어떤 저장소에도 없는 상태의 메모리를 주입받는다. (
load-memory.sh의 '지금 캐시 서빙 + 백그라운드에서 다음 세션용 갱신' 설계와 중첩되어 체감이 커짐)변경
distill local-sink worker가 sink+index 기록을 마친 시점에, 해당 job의 route(private/shared scope)에 대해 detached scoped
piri-feed.sh1회 실행을 kick한다. 방금 닫힌 세션이 다음 세션 시작 전에 scope DB/snapshot까지 도달.CCC_NUNCHI_SCOPED_CHILD=1, scope/kind, scope-localNUNCHI_HOME/DB/SNAPSHOT,PIR*_SESSIONS_DIR)로 재사용 — feed 측 flock + seen-file로 cron과의 중첩은 멱등bridge_memory_mode=audience-scoped이고agent_provider=piri일 때만 materializer siblingnunchi/piri-feed.sh로. 그 외 프로바이더/모드는 바이트 동일검증
test_distill_local_worker.py12/12, 관련 스위트 76/76, 전체 브리지 스위트 2345 passed / 5 skipped (기존 환경 의존test_skill_candidate_inventory.py제외 — pristine baseline과 동일)롤아웃
머지만으로는 동작 변화 없음 — 각 Piri 노드는
/opt/ccc-node갱신 + 브리지 재시작 시 적용. kick은 추가 LLM 비용 없음(cron이 어차피 하던 추출을 앞당길 뿐).