Background
Found during PR #2621 (Part of #2401), which made copilot hooks generation and import platform-independent. Two sibling asymmetries remain:
-
copilotcli-hooks.ts resolveImportCommand still breaks a bash+powershell tie on process.platform, so the same file imports differently per machine — the exact bug just fixed on the copilot side. Its comment ("generate always writes the platform-specific field") also contradicts its own current generate code.
-
copilot-hooks.ts import drops passthrough keys such as cwd (generate emits them via rest spread), so cwd is lost on an import-then-regenerate round trip. copilotcli-hooks.ts already has an importPassthrough list for this — the copilot side should adopt the same mechanism.
Proposed solution
Align both adapters: deterministic bash-first tie-break in copilotcli's import (mirroring PR #2621), and an importPassthrough list on the copilot side. Round-trip tests for both.
Also noted in a comment on #2401. Recorded from the 2026-08-07 batch run.
Background
Found during PR #2621 (Part of #2401), which made copilot hooks generation and import platform-independent. Two sibling asymmetries remain:
copilotcli-hooks.tsresolveImportCommandstill breaks abash+powershelltie onprocess.platform, so the same file imports differently per machine — the exact bug just fixed on thecopilotside. Its comment ("generate always writes the platform-specific field") also contradicts its own current generate code.copilot-hooks.tsimport drops passthrough keys such ascwd(generate emits them via rest spread), socwdis lost on an import-then-regenerate round trip.copilotcli-hooks.tsalready has animportPassthroughlist for this — the copilot side should adopt the same mechanism.Proposed solution
Align both adapters: deterministic bash-first tie-break in copilotcli's import (mirroring PR #2621), and an importPassthrough list on the copilot side. Round-trip tests for both.
Also noted in a comment on #2401. Recorded from the 2026-08-07 batch run.