Skip to content

내부 filesystem observation/invalidation (MCP fs/watch 없음) - #60

Merged
novelKR merged 3 commits into
mainfrom
cursor/p1-fs-watch
Sep 20, 2026
Merged

novelKR merged 3 commits into
mainfrom
cursor/p1-fs-watch

Conversation

@novelKR

@novelKR novelKR commented Sep 20, 2026

Copy link
Copy Markdown
Owner

Summary

  • Runner(InProcessRunner)가 workspace root별 recursive watcher를 두고, read/find/version/apply_patch 첫 호출에서 filesystem observation을 시작합니다. 이벤트는 epoch/seqCreate/Modify/Remove/Rename/ResyncRequired 무효화 힌트일 뿐이며 MCP fs/watch 도구가 아닙니다.
  • Mutation 전제는 그대로 expected_versions / VERSION_CONFLICT입니다. watch를 구독하지 않거나 이벤트를 버려도 외부 수정 후 apply_patch(expected=v1)는 conflict이고 디스크는 외부 수정본을 유지합니다.
  • Watch paths are workspace-relative invalidation names, not access grants. A symlink or special-file name may be invalidated without becoming readable or writable; normal PathSandbox checks remain authoritative for file access.
  • 이번 PR에 넣지 않음: STALE_READ, MCP 도구, UDS watch 이벤트, source 원인 분류, 이벤트 원장, lossless history, watch로 권한 결정.

Test plan

  • cargo test -p codespace-runner --test fs_watch — 외부 modify, create/remove/rename, coalesced write 후 현재 내용 read, overflow/LaggedResyncRequired, watcher 재시작 시 새 epoch, restart 실패 시 dead watcher 없음, 워크스페이스 밖 미방출, leaf symlink replacement가 이름을 invalidate하면서 readSYMLINK_REJECTED, discarded watch → VERSION_CONFLICT
  • cargo test -p codespace-server --test security conflict — 기존 version_conflict_and_context_mismatch_are_not_applied 유지 + discarded watch 불변식
  • root 및 crates/codex-runtime --locked check
  • cargo fmt, cargo check --offline --all-targets, cargo clippy --offline --all-targets -- -D warnings, ./scripts/check-no-model-deps.sh, python3 -B scripts/check_docs.py check

novelKR and others added 3 commits September 20, 2026 13:33
…ards.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@novelKR
novelKR marked this pull request as ready for review September 20, 2026 05:41
@novelKR
novelKR merged commit 999f2ca into main Sep 20, 2026
17 checks passed
@novelKR
novelKR deleted the cursor/p1-fs-watch branch September 20, 2026 05:50
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.

1 participant