ES /docs

MaskWork#maskPanos stderr을 모두 error로 기록 — 로그 레벨 매핑 오류

Validation: 202ee68e-86d6-4dbc-bf06-0021a7476333

Verdict: APPROVED#

Completeness#

Plan Item Status Evidence
mask-work.ts: spread process.env into spawn() env option while keeping custom vars PASS applications/agents/packages/cupix-pano-postprocessor/src/work/mask-work.ts: line 32 shows env: { ...globalThis.process.env, INPUT_DIRPATH: inputDir, OUTPUT_DIRPATH: outputDir, OPTION_FILE_PATH: optionPath }
three-d-reconstruction.process.ts: convert env vars from command string prefix to spawn() env option with { ...process.env, ... } pattern and array arguments PASS applications/agents/packages/cupix-capture-3d-reconstruction-agent/src/process/three-d-reconstruction.process.ts: lines 43-48 build env object with ...process.env spread plus API_URL, DOMAIN, CAPTURE; lines 50-55 conditionally add OPTIONS_FILE_PATH and DOWNLOAD_DIRPATH; line 60 adds ACCESS_TOKEN; line 62 shows child_process.spawn('bash', [this.libPath!], { env })
cupix-pano-postprocessor/Dockerfile: add ENV PYTORCH_KERNEL_CACHE_PATH=/tmp/.cache/torch/kernels after pip install section PASS applications/agents/packages/cupix-pano-postprocessor/Dockerfile: line 73 shows ENV PYTORCH_KERNEL_CACHE_PATH=/tmp/.cache/torch/kernels placed immediately after pip install and cache cleanup

Acceptance Criteria#

Criterion Status Evidence
mask-work.ts spawn env is { ...process.env, INPUT_DIRPATH, OUTPUT_DIRPATH, OPTION_FILE_PATH } PASS mask-work.ts: line 32 — uses globalThis.process.env (equivalent to process.env; necessary because local variable process shadows the global in this scope) with all three custom vars
three-d-reconstruction.process.ts spawn uses { ...process.env, ... } env option, no command string env vars PASS three-d-reconstruction.process.ts: lines 43-62 — all env vars moved into env object; spawn uses 'bash', [this.libPath!], { env } instead of the old shell command string
Dockerfile contains ENV PYTORCH_KERNEL_CACHE_PATH=/tmp/.cache/torch/kernels PASS Dockerfile: line 73 — exact value present
ESLint passes on changed files UNVERIFIED Cannot verify from diff — requires runtime check

Issues Found#

No blocking issues found.

Observations#

  • In mask-work.ts, the code uses globalThis.process.env instead of process.env. This is because the local variable const process: ChildProcessWithoutNullStreams = spawn(...) on line 29 shadows the Node.js global process. Using globalThis.process.env is the correct workaround and is functionally equivalent.
  • In three-d-reconstruction.process.ts, the non-null assertion this.libPath! on line 62 assumes libPath is always defined at this point. This matches the existing code pattern (previously it was concatenated into a string without null check).
  • The log line on line 57 of three-d-reconstruction.process.ts reconstructs the options string manually for logging purposes (excluding ACCESS_TOKEN), which preserves the existing debug logging behavior while keeping sensitive data out of logs.
  • ESLint verification was not possible from the diff alone but no obvious syntax issues are present.