botrun-flow-lang 5.12.262__tar.gz → 5.12.263__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/CHANGELOG.md +7 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/PKG-INFO +1 -1
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/hatch/hatch_fs_store.py +32 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/pyproject.toml +1 -1
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/.env_template +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/.gcloudignore +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/.gitignore +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/.vscode/launch.json +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/CLAUDE.md +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/Dockerfile.template +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/README.md +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/auth_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/auth_utils.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/botrun_back_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/flow_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/hatch_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/langgraph_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/line_bot_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/model_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/rate_limit_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/routes.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/search_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/storage_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/subsidy_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/subsidy_api_system_prompt.txt +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/user_setting_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/version_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/youtube_api.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/constants.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/agent_runner.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/agent_tools/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/agent_tools/step_planner.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/checkpointer/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/checkpointer/firestore_checkpointer.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/gov_researcher/GOV_RESEARCHER_PRD.md +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/gov_researcher/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/gov_researcher/gemini_subsidy_graph.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/gov_researcher/gov_researcher_2_graph.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/gov_researcher/gov_researcher_graph.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/langgraph_react_agent.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/search_agent_graph.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/tools/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/tools/gemini_code_execution.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/gemini_grounding.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/html_util.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/img_util.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/local_files.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/mermaid_util.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/model_utils.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/pdf_analyzer.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/pdf_cache.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/pdf_processor.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/perplexity_search.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/plotly_util.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/tavily_search.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/agents/util/youtube_util.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/cache/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/langgraph_agents/cache/langgraph_botrun_cache.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/llm_agent/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/llm_agent/llm_agent.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/llm_agent/llm_agent_util.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/log/.gitignore +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/main.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/main_fast.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/mcp_server/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/mcp_server/default_mcp.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/models/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/models/nodes/utils.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/models/token_usage.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/requirements.txt +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/base/firestore_base.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/hatch/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/hatch/hatch_factory.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/storage/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/storage/storage_cs_store.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/storage/storage_factory.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/storage/storage_store.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/user_setting/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/user_setting/user_setting_factory.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/user_setting/user_setting_fs_store.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/static/docs/tools/index.html +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/api_functional_tests.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/api_stress_test.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/shared_hatch_tests.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_botrun_app.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_files/(/346/272/253/351/246/250/346/210/220/346/236/234 /350/241/214/346/224/277/350/253/213/347/244/272/345/214/257/347/270/275)20250210/345/220/221 /344/270/212/344/272/272/345/240/261/345/221/212/347/260/241/345/240/261 (1).pdf" +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_files/11206_10808/344/272/272/345/217/243/346/225/270(3/346/256/265/345/271/264/351/275/241/347/265/204+/346/257/224/347/216/207)/345/244/251/344/270/213/351/233/234/350/252/2141.pdf" +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_files/1120701A/346/265/267/345/273/243/351/233/242/345/262/270/351/242/250/345/212/233/347/231/274/351/233/273/350/250/210/347/225/253/347/222/260/345/242/203/345/275/261/351/237/277/350/252/252/346/230/216/346/233/270-C04.PDF" +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_files/ImportedPhoto.760363950.029251.jpeg +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_files/ImportedPhoto.760363950.030446.jpeg +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_files/ImportedPhoto.760363950.031127.jpeg +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_files/d5712343.jpg +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_files/spot_difference_1.png +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_files/spot_difference_2.png +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_html_util.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_img_analyzer.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_img_util.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_local_files.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_mermaid_util.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_pdf_analyzer.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_plotly_util.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_run_workflow_engine.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tools/generate_docs.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tools/templates/tools.html +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/botrun_logger.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/clients/__init__.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/clients/rate_limit_client.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/clients/token_verify_client.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/google_drive_utils.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/langchain_utils.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/yaml_utils.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/cloudbuild_template.yaml +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/convert_newlines.sh +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/deploy.sh +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/langgraph.json +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/poetry.lock +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/poetry.toml +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/requirements.txt +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/requirements_fast.txt +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/deploy_bigline.sh +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/deploy_dev.sh +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/deploy_evaldev.sh +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/deploy_fast.sh +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/deploy_modaline.sh +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/deploy_prod.sh +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/deploy_sebaline.sh +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/firestore_checkpointer_delete_thread.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/generate_docs.sh +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/llm_time_test.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/run_langgraph.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/run_langgraph_react.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/run_youtube_summary.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/scrape_pdf.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/seba_pypi.sh +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/subsidy_test.py +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/specs/gov-search/agent-architecture-upgrade.excalidraw +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/specs/gov-search/line_dev.excalidraw +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/specs/gov-search/subsidy_agent.excalidraw +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/specs/gov-search/subsidy_agent_dev.excalidraw +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/specs/gov-search/temp_txt.md +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/specs/gov-search/temp_txt2.md +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/specs/gov-search//346/264/245/350/262/274line/345/276/205/350/250/216/350/253/226.excalidraw" +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/specs/system_thinking.excalidraw +0 -0
- {botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/uv.lock +0 -0
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [5.12.263]
|
|
2
|
+
- 優化 `get_hatches` 向下相容機制:
|
|
3
|
+
- 使用 Firestore batch write 批量更新缺少 `updated_at` 的記錄(每批最多 500 個)
|
|
4
|
+
- 解決 Firestore 無法直接篩選"字段不存在"的架構限制
|
|
5
|
+
- 自動為舊記錄補充 `updated_at` 時間戳,確保所有 hatch 都能被正確查詢和排序
|
|
6
|
+
- 首次查詢時自動遷移,後續查詢效能正常
|
|
7
|
+
|
|
1
8
|
## [5.12.262]
|
|
2
9
|
- 更新 requirement.txt,支援新版 botrun_hatch
|
|
3
10
|
|
|
@@ -61,6 +61,38 @@ class HatchFsStore(FirestoreBase):
|
|
|
61
61
|
order: str = "desc",
|
|
62
62
|
) -> Tuple[List[Hatch], str]:
|
|
63
63
|
try:
|
|
64
|
+
# 向下兼容:先找出没有 updated_at 字段的记录并批量更新
|
|
65
|
+
# 注意:Firestore 不支持直接筛选"字段不存在",必须遍历所有记录
|
|
66
|
+
if sort_by == "updated_at":
|
|
67
|
+
missing_query = self.collection.where(
|
|
68
|
+
filter=firestore.FieldFilter("user_id", "==", user_id)
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
# 收集需要更新的文档
|
|
72
|
+
docs_to_update = []
|
|
73
|
+
current_time = datetime.now(timezone.utc).isoformat()
|
|
74
|
+
|
|
75
|
+
for doc in missing_query.stream():
|
|
76
|
+
data = doc.to_dict()
|
|
77
|
+
# 如果没有 updated_at 字段或为空,收集起来
|
|
78
|
+
if "updated_at" not in data or not data.get("updated_at"):
|
|
79
|
+
docs_to_update.append((doc.reference, data))
|
|
80
|
+
|
|
81
|
+
# 使用批量写入更新(每批最多 500 个)
|
|
82
|
+
if docs_to_update:
|
|
83
|
+
batch_size = 500
|
|
84
|
+
for i in range(0, len(docs_to_update), batch_size):
|
|
85
|
+
batch = self.db.batch()
|
|
86
|
+
batch_docs = docs_to_update[i:i + batch_size]
|
|
87
|
+
|
|
88
|
+
for doc_ref, data in batch_docs:
|
|
89
|
+
data["updated_at"] = current_time
|
|
90
|
+
batch.set(doc_ref, data)
|
|
91
|
+
|
|
92
|
+
batch.commit()
|
|
93
|
+
|
|
94
|
+
logging.info(f"Auto-migrated {len(docs_to_update)} hatches with updated_at for user {user_id}")
|
|
95
|
+
|
|
64
96
|
# Build base query
|
|
65
97
|
query = self.collection.where(
|
|
66
98
|
filter=firestore.FieldFilter("user_id", "==", user_id)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/botrun_back_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/langgraph_api.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/line_bot_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/rate_limit_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/api/user_setting_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/llm_agent/__init__.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/llm_agent/llm_agent.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/llm_agent/llm_agent_util.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/mcp_server/__init__.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/mcp_server/default_mcp.py
RENAMED
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/models/nodes/utils.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/models/token_usage.py
RENAMED
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/services/hatch/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/api_stress_test.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/shared_hatch_tests.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_botrun_app.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_html_util.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_img_analyzer.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_img_util.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_local_files.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_mermaid_util.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_pdf_analyzer.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tests/test_plotly_util.py
RENAMED
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tools/generate_docs.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/tools/templates/tools.html
RENAMED
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/botrun_logger.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/clients/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/google_drive_utils.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/langchain_utils.py
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/botrun_flow_lang/utils/yaml_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/sh/firestore_checkpointer_delete_thread.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/specs/gov-search/line_dev.excalidraw
RENAMED
|
File without changes
|
{botrun_flow_lang-5.12.262 → botrun_flow_lang-5.12.263}/specs/gov-search/subsidy_agent.excalidraw
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|