Purpose
`tests/integration/test_main_lifespan.py::test_empty_token_refuses_start` hardcodes `cwd="/home/novelia/Documents/lamb/lamb-kb-server"` when spawning the guard-check subprocess. That path is one developer's local Linux checkout — it does not exist on any other machine (macOS, CI, other contributors), so the test always fails outside that one environment.
Discovered while running the `lamb-kb-server/` integration suite on macOS: the subprocess silently fails to start because its CWD is missing, the imported `main` never runs, returncode is 1 for the wrong reason, and the assertion that the log mentions the token requirement fails because there is no log.
Acceptance criteria
- The test passes regardless of where the repository is checked out (macOS, Linux, CI).
- The `cwd` is derived from `file` (or another portable resolution), not a literal absolute path.
- No other tests in `lamb-kb-server/` regress.
Author: @NoveliaYuki
Purpose
`tests/integration/test_main_lifespan.py::test_empty_token_refuses_start` hardcodes `cwd="/home/novelia/Documents/lamb/lamb-kb-server"` when spawning the guard-check subprocess. That path is one developer's local Linux checkout — it does not exist on any other machine (macOS, CI, other contributors), so the test always fails outside that one environment.
Discovered while running the `lamb-kb-server/` integration suite on macOS: the subprocess silently fails to start because its CWD is missing, the imported `main` never runs, returncode is 1 for the wrong reason, and the assertion that the log mentions the token requirement fails because there is no log.
Acceptance criteria
Author: @NoveliaYuki