ReMe/reme/components
BeiMu-new bc47906f79 fix(embedding): stop quota failures and transient item errors from multiplying
Review follow-up on the two P2 findings in #579:

* quota exhaustion no longer falls into the per-item split. The store now gives
  up explicitly when the provider reports insufficient_quota, including after
  the opt-in quota retries are spent, because no single item is to blame and
  splitting only multiplied the rejected requests (3 items -> 4 requests).
* the per-item fallback goes back through `_call_with_retry`, so a 429,
  connection error or timeout on an isolated item keeps the existing backoff
  and retry policy instead of silently dropping that item's vector. A one-item
  request still cannot split again.

Regression tests cover both findings: a quota failure stays a single request
with the default policy and with exhausted quota retries, and a transient
failure on one item of a split batch still ends with every healthy sibling
embedded.

python -m pytest tests/unit/test_local_embedding_store.py tests/unit/test_file_store_consistency.py -q
-> 83 passed, 41 skipped
2026-10-16 21:10:38 +08:00
..
agent_wrapper fix(codex): retain tool constraints until threads unload (#630) 2026-10-16 16:46:02 +08:00
as_classifier feat(classifier): add optional Jev component and service demo (#619) 2026-10-14 17:49:49 +08:00
as_embedding fix(embedding): exclude provider init from health timeout (#484) 2026-08-21 11:23:14 +08:00
as_llm feat(docker): add container deployment and multi-platform release workflow (#582) 2026-10-03 23:54:58 +08:00
client feat(service): support explicit wildcard network binds (#547) 2026-09-15 14:26:33 +08:00
embedding_store fix(embedding): stop quota failures and transient item errors from multiplying 2026-10-16 21:10:38 +08:00
file_catalog feat(core): support live component replacement (#505) 2026-08-28 16:04:02 +08:00
file_chunker fix(chunker): restore malformed JSON text fallback (#557) 2026-10-14 14:43:27 +08:00
file_graph feat(auto_resource): interpret image resources into daily notes (#500) 2026-09-07 12:00:38 +08:00
file_store fix(embedding): keep one bad item from dropping its whole batch 2026-10-16 21:10:38 +08:00
job feat(jobs): add a unified enabled switch for all job types (#580) 2026-09-30 18:30:36 +08:00
keyword_index perf(bm25): maintain live document length incrementally (#590) 2026-10-03 22:38:11 +08:00
outbound_proxy feat: add Auto Fin cookbook and managed outbound proxy support (#392) 2026-07-25 18:09:39 +08:00
service feat(jobs): add a unified enabled switch for all job types (#580) 2026-09-30 18:30:36 +08:00
tag_index feat: auto-tag plugin-generated reports (#534) 2026-09-11 11:52:52 +08:00
tokenizer Refactor logging levels and add dream schema definitions (#291) 2026-06-24 16:44:03 +08:00
__init__.py feat(classifier): add optional Jev component and service demo (#619) 2026-10-14 17:49:49 +08:00
application_context.py feat: add entry-point plugin system and extract Auto Fin (#459) 2026-08-19 17:23:23 +08:00
base_component.py feat(core): support live component replacement (#505) 2026-08-28 16:04:02 +08:00
component_registry.py feat: add entry-point plugin system and extract Auto Fin (#459) 2026-08-19 17:23:23 +08:00
prompt_handler.py fix(prompt): default omitted conditional flags to false (#424) 2026-08-06 16:22:59 +08:00
runtime_context.py feat: add workspace web APIs and star growth report (#416) 2026-08-05 18:03:37 +08:00