vault: session notes 2026-07-14
This commit is contained in:
parent
bcec53adbb
commit
dc6f4faf0c
|
|
@ -8,6 +8,7 @@ tags:
|
||||||
- domain/llm
|
- domain/llm
|
||||||
source: cc-os
|
source: cc-os
|
||||||
date: 2026-06-08
|
date: 2026-06-08
|
||||||
|
last_updated: 2026-07-14
|
||||||
---
|
---
|
||||||
|
|
||||||
# Installation & First Run
|
# Installation & First Run
|
||||||
|
|
@ -139,6 +140,18 @@ graphify . --mode deep # more aggressive INFERRED edge extraction
|
||||||
|
|
||||||
> Add a `.graphifyignore` file (same syntax as `.gitignore`) at your repo root to exclude folders like `node_modules/`, `dist/`, or generated files from the graph. `[github]`
|
> Add a `.graphifyignore` file (same syntax as `.gitignore`) at your repo root to exclude folders like `node_modules/`, `dist/`, or generated files from the graph. `[github]`
|
||||||
|
|
||||||
|
### How graphify resolves ignore files (verified against installed source)
|
||||||
|
|
||||||
|
Read directly from the installed `graphifyy` 0.8.31 package, `graphify/detect.py` — `_load_graphifyignore()` (lines 682–717) and `_is_ignored()` (720+). These supersede the widely-repeated claim that **"graphify does not honor `.gitignore`"**, which is now stale. `[source]`
|
||||||
|
|
||||||
|
1. **It DOES fall back to `.gitignore`.** Per directory, graphify prefers `.graphifyignore`; if that file is absent it reads that directory's `.gitignore` instead (`detect.py:707–711`, added for upstream issue #945). A repo with a `.gitignore` and no `.graphifyignore` is therefore **not** unprotected. `[source]`
|
||||||
|
|
||||||
|
2. **The real trap is shadowing, not blindness.** The lookup is `if .graphifyignore not exists: use .gitignore` — an **either/or per directory, never a merge**. Adding a `.graphifyignore` to a directory makes graphify stop reading that directory's `.gitignore` entirely. So a short, partial `.graphifyignore` can *silently re-expose* everything `.gitignore` was keeping out (`node_modules/`, `dist/`, build caches) — the exact blow-up a `.graphifyignore` is usually added to prevent. **A `.graphifyignore` must be self-sufficient: it replaces `.gitignore`, it does not extend it.** `[source]`
|
||||||
|
|
||||||
|
3. **Only the ancestor chain is consulted.** It walks from the nearest VCS root *down to the scan root* — ancestors of where you point it, not a recursive descent. Running `graphify extract .` at a repo root reads **exactly one** ignore file (the root's). Nested per-subdirectory `.gitignore` files deeper in the tree are **never** honored — unlike git itself. `[source]`
|
||||||
|
|
||||||
|
4. **Dialect is true gitignore**, not fnmatch: last-match-wins, `!` negation, and gitignore's parent-exclusion rule (a `!` cannot re-include a file whose ancestor directory is already excluded) — `_parse_gitignore_line()` (645–666), `_is_ignored()` (720+). `[source]`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5. What you get and where it lands
|
## 5. What you get and where it lands
|
||||||
|
|
|
||||||
|
|
@ -100,3 +100,10 @@ tags: [scope/global, type/log]
|
||||||
**Reason:** prompt_input_exit
|
**Reason:** prompt_input_exit
|
||||||
**Vault notes touched:**
|
**Vault notes touched:**
|
||||||
(none)
|
(none)
|
||||||
|
|
||||||
|
## Session — 2026-07-14T18:17:30Z
|
||||||
|
|
||||||
|
**Project:** /home/jared/dev/ruby-gems/credvault
|
||||||
|
**Reason:** prompt_input_exit
|
||||||
|
**Vault notes touched:**
|
||||||
|
(none)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue