← back to Tk11438 Postgres Migration
verification/ken-rollout/independent-verification.json
288 lines
{
"task_id": "TK-11438",
"owner": "codex-run-11438-verifier",
"risk": "R4",
"timestamp": "2026-09-11T17:41:15.071Z",
"assertions": [
{
"name": "Ken unique identity and online restart",
"verdict": "PASS",
"detail": {
"before_pid": 92641,
"after_pid": 25903,
"restart_time": 39
}
},
{
"name": "DATABASE_URL dotenv Unix socket identity",
"verdict": "PASS",
"detail": {
"database": "bertha_betting",
"role": "macstudio3",
"addr": null,
"readonly": "on"
}
},
{
"name": "DATABASE_URL saved dump Unix socket identity",
"verdict": "PASS",
"detail": {
"database": "bertha_betting",
"role": "macstudio3",
"addr": null,
"readonly": "on"
}
},
{
"name": "KEN_DATABASE_URL dotenv Unix socket identity",
"verdict": "PASS",
"detail": {
"database": "ken",
"role": "macstudio3",
"addr": null,
"readonly": "on"
}
},
{
"name": "KEN_DATABASE_URL saved dump Unix socket identity",
"verdict": "PASS",
"detail": {
"database": "ken",
"role": "macstudio3",
"addr": null,
"readonly": "on"
}
},
{
"name": "Four effective/saved URL fields agree with dotenv",
"verdict": "PASS",
"detail": true
},
{
"name": "Captured operational switches and Ken trading configuration unchanged",
"verdict": "PASS",
"detail": {
"settings": {
"safe_mode": "false",
"trading_on": "true",
"kalshi_env": "prod",
"config_hash": "556a9eb6c8fed4832b515ffd6dba0de1"
},
"ksettings": [
{
"key": "live_run",
"value_hash": "5007ffdbce2484c46f0f1ebfed156a79"
},
{
"key": "trade_config",
"value_hash": "c77ced4a430c742f316497e371b18efc"
}
]
}
},
{
"name": "LAN /api/setup none auth",
"verdict": "PASS",
"detail": {
"status": 401,
"body_sha256": "ca730ec7fc2b7edb7277e5b8e58d6a474971ca59dafb499141a4856c06132638",
"body_code_units": 35
}
},
{
"name": "LAN /api/setup invalid auth",
"verdict": "PASS",
"detail": {
"status": 401,
"body_sha256": "ca730ec7fc2b7edb7277e5b8e58d6a474971ca59dafb499141a4856c06132638",
"body_code_units": 35
}
},
{
"name": "LAN /api/setup valid auth",
"verdict": "PASS",
"detail": {
"status": 200,
"body_sha256": "b7618c456aa65071f5e72b8d56effe52b8edccbb2173a34abfac7ea514d3f2f0",
"body_code_units": 75
}
},
{
"name": "LAN /api/trading/history none auth",
"verdict": "PASS",
"detail": {
"status": 401,
"body_sha256": "ca730ec7fc2b7edb7277e5b8e58d6a474971ca59dafb499141a4856c06132638",
"body_code_units": 35
}
},
{
"name": "LAN /api/trading/history invalid auth",
"verdict": "PASS",
"detail": {
"status": 401,
"body_sha256": "ca730ec7fc2b7edb7277e5b8e58d6a474971ca59dafb499141a4856c06132638",
"body_code_units": 35
}
},
{
"name": "LAN /api/trading/history valid auth",
"verdict": "PASS",
"detail": {
"status": 200,
"body_sha256": "5e461574d4ae8b1ce2c5495529884fdecb0dbe49b483473258640165a9212d7c",
"body_code_units": 1195
}
},
{
"name": "Ken PID has no TCP 5432 socket",
"verdict": "PASS",
"detail": true
},
{
"name": "Ken PID has active Unix sockets",
"verdict": "PASS",
"detail": {
"lines": 7,
"sha256": "53c2cefe2834d7e98a83c8ae9d458de9b0ccb969d357530c0037bad80386ad2f"
}
},
{
"name": "Application database sessions use Unix sockets",
"verdict": "PASS",
"detail": [
{
"datname": "bertha_betting",
"usename": "macstudio3",
"client_addr": null,
"client_port": -1,
"pid": 20448
},
{
"datname": "ken",
"usename": "macstudio3",
"client_addr": null,
"client_port": -1,
"pid": 20457
}
]
},
{
"name": "DATABASE_URL missing socket fails closed",
"verdict": "PASS",
"detail": {
"code": "ENOENT"
}
},
{
"name": "KEN_DATABASE_URL missing socket fails closed",
"verdict": "PASS",
"detail": {
"code": "ENOENT"
}
},
{
"name": "Server source unchanged",
"verdict": "PASS",
"detail": "8c20f30eb1a31fe7ad5c3884094dab8fcb0020ea7cf87d1b7c0a974693e9dc74"
},
{
"name": "Hourly wrapper exact approved one-line change; not executed",
"verdict": "PASS",
"detail": true
},
{
"name": "env rollback rehearsal restored exact prior bytes",
"verdict": "PASS",
"detail": true
},
{
"name": "wrapper rollback rehearsal restored exact prior bytes",
"verdict": "PASS",
"detail": true
},
{
"name": "plist rollback rehearsal restored exact prior bytes",
"verdict": "PASS",
"detail": true
},
{
"name": "Durable dotenv matches prepared bytes",
"verdict": "PASS",
"detail": true
},
{
"name": "Reconciliation durable and loaded socket; interval preserved; exit zero",
"verdict": "PASS",
"detail": {
"interval": 1800,
"last_exit": 0
}
},
{
"name": "Reconciliation post-reload result",
"verdict": "PASS",
"detail": {
"last_line": "[reconcile-canary] OK \u2014 returned=$472535.99 invested=$319060.81 balance=$163375.18 (all reconcile within $2)",
"mtime": "2026-09-11T17:38:14.880Z"
}
}
],
"commands": [
"node --check /tmp/tk11438-ken-approved/independent-check.cjs",
"node /tmp/tk11438-ken-approved/independent-check.cjs (read-only; initial sandbox EPERM, authorized retry PASS)",
"direct existing PM2 getMonitorData RPC",
"node-postgres read-only identity/config/activity SELECTs using dotenv and saved PM2 URLs",
"LAN HTTP GET /api/setup and /api/trading/history with missing, invalid and valid Basic Auth",
"lsof -nP -a -p 25903 -iTCP and -U",
"launchctl print gui/501/com.steve.ken-reconcile-canary",
"plutil -convert json -o - reconciliation plist; source/backup hash reads; latest canary log read",
"git show --stat --oneline HEAD and git rev-parse HEAD"
],
"application_mutations": 0,
"email_sends": 0,
"pid": 25903,
"pm_id": 15,
"warnings": [
{
"name": "Whole risk_state.config comparison",
"reason": "Baseline whole-config hash differs. Unchanged server.js lines 8027-8031 refresh weather_cache on scan. This is consistent with expected cache churn, but baseline omitted individual other keys, so exclusive cause and all-key preservation cannot be proved retroactively.",
"baseline_hash": "2fddc5b0ff823bbe1ea724dca0dca0d0",
"current_hash": "556a9eb6c8fed4832b515ffd6dba0de1"
}
],
"commit": "d840eb666dbe5986eb48925ef9e694c3c3d450d3",
"verdict": "PASS",
"status": "complete",
"skipped": [
{
"name": "Hourly email-capable wrapper execution",
"verdict": "SKIP",
"reason": "Explicitly excluded from authorization; parent separately verifies SELECT-only signal module."
},
{
"name": "Full-fleet TCP shutdown",
"verdict": "SKIP",
"reason": "Outside Ken batch."
},
{
"name": "Live rollback execution",
"verdict": "SKIP",
"reason": "Healthy rollout; rollback reviewed and copies rehearsed, no induced production fault."
}
],
"rollback_review": {
"original_must_fix": "Reload bootstrap failure left unloaded job outside rollback marker",
"resolution": "Parent now journals before bootout and restores loaded or absent prior target; reviewed actual helper and four mocked fault scenarios",
"mocked_scenarios": [
"loaded recovery",
"unloaded recovery",
"unexpected error fails closed",
"bootstrap failure retains journal"
],
"mocked_artifact": "/tmp/tk11438-ken-approved/rollback-fault-proof.json",
"live_rollback_performed": false
},
"parent_acceptance_required": true
}