docs(readme): document labeling batch limits, --missing-only, and html node limit (#3859)

- README: add a compact 'Labeling and rendering limits' section covering
  --batch-size vs context window, --missing-only, .graphify_labels.json.sig,
  export html --node-limit / GRAPHIFY_VIZ_NODE_LIMIT, and the Leiden->Louvain
  fallback.
- CLI help: state the ~16k default sizing for --batch-size and the 5000
  default for export html --node-limit.

Docs/help strings only; no behavior change.
This commit is contained in:
nothariharan committed 2026-10-23 21:49:23 +05:30
1 parent c588b72d93
commit 4bbb93789b
2 files changed
+12 -2

No files matched your search

+10
View File
@@ -369,6 +369,16 @@ See the [full command reference](#full-command-reference) below.
---
## Labeling and rendering limits
- **`--batch-size`**: 100 communities per labeling call by default, sized for a ~16k-token context (~150 tokens/community). Use `--batch-size 40` for an 8k window. Context overflow is not split-retried; failed batches keep hub-derived names.
- **`--missing-only`**: `label --missing-only` keeps existing labels and names only unnamed / `Community N` entries. Use `label` (full relabel) to refresh names after the community set changes.
- **`.graphify_labels.json.sig`**: records the community membership signature; labels survive a re-cluster only while it matches.
- **`export html`**: 5,000-node default; above it graphify renders an aggregated community view. Use `--node-limit N`. `GRAPHIFY_VIZ_NODE_LIMIT` / `.graphifyrc` `viz_node_limit=N` apply to `cluster-only`, `update`, `watch`, and hooks, not `export html`.
- **Leiden fallback**: without the `leiden` extra, clustering silently uses networkx Louvain. Switching later reshuffles every community, so plan a full relabel.
---
## Ignoring files
graphify honors `.gitignore` and supports `--exclude` patterns and a project `.graphifyignore`. Details: **[Configuration](https://docs.graphify.com/reference/configuration)**.
+2 -2
View File
@@ -911,7 +911,7 @@ def _run_cli() -> None:
print(" --backend=<name> backend to use for community naming (default: auto-detect)")
print(" --model=<name> model to use for community naming")
print(" --max-concurrency=N parallel community-labeling LLM calls (default 4; forced to 1 for ollama/claude-cli)")
print(" --batch-size=N communities per labeling LLM call (default 100)")
print(" --batch-size=N communities per labeling LLM call (default 100, sized for ~16k context; use 40 for 8k)")
print(" label <path> (re)name communities with the configured LLM backend, regenerate report")
print(" --missing-only keep existing labels and only name missing/placeholder communities")
print(" --backend=<name> backend to use (default: auto-detect from API keys)")
@@ -995,7 +995,7 @@ def _run_cli() -> None:
print(" global list list repos in the global graph")
print(" global path print path to the global graph file")
print(" benchmark [graph.json] measure token reduction vs naive full-corpus approach")
print(" export html emit interactive graph.html [--graph PATH] [--labels PATH] [--node-limit N] [--no-viz]")
print(" export html emit interactive graph.html [--graph PATH] [--labels PATH] [--node-limit N, default 5000] [--no-viz]")
print(" export callflow-html emit Mermaid-based architecture/call-flow HTML")
print(" [GRAPH|DIR] [--graph PATH] [--labels PATH] [--report PATH] [--sections PATH] [--output HTML]")
print(" [--lang auto|zh-CN|en] [--max-sections N] [--diagram-scale N]")