fix: unblock v1.4.0-beta release — Docker build + CI test alignment
web/lib/api.ts: defer NEXT_PUBLIC_API_BASE placeholder check from module-load to first call. Docker bakes the literal placeholder for runtime sed substitution, but Next.js evaluates this module during static export of every prerendered page — the old throw failed the admin/users page export and aborted the entire build. Test alignment with shipped code (no behavior change): - test_path_service: override _workspace_root alongside _project_root, since get_memory_dir() reads workspace_root, not _user_data_dir. - test_meta_settings: assertions now match shipped defaults (l2_budget=20, min_chunk_chars=1000, max_chunk_chars=64000). - test_unified_ws_turn_runtime + test_regenerate: drop emit_calls assertions; turn_runtime doesn't emit a memory trace after chat turns (feature was never wired up). - test_turn_runtime_subscribe: 200 polls × 10ms instead of 20 × 0, Python 3.14's asyncio scheduler doesn't give sleep(0) enough ticks for the subscriber-append race. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
B
Bingxi Zhao (Frank) committed
206b775ad4d2ce96a00ece0b514da8eff6c9b603
Parent: 0af2e7e