Stabilize BioVoid public repository - #1
Conversation
…B CP-B prep + WS-C guard sync)
…l, and scientific tooling Co-authored-by: Cursor <cursoragent@cursor.com>
…nhancements Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a86b18aade
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -516,32 +532,71 @@ def _process_batch( | |||
| self.output_dir, | |||
| ) | |||
| future_to_pid[fut] = pid | |||
| start_time[fut] = time.time() | |||
There was a problem hiding this comment.
Start timeout clocks when work actually begins
When len(pdb_ids) > max_workers, this records the deadline at submission time, so queue wait counts against the per-protein timeout. For example, with one worker and several healthy jobs that each take less than self.timeout, later jobs can be marked timeout before the process pool ever starts them, causing false skipped proteins and incomplete scan results. The timeout needs to be applied to execution time or submissions should be bounded to available workers.
Useful? React with 👍 / 👎.
| with ThreadPoolExecutor(max_workers=1) as pool: | ||
| fut = pool.submit(runner, request) | ||
| return fut.result(timeout=timeout_seconds) |
There was a problem hiding this comment.
Do not block after job timeout fires
In the timeout path, fut.result(timeout=...) raises, but leaving this with ThreadPoolExecutor(...) block calls shutdown(wait=True), so the orchestrator worker still waits for the timed-out runner to finish before it can mark the attempt failed or retry. If a full_analysis run hangs or runs far past the requested timeout_seconds, the single API worker remains stuck and subsequent jobs cannot be processed, defeating the advertised timeout behavior.
Useful? React with 👍 / 👎.
|
Update after CI stabilization: This PR started from a large local research/prototype workspace, so converting BioVoid into a public GitHub repository required more than a simple push. The main goal was to make the repo code-only, runnable, and safer to publish while keeping large local data, generated artifacts, databases, model files, and personal planning notes out of Git. During the final stabilization pass, the main issues were CI-related rather than core pipeline failures:
This PR does not claim the project is scientifically complete or production-ready. It prepares the current BioVoid codebase as a cleaner public baseline. Smaller cleanup, documentation improvements, timeout behavior fixes, and scientific validation work can continue in later iterations. |
This PR prepares BioVoid as a public, code-only, runnable repository.
BioVoid was originally developed as a local research/prototype workspace. This stabilization pass converts it into a cleaner public repository structure while keeping large data, generated artifacts, local databases, model files, and personal planning notes out of Git.
Changes:
job_type: "full_analysis"Verification:
python -m pytest tests/ -qpassednpm run buildpassed with only the expected Plotly large chunk warning/health200,/portal200Notes: