Skip to content

消えたcwdからの実行をCWD_UNAVAILABLEで返す(0.71.1) - #4

Merged
quolu merged 1 commit into
mainfrom
snowwhite/cwd-unavailable
Oct 3, 2026
Merged

quolu merged 1 commit into
mainfrom
snowwhite/cwd-unavailable

Conversation

@quolu

@quolu quolu commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator

何を直すか

BugHub d3c4989e(mac-kite、`LATTICE.CLI_INTERNAL_FAILED`、22回)の現地調査で、削除済みの作業ディレクトリから runtime-cli 行きのcommand(`run list --json` 等)を実行すると、`process.cwd()` の ENOENT(uv_cwd)が typed契約の外へ漏れ、`INTERNAL_FAILURE` を返して内部故障として記録されることを、Mac実機(0.71.0)で再現した。`todo`・`status` などは同じ条件で Node の生のstackで落ちていた。

  • `bin/lattice.mjs`: help・`--version` の後で、cwdを読むsurfaceの前にcwdを確かめる。消えていれば `lattice.cli_error.v2` / `CWD_UNAVAILABLE`(exit 1)を返し、観測しない(呼び出し環境の不備で、製品の故障ではない)。
  • cwdを読まない `runtime-errors`・`bridge`・`hooks`・`setup`・`factory-diagnostics` は対象外のまま動く。
  • 試験 `test/cli-cwd-unavailable.test.mjs`: 修正前は `INTERNAL_FAILURE` で赤、修正後に緑。収集ONの一時storeに何も記録されないことも確かめる。

注意

22回すべてがこの経路だとは証明できていない。記録は error_code だけで集約され、コマンドや理由が残らない。Macの transcript(約14GB)にも `INTERNAL_FAILURE` の出力は残っていなかった。再現できた経路はこれだけ。

試験

  • ローカル `npm run ci` 成功(root 1932 / 失敗0)。

🤖 Generated with Claude Code

mac-kiteのBugHub d3c4989e(LATTICE.CLI_INTERNAL_FAILED)の調査で、削除済みcwdから
run系commandを打つとprocess.cwd()のENOENTがtyped契約の外へ漏れ、内部故障として
記録されることを実機で再現した。todo・status等は生のstackで落ちていた。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@quolu
quolu merged commit 91f7a84 into main Oct 3, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant