Skip to content

Refresh cache metadata after timestamp-only changes - #5

Merged
farhan-syah merged 3 commits into
mainfrom
repair/cache-refresh-metadata
Oct 4, 2026
Merged

farhan-syah merged 3 commits into
mainfrom
repair/cache-refresh-metadata

Conversation

@farhan-syah

Copy link
Copy Markdown
Member

Timestamp-only file changes repeatedly reject the unchanged candidate and block default indexing and queries. Publication now refreshes mtime hints transactionally while preserving content identity and immutable conflict checks.

Closes #4.

Changes

  • cli/src/cache/store/candidate_publication.rs: Refresh timestamp hints after immutable payload checks within the existing transaction.
  • cli/src/cache/store/tests/: Cover timestamp transitions, resolver enrichment, immutable conflicts, and rollback.
  • cli/src/refresh/publication_error.rs: Report bounded, escaped conflict identifiers and project-specific recovery instructions.
  • cli/tests/cache_metadata_refresh.rs: Cover automatic refresh and reuse through index, symbols, status, and --trust-mtime.

Checks

Local checks pass, including 1,387 tests. Windows/macOS execution remains for CI.

cargo fmt --all --check
cargo clippy --workspace --all-targets --all-features --offline -- -D warnings
cargo test --workspace --all-features --exclude code2graph-py --exclude code2graph-node --offline
cargo doc --no-deps --all-features --offline

@farhan-syah
farhan-syah merged commit 52c8518 into main Oct 4, 2026
9 checks passed
@farhan-syah
farhan-syah deleted the repair/cache-refresh-metadata branch October 4, 2026 08:10
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.

cli(cache): a metadata-only file change rejects the unchanged candidate — every later command for that project fails until the cache is cleared

1 participant