mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-04-01 07:27:46 +00:00
When OpenAI credentials are unavailable (fork PRs, dev envs without API keys), both builder block search and store agent functionality break: 1. **Block search returns wrong results.** `unified_hybrid_search` falls back to a zero vector when embedding generation fails. With ~200 blocks in `UnifiedContentEmbedding`, the zero-vector semantic scores are garbage, and lexical matching on short block names is too weak — "Store Value" doesn't appear in the top results for query "Store Value". 2. **Store submission approval fails entirely.** `review_store_submission` calls `ensure_embedding()` inside a transaction. When it throws, the entire transaction rolls back — no store submissions get approved, the `StoreAgent` materialized view stays empty, and all marketplace e2e tests fail. 3. **Store search returns nothing.** Even when store data exists, `hybrid_search` queries `UnifiedContentEmbedding` which has no store agent rows (backfill failed). It succeeds with zero results rather than throwing, so the existing exception-based fallback never triggers. ### Changes 🏗️ - Replace `unified_hybrid_search` with in-memory text search in `_hybrid_search_blocks` (-> `_text_search_blocks`). All ~200 blocks are already loaded in memory, and `_score_primary_fields` provides correct deterministic text relevance scoring against block name, description, and input schema field descriptions — the same rich text the embedding pipeline uses. CamelCase block names are split via `split_camelcase()` to match the tokenization from PR #12400. - Make embedding generation in `review_store_submission` best-effort: catch failures and log a warning instead of rolling back the approval transaction. The backfill scheduler retries later when credentials become available. - Fall through to direct DB search when `hybrid_search` returns empty results (not just when it throws). The fallback uses ad-hoc `to_tsvector`/`plainto_tsquery` with `ts_rank_cd` ranking on `StoreAgent` view fields, restoring the search quality of the original pre-hybrid implementation (stemming, stop-word removal, relevance ranking). - Fix Playwright artifact upload in end-to-end test CI ### Checklist 📋 #### For code changes: - [x] I have clearly listed my changes in the PR description - [x] I have made a test plan - [x] I have tested my changes according to the test plan: - [x] `build.spec.ts`: 8/8 pass locally (was 0/7 before fix) - [x] All 79 e2e tests pass in CI (was 15 failures before fix) --- Co-authored-by: Reinier van der Leer (@Pwuts) --------- Co-authored-by: Reinier van der Leer <pwuts@agpt.co> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
313 lines
12 KiB
YAML
313 lines
12 KiB
YAML