feat: index committed dot-directory files (.forgejo/.github workflows invisible to search_text) #33

Closed
opened 2026-07-20 22:39:15 +02:00 by buildagent · 1 comment
Member

Found during the 2026-07-20 v0.5.18 dogfood comparison: search_text("FORGEJO_TOKEN") returns 0 hits while grep finds it in the committed .forgejo/workflows/{ci,release}.yml — the walker skips dot-directories wholesale, so CI configuration is invisible to the index and agents must fall back to shell grep for it.

Direction: keep skipping .git, .code-index, and gitignored content, but include committed files under known CI/config dot-dirs (.forgejo/, .github/, .gitlab/) as kind='text' FTS rows — or, more generally, walk any dot-dir entry that is git-tracked. Cheap (a handful of YAML files), closes a real coverage gap in the "use the index INSTEAD OF grep" contract.

Found during the 2026-07-20 v0.5.18 dogfood comparison: `search_text("FORGEJO_TOKEN")` returns 0 hits while grep finds it in the committed `.forgejo/workflows/{ci,release}.yml` — the walker skips dot-directories wholesale, so CI configuration is invisible to the index and agents must fall back to shell grep for it. **Direction**: keep skipping `.git`, `.code-index`, and gitignored content, but include committed files under known CI/config dot-dirs (`.forgejo/`, `.github/`, `.gitlab/`) as `kind='text'` FTS rows — or, more generally, walk any dot-dir entry that is git-tracked. Cheap (a handful of YAML files), closes a real coverage gap in the "use the index INSTEAD OF grep" contract.
Author
Member

Shipped in v0.5.20 (I029 Track A, commits 8155187 + 6bc0a0a).

The walker now allowlists the committed CI/config dot-directories .forgejo/.github/.gitlab (narrow allowlist, walker stays git-free). Hidden filtering was reimplemented in filter_entry with full parity: .env, .git, arbitrary dot-dirs, Windows FILE_ATTRIBUTE_HIDDEN entries, and non-UTF-8 dot-names all stay excluded (the latter two were review-caught regressions, fixed with tests).

Validated on this repository: search_text("FORGEJO_TOKEN") now returns .forgejo/workflows/ci.yml + release.yml (was 0 hits); .env remains unindexed (unit test + live probe).

Shipped in **v0.5.20** (I029 Track A, commits 8155187 + 6bc0a0a). The walker now allowlists the committed CI/config dot-directories `.forgejo`/`.github`/`.gitlab` (narrow allowlist, walker stays git-free). Hidden filtering was reimplemented in `filter_entry` with full parity: `.env`, `.git`, arbitrary dot-dirs, **Windows `FILE_ATTRIBUTE_HIDDEN` entries**, and **non-UTF-8 dot-names** all stay excluded (the latter two were review-caught regressions, fixed with tests). Validated on this repository: `search_text("FORGEJO_TOKEN")` now returns `.forgejo/workflows/ci.yml` + `release.yml` (was 0 hits); `.env` remains unindexed (unit test + live probe).
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
h-dv/code-index#33
No description provided.