[SDK-285] refactor: Allow embedding max throughput setting - #4144
Merged
Conversation
dexters1
added a commit
that referenced
this pull request
Jul 31, 2026
<!-- .github/pull_request_template.md --> Allow custimization on number of parallel embedding requests <!-- * Key requirements to the new feature or modification; * Proof that the changes work and meet the requirements; --> <!-- Please check the relevant option --> - [ ] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Code refactoring - [ ] Other (please specify): <!-- ADD SCREENSHOT OF LOCAL TESTS PASSING--> <!-- Please check all boxes that apply before submitting your PR --> - [ ] **I have tested my changes thoroughly before submitting this PR** (See `CONTRIBUTING.md`) - [ ] **This PR contains minimal changes necessary to address the issue/feature** - [ ] My code follows the project's coding standards and style guidelines - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] I have added necessary documentation (if applicable) - [ ] All new and existing tests pass - [ ] I have searched existing PRs to ensure this change hasn't been submitted already - [ ] I have linked any relevant issues in the description - [ ] My commits have clear and descriptive messages I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin. (cherry picked from commit 4a6db8c)
dexters1
added a commit
that referenced
this pull request
Jul 31, 2026
## Description Release branch for **v1.4.1**, cut from `main` (v1.4.0) with the highest-impact fixes cherry-picked from `dev`. Every pick applied cleanly (`cherry-pick -m 1 -x`, PRs are merge commits on dev); original authorship is preserved. ### Fixes included | PR | Fix | |---|---| | #4253 | Migration: empty key alias emptied entire Letta/Zep imports (silent data loss) | | #4261 | Migration: Letta messages with present-but-null content were dropped | | #4248 | Migration: `parse_timestamp` now returns tz-aware UTC datetimes | | #4153 | Postgres graph + PGVector adapters: missing NUL-byte sanitization | | #4235 | LanceDB: batch `delete_data_points` predicates (`forget(everything=True)` hung indefinitely) | | #4156 | Ladybug: edge-filtered `get_neighborhood` crashed with Kuzu internal assertion | | #4182 | Postgres cache backend: UUID bind type errors + sliding-TTL deadlocks | | #4274 | Cypher/NL retrievers crashed on installs without the postgres extra (carries @teedonk's #4124) | | #4244 | JSONEncoder: `TypeError` on `datetime.date` values (fixes #4239) | | #4195 | OpenRouter embeddings: guard `encoding_format=null` 400 (fixes #3660) | | #4158 | `improve()`: allow `dataset_id` | | `02ad299f1` (via #4272) | Access control: accept kuzu/ladybug provider aliases in the handler compatibility check — fixes the 7 unit-test failures (graph methods + pipelines) that were already red on `main`'s own CI | | #4257 | Test hygiene: mock-restore autouse fixture in `test_api_error_responses.py` (stops cross-module mock leakage in full-suite runs) + estimator Windows absolute-path gate, adapted to main's ingestion semantics | | #4285 | SDK-255: let `CogneeApiError` reach HTTP callers in search/recall/remember/improve routers | | #4286 | SDK-255: derive the default session id from the dataset when none is provided | | #4175 | OAuth framework with Slack support — included so #4232's migration keeps its original `down_revision` (`b2c4d6e8f0a1`), keeping the alembic chain identical to dev (adds `cryptography` as a core dependency) | | #4232 | Session cache: dedupe session-context entries + unique index (migration `c3d5e7f9a1b2`) | | #4203 | Move remaining `examples/python` demos to `examples/demos` (aligns layout with dev; needed for the offline-test fix below) | | `bf694d795` (via #4272) | Make the local Ollama example test genuinely offline — class-level `embed_text` patch so cached engines can't hit the network (fixes the deterministic `Unit Tests (Mocked, No Secrets)` failure) | | #4193 | Silence `ty` unresolved-import for optional PIL in image_loader (fixes the Code Quality job) | | #4294 | SDK-255: `improve()` resolves the write dataset once, with write permission, as a UUID | | #4056 | `improve()`: remove exception swallowing around session persistence (fail-fast) | | #4144 | SDK-285: configurable embedding max throughput (`embedding_max_concurrent_data_points`, default 150) | | #4240 | Auto-enable the RPM limiter on overload evidence (429/503/529/timeouts), with smaller default budgets for local inference servers; bedrock adapter moved to the shared retry + pacing seam | | #3994 | SDK-142: simplify LLM configuration — provider inference from model prefix, instructor-mode table, embedding rate-limit knobs moved to `EmbeddingConfig` | | #4243 | Strip the `ollama/` routing prefix in the Ollama adapter (model-name inference follow-up to #3994) | | #3588 | Windows: derive basename from backslash paths in Mistral transcription | | #4177 | Remove `test_mistral_transcript_basename.py` (collection error without the `mistral` extra; SDK-250) | | #4042 | Gate dataset deletion behind the per-dataset pipeline lock (delete now waits for in-flight cognify) | Plus a version bump to `1.4.1` (lock file updated in a follow-up commit). Notes on adapted picks: - #4153: its `pyproject.toml`/`uv.lock` changes were dropped — they only carried a stray `1.4.0.dev0` version bump; the sanitization fix itself is intact. - #4257: its two dev-only test files (`test_cognee_error_contract.py`, `test_contradiction_detection_wiring.py`) don't exist on main and were dropped; the estimator fix is re-expressed inside main's `_path_candidate` flow because dev's version relies on ingestion semantics from unpicked #4155. ### Verification - The 7 unit-test failures visible on this PR's first CI run are **inherited from `main`**: the same tests fail on `main`'s own `Test Suites` run at the base commit `6d5508453` (kuzu-vs-ladybug handler mismatch). The `02ad299f1` pick fixes them — all 7 pass locally after the pick. - 96-test verification batch (api error responses + estimator + graph methods + pipelines + session flows) passes, including the mock-poisoning file and its victims in one invocation. - All 140 unit tests covering the originally picked code pass; Kuzu/Ladybug adapter integration suite passes (56 passed, 4 xfailed, 2 xpassed); #4158 regression test passes; `pre-commit` (pinned ruff) passes on all changed files; `uv lock --check` passes. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Allow custimization on number of parallel embedding requests
Acceptance Criteria
Type of Change
Screenshots
Pre-submission Checklist
CONTRIBUTING.md)DCO Affirmation
I affirm that all code in every commit of this pull request conforms to the terms of the Topoteretes Developer Certificate of Origin.