What’s Changed [0.3.4] - 2026-05-29
Changed
- Command execution security: Refactored all command execution in OpenSpec and Superpowers install paths from
spawnwith shell interpretation toexecFileSync, eliminating shell injection surface and improving cross-platform reliability (#88bf487)
Fixed
- OpenSpec global install path for OpenCode:
comet init --scope globalnow migrates OpenSpec skills from the hardcoded~/.opencode/directory to~/.config/opencode/where OpenCode actually reads them, with a self-deletion guard when source and destination paths coincide (#46, @gleami) - Windows command execution: Added
shelloption toexecFileSynccalls on Windows so command shims (.cmd) resolve correctly - Doctor
.comet.yamlvalidation:comet doctornow validates top-level keys instead of silently accepting unknown keys, andreadDirerrors other than ENOENT are no longer swallowed (@felamin) - CI JSON parsing: CI workflow parses command output by finding the first
{character, preventing non-JSON prefix lines from breaking JSON extraction (@yicochen) - CI warning output: CI now only counts and prints warnings when a step actually fails, reducing noise in successful runs (@yicochen)
- Spawn stdio noise: Changed
inherittoignorefor non-interactive spawn stdio so OpenSpec/Superpowers installers don’t print unrelated progress to the console (@yicochen)
Tests
- Added coverage for OpenCode global OpenSpec path migration, self-deletion guard, and homedir mocking
- Added doctor tests for
.comet.yamltop-level key validation and non-ENOENTreadDirerror propagation - Fixed timeout for git-based test “uses plan base-ref to scale verification”
Docs
- Improved README setup guidance with clearer installation instructions and collapsible reference panels (both English and Chinese) (@hepeng)
- Added contributors wall to both README and README-zh (@Joechan11)
New Contributors
- @felanny made their first contribution in #38
- @Joechan11 made their first contribution in #44
- @bevishe made their first contribution in #47
- @kathy32 made their first contribution in #39
- @gleami made their first contribution in #46