shipwright-cli 2.3.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dashboard/public/index.html +1 -1
- package/dashboard/src/core/api.test.ts +362 -0
- package/dashboard/src/core/router.test.ts +266 -0
- package/dashboard/src/core/state.test.ts +235 -0
- package/dashboard/src/core/ws.test.ts +216 -0
- package/dashboard/src/design/icons.test.ts +105 -0
- package/dashboard/src/design/tokens.test.ts +204 -0
- package/dashboard/tsconfig.json +1 -1
- package/dashboard/vitest.config.ts +27 -0
- package/package.json +10 -3
- package/scripts/lib/pipeline-stages.sh +59 -0
- package/scripts/sw +1 -1
- package/scripts/sw-activity.sh +1 -1
- package/scripts/sw-adaptive.sh +1 -1
- package/scripts/sw-adversarial.sh +1 -1
- package/scripts/sw-architecture-enforcer.sh +1 -1
- package/scripts/sw-auth.sh +1 -1
- package/scripts/sw-autonomous.sh +230 -13
- package/scripts/sw-changelog.sh +1 -1
- package/scripts/sw-checkpoint.sh +1 -1
- package/scripts/sw-ci.sh +1 -1
- package/scripts/sw-cleanup.sh +1 -1
- package/scripts/sw-code-review.sh +1 -1
- package/scripts/sw-connect.sh +1 -1
- package/scripts/sw-context.sh +1 -1
- package/scripts/sw-cost.sh +1 -1
- package/scripts/sw-daemon.sh +1 -1
- package/scripts/sw-dashboard.sh +1 -1
- package/scripts/sw-db.sh +1 -1
- package/scripts/sw-decompose.sh +1 -1
- package/scripts/sw-deps.sh +1 -1
- package/scripts/sw-developer-simulation.sh +1 -1
- package/scripts/sw-discovery.sh +1 -1
- package/scripts/sw-doc-fleet.sh +1 -1
- package/scripts/sw-docs-agent.sh +1 -1
- package/scripts/sw-docs.sh +1 -1
- package/scripts/sw-doctor.sh +1 -1
- package/scripts/sw-dora.sh +1 -1
- package/scripts/sw-durable.sh +1 -1
- package/scripts/sw-e2e-orchestrator.sh +1 -1
- package/scripts/sw-eventbus.sh +1 -1
- package/scripts/sw-feedback.sh +1 -1
- package/scripts/sw-fix.sh +1 -1
- package/scripts/sw-fleet-discover.sh +1 -1
- package/scripts/sw-fleet-viz.sh +1 -1
- package/scripts/sw-fleet.sh +1 -1
- package/scripts/sw-github-app.sh +1 -1
- package/scripts/sw-github-checks.sh +1 -1
- package/scripts/sw-github-deploy.sh +1 -1
- package/scripts/sw-github-graphql.sh +1 -1
- package/scripts/sw-guild.sh +1 -1
- package/scripts/sw-heartbeat.sh +1 -1
- package/scripts/sw-hygiene.sh +1 -1
- package/scripts/sw-incident.sh +1 -1
- package/scripts/sw-init.sh +1 -1
- package/scripts/sw-instrument.sh +1 -1
- package/scripts/sw-intelligence.sh +1 -1
- package/scripts/sw-jira.sh +1 -1
- package/scripts/sw-launchd.sh +1 -1
- package/scripts/sw-linear.sh +1 -1
- package/scripts/sw-logs.sh +1 -1
- package/scripts/sw-loop.sh +1 -1
- package/scripts/sw-memory.sh +1 -1
- package/scripts/sw-mission-control.sh +1 -1
- package/scripts/sw-model-router.sh +1 -1
- package/scripts/sw-otel.sh +1 -1
- package/scripts/sw-oversight.sh +1 -1
- package/scripts/sw-pipeline-composer.sh +1 -1
- package/scripts/sw-pipeline-vitals.sh +1 -1
- package/scripts/sw-pipeline.sh +1 -1
- package/scripts/sw-pm.sh +1 -1
- package/scripts/sw-pr-lifecycle.sh +1 -1
- package/scripts/sw-predictive.sh +1 -1
- package/scripts/sw-prep.sh +1 -1
- package/scripts/sw-ps.sh +1 -1
- package/scripts/sw-public-dashboard.sh +1 -1
- package/scripts/sw-quality.sh +1 -1
- package/scripts/sw-reaper.sh +1 -1
- package/scripts/sw-regression.sh +1 -1
- package/scripts/sw-release-manager.sh +1 -1
- package/scripts/sw-release.sh +1 -1
- package/scripts/sw-remote.sh +1 -1
- package/scripts/sw-replay.sh +1 -1
- package/scripts/sw-retro.sh +4 -1
- package/scripts/sw-scale.sh +1 -1
- package/scripts/sw-security-audit.sh +1 -1
- package/scripts/sw-self-optimize.sh +99 -1
- package/scripts/sw-session.sh +1 -1
- package/scripts/sw-setup.sh +1 -1
- package/scripts/sw-standup.sh +1 -1
- package/scripts/sw-status.sh +1 -1
- package/scripts/sw-strategic.sh +1 -1
- package/scripts/sw-stream.sh +1 -1
- package/scripts/sw-swarm.sh +1 -1
- package/scripts/sw-team-stages.sh +1 -1
- package/scripts/sw-templates.sh +1 -1
- package/scripts/sw-testgen.sh +1 -1
- package/scripts/sw-tmux-pipeline.sh +1 -1
- package/scripts/sw-tmux.sh +1 -1
- package/scripts/sw-trace.sh +1 -1
- package/scripts/sw-tracker.sh +1 -1
- package/scripts/sw-triage.sh +198 -11
- package/scripts/sw-upgrade.sh +1 -1
- package/scripts/sw-ux.sh +1 -1
- package/scripts/sw-webhook.sh +1 -1
- package/scripts/sw-widgets.sh +1 -1
- package/scripts/sw-worktree.sh +1 -1
package/scripts/sw-guild.sh
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
8
8
|
|
|
9
|
-
VERSION="2.3.
|
|
9
|
+
VERSION="2.3.1"
|
|
10
10
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
11
11
|
|
|
12
12
|
# ─── Cross-platform compatibility ──────────────────────────────────────────
|
package/scripts/sw-heartbeat.sh
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
8
8
|
|
|
9
|
-
VERSION="2.3.
|
|
9
|
+
VERSION="2.3.1"
|
|
10
10
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
11
11
|
|
|
12
12
|
# ─── Cross-platform compatibility ──────────────────────────────────────────
|
package/scripts/sw-hygiene.sh
CHANGED
package/scripts/sw-incident.sh
CHANGED
package/scripts/sw-init.sh
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# ║ ║
|
|
9
9
|
# ║ --deploy Detect platform and generate deployed.json template ║
|
|
10
10
|
# ╚═══════════════════════════════════════════════════════════════════════════╝
|
|
11
|
-
VERSION="2.3.
|
|
11
|
+
VERSION="2.3.1"
|
|
12
12
|
set -euo pipefail
|
|
13
13
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
14
14
|
trap 'rm -f "${tmp:-}"' EXIT
|
package/scripts/sw-instrument.sh
CHANGED
package/scripts/sw-jira.sh
CHANGED
package/scripts/sw-launchd.sh
CHANGED
package/scripts/sw-linear.sh
CHANGED
package/scripts/sw-logs.sh
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# ║ ║
|
|
5
5
|
# ║ Captures tmux pane scrollback and provides log browsing/search. ║
|
|
6
6
|
# ╚═══════════════════════════════════════════════════════════════════════════╝
|
|
7
|
-
VERSION="2.3.
|
|
7
|
+
VERSION="2.3.1"
|
|
8
8
|
set -euo pipefail
|
|
9
9
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
10
10
|
|
package/scripts/sw-loop.sh
CHANGED
package/scripts/sw-memory.sh
CHANGED
package/scripts/sw-otel.sh
CHANGED
package/scripts/sw-oversight.sh
CHANGED
package/scripts/sw-pipeline.sh
CHANGED
|
@@ -11,7 +11,7 @@ unset CLAUDECODE 2>/dev/null || true
|
|
|
11
11
|
# Ignore SIGHUP so tmux attach/detach doesn't kill long-running plan/design/review stages
|
|
12
12
|
trap '' HUP
|
|
13
13
|
|
|
14
|
-
VERSION="2.3.
|
|
14
|
+
VERSION="2.3.1"
|
|
15
15
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
16
16
|
REPO_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
17
17
|
|
package/scripts/sw-pm.sh
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
8
8
|
|
|
9
|
-
VERSION="2.3.
|
|
9
|
+
VERSION="2.3.1"
|
|
10
10
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
11
11
|
|
|
12
12
|
# ─── Cross-platform compatibility ──────────────────────────────────────────
|
package/scripts/sw-predictive.sh
CHANGED
package/scripts/sw-prep.sh
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
8
8
|
|
|
9
|
-
VERSION="2.3.
|
|
9
|
+
VERSION="2.3.1"
|
|
10
10
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
11
11
|
|
|
12
12
|
# ─── Handle subcommands ───────────────────────────────────────────────────────
|
package/scripts/sw-ps.sh
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# ║ Displays a table of agents running in claude-* tmux windows with ║
|
|
6
6
|
# ║ PID, status, idle time, and pane references. ║
|
|
7
7
|
# ╚═══════════════════════════════════════════════════════════════════════════╝
|
|
8
|
-
VERSION="2.3.
|
|
8
|
+
VERSION="2.3.1"
|
|
9
9
|
set -euo pipefail
|
|
10
10
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
11
11
|
|
package/scripts/sw-quality.sh
CHANGED
package/scripts/sw-reaper.sh
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
# ║ shipwright reaper --watch Continuous loop (default: 5s) ║
|
|
12
12
|
# ║ shipwright reaper --dry-run Preview what would be reaped ║
|
|
13
13
|
# ╚═══════════════════════════════════════════════════════════════════════════╝
|
|
14
|
-
VERSION="2.3.
|
|
14
|
+
VERSION="2.3.1"
|
|
15
15
|
set -euo pipefail
|
|
16
16
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
17
17
|
|
package/scripts/sw-regression.sh
CHANGED
package/scripts/sw-release.sh
CHANGED
|
@@ -7,7 +7,7 @@ set -euo pipefail
|
|
|
7
7
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
8
8
|
trap 'rm -f "${tmp_file:-}"' EXIT
|
|
9
9
|
|
|
10
|
-
VERSION="2.3.
|
|
10
|
+
VERSION="2.3.1"
|
|
11
11
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
12
12
|
REPO_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
13
13
|
|
package/scripts/sw-remote.sh
CHANGED
package/scripts/sw-replay.sh
CHANGED
package/scripts/sw-retro.sh
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
8
8
|
|
|
9
|
-
VERSION="2.3.
|
|
9
|
+
VERSION="2.3.1"
|
|
10
10
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
11
11
|
|
|
12
12
|
# ─── Cross-platform compatibility ──────────────────────────────────────────
|
|
@@ -465,6 +465,9 @@ cmd_run() {
|
|
|
465
465
|
# Generate report
|
|
466
466
|
generate_retro_report "$from_date" "$to_date" "$analysis" "$agent_perf" "$velocity"
|
|
467
467
|
|
|
468
|
+
# Feed retro into self-optimization loop (|| true to avoid breaking retro if optimization unavailable)
|
|
469
|
+
[[ -f "$SCRIPT_DIR/sw-self-optimize.sh" ]] && "$SCRIPT_DIR/sw-self-optimize.sh" ingest-retro || true
|
|
470
|
+
|
|
468
471
|
# Offer to create issues
|
|
469
472
|
if command -v gh &>/dev/null; then
|
|
470
473
|
echo ""
|
package/scripts/sw-scale.sh
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
8
8
|
|
|
9
|
-
VERSION="2.3.
|
|
9
|
+
VERSION="2.3.1"
|
|
10
10
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
11
11
|
|
|
12
12
|
# ─── Dependency check ─────────────────────────────────────────────────────────
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
8
8
|
|
|
9
|
-
VERSION="2.3.
|
|
9
|
+
VERSION="2.3.1"
|
|
10
10
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
11
11
|
REPO_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
12
12
|
|
|
@@ -206,6 +206,100 @@ optimize_analyze_outcome() {
|
|
|
206
206
|
success "Outcome recorded for issue #${issue_number:-unknown} (${result:-unknown})"
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
+
# ═════════════════════════════════════════════════════════════════════════════
|
|
210
|
+
# RETRO INGEST
|
|
211
|
+
# ═════════════════════════════════════════════════════════════════════════════
|
|
212
|
+
|
|
213
|
+
# optimize_ingest_retro
|
|
214
|
+
# Read most recent retro JSON, append summary to outcomes, adjust template weights
|
|
215
|
+
optimize_ingest_retro() {
|
|
216
|
+
local retros_dir="${HOME}/.shipwright/retros"
|
|
217
|
+
|
|
218
|
+
if [[ ! -d "$retros_dir" ]]; then
|
|
219
|
+
return 0
|
|
220
|
+
fi
|
|
221
|
+
|
|
222
|
+
local latest_retro
|
|
223
|
+
latest_retro=$(ls -t "$retros_dir"/retro-*.json 2>/dev/null | head -1)
|
|
224
|
+
[[ -z "$latest_retro" || ! -f "$latest_retro" ]] && return 0
|
|
225
|
+
|
|
226
|
+
if ! command -v jq &>/dev/null; then
|
|
227
|
+
warn "jq required for retro ingest — skipping"
|
|
228
|
+
return 0
|
|
229
|
+
fi
|
|
230
|
+
|
|
231
|
+
ensure_optimization_dir
|
|
232
|
+
|
|
233
|
+
# Extract metrics from retro JSON
|
|
234
|
+
local analysis_json
|
|
235
|
+
analysis_json=$(jq -r '.analysis // {}' "$latest_retro" 2>/dev/null || echo "{}")
|
|
236
|
+
[[ -z "$analysis_json" || "$analysis_json" == "null" ]] && return 0
|
|
237
|
+
|
|
238
|
+
local success_rate avg_duration slowest_stage quality_score retries from_date to_date
|
|
239
|
+
success_rate=$(echo "$analysis_json" | jq -r 'if .pipelines > 0 then ((.succeeded // 0) / .pipelines * 100) | floor else 0 end' 2>/dev/null || echo "0")
|
|
240
|
+
avg_duration=$(echo "$analysis_json" | jq -r '.avg_duration // 0' 2>/dev/null || echo "0")
|
|
241
|
+
slowest_stage=$(echo "$analysis_json" | jq -r '.slowest_stage // ""' 2>/dev/null || echo "")
|
|
242
|
+
quality_score=$(echo "$analysis_json" | jq -r '.quality_score // 0' 2>/dev/null || echo "0")
|
|
243
|
+
retries=$(echo "$analysis_json" | jq -r '.retries // 0' 2>/dev/null || echo "0")
|
|
244
|
+
from_date=$(jq -r '.from_date // ""' "$latest_retro" 2>/dev/null || echo "")
|
|
245
|
+
to_date=$(jq -r '.to_date // ""' "$latest_retro" 2>/dev/null || echo "")
|
|
246
|
+
|
|
247
|
+
# Append retro_summary to outcomes.jsonl
|
|
248
|
+
local retro_record
|
|
249
|
+
retro_record=$(jq -c -n \
|
|
250
|
+
--arg ts "$(now_iso)" \
|
|
251
|
+
--argjson success_rate "${success_rate:-0}" \
|
|
252
|
+
--argjson avg_duration "${avg_duration:-0}" \
|
|
253
|
+
--arg slowest_stage "${slowest_stage:-}" \
|
|
254
|
+
--argjson quality_score "${quality_score:-0}" \
|
|
255
|
+
--argjson retries "${retries:-0}" \
|
|
256
|
+
--arg from_date "${from_date:-}" \
|
|
257
|
+
--arg to_date "${to_date:-}" \
|
|
258
|
+
'{
|
|
259
|
+
ts: $ts,
|
|
260
|
+
type: "retro_summary",
|
|
261
|
+
success_rate: $success_rate,
|
|
262
|
+
avg_duration: $avg_duration,
|
|
263
|
+
slowest_stage: $slowest_stage,
|
|
264
|
+
quality_score: $quality_score,
|
|
265
|
+
retries: $retries,
|
|
266
|
+
from_date: $from_date,
|
|
267
|
+
to_date: $to_date
|
|
268
|
+
}')
|
|
269
|
+
echo "$retro_record" >> "$OUTCOMES_FILE"
|
|
270
|
+
|
|
271
|
+
# Adjust template weights when quality is low — boost templates with stronger performance
|
|
272
|
+
# (success_rate in .weights is avg weight; values > 1.0 indicate above-average success)
|
|
273
|
+
if [[ "${quality_score:-0}" -lt 70 ]] && [[ -f "$TEMPLATE_WEIGHTS_FILE" ]]; then
|
|
274
|
+
info "Quality score low (${quality_score}) — boosting templates with stronger quality gates"
|
|
275
|
+
local tmp_weights
|
|
276
|
+
tmp_weights=$(mktemp "${TEMPLATE_WEIGHTS_FILE}.tmp.XXXXXX")
|
|
277
|
+
trap "rm -f '$tmp_weights'" RETURN
|
|
278
|
+
if jq '
|
|
279
|
+
if .weights then
|
|
280
|
+
.weights |= with_entries(
|
|
281
|
+
if (.value.success_rate >= 1.2) and (.value.raw_weights != null) then
|
|
282
|
+
.value.raw_weights |= with_entries(.value = ((.value * 1.15) | if . > 2.0 then 2.0 else . end))
|
|
283
|
+
else . end
|
|
284
|
+
)
|
|
285
|
+
else . end
|
|
286
|
+
' "$TEMPLATE_WEIGHTS_FILE" > "$tmp_weights" 2>/dev/null && [[ -s "$tmp_weights" ]]; then
|
|
287
|
+
mv "$tmp_weights" "$TEMPLATE_WEIGHTS_FILE"
|
|
288
|
+
else
|
|
289
|
+
rm -f "$tmp_weights"
|
|
290
|
+
fi
|
|
291
|
+
fi
|
|
292
|
+
|
|
293
|
+
type rotate_jsonl &>/dev/null 2>&1 && rotate_jsonl "$OUTCOMES_FILE" 10000
|
|
294
|
+
|
|
295
|
+
emit_event "optimize.retro_ingested" \
|
|
296
|
+
"success_rate=${success_rate:-0}" \
|
|
297
|
+
"quality_score=${quality_score:-0}" \
|
|
298
|
+
"slowest_stage=${slowest_stage:-}"
|
|
299
|
+
|
|
300
|
+
success "Retro ingested from $(basename "$latest_retro")"
|
|
301
|
+
}
|
|
302
|
+
|
|
209
303
|
# ═════════════════════════════════════════════════════════════════════════════
|
|
210
304
|
# TEMPLATE TUNING
|
|
211
305
|
# ═════════════════════════════════════════════════════════════════════════════
|
|
@@ -233,6 +327,8 @@ optimize_tune_templates() {
|
|
|
233
327
|
|
|
234
328
|
# Extract template, labels, result from each outcome line
|
|
235
329
|
while IFS= read -r line; do
|
|
330
|
+
# Skip retro_summary and other non-pipeline outcome lines
|
|
331
|
+
[[ "$(echo "$line" | jq -r '.type // ""' 2>/dev/null)" == "retro_summary" ]] && continue
|
|
236
332
|
local template result labels_str
|
|
237
333
|
template=$(echo "$line" | jq -r '.template // "unknown"' 2>/dev/null) || continue
|
|
238
334
|
result=$(echo "$line" | jq -r '.result // "unknown"' 2>/dev/null) || continue
|
|
@@ -1176,6 +1272,7 @@ show_help() {
|
|
|
1176
1272
|
echo " analyze-outcome <state-file> Analyze a completed pipeline outcome"
|
|
1177
1273
|
echo " tune Run full optimization analysis"
|
|
1178
1274
|
echo " report Show optimization report (last 7 days)"
|
|
1275
|
+
echo " ingest-retro Ingest most recent retro into optimization loop"
|
|
1179
1276
|
echo " evolve-memory Prune/strengthen/promote memory patterns"
|
|
1180
1277
|
echo " help Show this help"
|
|
1181
1278
|
echo ""
|
|
@@ -1197,6 +1294,7 @@ main() {
|
|
|
1197
1294
|
case "$cmd" in
|
|
1198
1295
|
analyze-outcome) optimize_analyze_outcome "$@" ;;
|
|
1199
1296
|
tune) optimize_full_analysis ;;
|
|
1297
|
+
ingest-retro) optimize_ingest_retro ;;
|
|
1200
1298
|
report) optimize_report ;;
|
|
1201
1299
|
evolve-memory) optimize_evolve_memory ;;
|
|
1202
1300
|
help|--help|-h) show_help ;;
|
package/scripts/sw-session.sh
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# ║ Supports --template to scaffold from a team template and --terminal ║
|
|
9
9
|
# ║ to select a terminal adapter (tmux, iterm2, wezterm). ║
|
|
10
10
|
# ╚═══════════════════════════════════════════════════════════════════════════╝
|
|
11
|
-
VERSION="2.3.
|
|
11
|
+
VERSION="2.3.1"
|
|
12
12
|
set -euo pipefail
|
|
13
13
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
14
14
|
|
package/scripts/sw-setup.sh
CHANGED
package/scripts/sw-standup.sh
CHANGED
package/scripts/sw-status.sh
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
# ║ ║
|
|
5
5
|
# ║ Shows running teams, agent windows, and task progress. ║
|
|
6
6
|
# ╚═══════════════════════════════════════════════════════════════════════════╝
|
|
7
|
-
VERSION="2.3.
|
|
7
|
+
VERSION="2.3.1"
|
|
8
8
|
set -euo pipefail
|
|
9
9
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
10
10
|
|
package/scripts/sw-strategic.sh
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# When sourced, do NOT add set -euo pipefail — the parent handles that.
|
|
8
8
|
# When run directly, main() sets up the error handling.
|
|
9
9
|
|
|
10
|
-
VERSION="2.3.
|
|
10
|
+
VERSION="2.3.1"
|
|
11
11
|
|
|
12
12
|
# ─── Paths (set defaults if not provided by parent) ──────────────────────────
|
|
13
13
|
SCRIPT_DIR="${SCRIPT_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)}"
|
package/scripts/sw-stream.sh
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# ║ Streams tmux pane output in real-time to the dashboard or CLI. ║
|
|
6
6
|
# ║ Captures output periodically, tags by agent/team, supports replay. ║
|
|
7
7
|
# ╚═══════════════════════════════════════════════════════════════════════════╝
|
|
8
|
-
VERSION="2.3.
|
|
8
|
+
VERSION="2.3.1"
|
|
9
9
|
set -euo pipefail
|
|
10
10
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
11
11
|
|
package/scripts/sw-swarm.sh
CHANGED
package/scripts/sw-templates.sh
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
# ║ Templates define reusable agent team configurations (roles, layout, ║
|
|
6
6
|
# ║ focus areas) that shipwright session --template can use to scaffold teams. ║
|
|
7
7
|
# ╚═══════════════════════════════════════════════════════════════════════════╝
|
|
8
|
-
VERSION="2.3.
|
|
8
|
+
VERSION="2.3.1"
|
|
9
9
|
set -euo pipefail
|
|
10
10
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
11
11
|
|
package/scripts/sw-testgen.sh
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
trap 'echo "ERROR: $BASH_SOURCE:$LINENO exited with status $?" >&2' ERR
|
|
8
8
|
|
|
9
|
-
VERSION="2.3.
|
|
9
|
+
VERSION="2.3.1"
|
|
10
10
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
11
11
|
|
|
12
12
|
# ─── Handle subcommands ───────────────────────────────────────────────────────
|