Commit History

  1. fix: logging crash, md/function_predict ligand_smiles column fallback

    f062f79

  1. Fix MD simulation: OpenMM fallback, PDB ID propagation, better error handling

    d9d71ff
  2. Phase 3a/4/5: ADMET descriptors (RDKit), MD simulation (OpenMM), function prediction (DeepFRI-inspired) — backend + frontend

    99fb209
  3. Phase 2: structured JSON logging, request ID middleware, enhanced health endpoint, Sentry breadcrumbs

    a38b802
  4. Phase 1: harden rate limits — JWT-aware keys, per-endpoint caps, daily limits on all job types

    bd279b4

  1. Phase 0c: offload large artifacts to Supabase Storage (docking, pipeline, sequencing)

    e47db42
  2. Phase 0b: durable worker with FOR UPDATE SKIP LOCKED, per-type concurrency, separate container

    fee674e
  3. Phase 0a: SSRF protection + auth on docking/sequencing, worker design doc

    89fd26d
  4. Fix _TRP_RINGS -> _TRP_RING_ATOMS name error

    cd2115a
  5. Docking viewer upgrade: Molstar GPU rendering, proper interaction geometry, 3D dashed-line rendering

    e86bafa
  6. Fix KeyError: payload['smiles'] -> payload.get('ligand_smiles')

    9bf8068
  7. Docking: minimal INSERT (only id/status/smiles), startup table check, migration SQL

    1c8e7f8
  8. Fix docking INSERT: only use columns guaranteed to exist in Supabase

    15b7414
  9. Major docking rewrite: match frontend contract (pdb_id+smiles input, nested poses/interactions output, PDB fetch from RCSB, auto grid center)

    8f9cafc
  10. Fix docking route mismatches: GET /status/{id}, frontend pdb URL prefix

    e619a9b
  11. Fix docking route: POST /api/docking/run to match frontend

    6c8b9a8
  12. Fix docking: add pdb_to_pdbqt_receptor() for protein PDBQT conversion

    9125057
  13. Fix unbounded _SESSION_EVENT_COUNTS dict leak (cap at 1000)

    e0f8f74
  14. Use Dockerfile-installed Vina first, fall back to download

    dade2b6
  15. Fix Settings attribute names: SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY

    2341dff
  16. fix: undefined query_length variable in _run_blast

    3dd0c04
  17. fix: Linux Vina binary, Open Babel PDBQT, pipeline_worker utcnow⁠

    fe05da9

  1. test: reduce vina timeout to 10s for faster diagnostic

    4d3a2e8
  2. fix: indentation error at line 610

    b100aa9
  3. fix: revert to async subprocess (no thread pool to avoid import hang), keep --cpu 1

    2a4a790
  4. fix: use ThreadPoolExecutor with subprocess.Popen (no asyncio subprocess), add --cpu 1 and stdin=/dev/null

    d242989
  5. fix: use asyncio.create_subprocess_exec with file handles + asyncio.wait_for (no threads, no pipes)

    48bf0d7
  6. fix: use poll() polling loop instead of proc.wait(timeout=N) to avoid Python 3.14 pidfd-wait hang

    4a1b691
  7. fix: use Popen + wait(timeout=N) + killpg layered kill approach

    f381b03
  8. fix: use /usr/bin/timeout OS-level command instead of Python subprocess timeout

    8329f93
  9. fix: use subprocess.DEVNULL for Vina output — eliminates ALL I/O blocking

    3aeb8d2
  10. fix: use dedicated ThreadPoolExecutor(max_workers=1) + subprocess.run(file handles, timeout=N)

    1242de8
  11. fix: use asyncio.create_subprocess_exec with file descriptors + wait_for — no threads, no pipe buffer deadlock

    6c14e2d
  12. fix: add vimontest timeout diagnostic with sleep test

    628b184
  13. fix: set deployed commit hash

    19eb8d7
  14. fix: update commit hash in vimontest

    951d3f5
  15. chore: add deployed commit hash to vimontest for debugging

    e36a2bd
  16. fix: use file handles instead of PIPE to avoid Vina pipe-buffer deadlock on Render

    88df0f4
  17. test: vimontest runs Vina with 10s timeout to diagnose hangs

    583edb0
  18. fix: use process group kill (killpg) for reliable Vina timeout

    32957ff
  19. debug: set Vina timeout to 60s for testing timeout mechanism

    01cccda
  20. fix: use subprocess.run(timeout=...) instead of asyncio subprocess for reliable Vina timeout

    ab38821
  21. fix: simplify vimontest to avoid Vina crash in request handler

    dc12ffd
  22. fix: reliable Vina timeout via asyncio subprocess + cleanup vimontest

    ab9ad46
  23. debug: check column positions in ATOM line

    c111908
  24. fix: parse CACTUS API PDB-like ATOM records instead of V2000 SDF

    80b49f1
  25. debug: show SDF and PDBQT content in vimontest

    63d6e0f
  26. debug: step-by-step vimontest with short 10s timeout

    8d27657
  27. fix: add urllib import to vimontest

    937dc91
  28. debug: realistic vimontest with real PDB and SMILES

    c212267