verify(migrate): T9 cockpit + forward-track verification against migrated DB

Local cockpit (dev-cockpit-local.sh, bizworx context) serves the migrated DB
read-only; numbers cross-checked against the DB: /paper IBKR card $1,029,015
== ibkr_account_nav.nlv latest, bybit Sh 2.11 / unlock Sh 1.03 == backtest_summary.
The /paper IBKR card renders the real DU account (not the 'not connected'
empty-state that degraded in a prior session). Forward tracks intact: anchor
t0 dates are original historical inceptions, not re-incepted to today — DB-anchor
SSOT survived the migration; recon gate recomputes correctly.

Also fixed dev-cockpit-local.sh to pass --extra web --extra pg (bare uv run
failed ModuleNotFoundError: uvicorn/psycopg on a fresh env).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-18 20:28:56 +00:00
parent 05c209b64c
commit 1240113d33
2 changed files with 21 additions and 1 deletions

View File

@@ -227,3 +227,21 @@ Rollback until T11 = re-point DNS + un-suspend foxhunt.
run immediately); apply on demand post-cutover with the NP fix already in place. run immediately); apply on demand post-cutover with the NP fix already in place.
- REMAINING before T8: one ucits dry-run (needs SOLE IBKR session — briefly scale foxhunt ib-gateway to 0, - REMAINING before T8: one ucits dry-run (needs SOLE IBKR session — briefly scale foxhunt ib-gateway to 0,
or do it as the first act of cutover) + optional dagster asset-graph run. Then T8 cutover. or do it as the first act of cutover) + optional dagster asset-graph run. Then T8 cutover.
## T9 VERIFY (2026-07-18) — cockpit + gate intact against MIGRATED bizworx DB ✅
- **Local cockpit** (`./scripts/dev-cockpit-local.sh`, current-context=bizworx → serves the MIGRATED DB read-only
on http://127.0.0.1:8801). ENV GOTCHA fixed: the script's `uv run` needed `--extra web --extra pg` (uvicorn in
`web`, psycopg in `pg`); a bare `uv run` fails ModuleNotFoundError. Patched dev-cockpit-local.sh.
- **NUMBERS CROSS-CHECKED (read the numbers, per feedback_verify_cockpit_locally_not_prod):**
- /paper IBKR card = **$1,029,015** == ibkr_account_nav.nlv latest (2026-07-17 = 1029014.63). "not connected"
ABSENT (the card that silently degraded in a prior session renders the REAL DU account here).
- bybit Sh 2.11 == backtest_summary bybit_4edge 2.1067; unlock Sh 1.03 == 1.0258. All real, DB-backed.
- /, /strategy/multistrat, /strategy/xsfunding, /paper all HTTP 200 with real content.
- CAVEAT: Playwright MCP browser not connected this session → verified by rendering real HTML + reading
numbers (not pixels). Local cockpit left running on :8801 for the operator to click through.
- **T9b forward tracks INTACT (no spurious re-inception from migration):** forward_anchor t0 dates are ORIGINAL
historical inceptions (sixtyforty 2026-06-15, unlock 2026-06-20, positioning 2026-07-06, bybit_4edge/multistrat/
xsfunding 2026-07-07, vrp/multistrat_exec 2026-07-14) — NOT today (2026-07-18). definition_hash/version chains +
archived_at + record_mode all preserved. DB-anchor-SSOT survived byte-for-byte; recon gate will recompute correctly.
- **STILL PENDING:** T9 real-money confirm = watch the first armed fxhnt-ucits-rebalancer run at 09:00 UTC (tomorrow).
Then T10 observe → T11 triage → T12 teardown. ROTATE the pasted tailscale key. DELETE NOTHING.

View File

@@ -28,4 +28,6 @@ sleep 4
export FXHNT_OPERATIONAL_DSN="postgresql+psycopg://foxhunt:${PW_ENC}@127.0.0.1:${LPORT}/fxhnt" export FXHNT_OPERATIONAL_DSN="postgresql+psycopg://foxhunt:${PW_ENC}@127.0.0.1:${LPORT}/fxhnt"
export FXHNT_DEV_PORT="${DEV_PORT}" export FXHNT_DEV_PORT="${DEV_PORT}"
echo "serving READ-ONLY cockpit against PROD data on http://127.0.0.1:${DEV_PORT}" echo "serving READ-ONLY cockpit against PROD data on http://127.0.0.1:${DEV_PORT}"
uv run python3 scripts/dev_cockpit_local.py # --extra web (uvicorn/fastapi/jinja2) + --extra pg (psycopg) — the cockpit needs both; a bare `uv run` on a
# fresh env fails ModuleNotFoundError: uvicorn / psycopg.
uv run --extra web --extra pg python3 scripts/dev_cockpit_local.py