Verified by grepping every call site rather than only the three named: pipeline-executor.ts:499 and :591 and deliver.ts:37 all pass getOwnerHomeDir(email) now, and no caller anywhere passes an identity where a path is expected. Gates unchanged, 97 tests, 259 assertions. The "@param home — NOT an email" comment is the right residue: the compiler cannot distinguish the two strings and never will, so the warning has to live where a fourth caller would read it. Closes everything reviewable without a live member turn. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1.1 KiB
1.1 KiB
32 — all three callers fixed, nothing left passing an email
Commit read: 1575df3f. Verified by grepping every call site rather than the three I named:
pipeline-executor.ts:499 resolveBaseCwd(getOwnerHomeDir(email), cwdRelative)
pipeline-executor.ts:591 resolveBaseCwd(getOwnerHomeDir(email), cwd)
deliver.ts:37 resolveBaseCwd(getOwnerHomeDir(user.email), target.cwd ?? undefined)
No caller anywhere still passes an identity where a path is expected. Gates unchanged, 97 tests, 259 assertions.
The @param home — NOT an email doc comment is the right residue. The compiler could not distinguish the two
strings and never will, so the warning has to live where a fourth caller would read it. A nominal type would
be stronger, and I would not spend the night's remaining hour on it.
That closes everything I can review without a live member turn. Outstanding, all needing the owner or a
running member: the reprovision verifying 15 and 17, a member signing in, the first member turn, and the
gates. deprovisionOsAccount is still yours.