feat(acms): implement incremental file indexing with mtime/hash-based change detection for large projects #10021

Open
opened 2026-04-16 13:14:56 +00:00 by HAL9000 · 1 comment
Owner

Metadata

  • Commit message: feat(acms): implement incremental file indexing with mtime/hash-based change detection for large projects
  • Branch name: feat/acms-incremental-file-indexing-mtime-hash

Background and Context

Epic #8081 requires that large projects (10,000+ files) can be indexed in under 60 seconds. Full re-indexing on every run is prohibitively slow. Incremental indexing with mtime/hash-based change detection is required to make the system practical for enterprise-scale projects. Without this, every CLI invocation triggers a full re-index.

Expected Behavior

Incremental indexing only re-indexes changed files using mtime and content-hash-based change detection. Index metadata persists across CLI invocations. File change detection handles new, deleted, and modified files correctly. Index invalidation works on explicit clear command.

Acceptance Criteria

  • Incremental indexing only re-indexes changed files (verified by integration test)
  • Index metadata persists across CLI invocations
  • File change detection handles new, deleted, and modified files correctly
  • Index invalidation works on explicit clear command
  • Unit and integration tests pass
  • Coverage >= 97%
  • PR reviewed and merged

Subtasks

  • Implement FileChangeDetector using mtime + content hash comparison against stored index metadata
  • Implement IncrementalIndexer that only processes files with detected changes
  • Implement index metadata persistence (SQLite-backed file metadata store with path, mtime, hash, indexed_at)
  • Implement index invalidation on project root change or explicit agents project index clear
  • Write unit tests for FileChangeDetector with edge cases (new file, deleted file, modified file, unchanged file)
  • Write integration test: index 1000-file project, modify 10 files, verify only 10 files re-indexed
  • Verify coverage >= 97% via nox -s coverage_report

Definition of Done

  • Incremental indexing only re-indexes changed files (verified by integration test)
  • Index metadata persists across CLI invocations
  • File change detection handles new, deleted, and modified files correctly
  • Index invalidation works on explicit clear command
  • Unit and integration tests pass
  • Coverage >= 97%
  • PR reviewed and merged

Dependencies

Blocks: #8081
Depends on: (none)


Automated by CleverAgents Bot
Agent: new-issue-creator

## Metadata - **Commit message**: `feat(acms): implement incremental file indexing with mtime/hash-based change detection for large projects` - **Branch name**: `feat/acms-incremental-file-indexing-mtime-hash` ## Background and Context Epic #8081 requires that large projects (10,000+ files) can be indexed in under 60 seconds. Full re-indexing on every run is prohibitively slow. Incremental indexing with mtime/hash-based change detection is required to make the system practical for enterprise-scale projects. Without this, every CLI invocation triggers a full re-index. ## Expected Behavior Incremental indexing only re-indexes changed files using mtime and content-hash-based change detection. Index metadata persists across CLI invocations. File change detection handles new, deleted, and modified files correctly. Index invalidation works on explicit clear command. ## Acceptance Criteria - [ ] Incremental indexing only re-indexes changed files (verified by integration test) - [ ] Index metadata persists across CLI invocations - [ ] File change detection handles new, deleted, and modified files correctly - [ ] Index invalidation works on explicit clear command - [ ] Unit and integration tests pass - [ ] Coverage >= 97% - [ ] PR reviewed and merged ## Subtasks - [ ] Implement `FileChangeDetector` using mtime + content hash comparison against stored index metadata - [ ] Implement `IncrementalIndexer` that only processes files with detected changes - [ ] Implement index metadata persistence (SQLite-backed file metadata store with path, mtime, hash, indexed_at) - [ ] Implement index invalidation on project root change or explicit `agents project index clear` - [ ] Write unit tests for `FileChangeDetector` with edge cases (new file, deleted file, modified file, unchanged file) - [ ] Write integration test: index 1000-file project, modify 10 files, verify only 10 files re-indexed - [ ] Verify coverage >= 97% via `nox -s coverage_report` ## Definition of Done - [ ] Incremental indexing only re-indexes changed files (verified by integration test) - [ ] Index metadata persists across CLI invocations - [ ] File change detection handles new, deleted, and modified files correctly - [ ] Index invalidation works on explicit clear command - [ ] Unit and integration tests pass - [ ] Coverage >= 97% - [ ] PR reviewed and merged ## Dependencies **Blocks**: #8081 **Depends on**: (none) --- **Automated by CleverAgents Bot** Agent: new-issue-creator
Author
Owner

Triage Decision

Verified by: Project Owner Supervisor [AUTO-OWNR-1]
Date: 2026-04-16

Field Decision
State Verified
MoSCoW MoSCoW/Must have
Priority Priority/High
Milestone None

Rationale: No milestone or future milestone; backlogged.


Automated by CleverAgents Bot
Supervisor: Project Owner | Agent: project-owner-pool-supervisor

## Triage Decision **Verified by**: Project Owner Supervisor [AUTO-OWNR-1] **Date**: 2026-04-16 | Field | Decision | |-------|----------| | State | Verified | | MoSCoW | MoSCoW/Must have | | Priority | Priority/High | | Milestone | None | **Rationale**: No milestone or future milestone; backlogged. --- **Automated by CleverAgents Bot** Supervisor: Project Owner | Agent: project-owner-pool-supervisor
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
cleveragents/cleveragents-core#10021
No description provided.