merge: origin/main into next for the 0.0.50 integration line

next carries 108 commits main lacks; main carries 23 next lacks, including
the MOSAIC_GIT_IDENTITY work that per-agent git credentials depend on.
Neither stream alone can ship 0.0.50: next drops identity, main drops
everything since the split.

Conflicts and how they were settled:
- packages/mosaic/package.json test:framework-shell -- union. Neither side
  removed an entry; next added 6, main added 8, one shared. 50 total.
- framework/tools/git/pr-merge.sh -- next's form. It permits base 'main' or
  'next'; main's permits 'main' only, and the release line targets next.
- framework/tools/git/test-ci-queue-wait-tristate.sh -- both sides appended
  to the same region (next: merge-readiness assertions; main: a real-clock
  watchdog control). Kept both.
- docs/SITEMAP.md -- both sides appended distinct sections. Kept both.
This commit is contained in:
Jason Woltje
2026-08-15 10:28:06 -05:00
107 changed files with 7989 additions and 209 deletions
+10
View File
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
# Exit 0 only when the capability probe itself succeeds and advertises verify.
# A failed help command and a successful response without verify are both
# unsupported, matching the historical e2e-install-test.sh conditional.
set -uo pipefail
gateway_help_rc=0
gateway_help="$(mosaic gateway --help 2>&1)" || gateway_help_rc=$?
[[ "$gateway_help_rc" -eq 0 ]] || exit 1
grep -q 'verify' <<<"$gateway_help"
+1 -1
View File
@@ -136,7 +136,7 @@ fi
echo "=== [inner] Running mosaic gateway verify ==="
# `gateway verify` was added in feat/mosaic-first-run-ux.
# If the installed version pre-dates this, skip gracefully.
if ! mosaic gateway --help 2>&1 | grep -q 'verify'; then
if ! bash /repo/tools/e2e-gateway-verify-supported.sh; then
echo "[SKIP] 'mosaic gateway verify' not available in installed version ${INSTALLED_VERSION}."
echo "[SKIP] This command was added in the feat/mosaic-first-run-ux release."
echo "[SKIP] Re-run after the new version is published to validate this step."
+8 -4
View File
@@ -405,13 +405,17 @@ ensure_monorepo() {
exit 1
fi
# Gitea archives extract to <repo-name>/ inside the work dir
EXTRACTED_DIR="$(find "$WORK_DIR" -maxdepth 1 -mindepth 1 -type d | head -1)"
if [[ -z "$EXTRACTED_DIR" ]] || [[ ! -d "$EXTRACTED_DIR" ]]; then
fail "Could not locate extracted source in archive."
# Gitea archives extract to exactly one <repo-name>/ inside the work dir.
# Read the complete population so a malformed multi-root archive reaches the
# named diagnostic instead of aborting on an upstream SIGPIPE under pipefail.
local -a extracted_dirs=()
mapfile -d '' -t extracted_dirs < <(find "$WORK_DIR" -maxdepth 1 -mindepth 1 -type d -print0)
if [[ "${#extracted_dirs[@]}" -ne 1 ]] || [[ ! -d "${extracted_dirs[0]:-}" ]]; then
fail "Could not locate exactly one extracted source directory in archive."
ls -la "$WORK_DIR" >&2
exit 1
fi
EXTRACTED_DIR="${extracted_dirs[0]}"
}
# Build @mosaicstack/mosaic + @mosaicstack/gateway from source and install both
+4 -1
View File
@@ -35,7 +35,10 @@ export DARK_THRESHOLD_MS="${DARK_THRESHOLD_MS:-6000}"
export AGENT_SLUGS="${AGENT_SLUGS:-alpha,bravo,charlie}"
export VICTIM_SLUG="${VICTIM_SLUG:-charlie}"
TSX_CLI="$(ls -d "${REPO}"/node_modules/.pnpm/tsx@*/node_modules/tsx/dist/cli.mjs 2>/dev/null | head -1)"
shopt -s nullglob
TSX_CANDIDATES=("${REPO}"/node_modules/.pnpm/tsx@*/node_modules/tsx/dist/cli.mjs)
shopt -u nullglob
TSX_CLI="${TSX_CANDIDATES[0]:-}"
if [[ -z "${TSX_CLI}" ]]; then
echo "run.sh: tsx not found under node_modules — run pnpm install first" >&2
exit 1