mirror of
https://github.com/mvschwarz/openrig.git
synced 2026-11-07 05:56:21 -10:00
Multi-host + Living Notes. Multi-host foundation: shareable whole-topology staged spin-up brings a rig topology up across multiple hosts in stages; VPS product-factory multi-host hardening ships with rig host verbs (add / list / doctor, capped at three; one built-in product-factory-vps posture, three- valued per item); the transport posture is documented (ssh for pane ops, http-bearer for daemon REST, no cross-transport fallback); the For-You feed aggregates activity across every registered host; and rig file moves files across the topology's registered hosts. Living Notes: durable INTENT / PLAN / DELIVERED signal layer at mission and slice altitude with agent authorship + timestamps; cheap composer surfaces make it the first-class place agents record decisions, plans, and delivered work; the one-structure review contract reads left-to-right as a single vertical stack (INTENT above, PLAN + mockup in the middle, DELIVERED with paired proof at the bottom); a plan change deletes the old plan and writes a new one - never demotes or stacks multiple competing plans. Operationalize the SDLC control plane: conventions SSOT ships in source at docs/reference/sdlc-conventions.md (Living Notes UI section names, proof-contract format + plannedRef mockup pairing, staged- approval locks, C1 proof header + closed sets, three role contracts, curation rule, elastic-middle doctrine, advisory fail-open audit posture); rig scope slice create scaffolds the convention sections + proof + PROOF.md + an IMPLEMENTATION-PRD.md skeleton for every template kind; rig scope audit + rig workspace doctor gain sdlc- convention advisories (records-and-advises, gates on HIGH only); the mission-slice-sop skill ships in canonical source with byte-parity guard; rig proof / rig scope slice create / rig scope slice approve help + cli-reference teach the SDLC flow. BREAKING: rig ps default flips to consolidated all-active-rigs compact projection (the v0.4.0 current-rig-only default is retired - it hid running rigs from the operator's field of view). --json is scope-not-shape (still a bare array with existing per-entry keys; scope widens to all non-archived rigs including stopped ones; one-line migration for the old fleet firehose: rig ps --nodes -A --full). -A / --all-rigs keeps exactly ONE meaning (the --nodes fleet widener; bare -A is a structured teaching error). --nodes names its scope everywhere (session default local-only; --host <id> --nodes requires --rig or -A; multi-host fan-out is rollup-only by default; the explicit ladder --all-hosts --nodes -A --full fans out per-node with hostId-stamped projected rows). --all-hosts / --hosts --json emits the shared AggregatedPayload (items + hosts with closed-enum statuses: ok | unreachable | unsupported-transport | auth-failed). Operator UX: agent altitude coordination panel scopes multi-agent state to the right altitude (workspace / mission / slice) so the coordination surface reads without per-seat drowning; composes with the workspace observability tabs from 0.4.1. Docs closeout catches docs/as-built/architecture.md, docs/as-built/cli-reference.md, and the codemaps up to shipped state. Migrations: additive only. Existing v0.4.3 databases upgrade by running rig daemon start. Behavior change (rig ps default view): the compact all-active-rigs projection replaces the current-rig-only default. If your call sites relied on the v0.4.3 default shape, add --full for the rich per-node projection or --rig <name> for the prior scope. Public-safety scrub applied inline to packages/ui/twin/corrective/ fixtures-corrective.ts (one demo-fixture role identifier neutralized to the demo-namespace baseline established at 0.4.1). See CHANGELOG.md and docs/releases/v0.4.4.md.
62 lines
1.8 KiB
Bash
Executable File
62 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
echo "=== Rigged North Star Demo ==="
|
|
echo ""
|
|
|
|
# Start daemon
|
|
echo "Starting daemon..."
|
|
if rig daemon start; then
|
|
sleep 2
|
|
else
|
|
echo "Daemon start returned non-zero; checking for an existing healthy daemon..."
|
|
if rig ps --json >/dev/null 2>&1; then
|
|
echo "Reusing existing healthy daemon."
|
|
else
|
|
echo "ERROR: daemon failed to start and no healthy daemon is available." >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# Boot the demo topology
|
|
echo ""
|
|
echo "Booting demo topology..."
|
|
UP_OUTPUT=$(rig up demo/rig.yaml)
|
|
printf '%s\n' "$UP_OUTPUT"
|
|
RIG_ID=$(printf '%s\n' "$UP_OUTPUT" | sed -n 's/^Rig: //p' | tail -n1)
|
|
if [ -z "$RIG_ID" ]; then
|
|
echo "ERROR: failed to determine rig ID from 'rig up' output." >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Show node status
|
|
echo ""
|
|
echo "Node status:"
|
|
# OPR.0.4.4.21: --nodes requires an explicit target outside a managed session.
|
|
rig ps --nodes --rig "$RIG_ID"
|
|
|
|
# Establish a restore-safe baseline for the demo rig.
|
|
echo ""
|
|
echo "Checking native resume baseline..."
|
|
if npx tsx demo/scripts/verify-native-resume.ts --rig "$RIG_ID"; then
|
|
echo "Native resume baseline already ready."
|
|
else
|
|
echo ""
|
|
echo "Fresh Claude sessions are not restore-safe yet. Seeding one warmup turn per agent..."
|
|
npx tsx demo/scripts/seed-resume-baseline.ts --rig "$RIG_ID" --max-rounds 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "Final baseline status:"
|
|
npx tsx demo/scripts/check-demo-health.ts --rig "$RIG_ID"
|
|
npx tsx demo/scripts/verify-native-resume.ts --rig "$RIG_ID"
|
|
|
|
echo ""
|
|
echo "=== Demo topology is running ==="
|
|
echo "Dashboard: http://localhost:5173"
|
|
echo ""
|
|
echo "Next steps:"
|
|
echo " rig ps --nodes --rig '$RIG_ID' # Check node status"
|
|
echo " rig down $RIG_ID # Tear down (auto-snapshots)"
|
|
echo " rig restore <snapshotId> --rig $RIG_ID # Restore the exact snapshot you just created"
|