gambit-admin
  • Joined on 2026-06-06
gambit-admin commented on issue gambit/gambit#425 2026-09-09 20:54:03 +00:00
Audit: move uploads off the container disk into object storage

PR #442 (listing-photo locality half) merged to main 2026-09-09. Product/scan photos and the bucket-provider decision (R2 vs. Railway bucket vs. S3) remain open; the actual MEDIA_STORAGE_BACKEND=s3…

gambit-admin opened issue gambit/gambit#660 2026-09-09 20:38:01 +00:00
Review follow-ups: PR #442 — feat(uploads): move listing photos off local disk onto shared storage (Gitea #425)
gambit-admin commented on issue gambit/gambit#425 2026-09-09 20:25:23 +00:00
Audit: move uploads off the container disk into object storage

D10 (historic upload exposure, 2026-08-13 to 08-20) resolved — no disclosure needed.

Checked MEDIA_VOLUME_PATH on runrecon-back: it's set (/app/uploads/media), so the worse-case serving path did…

gambit-admin commented on issue gambit/gambit#425 2026-09-09 20:18:21 +00:00
Audit: move uploads off the container disk into object storage

Audited every other content_type.startswith("image/") / not ... startswith("image/") site in the backend, prompted by PR #442's lister.py fix (substring check let image/svg+xml through;…

gambit-admin opened issue gambit/gambit#659 2026-09-09 20:10:20 +00:00
Review follow-ups: PR #386 — feat(graded): price the slabs Scrydex can't — Card Hedge by identity, behind the ladder
gambit-admin opened issue gambit/gambit#658 2026-09-09 20:10:18 +00:00
Review follow-ups: PR #426 — feat(mobile): delete downloaded offline card packs (Gitea #647)
gambit-admin opened issue gambit/gambit#657 2026-09-09 20:10:15 +00:00
Review follow-ups: PR #430 — fix(pricing): one graded price_daily row per (print, company, grade)
gambit-admin opened issue gambit/gambit#656 2026-09-09 20:10:12 +00:00
Review follow-ups: PR #434 — ci(deploy): stop a docs-only backend merge from rebuilding + redeploying prod
gambit-admin opened issue gambit/gambit#655 2026-09-09 20:10:10 +00:00
Review follow-ups: PR #445 — fix(scrydex): retry catalog page fetches and isolate each game — walk has been dead 10 days
gambit-admin opened issue gambit/gambit#654 2026-09-09 20:09:44 +00:00
Review follow-ups: PR #432 — docs: update audit-remediation.md for tonight's 3 merged PRs
gambit-admin opened issue gambit/gambit#653 2026-09-09 20:04:53 +00:00
Review follow-ups: PR #446 — feat(scale): env-configurable uvicorn worker count (Gitea #651 Phase 0)
gambit-admin opened issue gambit/gambit#652 2026-09-09 20:02:20 +00:00
Review follow-ups: PR #447 — docs: refresh audit-remediation.md for tonight's scale-out reversal
gambit-admin commented on issue gambit/gambit#651 2026-09-09 19:46:38 +00:00
Audit: fix event-loop-blocking DB calls, add multi-process concurrency, sequence the async SQLAlchemy migration

Phase 0 (multi-process concurrency) opened as PR #446 — env-configurable UVICORN_WORKERS on the API's uvicorn command (backend/Dockerfile + docker-compose.yml), default 1 (no behavior change).…

gambit-admin closed issue gambit/gambit#424 2026-09-09 19:19:18 +00:00
Audit: move in-process caches/state to Redis so two app copies agree
gambit-admin commented on issue gambit/gambit#369 2026-09-09 15:21:57 +00:00
One transport error aborts the whole nightly Scrydex sweep, not just the failing game

This is still live, and it is worse than the title says: the walk has not completed since 2026-08-30 — ten days. Measured against prod today.

lane_runs, last three nights:

09-08 05:02…
gambit-admin commented on issue gambit/gambit#421 2026-09-09 15:21:57 +00:00
Audit: remove the startup schema-healing DDL from main.py (blocked by #420)

Closing — this shipped. Verified against origin/main today: backend/app/main.py is down from 151 conn.execute(text(...)) statements to 6, and the file from 741 lines to 422.

Credit…

gambit-admin closed issue gambit/gambit#421 2026-09-09 15:21:57 +00:00
Audit: remove the startup schema-healing DDL from main.py (blocked by #420)
gambit-admin commented on issue gambit/gambit#651 2026-09-09 05:08:42 +00:00
Audit: fix event-loop-blocking DB calls, add multi-process concurrency, sequence the async SQLAlchemy migration

Progress update — Phase 2 (fix the event-loop-blocking call sites) is done.

A precise AST-based scan (built as part of this pass, not estimated) found the real count was 20 async def routes / 68…

gambit-admin opened issue gambit/gambit#651 2026-09-09 02:27:50 +00:00
Audit: fix event-loop-blocking DB calls, add multi-process concurrency, sequence the async SQLAlchemy migration
gambit-admin opened issue gambit/gambit#650 2026-09-09 00:06:32 +00:00
Move iOS EAS builds to local (eas build --local) on the M1 Mac to stop burning the 15/mo cloud quota