You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(lifecycle): sync returns its report — exit codes live at the CLI edge
Programmatic callers read the returned SyncReport instead of sniffing
process.exitCode; a new silent option suppresses output for reuse as a
gate. Unreadable metadata on a named sync now yields the same conflict
entry the no-arg sweep reports, so CI parses one shape either way, and
list rejects an unknown --status value instead of printing an empty
list that reads as success.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
// Mode-aware by contract: under `lifecycle: archive` the archive command
66
68
// owns the fold and there is no status field to gate on. Report and exit
67
69
// 0 rather than misfiring on the default layout.
70
+
if(options.silent){
71
+
returnreport;
72
+
}
68
73
if(options.json){
69
74
console.log(JSON.stringify(report,null,2));
70
75
}else{
71
76
console.log(
72
77
"This project uses `lifecycle: archive` (the default) — nothing to sync or gate. `openspec sync` applies under `lifecycle: status`; see openspec/config.yaml."
0 commit comments