Skip to content

fix: release retrieval sessions before workflow waits - #240

Merged
suguanYang merged 4 commits into
mainfrom
fix/wangbinqi/retrieval-session-lifetime
Aug 3, 2026
Merged

fix: release retrieval sessions before workflow waits#240
suguanYang merged 4 commits into
mainfrom
fix/wangbinqi/retrieval-session-lifetime

Conversation

@suguanYang

Copy link
Copy Markdown
Contributor

Summary

  • Stop the agentic retrieval route from holding the request DB session across workflow planner/navigation waits.
  • Move workflow planner budget inventory and final reference hydration into fresh short DB sessions.
  • Add RETRIEVAL_WORKFLOW_PLANNER_TIMEOUT_SECONDS with a default of 25.0, and restrict planner fallback to timeout/provider/budget/invalid-plan failures.
  • No public API schema, database migration, worker, or storage contract changes.

Verification

  • uv run pytest apps/api/tests/contract/test_retrieval_workflow_session_contract.py -q
  • uv run pytest apps/api/tests/contract/test_retrieval_contract.py -q
  • uv run ruff check packages/shared-python/shared/services/retrieval/execution/routes.py packages/shared-python/shared/services/retrieval/workflow/orchestrator.py packages/shared-python/shared/services/retrieval/workflow/plan_service.py packages/shared-python/shared/services/retrieval/workflow/planner.py packages/shared-python/shared/services/retrieval/workflow/runtime_config.py packages/shared-python/shared/core/config/ai.py apps/api/tests/contract/test_retrieval_workflow_session_contract.py apps/api/tests/contract/test_retrieval_contract.py
  • uv run pyright packages/shared-python/shared/services/retrieval/execution/routes.py packages/shared-python/shared/services/retrieval/workflow/orchestrator.py packages/shared-python/shared/services/retrieval/workflow/plan_service.py packages/shared-python/shared/services/retrieval/workflow/planner.py packages/shared-python/shared/services/retrieval/workflow/runtime_config.py packages/shared-python/shared/core/config/ai.py apps/api/tests/contract/test_retrieval_workflow_session_contract.py apps/api/tests/contract/test_retrieval_contract.py
  • git diff main...HEAD --check
  • Not run: full repository test suite.

Deployment Notes

  • New optional environment variable: RETRIEVAL_WORKFLOW_PLANNER_TIMEOUT_SECONDS, default 25.0.
  • No database migrations.
  • No queue, storage, SDK, or OpenAPI compatibility changes.
  • Rollback is code-only: revert the PR to restore previous session lifetime and planner fallback behavior.

Checklist

  • Tests were added or updated when behavior changed
  • Public docs, examples, or OpenAPI contracts were updated when needed
  • Database migrations are idempotent and safe to deploy
  • Logs, errors, and validation paths avoid leaking secrets or user data
  • The pull request description explains any breaking or user-visible change

@suguanYang
suguanYang merged commit 553a60c into main Aug 3, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant