-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path.gitignore
More file actions
344 lines (294 loc) · 13.5 KB
/
Copy path.gitignore
File metadata and controls
344 lines (294 loc) · 13.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
# Build artifacts
.build/
podcast_scraper.egg-info/
.wily/
# setuptools/wheel output. `pip wheel .` and `python -m build` drop these at the repo
# root; they were untracked-but-not-ignored, so `git status` listed them and `git add -A`
# would have committed a build tree. The web bundles land in web/*/dist/, which the
# leading-slash rules below do not cover, hence the unanchored `dist/`.
build/
dist/
*.egg-info/
# LanceDB search index + topic_clusters.json built at CI step 0 for the synthetic
# validation corpus (GH #774). Binary, embedding-model-hash-keyed — would
# churn on every model bump and bloat the repo. Built via
# ``make build-validation-index``.
tests/fixtures/viewer-validation-corpus/search/
tests/fixtures/viewer-validation-corpus/**/search/
# v2.6.1 multi-run corpus fixture (#822) — auto-generated by the
# scripts/tools/build_multi_run_fixture.py script. 776K / 194 files;
# tracked by a conftest auto-generation hook rather than committed.
tests/fixtures/multi-run-corpus/
# lean-ctx local cache (per-user, not shared)
.lean-ctx/
# Virtual environment
# No trailing slash: the Makefile resolves $(PYTHON) from .venv/bin/python, so on a box that
# can only build the dev env (e.g. macOS x86_64, where .[ml] has no torch wheels) .venv is a
# SYMLINK to .venv-dev. "``.venv/``" matches a directory only, so the symlink showed up as an
# untracked file.
.venv
# Secondary env: ``make venv-dev-init`` (``.[dev]`` only, CI ``test-unit`` parity)
.venv-dev/
# Test outputs
.test_outputs/
# Real-episode eval datasets — real episodes are NEVER committed (only synthetic /
# fixture datasets like curated_5feeds_* stay tracked). Real-corpus manifests, silver
# references, and WER/bake-off datasets live here untracked. See feedback: never-commit-real-episodes.
data/eval/datasets/prod_*
# Real-episode-derived labelled sample (real insight text + corpus paths)
docs/wip/NER_FP_SAMPLE_LABELLED_2026-06-24.json
# Throwaway UI verification screenshots (chrome-devtools captures)
.wip-screenshots/
# Local prod backup verification (scripts/ops/verify_prod_backup_snapshot.sh)
.tmp_backup_verify/
# Stack test (Playwright under tests/stack-test/, ``make stack-test-*`` / CI): local logs, export, deps
.stack-test/
# Host copy of the ``corpus_data`` volume (``make stack-test-export``)
.stack-test-corpus/
.stack-test-corpus/
# Deprecated: full-run transcripts belong under ``.stack-test/`` (keep pattern so stray root files stay untracked).
.stack-test*.log
tests/stack-test/node_modules/
tests/stack-test/test-results/
tests/stack-test/playwright-report/
# RFC-064 profile capture runs (metrics + artifacts; frozen YAML goes under data/profiles/)
.tmp/
# CI metrics bundles downloaded for local validation (see scripts/dashboard/fetch_ci_metrics_artifacts.sh)
artifacts/ci-metrics-runs/
artifacts/nightly-metrics-runs/
# Unified dashboard data at repo root `metrics/` (generated in CI or fetched locally).
# Canonical public copies live on GitHub Pages; committing snapshots here causes noise and drift.
# Populate with `make fetch-ci-metrics`, `make fetch-nightly-metrics`, or workflow outputs — see docs/ci/METRICS.md.
metrics/*.json
metrics/*.jsonl
metrics/index.html
# Ad-hoc experiment batch log (machine-local; regenerate from your runs if needed)
docs/wip/_batch_experiment_log.txt
# Agent journal — persistent, machine-local working notes (plans/approaches/logs/
# decisions) that survive a session clear. Ignore all entries; keep only the README
# that documents the convention. See AGENTS.md → "Document location".
.journal/*
!.journal/README.md
# Local unified dashboard preview (CI bundle + nightly from metrics/)
artifacts/dashboard-preview/
output/
run_*/
# Streamlit run comparison app (path matches run_* above)
!tools/run_compare/
!tools/run_compare/**
# Committed consumer-app validation corpus (path uses the real run-dir layout,
# feeds/<show>/run_*/..., which the broad run_*/ rule above would otherwise ignore).
# This is a checked-in, deterministic fixture — see
# tests/fixtures/app-validation-corpus/README.md.
!tests/fixtures/app-validation-corpus/**
reports/
# Exclude dependency graphs (generated files)
reports/deps*.svg
reports/deps*.json
# Perf-trace per-release reports are tracked DOCS (eval-style history), not
# generated build reports — re-include them past the broad ``reports/`` rule.
!docs/guides/perf-traces/reports/
!docs/guides/perf-traces/reports/**
# Architecture diagram intermediates (only .svg outputs are committed)
docs/architecture/*.dot
docs/architecture/*.gv
# Benchmarks
benchmarks/
# Python cache
*.pyc
__pycache__/
# Crash dumps (false alarms from faulthandler during long-running operations)
crash_dump_*.log
# OS files
.DS_Store
# Coverage (pytest output at repo root only — the unscoped pattern was
# accidentally catching ``web/gi-kg-viewer/e2e/fixtures/production-shaped/
# corpus/coverage.json`` which is a Tier-2 mock-response fixture).
.coverage
.coverage.*
/coverage.json
# IDE
.vscode/
.vscode/settings.json
# GI/KG viewer (Vite / Node / Playwright, RFC-062) — was web/gi-kg-viewer/.gitignore; rules live here
web/gi-kg-viewer/node_modules/
# Catch-all: stray ``node_modules/`` at the repo root (or anywhere else) is always a
# transient artifact. The legitimate Node project lives under ``web/gi-kg-viewer/``; a
# root-level ``node_modules/`` typically appears when Vitest is invoked with CWD=repo
# root (e.g. ``npm exec --prefix web/gi-kg-viewer …``) — see VIEWER_TESTING_LOCAL.md.
# Always ``cd web/gi-kg-viewer`` before running ``vitest`` / ``playwright`` so caches
# land in the viewer's own ``node_modules/.vite/``.
node_modules/
web/gi-kg-viewer/dist/
web/gi-kg-viewer/dist-ssr/
web/gi-kg-viewer/logs/
web/gi-kg-viewer/**/*.log
web/gi-kg-viewer/npm-debug.log*
web/gi-kg-viewer/yarn-debug.log*
web/gi-kg-viewer/yarn-error.log*
web/gi-kg-viewer/pnpm-debug.log*
web/gi-kg-viewer/lerna-debug.log*
web/gi-kg-viewer/*.local
web/gi-kg-viewer/.idea/
web/gi-kg-viewer/*.suo
web/gi-kg-viewer/*.ntvs*
web/gi-kg-viewer/*.njsproj
web/gi-kg-viewer/*.sln
web/gi-kg-viewer/*.sw?
web/gi-kg-viewer/test-results/
web/gi-kg-viewer/playwright-report/
web/gi-kg-viewer/e2e-results.json
web/gi-kg-viewer/blob-report/
web/gi-kg-viewer/playwright/.cache/
# Playwright MCP (Cursor / IDE): local snapshots and logs, not repo artifacts
.playwright-mcp/
# AI rule-adherence log (local JSONL only; docs live in .metrics/)
.metrics/rule-adherence.jsonl
# Legacy path (if present locally)
.cursor/metrics/
# Cursor prompts (user-level templates live in ~/.cursor/prompts/)
.cursor/prompts/
# Example/test files (under config/)
config/examples/config.my.*
examples.txt
# Acceptance: track README + MAIN_ACCEPTANCE_CONFIG matrix + fragments; other *.yaml local
config/acceptance/*
!config/acceptance/README.md
!config/acceptance/MAIN_ACCEPTANCE_CONFIG.yaml
!config/acceptance/fragments/
!config/acceptance/fragments/*.yaml
# Local-only operator / feeds experiments (YAML etc.); tracked: dashboard import pointer
config/manual/*
!config/manual/README.md
!config/manual/grafana-dashboard-pipeline-execution.json
# CI-related local files under config/ci (optional stem lists, etc.); not committed
config/ci/*
!config/ci/README.md
# Stack-test seed lives at ``config/ci/stack-test-seed/`` and is consumed
# by ``make stack-test-seed`` to populate the ``corpus_data`` volume
# before the Playwright full UI flow runs.
!config/ci/stack-test-seed/
!config/ci/stack-test-seed/**
# Experiments (local / ad-hoc configs)
config/playground/
# Evaluation dataset (contains personal transcripts and reference summaries)
data/eval-old/
# Evaluation results
data/results-old/
# Evaluation materialized outputs (ignore contents, but track the README
# template — dataset-materialize requires it on disk to write per-dataset
# README files; without it CI fails before any model load runs).
data/eval/materialized/*
!data/eval/materialized/MATERIALIZED_DATASET_README_TEMPLATE.md
# Evaluation runs (ignore contents, but the marker note IS tracked).
# The marker warns future-you about the pre-fix scoreboards captured during
# the 2026-02-06 → 2026-06-22 silent-test-defaults regression window
# (see docs/wip/POST_RFC097_DEV_PROD_REMOVAL.md).
data/eval/runs/*
!data/eval/runs/_PRE_FIX_NOTE.md
# Shipped parity reports referenced by regression tests must be tracked, or the
# tests fail with "shipped parity report missing" in CI. Add new exceptions
# here whenever a `tests/e2e/test_*_parity_regression.py` grows a new fixture.
!data/eval/runs/v5_parity_2026-07-05.json
# Generated eval configs (scripts/eval/pipeline_validate.py auto-writes here)
data/eval/configs/_pipeline_validate/
# Generated search artifacts — regenerable, never commit the binaries.
# Two-tier LanceDB index (search/migration.py, #858) + trained query-router model
# (scripts/train_query_router.py, #860).
data/lance_index/
data/query_router.joblib
# Environment variables. Prefix globs (not exact names) so backup/variant droppings like
# `.env.obs.dev.pre-obs-sync.bak` are ALSO ignored — the exact-name patterns missed those and a
# real secrets backup got committed (2026-08-10).
.env
.env.local*
.env.autoresearch*
.env.*.local
# Dev observability secrets (GlitchTip DSN + Langfuse keys pointing at the homelab).
# Template committed as .env.obs.dev.example; the real keys stay local-only.
.env.obs.dev*
# Homelab obs-MCP deploy read tokens (template committed as .env.homelab.example).
.env.homelab*
# But NEVER ignore the committed *.example templates — they are legitimate and tracked.
!.env*.example
# Editor/backup droppings — never commit (they hid the leaked env backup above).
*.bak
*.orig
*.save
# Local ML model cache - ignore all contents except README.md
.cache/*
!.cache/README.md
# Local spaCy model wheels (see make download-spacy-wheels, docs/guides/DEPENDENCIES_GUIDE.md)
wheels/spacy/*.whl
# Autoresearch merged experiment configs (temp files next to score.py)
autoresearch/**/eval/autoresearch_cfg_*.yaml
# Autoresearch run logs
autoresearch/logs/
logs/
# Autoresearch local sweep ledgers — laptop iteration output; the weekly
# ledger (autoresearch-YYYY-WNN.json) stays tracked, but per-run local
# artifacts are transient (see ``make autoresearch-sweep-local``).
data/autoresearch_baselines/autoresearch-local-*.json
# pyinfra deploy debug log (transient per `make dgx-deploy` run)
infra/dgx/converge/pyinfra-debug.log
# Claude Code local settings (per-clone permission overrides)
.claude/settings.json
# Harness scheduled-task state — per-session, not project state.
.claude/scheduled_tasks.lock
# Worktree-specific files
WORKTREE.md
# Local dev-server runtime data (per-user files written while hand-testing the app)
.devdata/
# app_data_dir written at the repo root by ``make serve-for-validation``
# (SERVE_OUTPUT_DIR=repo root → <root>/.app): sessions, per-user files, audit +
# graph-analytics jsonl. Per-run runtime state, never committed.
/.app/
# Consumer Learning Player (Vue 3 / Vite / Playwright — RFC-099) — Node/UI artifacts.
# Mirrors the web/gi-kg-viewer/* patterns above. Was under app/* until slice 14.
web/learning-player/node_modules/
web/learning-player/dist/
web/learning-player/dist-ssr/
web/learning-player/logs/
web/learning-player/**/*.log
web/learning-player/*.local
web/learning-player/.idea/
web/learning-player/test-results/
web/learning-player/playwright-report/
web/learning-player/e2e-results.json
web/learning-player/blob-report/
web/learning-player/playwright/.cache/
web/learning-player/validation-results/
web/learning-player/e2e/.app-state/
# The viewer's equivalent. Since #1619 gave the viewer suite a real API, its webServer writes
# per-user state here exactly as the player's does — and unlike the player's, this path was not
# ignored, so a local run left runtime JSONL staged. It reached main in ef069c1e via `git add -A`.
web/gi-kg-viewer/e2e/.app-state/
# LCP trace raw JSON (large; keep only the .gz alongside)
docs/wip/graph-v3/traces/*.trace.json
# Search v3 eval — transient `make eval-search` output; keep only labelled
# baselines (S0-baseline.json, S<N>-<label>.json) checked in.
docs/wip/search-v3/eval/latest.json
.shots/
# MCP pivot-chain e2e: the app-validation fixture's two-tier search index is BUILT at
# test setup (offline, cached MiniLM) — not committed, to avoid a binary lance blob +
# lance-format-version coupling. See tests/integration/test_mcp_pivot_chain_e2e.py.
tests/fixtures/app-validation-corpus/v3/search/lance_index/
# Sidecar of the same index build (incremental-skip fingerprints). The rule above covered only the
# lance_index/ dir, so this artifact showed up as untracked the first time the index was built
# locally — see docs/wip/2026-08-13-e2e-on-intel-mac.md.
tests/fixtures/app-validation-corpus/v3/search/episode_fingerprints.json
tests/fixtures/app-validation-corpus/v3/search/metadata.json
# Upgrade migration lock (runtime, never committed)
tests/fixtures/**/upgrade_ledger.json.lock
scripts/eval/rolling_cache_*.json
# Disposable corpus copy the viewer e2e stack serves from (#1619). The operator plane WRITES into
# whatever corpus it is given — `GET /api/operator-config` creates `viewer_operator.yaml`, the jobs
# API creates `.viewer/jobs.jsonl.lock` — so `e2e/run-local-stack.sh` copies the fixture here and
# mounts the copy, leaving the tracked corpus (force-included at line 82) pristine. Re-seeded on
# every run; safe to delete.
web/gi-kg-viewer/.e2e-corpus/
# pytest tmpdirs that leak into the repo: the archive e2e tests pass an ABSOLUTE
# pytest tmp_path as an rclone base_path, and RcloneStorageBackend strips the leading
# slash (correct for a real remote, wrong for a local one), so cold-store objects land
# under the CWD. Ignored in both places because it also entered the docker build context.
private/