▓▒░ POINT TOPIC // ACCESS-AUTOMATION DECK ░▒▓
MISSION: adding / altering an ontology data source becomes a sub-site-UI-only job —
no pt-access edits, no releases, no redeploys for source changes. Sub-site is the single source of truth.
PROGRESS: ▓▓▓▓▓ MISSION COMPLETE — 4/4 required · T5 scheduled
SYNC: 2026-10div>
-06 23:18 WEST
✅ END-TO-END VERIFIED — smoke test via the live MCP tool: open_data = 128,976,738 rows visible, edgap_ekg gone. All deploys done. Arnold's future workflow is now sub-site-UI-only.
🔎 POST-DEPLOY AUDIT: prod path clean (refresh pipeline re-verified · Action v23 = stamp-only · jwt.py untouched 0.2.1→0.3.0). Two non-prod gaps: dev stack runs pt-access 0.2.0 → open_data invisible in dev (fix = deploy-dev.sh rebuild); seed script stale (edgap_ekg, no flags, no open_data). Details in the log.
- [17:29] MISSION CONTROL ONLINE — 5 tickets filed, assigned, on the PT board (#175 #176 #8 #173 To Do · #7 Blocked)
- [17:29] order: T1 → T2 → T3 → T4 (T5 after token turnover); T1 launches first — sub-site gate for everything downstream
- [17:29] note: sub-site worktree has unrelated in-flight licence work — worker will be walled off from those files
- [17:29] HOLD placed — Peter reviews the dashboard + tickets before any worker starts
- [18:08] GO — orchestrating all the way; T1 worker launched (opencode PID 45298, sub-site) → /tmp/opencode-t1.log
- [18:18] T1 #175 DONE — dataSource flag + UI guardrail + backfill 12/12 verified; tests: API 44✓, UI 7✓, tsc/eslint clean; changes uncommitted for review
- [18:18] audit: no licence references edgap_ekg; open_data only on "Point Topic internal — all products" (PT org)
- [18:18] T2 #176 launched — Auth0 Action stamp (code only; deploy is a later step)
- [18:21] T2 #176 DONE — one-line stamp in stampClaims (actions.tf:146); no deploy per guardrails; uncommitted for review
- [18:21] T3 #8 launched — pt-access registry + gate transition (/tmp/opencode-t3.log)
- [18:28] T3 #8 DONE (code) — ALL_DATA_SOURCES deleted; registry read + flag gate w/ 0.4.0 recogniser; 111✓ tests, ruff✓, pyright✓, build 0.3.0; uncommitted for review
- [18:31] finding: MCP imports ALL_DATA_SOURCES (middleware.py:28) → scope added to #173 (delegate gate to claims) + comment posted; T4 brief updated
- [18:31] WAITING: publish pt-access 0.3.0 — needs your go (T4 blocked on it)
- [18:45] pt-access 0.3.0 PUBLISHED — PyPI verified (latest: 0.3.0); done via no-echo token flow
- [18:45] T4 #173 launched — uv.lock bump + middleware gate delegation (opencode PID 54326)
- [18:53] T4 #173 DONE (code) — uv.lock→0.3.0, middleware delegates gate to pt_access.claims, tests updated; 449✓, ruff✓; uncommitted
- [18:55] nit fixed: pt_access.__version__ was stale 0.2.0 → 0.3.0 (unpublished attr; next release carries it)
- [18:55] REMAINING (human gates): review → commits (3 repos) → deploys (sub-site, MCP rebuild/redeploy, onto-app rebuild) → fresh-login verify
- [22:40] COMMITS PUSHED — pt-access abd78b6 · sub-site 8b025c1+6ea1bc9 · mcp 6bb5ff3 (sub-site push also carried the licence-deletion commit 5ffd968)
- [22:42] MCP CI deploy SUCCEEDED (1m29s, deploy-http-prod.yml) — image rebuilt, containers healthy, point_topic_access-0.3.0 live
- [22:44] registry verify (live, read-only): PT org = 12 sources incl open_data; held-only intersection → ['upc'] — REGISTRY-VERIFY-OK
- [22:45] landed-in comments posted on #175 #176 #8 #173; bundle/cleanup done
- [22:46] sub-site DEPLOYED — Fly prod api ✓ (first run hit flaky test hang → rerun clean); UI auto via Vercel
- [22:50] Auth0 Action DEPLOYED — terraform apply v23; Mgmt API verified: "Add Organisation To Token" deployed, code contains p.dataSource === true
- [23:00] onto-app REBUILT — deploy.sh on box, containers recreated, backend healthy, pt-access 0.3.0 installed
- [23:18] 🟢 SMOKE TEST PASSED — live MCP tool query: open_data 128,976,738 present · edgap_ekg absent · 11 other sources intact — END-TO-END ✔
- [23:18] MISSION COMPLETE. Watch items (non-blocking): box git creds stale (renew), Auth0 terraform drift (pre-existing), #7 recogniser cleanup after token turnover
- [23:20] board tidy: #175 #176 #8 #173 → DONE; #7 stays BLOCKED/scheduled
- [23:35] AUDIT ✓ onto-app refresh path: new edgap_open_data_loader (Arnold, 5 Oct) writes data_source='open_data'; PARTITION BY DATA_SOURCE + validate-then-atomic-swap → a refresh can never clobber other sources
- [23:40] AUDIT ✓ Auth0 Action history: v23 = stamp only; v22 (pre-today) already carried the MFA block → no first-login surprise (verified via Management API)
- [23:42] AUDIT ✓ consumers: org-wide sweep — no ALL_DATA_SOURCES / edgap_ekg left in live code; pt-dashboards unaffected (jwt.py unchanged); MCP 0.3.0 ✓; onto-app prod 0.3.0 ✓
- [23:45] AUDIT ✗ DEV STACK: onto-app-dev backend still on pt-access 0.2.0 (old static list, no open_data) → open_data invisible in dev; it reads the PROD sub-site Mongo, so fix = rebuild dev only (deploy-dev.sh) — no DB change
- [23:48] AUDIT ✗ SEED SCRIPT: sub-site mongo-scripts/seed-products.mongodb.js still lists edgap_ekg, no open_data, no dataSource flags → fresh/DR envs bootstrap with an EMPTY registry (deny-all). Fix drafted (sub-site change — awaiting go)
- [23:50] cleanup: git tag v0.3.0 created + pushed (had been released to PyPI untagged); workspace scratch (.mission/) removed