- Add predix_parallel.py: Run multiple factor experiments concurrently
* python predix_parallel.py --runs 5 --api-keys 2 -m openrouter
* Round-robin API key distribution across available keys
* Rich live dashboard with per-run status, elapsed time, exit codes
* Graceful shutdown (Ctrl+C kills all children cleanly)
- Add --run-id parameter to predix.py for isolated single runs
* Separate log files: fin_quant_run{N}.log
* Separate results: results/runs/run{N}/
* Separate workspace: RD-Agent_workspace_run{N}/
* Separate databases per run
- Modify CoSTEER and FactorRunner for PARALLEL_RUN_ID isolation
* _save_intermediate_results uses run-specific directories
* _save_result_to_database and _write_run_log isolated per run
* _ensure_results_dirs creates run-specific paths
- Reduce max_loop from 10 to 3 for faster iterations
- Add docs/parallel_runs.md with full documentation
Tests: 103 passed
- TestCLIModelSelection: 8 tests for predix.py CLI
* predix module imports
* fin_quant --model option
* predix quant --model and --log-file options
* OpenRouter API key validation
* TeeWriter existence check
* health and status commands
- TestLoggingTeeWriter: 2 tests for TeeWriter
* Multi-stream writing
* Broken stream handling
All 103 integration tests pass (93 + 10 new).
Also fix predix.py logging:
- Add --log-file flag (default: fin_quant.log)
- TeeWriter writes to both console AND file
- Works for both local and openrouter backends
- Add --model/-m flag to select LLM backend
* local: llama.cpp on localhost (default)
* openrouter: Cloud models via OpenRouter API
- Create predix.py as new CLI entry point with model selection
- Add OPENROUTER_API_KEY and OPENROUTER_MODEL to .env
- Add health and status commands to CLI
- Update rdagent/app/cli.py with model selection logic
Usage:
predix quant # Local (default)
predix quant -m openrouter # OpenRouter cloud
predix quant -m local -d # Local + dashboard
Tests: 93 passed