refresh-plugins: exclude .cc-os runtime state from the cache staleness diff #622

Closed
opened 2026-09-22 17:50:54 +00:00 by jared · 1 comment
Owner

Context

bin/refresh-plugins verify_cache (lines ~95-104) runs diff -rq <cache> <source> --exclude='.git' --exclude='__pycache__' --exclude='.orphaned_at' and reports STALE on any output.

Observed

After the #557 worktree finish on 2026-09-22, refresh-plugins reported os-sdlc: STALE (differences remain). The only diff line was:

Only in plugins/os-sdlc/.cc-os/lsp/3e78cdd19064: daemon.sock
os-sdlc: STALE (differences remain)

This is a live lsp-probe daemon socket. claude plugin install cannot copy a live socket file. All plugin content matched.

Reproduce

# start an lsp-probe daemon under plugins/os-sdlc, then:
bin/refresh-plugins local-plugins

Expected

verify_cache excludes .cc-os (runtime state, not plugin content) or socket files, so a live daemon does not make the cache look stale.

Origin

  • Trigger: bin/refresh-plugins local-plugins after #557 worktree finish
  • Improvised this session: none (STALE report was informational only; did not block the finish)
  • Chain: STALE report ← live daemon.sock present under .cc-os ← verify_cache diffs .cc-os without excluding it ← DESIGN (verify_cache exclude list at bin/refresh-plugins ~95-104 omits .cc-os)
  • Root candidate: this ticket
  • Where: bin/refresh-plugins#verify_cache
  • Session: e8c75cf9-9b10-44bc-a4a2-7fc83305328b
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/e8c75cf9-9b10-44bc-a4a2-7fc83305328b.jsonl

Skeptic gate

VERDICT: CREATE — complete-process, need-to-exist, better-seam, root-vs-symptom, and speculative-hardening checks all pass; observed false positive with a reproduce recipe, root-caused to the exclude list, one-line fix scope.

## Context `bin/refresh-plugins` `verify_cache` (lines ~95-104) runs `diff -rq <cache> <source> --exclude='.git' --exclude='__pycache__' --exclude='.orphaned_at'` and reports STALE on any output. ## Observed After the #557 worktree finish on 2026-09-22, `refresh-plugins` reported `os-sdlc: STALE (differences remain)`. The only diff line was: ``` Only in plugins/os-sdlc/.cc-os/lsp/3e78cdd19064: daemon.sock ``` ``` os-sdlc: STALE (differences remain) ``` This is a live lsp-probe daemon socket. `claude plugin install` cannot copy a live socket file. All plugin content matched. ## Reproduce ``` # start an lsp-probe daemon under plugins/os-sdlc, then: bin/refresh-plugins local-plugins ``` ## Expected `verify_cache` excludes `.cc-os` (runtime state, not plugin content) or socket files, so a live daemon does not make the cache look stale. ## Origin - Trigger: `bin/refresh-plugins local-plugins` after #557 worktree finish - Improvised this session: none (STALE report was informational only; did not block the finish) - Chain: STALE report ← live daemon.sock present under .cc-os ← verify_cache diffs .cc-os without excluding it ← DESIGN (verify_cache exclude list at bin/refresh-plugins ~95-104 omits .cc-os) - Root candidate: this ticket - Where: bin/refresh-plugins#verify_cache - Session: e8c75cf9-9b10-44bc-a4a2-7fc83305328b - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os/e8c75cf9-9b10-44bc-a4a2-7fc83305328b.jsonl ## Skeptic gate VERDICT: CREATE — complete-process, need-to-exist, better-seam, root-vs-symptom, and speculative-hardening checks all pass; observed false positive with a reproduce recipe, root-caused to the exclude list, one-line fix scope.
Author
Owner

Resolution

Done: Added --exclude='.cc-os' to the diff in bin/refresh-plugins verify_cache.

Evidence: Reproduced with a live UNIX socket at plugins/os-sdlc/.cc-os/lsp/test622/daemon.sock: os-sdlc reported STALE before the change and REFRESHED after. Committed on main 87d5ed3f.

Follow-ups: none

## Resolution **Done:** Added --exclude='.cc-os' to the diff in bin/refresh-plugins verify_cache. **Evidence:** Reproduced with a live UNIX socket at plugins/os-sdlc/.cc-os/lsp/test622/daemon.sock: os-sdlc reported STALE before the change and REFRESHED after. Committed on main 87d5ed3f. **Follow-ups:** none
jared closed this issue 2026-09-22 18:16:30 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#622
No description provided.