.DS_Store
_build/
target/
target
.jj/
dist/
*.vdb
.vibe/
.tornado/
.tmp/
tmp_probe/
lib/@vibe/compiler/.tmp_*
lib/@vibe/compiler/.vibe_test_wasm_*
lib/@vibe/compiler/.vibe_test_case_*
lib/@vibe/compiler/.vibe_test_batch_*
docs/language-tour/eval-results/
node_modules/
/.claude/*
# Track the web SessionStart hook + its settings, but keep local-only state
# (settings.local.json, command transcripts, etc.) ignored.
!/.claude/settings.json
!/.claude/hooks/
!/.claude/skills/
.flaker/
index.lock
*.cwasm
*.vbundle
.vibe_bench_stat_*
.vibe_bench_*
vibe_test_view_import.vibe
.wbtest_*
/compiler_bench.vibe
.tmp_bundle_debug/
trace.json
# transient probe/bench files created by scripts/verify_rc.sh / scripts/bench_rc.mjs
# (real test files never start with an underscore)
lib/@vibe/compiler/_*_test.vibe

# pkfire content-addressed cache (per-user)
.pkfire/

# Lean build artifacts (formal/ keeps its source and lake manifest tracked)
formal/.lake/

# bootstrap seed compiler wasm: fetched from its GitHub Release (bootstrap/seed.json's
# seed.tag) via scripts/ensure_seed.sh, not committed (#1000 part 2b)
bootstrap/seed/*.wasm

# Generated compiler artifacts: pure functions of (pinned seed, compiler source),
# produced by scripts/ensure_generated.sh. Same rationale as the seed wasm above.
#
# They were tracked until #1392-follow-up. Tracking them made every
# compiler-touching PR conflict on all five with no correct resolution except
# regeneration, cost ~30% of the packfile, and let a stale committed copy
# silently shadow a source edit. CI regenerated them anyway just to assert they
# matched. See scripts/ensure_generated.sh for the full argument.
lib/@vibe/compiler/compiler_sources_bundle.vibe
lib/@vibe/compiler/cli_adapter_bundle.vibe
lib/@vibe/compiler/selfbuild_runtime_entry_bundle.vibe
lib/@vibe/compiler/_cli_adapter_module_source.vibe
lib/@vibe/compiler/cache/codegen_fingerprint.vibe
lib/@vibe/compiler/.generated.stamp

# Compiler diagnostic sidecars. `emit_compile_diag` writes `<output_path>.diag`
# next to whatever a CLI mode was asked to produce, so any aborted run leaves
# one behind -- `a.wasm.diag` / `b.wasm.diag` sat in the repo root, tracked, for
# exactly that reason. The sidecar itself is on its way out (#1571): diagnostics
# belong on stdout.
#
# fixtures/warnings/*.diag are the opposite thing -- committed EXPECTED output,
# not run droppings.
*.diag
!fixtures/warnings/*.diag
