#!/usr/bin/env bash # Push the README-refresh thought to Open Brain via the public relay. # Requires a fresh write key from start-handoff.sh. Replace WRITE_KEY below. set -euo pipefail WRITE_KEY="${OPENBRAIN_WRITE_KEY:-PASTE_WRITE_KEY_HERE}" ENDPOINT="https://openbrain.teamci.org/thought" if [[ "$WRITE_KEY" == "PASTE_WRITE_KEY_HERE" ]]; then echo "Set OPENBRAIN_WRITE_KEY or edit this file before running." >&2 exit 1 fi curl -sS -X POST "$ENDPOINT" \ -H "Content-Type: application/json" \ -H "X-Write-Key: $WRITE_KEY" \ --data @- <<'JSON' { "title": "ImpactFlow Discovery README refreshed to match current code (2026-05-27)", "type": "observation", "topics": ["impactflow-discovery", "documentation", "alembic", "migration-bootstrap"], "people": ["jsalmon"], "body": "Refreshed README.md for impactflow-discovery on 2026-05-27. Drift fixed in four places: (1) Important files table now lists app/migration_bootstrap.py, tests/test_migration_bootstrap.py, tests/test_static_discovery.py, and tests/fixtures/{gut,head,heart}_type_responses.json. (2) App Startup section replaced the vague Docker line with the real three-step CMD: python -m app.migration_bootstrap && alembic upgrade head && uvicorn ..., and notes that the Dockerfile also runs alembic upgrade head at build time as a sanity check. (3) Frontend Behavior section documents the createUserId() helper and its crypto.getRandomValues() fallback for insecure (non-HTTPS) contexts. (4) Nothing else removed; every prior claim still checks out against code. The load-bearing detail is app/migration_bootstrap.py: it stamps pre-Alembic local SQLite DBs as revision 001 so alembic upgrade head doesn't crash recreating existing tables — that behavior was previously invisible to new readers." } JSON echo echo "Pushed."