Skip to content

perf(ticket-214): optimize directory pruning and combined regex pattern matching in file filter - #29

Merged
ifuri-validator-agent[bot] merged 2 commits into
mainfrom
ticket/214-optimize-file-filter-and-directory-pruning
Oct 13, 2026
Merged

ifuri-validator-agent[bot] merged 2 commits into
mainfrom
ticket/214-optimize-file-filter-and-directory-pruning

Conversation

@tom-sapletta-com

Copy link
Copy Markdown
Contributor

Summary

  • Optimize directory pruning in FastFileFilter by extracting directory names from wildcard patterns and checking should_skip_dir in O(1) time.
  • Add heavy directories (c2004, c2004-git-backup, workshop, managed_components, vendor, .subactor, .worktrees, .planfile) to _SKIP_DIR_NAMES.
  • Pass combined skip directories to native_walk_project_files in native Rust bridge so Rust Rayon file walking prunes heavy directories natively.
  • Compile wildcard exclude patterns into a single alternation regex _combined_regex_excludes instead of looping over patterns.
  • Bump version to 0.5.182 with test coverage.

tom-sapletta-com and others added 2 commits October 13, 2026 06:17
…rn matching in file filter

Co-authored-by: Koru Agent <agent@coru.dev>
Co-authored-by: Koru Agent <agent@coru.dev>

@ifuri-validator-agent ifuri-validator-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Validator approval after policy checks for exact head e43e0075c3ca5ef26575e3010d0e18d0c47aa0a9.

Ticket: ticket-214
Correlation ID: local-semcod-code2llm-pr-29-ticket-214
Model: gemini/gemini-3.8-flash
Advisory LLM review: LLM_UNAVAILABLE
Reason: No module named 'litellm'
This approval rests on the deterministic checks alone; no advisory opinion was recorded for this head.
Semantic review prerequisite: not_required; policy 676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7.

Actual PR impact radar

Exact range: 3efb4f575ff87690f10c69a6b8642e0025e9d8d9...e43e0075c3ca5ef26575e3010d0e18d0c47aa0a9
Change digest: 98bbaa1d48f160082da83393427942d489d8ad4e245c222f0e56b3d960272724
Score: 48/100 (M), estimated 52 min, split recommended: true
Affected services/components: repository-wide/unclassified

Machine-readable radar JSONL and SVG
{"actual_change":{"additions":88,"base_sha":"3efb4f575ff87690f10c69a6b8642e0025e9d8d9","binary_files":0,"categories":{"code":5,"configuration":1,"tests":1},"change_digest":"98bbaa1d48f160082da83393427942d489d8ad4e245c222f0e56b3d960272724","comparison":"3efb4f575ff87690f10c69a6b8642e0025e9d8d9...e43e0075c3ca5ef26575e3010d0e18d0c47aa0a9","deletions":11,"file_count":7,"files":["VERSION","code2llm/__init__.py","code2llm/core/analyzer.py","code2llm/core/file_filter.py","pyproject.toml","tests/test_edge_cases.py","uv.lock"],"head_sha":"e43e0075c3ca5ef26575e3010d0e18d0c47aa0a9","service_count":0,"services":[]},"assessment_mode":"observed-pr","axes":{"coupling":3,"delivery":2,"scope":3,"uncertainty":3,"validation":1},"complexity":"M","confidence":0.9,"diagnostics":["RADAR-ACCEPTANCE-MISSING","RADAR-BUDGET-EXCEEDED"],"estimate":{"budget_minutes":30,"minutes":52,"within_budget":false},"impact":{"components":["code2llm","repository-root","tests"],"files":["VERSION","code2llm/__init__.py","code2llm/core/analyzer.py","code2llm/core/file_filter.py","pyproject.toml","tests/test_edge_cases.py","uv.lock"],"public_interfaces":[],"runtime_dependencies":0},"schema":"subactor.ticket-radar/v1","score":48,"split":{"parts":[{"estimated_minutes":14,"name":"Implement code2llm","scope":["code2llm"]},{"estimated_minutes":14,"name":"Implement repository-root","scope":["repository-root"]},{"estimated_minutes":14,"name":"Implement tests","scope":["tests"]},{"estimated_minutes":15,"name":"Validate and project to trackers","scope":["tests","planfile","github/gitlab/jira projections"]}],"reason":"estimated_minutes_exceed_budget","recommended":true},"standards":[{"id":"wellmanifest/dsl","revision":"6c60fc4e0dd1f1bb74f46a7745e28019908d1203","version":"0.1.0-dev"},{"id":"wellmanifest/ticket-lifecycle","revision":"5bf581907a87b46a13a73e6c033d3abe4d9a306f","version":"0.1.0-dev"},{"id":"wellmanifest/git-lifecycle","revision":"7d77d4b7af57e69bc75c3a0290b3a4805c5c4438","version":"0.2.0-dev"},{"id":"wellmanifest/logs","revision":"48c284ef7a069055c0bcb6b900147ce5e65f8b43","version":"0.3.0"}],"ticket_ref":"ticket-214"}
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" viewBox="0 0 128 128" role="img"><title>ticket-214: perf(ticket-214): optimize directory pruning and combined regex pattern matching in file filter</title><rect width="128" height="128" rx="12" fill="#f8fafc"/><g stroke-width="1"><polygon points="64,55 72,61 69,71 59,71 56,61" fill="none" stroke="#d7dde5"/><polygon points="64,47 80,59 74,78 54,78 48,59" fill="none" stroke="#d7dde5"/><polygon points="64,38 89,56 79,85 49,85 39,56" fill="none" stroke="#d7dde5"/><polygon points="64,30 97,53 84,92 44,92 31,53" fill="none" stroke="#d7dde5"/><polygon points="64,21 105,51 89,99 39,99 23,51" fill="none" stroke="#d7dde5"/><line x1="64" y1="64" x2="64" y2="21" stroke="#aab4c0"/><line x1="64" y1="64" x2="105" y2="51" stroke="#aab4c0"/><line x1="64" y1="64" x2="89" y2="99" stroke="#aab4c0"/><line x1="64" y1="64" x2="39" y2="99" stroke="#aab4c0"/><line x1="64" y1="64" x2="23" y2="51" stroke="#aab4c0"/></g><polygon points="64,38 89,56 79,85 59,71 48,59" fill="#fb923c" fill-opacity="0.45" stroke="#c2410c" stroke-width="2"/><circle cx="64" cy="64" r="3" fill="#c2410c"/><g font-family="sans-serif" font-size="7" fill="#334155"><text x="64" y="11" text-anchor="middle">SCO</text><text x="114" y="48" text-anchor="middle">COU</text><text x="95" y="107" text-anchor="middle">UNC</text><text x="33" y="107" text-anchor="middle">VAL</text><text x="14" y="48" text-anchor="middle">DEL</text></g><text x="64" y="124" text-anchor="middle" font-family="sans-serif" font-size="8" fill="#0f172a">M · 52m</text></svg>
Merge will be attempted after this approval when explicitly authorized. ## Decision record (recomputable)
DECISION D-214-4497
TICKET ticket-214
HEAD_SHA e43e0075c3ca5ef26575e3010d0e18d0c47aa0a9
CORRELATION_ID local-semcod-code2llm-pr-29-ticket-214
ACTOR agent:ifuri-validator-agent[bot]
APPLIED_RULE P-CORE-015
INPUT author_login = "tom-sapletta-com"
INPUT observed_checks = ["freshness=PASS","test (3.10)=PASS","test (3.13)=PASS"]
INPUT required_checks = ["test (3.10)","test (3.13)"]
INPUT required_checks_source = "protected registry (env/request)"
INPUT reviewer_login = "ifuri-validator-agent[bot]"
INPUT semantic_review_assessment = {"schema":"subactor.validator/semantic-review-assessment/v1","subject":{"repository":"semcod/code2llm","pull_request":29,"head_sha":"e43e0075c3ca5ef26575e3010d0e18d0c47aa0a9","base_sha":"3efb4f575ff87690f10c69a6b8642e0025e9d8d9","diff_sha256":"4cf046e3d68250e0093e45197f6738e1b3e6466ca13f3558e9c1ed5d0c1e07c0"},"policy":{"policy_schema":"subactor.validator/semantic-review-policy/v1","policy_version":1,"policy_sha256":"676cb4516bbfed2a000e40b9b1b6e4a430ecc761ec546aeb53d721a1905cfdd7","required":false,"critical_paths":[],"observed_paths":["VERSION","code2llm/__init__.py","code2llm/core/analyzer.py","code2llm/core/file_filter.py","pyproject.toml","tests/test_edge_cases.py","uv.lock"]},"grounding":"full-diff-not-per-finding-proof","execution_authority":false,"status":"not_required","reason":null,"review_sha256":null,"unresolved":[]}
INPUT superseded_checks = []
INPUT ticket_radar_receipt = {"schema":"subactor.ticket-radar/v1","base_sha":"3efb4f575ff87690f10c69a6b8642e0025e9d8d9","head_sha":"e43e0075c3ca5ef26575e3010d0e18d0c47aa0a9","change_digest":"98bbaa1d48f160082da83393427942d489d8ad4e245c222f0e56b3d960272724","score":48,"complexity":"M","estimated_minutes":52,"split_recommended":true,"services":[],"authority":"ADVISORY","promotion":"FORBIDDEN"}
VERDICT APPROVE AUTHORITY DETERMINISTIC
REJECTED REQUEST_CHANGES BECAUSE NO_UNSAFE_CHANGE_REASON_FOUND
ADVISORY llm_verdict = "" MODEL "gemini/gemini-3.8-flash"
ASSERT VERDICT_AUTHORITY != "ADVISORY"

@ifuri-validator-agent
ifuri-validator-agent Bot merged commit 2d93b4f into main Oct 13, 2026
3 checks passed
@ifuri-validator-agent
ifuri-validator-agent Bot deleted the ticket/214-optimize-file-filter-and-directory-pruning branch October 13, 2026 04:21
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