What’s Changed [0.2.6] - 2026-05-23
Added
- Build decision enforcement: Build guard and
comet-state.sh transition build-completenow requireisolationandbuild_modebefore moving from build to verify - Direct mode override: Full workflows must set
direct_override: truebefore usingbuild_mode: direct; hotfix/tweak remain allowed by default - Configurable guard commands: Guard scripts now read
build_commandandverify_commandfrom the change.comet.yamlor repo-root Comet config before falling back to auto-detected build commands - Archive diff preview: Archive sync prints a unified diff before overwriting an existing main spec when it differs from the delta spec
- Cross-platform script smoke CI: Added Ubuntu, macOS, and Windows smoke coverage for Comet shell scripts and portable shell tests
- Shell line-ending policy: Added
.gitattributesrules to keep shell and Bats scripts on LF endings
Changed
- Guard failure output: Guard checks now preserve and print command failure output, plus actionable
Next:hints for missing build decisions and unfinished tasks - Command handling: Project commands run through
bash -lc, Maven usesmvnwormvn.cmdwhere appropriate, and Windows Git Bash paths are handled in shell test helpers - Archive step counting: Dry-run, delta sync, annotation, move, and archive status steps now count real executed steps without double-counting repeated operations
- English docs and skills: Synced the English README and Comet skill text with the Chinese build-decision, command-config, and archive behavior descriptions
Fixed
- macOS shell script state updates: Replaced GNU-only
sed -iwrites incomet-state.shwith portable temp-file updates, fixing macOS CI failures duringscale,transition, and YAML field updates - Optional field reads under pipefail: Guard and state scripts now tolerate missing optional YAML fields without exiting early under
set -euo pipefail - Bash detection fallback: Shell test helpers now handle failed
bashprobes without crashing on emptyspawnSyncoutput - Configured command persistence:
comet-state.sh setnow escapes sed replacement metacharacters so command values containing&,|, or backslashes are preserved - Optional schema fields: YAML validation now recognizes
direct_override,build_command, andverify_command - Quoted YAML values: State, guard, and validator scripts now strip only wrapping quotes instead of deleting all quote characters from values
Tests
- Added coverage for missing build decisions, direct-mode override blocking and allowance, configured build/verify commands, command metacharacter preservation, unfinished-task remediation output, archive step counts, cross-platform path handling, BSD/GNU sed portability, optional YAML field reads under
pipefail, and failed bash probe handling