mirror of
https://github.com/garrytan/gbrain.git
synced 2026-07-28 14:59:47 +00:00
The content-sanity gate's audit logger (logContentSanityAssessment)
defaults, via audit-writer.ts::resolveAuditDir(), to writing
~/.gbrain/audit/content-sanity-YYYY-Www.jsonl on disk. A GBRAIN_AUDIT_DIR
env override exists, but nothing in the shared test bootstrap ever set
it, so any test that exercised an audit-emitting code path without
wrapping the call in its own withEnv() fell through to the operator's
real audit trail. test/import-file.test.ts's oversize-boundary fixture
('borderline-slug', content just under MAX_FILE_SIZE but over
DEFAULT_BYTES_BLOCK) fired a real soft_block event into the developer's
live ~/.gbrain/audit on every run — which doctor's
content_sanity_audit_recent check then reported as production signal.
Fix: add a bootstrap preload (test/helpers/audit-dir-preload.ts, wired
via bunfig.toml) that points GBRAIN_AUDIT_DIR at a fresh per-process
mkdtemp dir before any test file loads. Each run-unit-shard.sh shard is
its own bun process, so each shard gets its own scratch dir with no
cross-shard collision. This closes the leak for every audit-emitting
test, not just this fixture. It respects a developer-exported override
(only sets the var when unset), and files that manage their own
per-test GBRAIN_AUDIT_DIR via withEnv() are unaffected.
Also fix a latent isolation bug this surfaced: gbrain-home-isolation.test.ts
unconditionally deleted GBRAIN_AUDIT_DIR in a finally block instead of
restoring the prior value, which clobbered the bootstrap's scratch dir
for every test file that ran after it in the same shard process.
Adds test/audit/audit-dir-preload.test.ts to pin the behavior: it
reproduces the exact soft_block event shape and asserts it lands in the
scratch dir, never in ~/.gbrain/audit.
Reported by @paul-0320.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
22 lines
1.1 KiB
TOML
22 lines
1.1 KiB
TOML
[test]
|
||
# PGLite WASM cold start + initSchema() runs ~5–20s on loaded machines.
|
||
# Default 5s is too short for those tests' beforeAll hooks. 60s is the
|
||
# empirical ceiling we observed for the slowest cold-init paths.
|
||
#
|
||
# v0.26.4: scripts/run-unit-parallel.sh and scripts/run-unit-shard.sh
|
||
# also pass `--timeout=60000` explicitly so the ceiling is consistent
|
||
# whether tests are invoked through the wrapper or directly via bun test.
|
||
timeout = 60_000
|
||
|
||
# v0.37 fix wave: pin gateway defaults to legacy OpenAI/1536 BEFORE any
|
||
# test runs, so the 20+ test files with hardcoded 1536-d Float32Array
|
||
# fixtures still match the schema. v0.37's production default is ZE/1280;
|
||
# tests that want the new default call configureGateway() explicitly in
|
||
# their own beforeAll.
|
||
#
|
||
# #2823: redirect GBRAIN_AUDIT_DIR to a per-run scratch dir BEFORE any test
|
||
# runs, so audit-emitting code paths (content-sanity, shell-audit, etc.)
|
||
# can't leak fixture events into the operator's real ~/.gbrain/audit/. See
|
||
# test/helpers/audit-dir-preload.ts for the full rationale.
|
||
preload = ["./test/helpers/legacy-embedding-preload.ts", "./test/helpers/audit-dir-preload.ts"]
|