fix(nunchi): per-scope collection status in audience-scoped mode (#985) - #986
Merged
Conversation
install-nunchi.sh status read only the node-global
mempalace-refresh.status.json for its collection row, which goes stale
as soon as the audience dispatcher owns collection: scoped refresh
writes one status file per scope under
<audience-root>/<scope>/nunchi/ and never touches the global file.
When scoped mode is active (explicit env or detected from the managed
cron, same precedence as the existing audience_scoped row) the
collection row now walks the canonical opaque children with the same
boundary rules as the dispatcher (owner-only dirs, symlink rejection,
private-[0-9a-f]{32}/shared names, 64 scope cap) and prints a
worst-state-first per-scope aggregate. Scope labels stay body-free:
"shared" in full, private scopes truncated to private-a9d7… shape.
Non-scoped installs keep reading the global file unchanged.
Co-Authored-By: Kimi K3 <noreply@moonshot.cn>
jinon86
approved these changes
Aug 6, 2026
jinon86
left a comment
Contributor
There was a problem hiding this comment.
Approved after explicit operator authorization using the Seoseo-held jinon86 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.
What
install-nunchi.shstatus의collection:행이 audience-scoped 모드에서 node-globalmempalace-refresh.status.json만 읽어 전환 이후 stale해지는 결함 수정 (#985).audience_scoped:행과 동일 precedence)이면 audience root의 canonical child들을 순회해 스코프별 status를 집계mempalace-refresh.shdispatcher walk와 동일:shared/private-[0-9a-f]{32}이름, owner-only dir, symlink 배제, 64 scope cap (CCC_NUNCHI_MAX_SCOPES_PER_RUN)finished_at, body-free (private 스코프는private-a9d7…형태로 절단, 최대 8개 표기 +(+N more))Evidence
scripts/install-nunchi.test.sh: PASS=52 (main 대비 신규 4건 — scoped 집계/비정규 이름 배제/worst-first/global 불변), FAIL=2는 main에서도 동일한 환경성 기존 실패(codex materializer 계열, 본 변경과 무관)Closes #985