← back to Tk11438 Postgres Migration
verification/session-close/SESSION-HANDOFF.md
33 lines
# Session handoff — TK-11438 and TK-11517
Steve requested /cs. TK-11517 is complete and verified. TK-11438 is unfinished; retain ownership codex-run-11438 and resume from this handoff. No PostgreSQL TCP shutdown is authorized by completion of these batches. No email sends, including mixed-script side effects.
## Completed work — do not repeat cutovers
- Showroom and PatternDesignLab: source commits a482499 and bf33afd; socket defaults plus effective/durable configuration verified, with 3,201 products and 1,694 designs preserved. Independent/root authentication, socket and missing-socket checks passed. Showroom PM2 saved-dump correction by codex-run-11401 was independently accepted.
- Ken: d840eb6; both database URLs, hourly inline URL, PM2 effective/saved configuration and reconciliation launchd migrated. Single restart and scoped launchd reload completed; independent 26 checks passed, 1,800-second canary loaded with exit 0. Never run follow-the-winners-check.sh as a test: it can email. Only its underlying SELECT-only module was exercised with read-only database options. Captured safe_mode/trading_on/kalshi_env and exact live_run/trade_config preserved; volatile whole-risk-config hash changed, so equality of uncaptured keys is not claimed. Evidence and private rollback material: verification/ken-rollout/ (private directory ignored by git).
- Gracie local: 9661303; two source files, socket transport and 127.0.0.1:10073 listener; one restart. 150 products/full response unchanged, request rows/schema/indexes preserved, authentication verified, no TCP5432, eight nonloopback IPv4 probes plus IPv6-loopback refusal. Independently authored 22-check result accepted. Evidence 676734b, verification/gracie-rollout/e2e-proof.json. Private backups under verification/gracie-rollout/private/ (0700/0600, ignored). Corrected timestamp-normalization and checker-fixture failures are retained in evidence. Rollback must preserve loopback binding. Applied memo says do not repeat.
## TK-11517 completed without deployment changes
The requested https://gracie-internal.designerwallcoverings.com and https://all.designerwallcoverings.com/microsites.html already existed with password protection and the correct Gracie link/catalog count. Remote Kamatera Gracie port 10104 differs from the local Mac viewer port 10073. Fifteen curl boundary checks and three real-browser journey assertions passed: search Gracie in With Catalogs, see 150 designs, click its card and load the authenticated viewer/API. Evidence 469a2b2, verification/tk11517-domain/. No DNS, deployment, service restart or remote repository edits were necessary. Local All-DW snapshots were stale; production was already correct. Remote All-DW repository is dirty; never full-tree/delete sync it.
## Remaining TK-11438 work
- Original 218 entries mean 217 files plus one invalid directory entry. Full classification/migration is incomplete. Ledger and proof: verification/fleet-classification/ at b4b5e5c. Counts/categories and cross-worktree duplicates are recorded there; do not assume all matches are active local PostgreSQL consumers.
- Sixteen shared vendor-request patches prepared; only Gracie was applied. Fifteen remain unapplied. Recheck source hashes, runtime owners, environment precedence and authorization per concrete batch before applying; use safe backup/rollback and operational verification. No fleet-wide restart or mass patch.
- Actual Norma runs Projects/Norma rather than inventory Norma-platform; norma-email .env.local targets TCP sdcc and norma-instagram shares a TCP fallback. Runtime migration remains unverified. Preserve the email exclusion.
- ImportNewSkufromURL .env.local overrides .env under normal Next precedence; effective runtime target is not yet proven.
- Scheduler scan covered 348 plists (345 parsed), 88 PG candidates and 506 referenced sources; preserve 3 parse failures, 13 concurrent drifts, 62 unresolved edges and 42 dynamic caveats. Source candidates do not prove execution, and absence from PM2 does not prove inactivity. No candidate jobs were executed during classification.
- Do not close PostgreSQL loopback TCP until all real consumers and scheduled paths are migrated and verified. This ticket is not done and is not awaiting a newly invented Steve approval; substantive classification and scoped migrations remain.
## /cs acceptance
Parallel review: 9/9 syntax checks; four PASS_NO_REFACTOR verdicts, zero autofixes/source changes. Source hashes independently rechecked. Four local package/lock-only patch commits are in versions.json; no redeployment/restart. Historical runtime evidence names the earlier source commits; do not rerun strict-head apply helpers just because metadata commits changed HEAD.
Gracie 1.0.0 -> 1.0.1 bb7b548; Ken kalshi-dash 1.0.4 -> 1.0.5 cc32555 (unrelated root package untouched); showroom 0.5.0 -> 0.5.1 420a619; PatternDesignLab 0.2.0 -> 0.2.1 68652a5. Evidence repository has no version field. All four worktrees were clean after commits.
Three genuine migration wins saved to local CNCP with HTTP 200 and GET readback; see wins.json. The already-existing hostname/directory verification was not falsely logged as a new deployment. Direct paid-API cost recorded for this work: $0; model/session billing not measured here.
No email sends, remote push, TCP shutdown, or safeguard overrides. /compact cannot be invoked by this custom workflow; user must invoke it. Preserve this handoff and the open migration ticket.