* feat: add bot index analysis entry
* test: add Bot index online smoke
* fix: guard Windows-only spawn flag in smoke tests for Linux CI
* fix: clean up worker tree on parent interrupt in smoke runner
* fix: surface interrupt cleanup failures in smoke runner
---------
Co-authored-by: zhulinsen <42829555+ZhuLinsen@users.noreply.github.com>
* Exclude litellm 1.99.0 from allowed versions
litellm 1.99.0 (released 2026-09-01T00:42:41Z) now forwards the
prompt_cache_key argument to the OpenAI provider. The provider cache
contract test asserts the key is not passed through without verified
capture, so CI backend-tests (3/3) and the downstream backend-gate
went red on every branch right after the release, unrelated to any
code change.
Local capture server reproduction: with 1.98.0 the captured request
body carries no prompt_cache_key; with 1.99.0 it carries
prompt_cache_key=cache-key. This one-line exclusion follows the
existing quarantine pattern for 1.82.7 / 1.82.8 and keeps the tested
behaviour until the contract is adapted deliberately.
* Bound litellm below the 1.99.0 behavioral change
Pin the dependency window to a verified upper bound (latest 1.98.x)
instead of quarantining only 1.99.0, and sync every doc that hardcodes
the litellm constraint string so docs cannot drift from requirements.txt
again.
* Sync .env.example runtime constraint comment to the litellm upper bound
* feat!: replace legacy WebUI with unified FastAPI architecture #major
- Remove legacy WebUI (web/ package based on ThreadingHTTPServer)
- Unify CLI commands: --webui now seamlessly launches the new FastAPI service
- Migrate task service from web/services.py to src/services/task_service.py
- Update documentation to reflect the new simplified usage
* refactor(service): support parameterized query source in TaskService