1.42.0 (2026-04-24)
- db: isolate SPECIAL_DB_URL from container runtime (1da5779)
- training: emit final PROGRESS line with last-step loss and run mean (d7edae4)
- training: emit final PROGRESS line with last-step loss and run mean (f463cb3)
- training: DiskPreflight + DatasetService class with hard-delete + race guards (b939110)
- training: pre-dispatch disk space preflight (38bb9a4)
1.41.0 (2026-04-22)
- deployment: return deactivating status matching reconciler semantics (bb68ebb)
- deployment: return deactivating status matching reconciler semantics (b3db03e)
- inference: raise default max_lora_rank to 64 to support r>16 adapters (ab895a0)
- migrations: honour SPECIAL_DB_URL/DATABASE_URL env in alembic env.py (45211bc)
- training: handle TrainingConfig passed directly from router (18d1500)
- training: live progress metrics persist mid-training (d9544c6)
- training: use HF_HOME for cache lookup, matches compose env (69ee9cb)
- ci: emit rolling minor/major tags and guard patch releases (e9509a7)
- training: cancel-training-job endpoint with graceful subprocess shutdown (e795442)
- training: config-file-based trainer invocation (7dcd65d)
- training: tune laptop profile for production-grade fine-tunes (e4e5ea7)
- training: wire TrainingConfig resolver into job creation (cce0949)
1.40.0 (2026-04-19)
- deployment: return deactivating status matching reconciler semantics (1f9b85e)
- deployment: return deactivating status matching reconciler semantics (5f2ccce)
- training: live progress metrics persist mid-training (8890bbf)
- training: use HF_HOME for cache lookup, matches compose env (5f96570)
- ci: emit rolling minor/major tags and guard patch releases (b831293)
1.39.0 (2026-04-18)
- cache: push assistant and tool messages to Redis on save (9aae64d)
- ci: use maturin build + pip install instead of maturin develop (9e46e7b)
- deepseek: rewrite tool messages to user role + split-save chatty turns (dc92eb9)
- docker: add fc_parser and request_router to API image Rust build stage (d85d3f3)
- docker: add pkg-config and libssl-dev for request_router OpenSSL build dependency (9840916)
- docker: install maturin with patchelf for request_router OpenSSL wheel bundling (6b4c271)
- inference: pass tools natively to provider API in QwenBaseWorker stream (39850d6)
- monitor: remove pending_action from terminal_statuses set (eb09206)
- tools: gate platform tools on assistant opt-in across three layers (5ab88df)
- analytics: add stack insights script with CI noise subtraction and real user pull estimation (61903bd)
- analytics: add stack insights script with CI noise subtraction and real user pull estimation (29a17cd)
- rust: port fc_parser to Rust extension via PyO3 (682dcf2)
- training: add live progress feedback to fine-tuning pipeline (bb19cea)
- training: enforce HF cache guard at job dispatch (4c23b23)
1.38.0 (2026-04-15)
- telemetry: add opt-in anonymous usage analytics via PostHog (60ff7ba)
1.37.0 (2026-04-15)
- context: bypass hydrate_messages for file_id-backed image attachments (2fe6f0c)
- inference: read VLLM_DEFAULT_MAX_MODEL_LEN and VLLM_DEFAULT_GPU_MEM_UTIL from env (33a5c48)
- inference: read VLLM_DEFAULT_MAX_MODEL_LEN and VLLM_DEFAULT_GPU_MEM_UTIL from env (cb34d1b)
- restore deployment_service.py (accidentally overwritten with inference_worker) (2d6c9df)
- restore deployment_service.py (accidentally overwritten with inference_worker) (ac7463b)
- sovereign-forge: bypass render_prompt and use _http_stream for multimodal dispatch (49ab1d9)
- sovereign-forge: bypass render_prompt for multimodal messages in Sovereign Forge path (3d53f88)
- vision: multimodal sovereign forge routing and resize test helper (18529c1)
- vision: multimodal sovereign forge routing and resize test helper (946dcd2)
- vision: send raw messages to sovereign forge for multimodal requests; bump max_tokens default to 2048 (eeabb44)
- vision: send raw messages to sovereign forge for multimodal requests; bump max_tokens default to 2048 (a65a04f)
- analytics: add stack insights script with CI noise subtraction and real user pull estimation (c3e3f38)
- deployment: add update_deployment method with partial patch support (6f489af)
- deployment: add update_deployment method with partial patch support (19768e8)
- inference: wire all vLLM hyperparam DB columns through _deploy and VLLMDeployment.init (28f9d98)
- inference: wire all vLLM hyperparam DB columns through _deploy and VLLMDeployment.init (126740a)
- inference: wire all vLLM hyperparam DB columns through _deploy and VLLMDeployment.init (8d6246c)
- inference: wire all vLLM hyperparam DB columns through _deploy and VLLMDeployment.init (ff68cb7)
- perf: replace C delta_normalizer with Rust via PyO3 (5d9f9a8)
- router: wire hyperparam kwargs into activation endpoints, add PATCH update endpoint (67ba8b0)
- router: wire hyperparam kwargs into activation endpoints, add PATCH update endpoint (9e76b90)
- vision: Force rebuild (fa131f3)
- vision: Force rebuild (c5cad79)
- vision: sovereign multimodal pipeline — inference_worker, vllm_raw_stream, deployments_router fully integrated (5a1ba33)
- vision: sovereign multimodal pipeline — inference_worker, vllm_raw_stream, deployments_router fully integrated (813ecb8)
- vision: sovereign multimodal pipeline + API-driven hyperparam overrides (50a3eb6)
- vision: sovereign multimodal pipeline + API-driven hyperparam overrides (6c82849)
1.37.0 (2026-04-15)
- context: bypass hydrate_messages for file_id-backed image attachments (2fe6f0c)
- inference: read VLLM_DEFAULT_MAX_MODEL_LEN and VLLM_DEFAULT_GPU_MEM_UTIL from env (33a5c48)
- inference: read VLLM_DEFAULT_MAX_MODEL_LEN and VLLM_DEFAULT_GPU_MEM_UTIL from env (cb34d1b)
- restore deployment_service.py (accidentally overwritten with inference_worker) (2d6c9df)
- restore deployment_service.py (accidentally overwritten with inference_worker) (ac7463b)
- sovereign-forge: bypass render_prompt and use _http_stream for multimodal dispatch (49ab1d9)
- sovereign-forge: bypass render_prompt for multimodal messages in Sovereign Forge path (3d53f88)
- vision: multimodal sovereign forge routing and resize test helper (18529c1)
- vision: multimodal sovereign forge routing and resize test helper (946dcd2)
- vision: send raw messages to sovereign forge for multimodal requests; bump max_tokens default to 2048 (eeabb44)
- vision: send raw messages to sovereign forge for multimodal requests; bump max_tokens default to 2048 (a65a04f)
- deployment: add update_deployment method with partial patch support (6f489af)
- deployment: add update_deployment method with partial patch support (19768e8)
- inference: wire all vLLM hyperparam DB columns through _deploy and VLLMDeployment.init (28f9d98)
- inference: wire all vLLM hyperparam DB columns through _deploy and VLLMDeployment.init (126740a)
- inference: wire all vLLM hyperparam DB columns through _deploy and VLLMDeployment.init (8d6246c)
- inference: wire all vLLM hyperparam DB columns through _deploy and VLLMDeployment.init (ff68cb7)
- perf: replace C delta_normalizer with Rust via PyO3 (5d9f9a8)
- router: wire hyperparam kwargs into activation endpoints, add PATCH update endpoint (67ba8b0)
- router: wire hyperparam kwargs into activation endpoints, add PATCH update endpoint (9e76b90)
- vision: Force rebuild (fa131f3)
- vision: Force rebuild (c5cad79)
- vision: sovereign multimodal pipeline — inference_worker, vllm_raw_stream, deployments_router fully integrated (5a1ba33)
- vision: sovereign multimodal pipeline — inference_worker, vllm_raw_stream, deployments_router fully integrated (813ecb8)
- vision: sovereign multimodal pipeline + API-driven hyperparam overrides (50a3eb6)
- vision: sovereign multimodal pipeline + API-driven hyperparam overrides (6c82849)
1.36.0 (2026-04-11)
- deployments: change list and deactivate_all route from empty string to slash (a4e1a59)
- deployment: use resources_total for GPU check when no active deployments (3b74553)
- docker: add libc6-dev to rust_builder stage for linking (f51149a)
- entities: restore entities_api app.py — training app was mistakenly injected during license notice addition (8fd71f2)
- inference-resolver: join BaseModel table for HF path lookup; support dep PK, bm_ ID, ftm_ ID and bare HF endpoint string (269f9a6)
- inference: pass --node-ip-address to ray start for Tailscale cluster networking (0829625)
- inference: persist tailscale state to volume mount instead of ephemeral /tmp (cb10d55)
- inference: self-configure NODE_IP from Tailscale and fix worker GCS port to 6379 (3c7f597)
- inference: set RAY_NODE_IP_ADDRESS env var for Tailscale cluster networking (f61a175)
- migrations: update alembic env.py Base import from projectdavid_common.projectdavid_orm.base to projectdavid_orm (16170f9)
- nginx: add /v1/deployments/ route to training_api:9001 (3f58110)
- orm: declare Base locally in models.py — remove dependency on projectdavid_common.projectdavid_orm.base (8e73e5d)
- platform: add commercial sustainability notice to runtime startup (56410ff)
- platform: add commercial sustainability notice to runtime startup (b96b2f1)
- router: bump rust base image to 1.85 for edition2024 support (1a0c54e)
- router: bump rust base image to 1.86 for icu crate compatibility (fd4996d)
- truncator: degrade gracefully to char-based estimate when no tokenizer cache available — local_files_only=True, None-safe count methods, airgap safe (0028b2d)
- version: delete version,py (e2a4754)
- ci: add router image builds and platform repo auto-update on main (349ab84)
- ci: auto-update staging repo docker-compose.yml after successful dev build (90132ff)
- ci: auto-update staging repo docker-compose.yml after successful dev build (2b51fa9)
- inference: NODE_IP and Tailscale cluster networking strictly opt-in via env vars (2ebce34)
- infra: add rust_builder stage to Dockerfile, update dockerignore (d1cd17b)
- perf: Phase 2 — Rust SSE framer in stream_generator hot path (c205c64)
- perf: Phase 3 — Rust request router (pd_router) (701448c)
- perf: replace C delta_normalizer with Rust via PyO3 (143f189)
- training: add DeploymentService and deployments router, fix Ray entrypoint (caa288a)
- training: add DeploymentService and deployments router, fix Ray entrypoint (021fbd4)
- Revert "docs(security): update SECURITY.md for SDK v1.96.5" (c980f28)
- Revert "docs(security): update SECURITY.md for SDK v1.96.5" (9a17d53)
1.35.0 (2026-04-07)
- inference: join Ray cluster as worker node when RAY_ADDRESS is set (6c0d65b)
1.34.0 (2026-04-06)
- dev-compose: pass HF_TOKEN and HF_HUB_OFFLINE to inference and training workers (90fa085)
1.33.2 (2026-04-06)
- inference-worker: start Ray HEAD via CLI to explicitly bind client server port 10001 (91f1826)
1.33.1 (2026-04-06)
- inference-worker: explicitly start Ray client server on port 10001 for worker node connectivity (1decb23)
1.33.0 (2026-04-06)
- inference-worker: add GatewayPorts yes to sshd config for reverse tunnel support (3e95d23)
1.32.0 (2026-04-06)
- inference-worker: add openssh server and authorized key for ssh tunnel support (d945af4)
1.31.5 (2026-04-06)
- inference-worker: restore userspace-networking and remove set -e to prevent tailscale errors killing entrypoint (0ef6068)
1.31.4 (2026-04-06)
- inference-worker: add NET_ADMIN and tun device to dev compose generator (f6db16a)
- inference-worker: update entrypoint comment to reflect kernel-mode Tailscale (dd17ce1)
1.31.3 (2026-04-06)
- inference-worker: clean up Dockerfile remove broken cache bust line (6704861)
1.31.2 (2026-04-05)
- inference-worker: remove node_ip_address from ray.init HEAD path (cabed30)
1.31.1 (2026-04-05)
- inference-worker: bust CI cache to force inference_worker.py rebuild (785f240)
1.31.0 (2026-04-05)
- inference-worker: add Tailscale mesh support for remote worker nodes (57216a8)
- inference-worker: add Tailscale mesh support for remote worker nodes (37abc4f)
1.30.10 (2026-04-05)
- inference-worker: guard node_ip_address to HEAD node path only (cf123d1)
1.30.9 (2026-04-05)
- inference-worker: respect RAY_NODE_IP_ADDRESS env var in ray.init() (bb15ecd)
1.30.8 (2026-04-05)
- deps: relax internal package pins to minimum version constraints (99ae2a7)
- deps: relax internal package pins to minimum version constraints (21dd1ab)
- deps: relax projectdavid SDK pin to minimum version constraint (4beccd9)
- imports: trim projectdavid_orm imports to core API surface (d0a9891)
1.30.7 (2026-04-04)
- training: make tokenizer pad/eos token config model-aware (4d5a932)
1.30.6 (2026-04-04)
- deps: bump projectdavid-common to 0.64.1 and projectdavid SDK to 1.96.5 Update dependency versions in pursuit of resolving check_admin_status (5d7fd1f)
1.30.5 (2026-04-04)
- imports: rename entities_api.utils to entities_api.utilities across codebase (f7291a0)
- tests: update import path from entities_api.utils to entities_api.utilities (66a7260)
1.30.4 (2026-04-03)
- make both migrations fully idempotent using safe_ddl utilities (cf4baa2)
1.30.3 (2026-04-03)
- replace DROP INDEX IF EXISTS with information_schema check in migration 02e27dca8262 (a1e9d32)
1.30.2 (2026-04-03)
- make batfish_snapshots index drops defensive in migration 02e27dca8262 (abc0887)
1.30.1 (2026-04-03)
- docker-manager: include all profiles in nuke to ensure training and ai services are torn down (4e24913)
- renderers: add missing json import to gpt_oss and any other renderer files (d50146a)
1.30.0 (2026-04-02)
- inference: complete Sovereign Forge end-to-end routing chain (db53110)
- inference: complete Sovereign Forge routing — resolver ID lookup, URL passthrough, VLLMDeployment SSE streaming (a522cf8)
- inference: correct deployment ID resolution for Sovereign Forge models (3b42e5d)
- remove node_id writes from activate_model and deactivate_all_models to avoid compute_nodes FK constraint (32caca2)
- inference: expand CHAT_TEMPLATE_REGISTRY to all major open-weight model families (2292846)
- resolve bm_... ID to HF endpoint in vLLM spawn, admin bypass for model activation (8c5f7ad)
- resolve HF path to bm_... ID in activate_model via RegistryService, make user_id optional for admin bypass (89a3e78)
- sovereign forge activation pipeline — ModelRegistryService class, bm_... ID resolution, host path volume mounts for vLLM, admin bypass for user-scoped models, capacity guard on activation (aa99ff7)
- sovereign-forge: inference pipeline overhaul — vLLM OOM fix, activation/deactivation stress tests, router bug fixes, Ray cluster integration, and admin docs (c9f4a7c)
1.29.1 (2026-03-31)
- suppress Ruff E402 for unsloth_train.py — sovereignty guard requires pre-import env setup (0498edf)
1.29.0 (2026-03-31)
- add /v1/registry/ location block to nginx config for training API routing (6f0325e)
- add isort profile and known_third_party to resolve CI import ordering (5b69e69)
- add worker.py to isort skip list in CI workflow (54b534c)
- correct docker import position and remove inline comment for isort compliance (8b5f459)
- move docker import to correct isort group in worker.py (3184de2)
- move docker import to correct isort group in worker.py (4319ff2)
- pin typer==0.9.0 and click==8.1.7, fix create_user integration test (8de94ff)
- pin typer==0.9.0 and click==8.1.7, fix create_user integration test (4ceb12f)
- pin typer==0.9.0 and click==8.1.7, fix create_user integration test (77a0c18)
- remove inline comment from docker import to resolve isort ordering (1df0aff)
- remove node_id from FineTunedModel insert to avoid compute_nodes FK constraint (42fc80f)
- remove remote image refs from training services in compose generator (7468c6e)
- skip worker.py in isort — Ray serialization requires non-standard import ordering [issue: fix-worker-isort] (b6054e3)
- use docker compose profiles for training/gpu service activation in docker_manager (c2b2c1c)
- --training flag starts vllm without ollama via _extra_services (5a80dc2)
- add --training, --gpu, --ollama, --vllm overlay flags to docker_manager CLI (4a91af6)
- add max_tokens, fix float columns, drop batfish_snapshots (881d711)
- add max_tokens, top_p, and temperature to assistant cache payload. Bump toprojectdavid[text-embeddings]==1.94.0 (795106d)
- add sovereignty guard to unsloth_train.py — enforce HF_HUB_OFFLINE to prevent runtime model downloads (25ae45c)
- interactive Ray cluster join walkthrough on first --training invocation (225429f)
- propagate max_tokens, top_p, and temperature from assistant cache to inference workers (38606ef)
- propagate max_tokens, top_p, and temperature from assistant cache to Ollama stream inference (d984971)
- propagate max_tokens, top_p, and temperature from assistant cache to vLLM stream inference (47056d7)
- propagate max_tokens, top_p, and temperature from assistant cache to vLLM stream inference (b16b5d6)
- remove vllm from --training flag, DeploymentSupervisor manages vllm lifecycle (745064b)
1.29.0 (2026-03-29)
- pin typer==0.9.0 and click==8.1.7, fix create_user integration test (8de94ff)
- pin typer==0.9.0 and click==8.1.7, fix create_user integration test (4ceb12f)
- pin typer==0.9.0 and click==8.1.7, fix create_user integration test (77a0c18)
- add max_tokens, fix float columns, drop batfish_snapshots (881d711)
- add max_tokens, top_p, and temperature to assistant cache payload. Bump toprojectdavid[text-embeddings]==1.94.0 (795106d)
- propagate max_tokens, top_p, and temperature from assistant cache to inference workers (38606ef)
- propagate max_tokens, top_p, and temperature from assistant cache to Ollama stream inference (d984971)
- propagate max_tokens, top_p, and temperature from assistant cache to vLLM stream inference (47056d7)
- propagate max_tokens, top_p, and temperature from assistant cache to vLLM stream inference (b16b5d6)
1.28.1 (2026-03-28)
- pin typer==0.9.0 and click==8.1.7, fix create_user integration test (8de94ff)
- pin typer==0.9.0 and click==8.1.7, fix create_user integration test (4ceb12f)
- pin typer==0.9.0 and click==8.1.7, fix create_user integration test (77a0c18)
1.28.0 (2026-03-27)
- add nosec markers for bandit 1.9.4 new checks and pin bandit version in CI (0325a62)
- Resolve Ruff (F821): src/api/training/routers/init.py#L13 (7ea997b), closes src/api/training/routers/init.py#L13
- add base model registry API (schemas, service, router) (922d9f3)
- implement smart database URL mapping for local development (ebe3083)
- replace ensure_schema with Alembic for schema management (eb415b1)
1.28.0 (2026-03-27)
- add nosec markers for bandit 1.9.4 new checks and pin bandit version in CI (0325a62)
- Resolve Ruff (F821): src/api/training/routers/init.py#L13 (7ea997b), closes src/api/training/routers/init.py#L13
- add base model registry API (schemas, service, router) (922d9f3)
- implement smart database URL mapping for local development (ebe3083)
- replace ensure_schema with Alembic for schema management (eb415b1)
1.27.1 (2026-03-24)
1.27.0 (2026-03-24)
- replace Alembic runtime migrations with ensure_schema (b176a45)
1.26.6 (2026-03-24)
- replace Alembic runtime migrations with ensure_schema() (d8da494)
1.26.5 (2026-03-24)
- resolve API crash-loop and MySQL 1824 constraint errors (83f491c)
1.26.4 (2026-03-24)
- resolve API crash-loop and MySQL 1824 constraint errors (8e8fd42)
1.26.3 (2026-03-24)
- resolve MySQL 1824 error by implementing idempotent baseline (e436231)
1.26.2 (2026-03-24)
- resolve FK ordering failure in add_fine_tuning_tables (7de8ed1)
-
Critical: First-run stack failure on clean installs
On a fresh installation with no existing database, the API container would crash-loop during database migration with:
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError)
(1824, "Failed to open the referenced table 'users'")
Root cause: Migration 005820173bc4 (add_fine_tuning_tables) was
on a branch that did not pass through the baseline schema migration
that creates the users table. MySQL InnoDB enforces foreign key
constraints at CREATE TABLE time, so the datasets, training_jobs,
and fine_tuned_models tables could not be created.
Fix: Added depends_on = "9351530d20ab" to the migration,
forcing Alembic to resolve the merge point (which includes the
baseline schema) before executing fine-tuning table creation.
Affected: Clean installs only. Existing deployments with a
populated database volume are not affected — the migration guard
(has_table) skips table creation if the tables already exist.
pip install --upgrade projectdavid-platform
pdavid --mode up --pullIf your stack failed to start on first run, the volumes will be empty. A clean restart is sufficient — no data recovery needed:
pdavid --mode down_only --clear-volumes
pdavid --mode up --pull1.26.1 (2026-03-24)
- resolve FK ordering failure in add_fine_tuning_tables (7030c4f)
1.26.0 (2026-03-23)
- Phase 2 — replace MySQL VRAM ledger with Ray resource scheduling (733c7eb)
- Phase 2 — replace MySQL VRAM ledger with Ray resource scheduling (21acbd6)
- Phase 3 — Ray task execution and DeploymentSupervisor actor (1fe6e61)
- Phase 3 — Ray task execution and DeploymentSupervisor actor (adf9719)
- Release (3130181)
- ReleaseX (40fed5a)
- wire tensor_parallel_size into activation endpoints (86b0990)
- wire tensor_parallel_size into activation endpoints (d8ad4cc)
1.25.0 (2026-03-22)
- change samba hostname in docker-compose.yml from -->samba_server-->samba (2b2d9ce)
- conftest.py errors (dc8dc35)
- conftest.py errors (44e8c9a)
- RUF errors. (a010658)
- add
forceflag togenerate_dev_docker_composefor overwrite control and update generated compose files and secrets (baf943a) - add cluster management, node telemetry, and VRAM-aware scheduling (be8294b)
- add datasets router, JWT-based authentication, and multi-stage build for Training API (d429a9f)
- add fine-tuned model registry API, service logic, and integration tests (1a923b2)
- add fine-tuning pipeline with Dataset, TrainingJob, and FineTunedModel tables (56a4632)
- add fine-tuning support with new database tables and models for datasets, training jobs, and fine-tuned models (7d6ccc0)
- add fine-tuning table schemas, update Alembic migration, and extend Docker Compose for training services (7cd4021)
- add self-hosted fine-tuning container with Axolotl and Unsloth support, including Dockerfile, training scripts, and entrypoint (abafa7a)
- add training jobs router, service logic, and integration tests (dc96d3c)
- data drive vllm cluster (72caf8d)
- document fine-tuning pipeline architecture, endpoints, and implementation details (53c99dc)
- extend Docker Compose with new services, default handling, and improved generation logic (6dfc5aa)
- implement dataset service with CRUD operations, Samba integration, and dataset preparation logic (2c75b2d)
- implement dataset service with CRUD operations, Samba integration, and dataset preparation logic (2d59c10)
- implement dataset service with CRUD operations, Samba integration, and dataset preparation logic (c7fc414)
- improve dataset preprocessing with Samba integration and Nginx fixes (edf3bcf)
- improve dataset preprocessing with Samba integration and Nginx fixes (7738cf9)
- integrate training worker, Redis-based job queue, and fine-tuning status cache with expanded dependency handling (85dcb1b)
- introduce Training Service API with FastAPI, updated Dockerfile, and dependencies for fine-tuning REST operations (1b20898)
- introduce Training Service API with FastAPI, updated Dockerfile, and dependencies for fine-tuning REST operations (aa11327)
- protect training and model files during purge, add fine-tuning integration tests (05fef00)
- rebuild the worker.py (13aae1b)
- refactor Docker Compose generation, streamline training services configuration, and enhance Docker Manager with Ollama support (7abef74)
- refactor Docker Compose generation, streamline training services configuration, and enhance Docker Manager with Ollama support (d8f1546)
- refactor fine-tuning table management, update schema migration, and cleanup unused model definitions (c351136)
- Release. (c2e8b41)
- Sovereign_Forge.md (ba86924)
- synch generate_dev_docker_compose (7cb299a)
- unify authentication to support Bearer tokens and X-API-Key (d5ddcef)
- vLLM hot swap (fed312d)
1.24.1 (2026-03-16)
- update build cache configuration and remove redundant Docker prune step in CI workflow (28f01a0)
1.24.0 (2026-03-16)
- remove fine-tuning pipeline and associated tables (Dataset, TrainingJob, FineTunedModel) (6771b9c)
- add fine-tuning pipeline with Dataset, TrainingJob, and FineTunedModel tables (3d4b652)
1.23.0 (2026-03-16)
- update README commands, improve token counting with safe text handling, and add guard for empty inputs (46a645f)
- implement admin check utility and enhance access control logic (062896d)
1.22.1 (2026-03-15)
- enable Docker build cache export and remove redundant prune step in CI workflow (b07c3bf)
1.22.0 (2026-03-15)
- implement admin check utility and enhance access control logic (57ac673)
1.21.1 (2026-03-15)
- rename
SPECIAL_DB_URLtoDATABASE_URLfor consistency (a86e353)
1.21.0 (2026-03-15)
- Resolve issue in n 741d86dd5ac8. (e2b6a36)
1.20.0 (2026-03-14)
- add guards for missing tables in FK creation and enhance safe-DDL logic for constraints (c4a569d)
- remove redundant blank lines in
bootstrap_admin.py(73d1fd9) - replace
docker_managerwith simplifiedgenerate_docker_composefor dev-friendly configurations (e4a6d4f)
- add initial NGINX configuration for FastAPI upstream, WebSocket support, and Jaeger UI proxy (c697385)
1.20.0 (2026-03-14)
- add guards for missing tables in FK creation and enhance safe-DDL logic for constraints (c4a569d)
- replace
docker_managerwith simplifiedgenerate_docker_composefor dev-friendly configurations (e4a6d4f)
- add initial NGINX configuration for FastAPI upstream, WebSocket support, and Jaeger UI proxy (c697385)
1.19.8 (2026-03-14)
- enhance migrations with deferred FK creation, safe column alterations, and improved table guards (85aed8e)
1.19.7 (2026-03-14)
- enhance migrations with safe helpers, remove deprecated patterns, and guard against missing resources (f66ec23)
1.19.6 (2026-03-14)
- add safe index creation and deletion helpers to safe_ddl utilities (8c5fc91)
- expand CI workflow to include testing, coverage, and Docker image build/publish steps (289c984)
- simplify CI workflow, consolidate dependency installation, and clean up comments (cc76525)
- streamline workflows for linting, testing, releasing, and publishing to PyPI (0d8be0b)
1.19.5 (2026-03-14)
- add guards for missing tables/columns in migrations and enhance safe-DDL usage for indices, constraints, and FKs (ff59ebd)
1.19.4 (2026-03-14)
- add automatic multimodal message normalization for OpenAI compatibility in DefaultBase and GptOssBase workers (b3f5647)
- add interactive
configurecommand, improve HF_TOKEN handling, and eliminate static placeholder secrets (a89bea2) - enforce Hyperbolic's single-image constraint, update integration tests, refactor multimodal normalization, and bump projectdavid to 1.77.6 (568c03a)
- enforce secure secret generation, add HF_TOKEN validation, and improve HuggingFace cache path resolution (de579c3)
- migrate
generate_docker_compose.pytodocker_manager.py, add interactive .env management, validate secrets, improve Docker configuration and HuggingFace support (7adad40) - restructure integration tests, add Ollama and Hyperbolic multimodal SDK tests, and enhance Qwen worker NLP support (0c8f71e)
1.19.3 (2026-03-14)
- add automatic multimodal message normalization for OpenAI compatibility in DefaultBase and GptOssBase workers (680c059)
- enforce Hyperbolic's single-image constraint, update integration tests, refactor multimodal normalization, and bump projectdavid to 1.77.6 (4af8512)
- restructure integration tests, add Ollama and Hyperbolic multimodal SDK tests, and enhance Qwen worker NLP support (82cd1ff)
1.19.2 (2026-03-13)
- bump projectdavid to version 1.76.2 in requirements files (6fa5489)
- bump projectdavid to version 1.76.2 in requirements files (92b5e64)
- cut back multi-modal message change (534bc11)
- cut back multi-modal message change (8ae8326)
- refactor multimodal handling in vLLMRawStream, improve content merging logic, and enhance conversation truncation (910ec19)
- refactor multimodal handling in vLLMRawStream, improve content merging logic, and enhance conversation truncation (3ebc5da)
- remove obsolete SSEManager and cleanup import formatting in multiple files (86718a2)
- remove obsolete SSEManager and cleanup import formatting in multiple files (2728e30)
1.19.1 (2026-03-12)
- bump projectdavid to version 1.76.2 in requirements files (6be28da)
- cut back multi-modal message change (6309353)
1.19.0 (2026-03-12)
- Optimize the FastAPI Endpoint Bridge (4ea9408)
- Update client to projectdavid==1.39.8 (1a47dd0)
- _set_up_context_window ← async, called from stream() (1629b54)
- Add block that peforms (110ef78)
- Add decision telemetry to the main DB (42b0dac)
- Add decision_telemetry param to _set_up_context_window (fc32423)
- Add deep_research toggle to the assistant_cache.py (2d4686a)
- Add delegate_engineer_task to delegate_engineer_task (250ec12)
- Add delete_ephemeral_thread class attribute. (302ea82)
- Add ephemeral clean up. (ed8788c)
- add GITHUB_TOKEN parameter to checkout steps in CI workflow (3333241)
- add missing function call formatting instructions to L4_SENIOR_ENGINEER_INSTRUCTIONS (b40eed5)
- Add missing tools to the PLATFORM_TOOLS list. (ee48c7e)
- Add model compatibility table (a688993)
- add NetworkInventoryMixin to mixins (f8a3bbc)
- Add new Quen models to SUBMODEL_CLASS_MAP in TogetherAI handler. (3a57300)
- Add new Quen models to SUBMODEL_CLASS_MAP in TogetherAI handler. (3f9a3dd)
- add status messages to web_search_mixin.py (9c4c168)
- add status messages to web_search_mixin.py (0799a90)
- Add structured function call, with tool_call ID to DeepSeek dialogue (14e79c9)
- Add support for unicode function calls in delta_normalizer.py (fd3576f)
- Add tool inventory mixin to tool routing. (de5004d)
- Add tool name to tool output metadata (981e5ac)
- Add TOOL_DECISION_PROTOCOL to CORE_INSTRUCTIONS (70d97f3)
- Add URL support for code execution generated files (efb3b2e)
- Alembic Revision ID: ce0a8a7e9d41 (3751662)
- align worker ScratchpadEvent intercept payload with _scratchpad_status() contract (347cc23)
- align worker ScratchpadEvent intercept payload with _scratchpad_status() contract (3cbb759)
- await handle_file_search instead of async iterating (dc97f02)
- back out from clean up block change in delegation_mixin.py (743a746)
- back out of project The Engineer changes. (51efb5b)
- broken google worker import (7d83f90)
- bubble worker ScratchpadEvents through senior stream (71f1609)
- catch cold-load timeout on new ephemeral threads (c0c2a66)
- catch cold-load timeout on new ephemeral threads (70f8911)
- change method list_thread_messages to get_formatted_messages (67d142f)
- clean up obsolete code and replace bare
exceptusage for consistency (a92430f) - code-interpreter: resolve syntax normalization errors and prevent system prompt leakage (5d493ed)
- code-interpreter: suppress raw errors from consumer stream; route via activity messages (8159a13)
- Consolidate SUBMODEL_CLASS_MAP in HyperbolicHandler (40118cf)
- Consolidate SUBMODEL_CLASS_MAP in TogetherAIHandler (ef55252)
- correct decision_payload typo in Actions.create call in code_execution_mixin.py (8d88eec)
- correct decision_payload typo in Actions.create call in shell_execution_mixin.py (f8d3e2f)
- correct enable_decision_telemetry typo (cb9af30)
- correct enable_decision_telemetry typo (b29c466)
- correct named argument issue in scratchpad_mixin.py. The * means all arguments after self must be passed as keyword arguments, not positional arguments (433d7c6)
- cut back to a non validated return model in the return from get_pending_actions (4dbc78e)
- Cut back to specific DeepSeek Stream worke (58376dd)
- Cut over /together-ai models to TogetherHermesDefaultWorker (c64fd77)
- Cut over /together-ai models to TogetherHermesDefaultWorker (28aab2e)
- Cut over deepseek_base.py to self._execute_stream_request client. (cebac81)
- Cut over deepseek_base.py to self._execute_stream_request client. (df6cff8)
- Cut over Quen Worker to level 3 assistant! (e9681bb)
- Decouple and align JSON key mapping for DelegationMixin status events (ddd5d80)
- Default False = Use Redis Cache (Efficient). (c5631c0)
- delete api/code_execution_service.py (3366dfc)
- delete async_client.py. (9c1ca9f)
- delete concrete steam method from llama worker class (44e154d)
- delete defunct event handling service. (30c0db5)
- delete old /inference dir. (baa5c2e)
- delete old_hb_gpt_oss.py (6c803b0)
- delete redundant code execution file handling instructions. (5a37451)
- delete tools_router.py (fe7a408)
- delete tools.py (0a739f9)
- eliminate internal SDK HTTP round-trips across assistant layer (7599bcf)
- eliminate internal SDK HTTP round-trips across assistant layer (b31a660)
- enforce recursive troubleshooting and prevent speculative diagnosis in SE_ANTI_STALL (2944385)
- enforce scroll limits and search-first gate to prevent doom-scrolling (015eca9)
- Engineering instructions locked down! (44acb05)
- Engineering instructions locked down! (d59e6c9)
- enhance Level 3 recursion and fix web state MRO issues (ff25f66)
- ensure
user_idis passed in thread operations for ownership validation (46be1b5) - filter "<|channel|>analysis" (a5dd32a)
- Fix computer tool, crashing the stream issue (8c60c81)
- fix(files): resolve signed url download 401 error and path duplication (1d3ae6d)
- function call response issues (2b6086f)
- function calls correctly set and parsed in gpt oss (8b276d7)
- gpt-oss function call 2nd turn issue (524b693)
- GPT-oss level 3 compliant. (d9e4b24)
- GPT-oss level 3 compliant. (2872954)
- GPT-oss level 3 compliant. (c01a740)
- gpt-oss-worker: preserve ephemeral supervisor identity during DB persistence (56d54e9)
- hermes-worker: preserve ephemeral supervisor identity during DB persistence (dc0ef86)
- housekeeping daemons for expired runs and thread cleanup (9ea441f)
- Implement cache invalidation for assistants cached_assistant (7f4d3c5)
- Implement DecisionEvent type (1992583)
- Implement dotenv for secrets in alembic .env.py (a437017)
- Implement Hermes style function call dialogue structuring for DeepCognito models (2a28d79)
- Implement Hermes style function call dialogue structuring for DeepCognito models (3ea46d8)
- Implement level 2 recovery for platform tools. (ca48507)
- implement level 3 instructions_assembly.py (0f24f94)
- Implement native tool call response for gpt-oss Hermes class models. (6846044)
- Implement native tool call response for llama. (610b4ed)
- implement native tool calling on Quen Model calls. (6347d12)
- Implement new action state signalling. Previously the client end had to use ActionService.get_pending_actions in a constant poll from the client side before the client new that a run had an action to service. This was cumbersome , slow, and caused needless churn on the DB. The new method propagates the action.id direct to the client side via a manifest payload as soon as the action is created. (14c1066)
- implement new architecture for hot_code. Complex parsing and replay from each worker is needless when hot_code can be replayed direct from the handler. (e49ea75)
- implement new instruction hirarchy for _build_system_message (fafd1c5)
- implement new instruction hirarchy for _build_system_message (5c01a9d)
- Implement new scripts (2ba916a)
- implement process_hot_code_buffer in CodeExecutionMixin. (e7d5db7)
- implement Senior/Junior agent duo with full inventory resolution (d84cf6b)
- Implement serp search tool. (4c3d5aa)
- Implement structured tool call detection for gpt-oss (4c6934d)
- Implemented the Stream method as a concreate class in the base orchestrator_core.py. Should greatly increase the speed of model onboarding! (f775bc0)
- import PLATFORM_TOOLS from common library (89dd4c0)
- Improve code intepreter file generation instructions. (7b5f18a)
- improve exception handling and cleanup redundant code (9987132)
- Improve speed and smoothness of streaming. (0e16437)
- Improve speed and smoothness of streaming. (b3e9191)
- improve variable naming in exception handling logic in
fix_ruff.py(6f89aa5) - Integrate save dll rendering functions ino alembic . We no longer have to manually refactor auto generated alembic scripts. (0516264)
- issue with hyperbolic/DeepSeek data flow (4b7a0e5)
- issue with oss reasoning chunks (9c4e88f)
- issue with oss reasoning chunks (d228581)
- JsonUtilsMixin update. (c73cd3f)
- Major speed improvements in inference. (dc06f29)
- Make assistant.tools as the source of truth for the assistants tools array (fd05c4e)
- Migrate all TogetherAI workers to unifed asynch client (9f088e4)
- Migrate all workers to decision telemetry algorithm. (bb29acb)
- Migrate b697008df93a (4c12971)
- Migrate DB dda6fd28f45c (4e65be6)
- Migrate deepseek_base.py to asynchronous mode. (5205f0a)
- Migrate deepseek_base.py to asynchronous mode. (5fdc74b)
- Migrate default_base.py.py to asynchronous mode. (e878fb6)
- Migrate GPT-oss worker to home brew client, works! (ae862c8)
- Migrate hermes_type_default_base.py to asynchronous mode. (82ed344)
- Migrate nvidia_base.py.py to asynchronous mode. (abf1171)
- migrate quen_base.py to the new function call architecture (f1c9bae)
- Migrate qwen_base.py to asynchronous mode. (0bc71e9)
- Migrate service_now_base.py to asynchronous mode. (baeb2ea)
- Migrate to json status events (21cb9cb)
- migrate to native execution and fix cache initialization (2ef44f8)
- Migrate to new base worker arhitecture (69f0b02)
- Migrate to new message cache architecture (435bdd9)
- Migrate to new singleton client (150ecee)
- Migrate to new singleton client (13713d4)
- migrate to projectdavid client 1.67.1 (f803de5)
- Migrate to projectdavid v1.42.0 (eaa467c)
- Migrate to projectdavid v1.42.0 (eabb4f3)
- Migrate to projectdavid==1.49.1 (e603321)
- migrate tool mixins to native execution service (02d75f2)
- migrate web tool execution to NativeExecutionService (e3fde1b)
- Move assistant cache setup to core Class (52d4be8)
- Move assistant cache setup to core Class (de54203)
- Move AsyncHyperbolicClient to client factory. (9ba074c)
- move cache_utils.py and cached_assistant.py --> /cache (11e435a)
- Move unified_async_client.py to /clients package (726d73d)
- Once and ephemeral supervisor has run, the assistants cache must be cleared and reinitiated so that the latest persona is the cache to avoid context and tool contamination. (b85cce2)
- order senior Engineers tools. (8d51d4a)
- orphaned-thread purge daemon for GDPR compliance (1bb0157)
- pass
user_idfor ownership validation in run operations (49a090f) - pass snapshot_id to refresh_snapshot, not snapshot_name (8d7c2e3)
- phantom file generation issue in CodeExecutionMixin (f3d7f44)
- pin tempfile output dir in CODE_FILE_HANDLING system instruction (f49f5cf)
- preserve ephemeral supervisor identity during DB persistence (6debbf9)
- Push ac1498a9642c_remove_tools_table_and_associations.py (495fa01)
- record_tool_decision.py (e15cf1e)
- refactor _resolve_and_prioritize_platform_tools with new silent tool mandatory_platform_tools (fdeb54c)
- Reinstated partial code_interpreter instructions to _build_native_tools_system_message (694a3fa)
- remove
model_compatibility_report.mdand bumpprojectdavidto v1.74.7 (a8423bf) - remove
vector_store_assistantsrelationship and updatemessagesconstraints (afb9c54) - remove assistant_id from engineer router endpoints (7e66173)
- remove assistant_id from engineer router endpoints (9d7d708)
- remove Codecov step from CI workflow and simplify Pytest coverage configuration (4358043)
- remove Codecov step from CI workflow and simplify Pytest coverage configuration (937b704)
- remove Codecov step from CI workflow and simplify Pytest coverage configuration (2f58759)
- remove Codecov step from CI workflow and simplify Pytest coverage configuration (3ac11e3)
- Remove device inventory instructions from SE_TRIAGE_PROTOCOL (45bca41)
- Remove device inventory tools from the senior engineers tool registry. (b1b7c00)
- Remove duplicate api arg from worker signature. (e5f1356)
- Remove hot_code handling from Quen worker! (447b8a6)
- Remove local curl searches from main api (336c4f6)
- remove obsolete integration test file (4060a98)
- Remove Tools table from models.py (f073286)
- replace bare
exceptwithexcept Exceptionand clean up redundant imports (279fe56) - replace unattended_file_search with _search_vs_async (1b816d5)
- resolve 500 error on engineer inventory ingest (d87c744)
- resolve 500 error on engineer inventory ingest (fdd33ae)
- resolve all deep search issues (e354cfc)
- resolve batfish snapshot ownership across Senior/Junior worker boundary (c4b252d)
- resolve batfish snapshot ownership across Senior/Junior worker boundary (3613180)
- resolve batfish snapshot ownership across Senior/Junior worker boundary (eecbab0)
- Resolve computer tool auth token issues. (a9c2074)
- Resolve computer tool auth token issues. (8426ac7)
- resolve computer tool dispatch and SDK action call regressions (777c391)
- resolve computer tool dispatch and SDK action call regressions (85604c6)
- Resolve deepseek_base.py and child issues. (153d073)
- Resolve forward stream delay issue (09deac8)
- Resolve GPT oss streaming issue by creating an instance of _get_client_instance, not OpenAI (ab14433)
- Resolve gpt-oss-120b reasoning tokens not generating issue. (a78e11c)
- Resolve gpt-oss-120b reasoning tokens not generating issue. (90bc1c4)
- Resolve handover issues (297dcee)
- Resolve hyperbolic/meta-llama- models function calling issues. Previously, the model did not respond to the first turn. This was due to passing in the tool call array in the request payload. (3e19625)
- resolve identity swap failures, worker flag extraction, and SDK reliance (322cceb)
- Resolve issues with fc call polling. (a85af1d)
- Resolve ongoing issues with consumer side function call handling race condition (32826ea)
- Resolve ongoing issues with consumer side function call handling race condition (f2e6e88)
- Resolve the issue contaminating the research supervisors context with unwanted tools (07df062)
- Resolve Threads relationship issue in models.py (2943b62)
- restore assistant_id ownership to process_conversation (bc91e55)
- Restore gpt-oss hot code interleave. (9d00699)
- Restore real time streaming of research workers output (8c73d6b)
- resurrect soft-deleted snapshots on create instead of raising 409 (8c2abaf)
- Run model intake reports (cc149e7)
- Run model intake reports (dfeb5ab)
- smarter Turn 2 prompt + anti-loop failure handling (6e9dfc3)
- stamp scratchpad thread id in the junior research assistants run object. (a5de48b)
- standardise WebEvent emission across backend, SDK, and frontend (f92cbb4)
- streamline vector store endpoints and remove deprecated assistant relations (7673c76)
- streamline worker delegation logic and improve stream handling (8e4413f)
- strengthen ownership guards in inference router (63c3c8d)
- strictly enforce Change Request formatting and ban conversational preambles (65adabb)
- successfully ported deepseek_base.py (c8d444d)
- support dynamic
ollama_base_urlvia metadata in orchestration worker (7d3bc4c) - synchronize and alphabetize mixin imports and inheritance (e9eba55)
- synchronize and alphabetize mixin imports and inheritance (70d8aaf)
- synchronize worker classes with Qwen gold standard logic (678b13c)
- Temporarily remove status event messaging from shell_execution_mixin.py (0a2c406)
- Temporarily remove status event messaging from shell_execution_mixin.py (48f2702)
- Temporarily remove status event messaging from shell_execution_mixin.py (81fda55)
- The JE and SE are hallucinating solutions, update instruction set (486e5cd)
- TogetherAI level 3 tests. (48fdff4)
- TogetherAI level 3 tests. (371569a)
- tool role tool_call_id bug (502788e)
- Tweak unified_inference_test.py (cdb38a5)
- Update client to projectdavid==1.39.4 (af886ff)
- update client to projectdavid==1.51.2 (4c21d26)
- update client to projectdavid==1.51.2 (ee0554a)
- update client to projectdavid==1.60.0 (ea9efc9)
- update client to projectdavid==1.73.0 (69803ee)
- Update delta_normalizer.py with level 3 planning protocol tags (2e3edd2)
- update GitHub Actions workflows to use latest action versions and add placeholder test file (53846af)
- update integration test scripts. (cd566c9)
- Update process_conversation with decision state handling. (f38482f)
- update projectdavid client to : 1.59.0 (8c53820)
- Update projectdavid client to projectdavid==1.66.0 (c1387c8)
- Update projectdavid client to projectdavid==1.73.1 (5f4100b)
- Update projectdavid sdk to projectdavid==1.47.5 (6149b5f)
- update to projectdavid==1.54.4 (a5b0619)
- update to projectdavid==1.60.3 (aef1a1e)
- Upgrade client to projectdavid==1.39.6 (c4b1f9f)
- Upgrade client to projectdavid==1.39.6 (bb48ceb)
- Upgrade projectdavid 1.53.0 (091a83b)
- use self.assistant_id in process_tool_calls dispatch to reflect post-swap identity (255098f)
- use self.assistant_id in process_tool_calls dispatch to reflect post-swap identity (8c41a8a)
- We must explicitly set the cwd (Current Working Directory) of the Python subprocess to self.generated_files_dir. (9fb5991)
- web_search working. (04728be)
- web_search working. (3dfd3e3)
- web_search working. (b0b9afd)
- _get_enriched_topology (0382732)
- 9314d4058f78_add_agentic_state_columns_to_assistant_.py adds some level 3 agentic components to the master DB (1c8d684)
- Add get_enriched_topology endpoint (433d300)
- Add get_enriched_topology endpoint (b3796da)
- add
owner_idtoThreadtable and enhance thread management (242bb36) - add assistant ownership validation to
completionsendpoint (aa6f2be) - add BatfishSnapshot to models (8f22a13)
- Add engineer flag (18f2a0b)
- Add Engineers to context build logic (09863ea)
- add hard-purge daemons for soft-deleted files and vector stores (7c12eea)
- add owner_id to assistants with SafeDDL guards (7591325)
- add pytest options and ignore integration tests (040ba83)
- add run_batfish_tool and run_all_batfish_tools to tool router (576c2a3)
- add tool_resources to cached assistant payload (54f0dd4)
- add viewer support for shell sessions and enhance file harvest logic (6e53b60)
- add vLLM orchestration support and documentation (c133522)
- batfish_router.py (a231f10)
- batfish_router.py (0f96559)
- complete orchestration alignment and stream_sync implementation (8cb5728)
- cut over to projectdavid==1.39.0: bringing new models online: (5a9ed31)
- deep research (6a56cc5)
- DeepSearch paradigm 2 (28403bf)
- default-worker: implement async stream_sync wrapper and queue isolation (65fd483)
- docker compose exec api alembic revision --autogenerate -m "add ID to BatfishSnapshot to models" (6573524)
- enforce ownership validation for thread operations (1c81ca9)
- enforce secure file generation with mandatory tempfile.tempdir and path confinement (4d522d6)
- engineer: bridge client and service layers for inventory tools (fc20e8a)
- enhance Docker service management with --exclude flag and improve exception handling (5897dde)
- extend
docker-compose.dev.example.ymlwith Redis, browser, SearxNG, Jaeger, Otel Collector, and Ollama services (afa7dc3) - Extend DelegationMixin for Engineering delegation. (afc3363)
- fan out across tool_resources vector stores (7f82a17)
- implement auto-cleanup of ephemeral files after streaming (ba48f7c)
- implement auto-cleanup of ephemeral files after streaming (d17465e)
- implement delegated deep search model mapping (10e27a0)
- Implement Engineering tool defs (54d1a0a)
- implement expired file cleanup utility and daemon (5584c42)
- Implement full-stack real-time Scratchpad visualization (decb876)
- implement junior engineer second turn with intercepted tool execution (89d8bbb)
- implement NetworkEngineerMixin (ba7b681)
- Implement persistent research worker thread per session. (733dcca)
- Integrate Ollama local inference into the stack. (4d21102)
- integrate Ollama local inference support into DeltaNormalizer (8e0e8c1)
- intercept Junior Engineer tool calls and emit as ToolInterceptEvent (5f9d38f)
- introduce computer_shell_netfilter and enhance shell execution lifecycle (77aeff2)
- map engineer flag during Assistant creation in AssistantService (afec101)
- migrate DelegationMixin off HTTP SDK to NativeExecutionService (a964414)
- Migrate FileSearchMixin to direct VectoreStoreManager inference. (308015b)
- move tool-call suppression logic to inference handler (8e56c5b)
- move tool-call suppression logic to inference handler (4152548)
- pass delegated model through run metadata and update workers (a76a203)
- pass inference API key through run metadata and enhance worker stream handling (ee1d410)
- port latest orchestration features and stream_sync wrapper (fb4faf5)
- prevent
docker_manager.pyfrom running inside Docker containers (86e4ee7) - publish with deep search (08f464c)
- Refactor batfish_router (a4e35a7)
- remove deprecated assistant bootstrap scripts and add DockerManager CLI scaffolding (6c8bbce)
- replace DDG SERP scrape with SearxNG meta-search engine (0d72b81)
- replace shell command execution with sequential protocol; enhance session lifecycle with sandboxing and file harvest (a89a226)
- services: map engineer flag during Assistant creation in AssistantService (e6a25de)
- soft-delete functionality for files with Recycle Bin support (a6bf1c2)
- soft-delete functionality for files with Recycle Bin support (4c33903)
- tenant-isolated snapshot pipeline with ID-first design (7c1e2bf)
- track full ordered tool dispatch log per run (4a43c00)
- unify orchestration logic, add stream_sync, and upgrade run retrieval (bda1975)
- unify orchestration logic, add stream_sync, and upgrade run retrieval (1e2bf1c)
- upgrade projectdavid SDK to projectdavid==1.37.0 (a3305b1)
- wire worker scratchpad to shared supervisor thread (5cdc43a)
- wrap inventory_cache in a service layer (49ba796)
1.19.0 (2026-03-12)
- Optimize the FastAPI Endpoint Bridge (4ea9408)
- Update client to projectdavid==1.39.8 (1a47dd0)
- _set_up_context_window ← async, called from stream() (1629b54)
- Add block that peforms (110ef78)
- Add decision telemetry to the main DB (42b0dac)
- Add decision_telemetry param to _set_up_context_window (fc32423)
- Add deep_research toggle to the assistant_cache.py (2d4686a)
- Add delegate_engineer_task to delegate_engineer_task (250ec12)
- Add delete_ephemeral_thread class attribute. (302ea82)
- Add ephemeral clean up. (ed8788c)
- add missing function call formatting instructions to L4_SENIOR_ENGINEER_INSTRUCTIONS (b40eed5)
- Add missing tools to the PLATFORM_TOOLS list. (ee48c7e)
- Add model compatibility table (a688993)
- add NetworkInventoryMixin to mixins (f8a3bbc)
- Add new Quen models to SUBMODEL_CLASS_MAP in TogetherAI handler. (3a57300)
- Add new Quen models to SUBMODEL_CLASS_MAP in TogetherAI handler. (3f9a3dd)
- add status messages to web_search_mixin.py (9c4c168)
- add status messages to web_search_mixin.py (0799a90)
- Add structured function call, with tool_call ID to DeepSeek dialogue (14e79c9)
- Add support for unicode function calls in delta_normalizer.py (fd3576f)
- Add tool inventory mixin to tool routing. (de5004d)
- Add tool name to tool output metadata (981e5ac)
- Add TOOL_DECISION_PROTOCOL to CORE_INSTRUCTIONS (70d97f3)
- Add URL support for code execution generated files (efb3b2e)
- Alembic Revision ID: ce0a8a7e9d41 (3751662)
- align worker ScratchpadEvent intercept payload with _scratchpad_status() contract (347cc23)
- align worker ScratchpadEvent intercept payload with _scratchpad_status() contract (3cbb759)
- await handle_file_search instead of async iterating (dc97f02)
- back out from clean up block change in delegation_mixin.py (743a746)
- back out of project The Engineer changes. (51efb5b)
- broken google worker import (7d83f90)
- bubble worker ScratchpadEvents through senior stream (71f1609)
- catch cold-load timeout on new ephemeral threads (c0c2a66)
- catch cold-load timeout on new ephemeral threads (70f8911)
- change method list_thread_messages to get_formatted_messages (67d142f)
- clean up obsolete code and replace bare
exceptusage for consistency (a92430f) - code-interpreter: resolve syntax normalization errors and prevent system prompt leakage (5d493ed)
- code-interpreter: suppress raw errors from consumer stream; route via activity messages (8159a13)
- Consolidate SUBMODEL_CLASS_MAP in HyperbolicHandler (40118cf)
- Consolidate SUBMODEL_CLASS_MAP in TogetherAIHandler (ef55252)
- correct decision_payload typo in Actions.create call in code_execution_mixin.py (8d88eec)
- correct decision_payload typo in Actions.create call in shell_execution_mixin.py (f8d3e2f)
- correct enable_decision_telemetry typo (cb9af30)
- correct enable_decision_telemetry typo (b29c466)
- correct named argument issue in scratchpad_mixin.py. The * means all arguments after self must be passed as keyword arguments, not positional arguments (433d7c6)
- cut back to a non validated return model in the return from get_pending_actions (4dbc78e)
- Cut back to specific DeepSeek Stream worke (58376dd)
- Cut over /together-ai models to TogetherHermesDefaultWorker (c64fd77)
- Cut over /together-ai models to TogetherHermesDefaultWorker (28aab2e)
- Cut over deepseek_base.py to self._execute_stream_request client. (cebac81)
- Cut over deepseek_base.py to self._execute_stream_request client. (df6cff8)
- Cut over Quen Worker to level 3 assistant! (e9681bb)
- Decouple and align JSON key mapping for DelegationMixin status events (ddd5d80)
- Default False = Use Redis Cache (Efficient). (c5631c0)
- delete api/code_execution_service.py (3366dfc)
- delete async_client.py. (9c1ca9f)
- delete concrete steam method from llama worker class (44e154d)
- delete defunct event handling service. (30c0db5)
- delete old /inference dir. (baa5c2e)
- delete old_hb_gpt_oss.py (6c803b0)
- delete redundant code execution file handling instructions. (5a37451)
- delete tools_router.py (fe7a408)
- delete tools.py (0a739f9)
- eliminate internal SDK HTTP round-trips across assistant layer (7599bcf)
- eliminate internal SDK HTTP round-trips across assistant layer (b31a660)
- enforce recursive troubleshooting and prevent speculative diagnosis in SE_ANTI_STALL (2944385)
- enforce scroll limits and search-first gate to prevent doom-scrolling (015eca9)
- Engineering instructions locked down! (44acb05)
- Engineering instructions locked down! (d59e6c9)
- enhance Level 3 recursion and fix web state MRO issues (ff25f66)
- ensure
user_idis passed in thread operations for ownership validation (46be1b5) - filter "<|channel|>analysis" (a5dd32a)
- Fix computer tool, crashing the stream issue (8c60c81)
- fix(files): resolve signed url download 401 error and path duplication (1d3ae6d)
- function call response issues (2b6086f)
- function calls correctly set and parsed in gpt oss (8b276d7)
- gpt-oss function call 2nd turn issue (524b693)
- GPT-oss level 3 compliant. (d9e4b24)
- GPT-oss level 3 compliant. (2872954)
- GPT-oss level 3 compliant. (c01a740)
- gpt-oss-worker: preserve ephemeral supervisor identity during DB persistence (56d54e9)
- hermes-worker: preserve ephemeral supervisor identity during DB persistence (dc0ef86)
- housekeeping daemons for expired runs and thread cleanup (9ea441f)
- Implement cache invalidation for assistants cached_assistant (7f4d3c5)
- Implement DecisionEvent type (1992583)
- Implement dotenv for secrets in alembic .env.py (a437017)
- Implement Hermes style function call dialogue structuring for DeepCognito models (2a28d79)
- Implement Hermes style function call dialogue structuring for DeepCognito models (3ea46d8)
- Implement level 2 recovery for platform tools. (ca48507)
- implement level 3 instructions_assembly.py (0f24f94)
- Implement native tool call response for gpt-oss Hermes class models. (6846044)
- Implement native tool call response for llama. (610b4ed)
- implement native tool calling on Quen Model calls. (6347d12)
- Implement new action state signalling. Previously the client end had to use ActionService.get_pending_actions in a constant poll from the client side before the client new that a run had an action to service. This was cumbersome , slow, and caused needless churn on the DB. The new method propagates the action.id direct to the client side via a manifest payload as soon as the action is created. (14c1066)
- implement new architecture for hot_code. Complex parsing and replay from each worker is needless when hot_code can be replayed direct from the handler. (e49ea75)
- implement new instruction hirarchy for _build_system_message (fafd1c5)
- implement new instruction hirarchy for _build_system_message (5c01a9d)
- Implement new scripts (2ba916a)
- implement process_hot_code_buffer in CodeExecutionMixin. (e7d5db7)
- implement Senior/Junior agent duo with full inventory resolution (d84cf6b)
- Implement serp search tool. (4c3d5aa)
- Implement structured tool call detection for gpt-oss (4c6934d)
- Implemented the Stream method as a concreate class in the base orchestrator_core.py. Should greatly increase the speed of model onboarding! (f775bc0)
- import PLATFORM_TOOLS from common library (89dd4c0)
- Improve code intepreter file generation instructions. (7b5f18a)
- improve exception handling and cleanup redundant code (9987132)
- Improve speed and smoothness of streaming. (0e16437)
- Improve speed and smoothness of streaming. (b3e9191)
- improve variable naming in exception handling logic in
fix_ruff.py(6f89aa5) - Integrate save dll rendering functions ino alembic . We no longer have to manually refactor auto generated alembic scripts. (0516264)
- issue with hyperbolic/DeepSeek data flow (4b7a0e5)
- issue with oss reasoning chunks (9c4e88f)
- issue with oss reasoning chunks (d228581)
- JsonUtilsMixin update. (c73cd3f)
- Major speed improvements in inference. (dc06f29)
- Make assistant.tools as the source of truth for the assistants tools array (fd05c4e)
- Migrate all TogetherAI workers to unifed asynch client (9f088e4)
- Migrate all workers to decision telemetry algorithm. (bb29acb)
- Migrate b697008df93a (4c12971)
- Migrate DB dda6fd28f45c (4e65be6)
- Migrate deepseek_base.py to asynchronous mode. (5205f0a)
- Migrate deepseek_base.py to asynchronous mode. (5fdc74b)
- Migrate default_base.py.py to asynchronous mode. (e878fb6)
- Migrate GPT-oss worker to home brew client, works! (ae862c8)
- Migrate hermes_type_default_base.py to asynchronous mode. (82ed344)
- Migrate nvidia_base.py.py to asynchronous mode. (abf1171)
- migrate quen_base.py to the new function call architecture (f1c9bae)
- Migrate qwen_base.py to asynchronous mode. (0bc71e9)
- Migrate service_now_base.py to asynchronous mode. (baeb2ea)
- Migrate to json status events (21cb9cb)
- migrate to native execution and fix cache initialization (2ef44f8)
- Migrate to new base worker arhitecture (69f0b02)
- Migrate to new message cache architecture (435bdd9)
- Migrate to new singleton client (150ecee)
- Migrate to new singleton client (13713d4)
- migrate to projectdavid client 1.67.1 (f803de5)
- Migrate to projectdavid v1.42.0 (eaa467c)
- Migrate to projectdavid v1.42.0 (eabb4f3)
- Migrate to projectdavid==1.49.1 (e603321)
- migrate tool mixins to native execution service (02d75f2)
- migrate web tool execution to NativeExecutionService (e3fde1b)
- Move assistant cache setup to core Class (52d4be8)
- Move assistant cache setup to core Class (de54203)
- Move AsyncHyperbolicClient to client factory. (9ba074c)
- move cache_utils.py and cached_assistant.py --> /cache (11e435a)
- Move unified_async_client.py to /clients package (726d73d)
- Once and ephemeral supervisor has run, the assistants cache must be cleared and reinitiated so that the latest persona is the cache to avoid context and tool contamination. (b85cce2)
- order senior Engineers tools. (8d51d4a)
- orphaned-thread purge daemon for GDPR compliance (1bb0157)
- pass
user_idfor ownership validation in run operations (49a090f) - pass snapshot_id to refresh_snapshot, not snapshot_name (8d7c2e3)
- phantom file generation issue in CodeExecutionMixin (f3d7f44)
- pin tempfile output dir in CODE_FILE_HANDLING system instruction (f49f5cf)
- preserve ephemeral supervisor identity during DB persistence (6debbf9)
- Push ac1498a9642c_remove_tools_table_and_associations.py (495fa01)
- record_tool_decision.py (e15cf1e)
- refactor _resolve_and_prioritize_platform_tools with new silent tool mandatory_platform_tools (fdeb54c)
- Reinstated partial code_interpreter instructions to _build_native_tools_system_message (694a3fa)
- remove
model_compatibility_report.mdand bumpprojectdavidto v1.74.7 (a8423bf) - remove
vector_store_assistantsrelationship and updatemessagesconstraints (afb9c54) - remove assistant_id from engineer router endpoints (7e66173)
- remove assistant_id from engineer router endpoints (9d7d708)
- remove Codecov step from CI workflow and simplify Pytest coverage configuration (4358043)
- remove Codecov step from CI workflow and simplify Pytest coverage configuration (937b704)
- remove Codecov step from CI workflow and simplify Pytest coverage configuration (2f58759)
- remove Codecov step from CI workflow and simplify Pytest coverage configuration (3ac11e3)
- Remove device inventory instructions from SE_TRIAGE_PROTOCOL (45bca41)
- Remove device inventory tools from the senior engineers tool registry. (b1b7c00)
- Remove duplicate api arg from worker signature. (e5f1356)
- Remove hot_code handling from Quen worker! (447b8a6)
- Remove local curl searches from main api (336c4f6)
- Remove Tools table from models.py (f073286)
- replace bare
exceptwithexcept Exceptionand clean up redundant imports (279fe56) - replace unattended_file_search with _search_vs_async (1b816d5)
- resolve 500 error on engineer inventory ingest (d87c744)
- resolve 500 error on engineer inventory ingest (fdd33ae)
- resolve all deep search issues (e354cfc)
- resolve batfish snapshot ownership across Senior/Junior worker boundary (c4b252d)
- resolve batfish snapshot ownership across Senior/Junior worker boundary (3613180)
- resolve batfish snapshot ownership across Senior/Junior worker boundary (eecbab0)
- Resolve computer tool auth token issues. (a9c2074)
- Resolve computer tool auth token issues. (8426ac7)
- resolve computer tool dispatch and SDK action call regressions (777c391)
- resolve computer tool dispatch and SDK action call regressions (85604c6)
- Resolve deepseek_base.py and child issues. (153d073)
- Resolve forward stream delay issue (09deac8)
- Resolve GPT oss streaming issue by creating an instance of _get_client_instance, not OpenAI (ab14433)
- Resolve gpt-oss-120b reasoning tokens not generating issue. (a78e11c)
- Resolve gpt-oss-120b reasoning tokens not generating issue. (90bc1c4)
- Resolve handover issues (297dcee)
- Resolve hyperbolic/meta-llama- models function calling issues. Previously, the model did not respond to the first turn. This was due to passing in the tool call array in the request payload. (3e19625)
- resolve identity swap failures, worker flag extraction, and SDK reliance (322cceb)
- Resolve issues with fc call polling. (a85af1d)
- Resolve ongoing issues with consumer side function call handling race condition (32826ea)
- Resolve ongoing issues with consumer side function call handling race condition (f2e6e88)
- Resolve the issue contaminating the research supervisors context with unwanted tools (07df062)
- Resolve Threads relationship issue in models.py (2943b62)
- restore assistant_id ownership to process_conversation (bc91e55)
- Restore gpt-oss hot code interleave. (9d00699)
- Restore real time streaming of research workers output (8c73d6b)
- resurrect soft-deleted snapshots on create instead of raising 409 (8c2abaf)
- Run model intake reports (cc149e7)
- Run model intake reports (dfeb5ab)
- smarter Turn 2 prompt + anti-loop failure handling (6e9dfc3)
- stamp scratchpad thread id in the junior research assistants run object. (a5de48b)
- standardise WebEvent emission across backend, SDK, and frontend (f92cbb4)
- streamline vector store endpoints and remove deprecated assistant relations (7673c76)
- streamline worker delegation logic and improve stream handling (8e4413f)
- strengthen ownership guards in inference router (63c3c8d)
- strictly enforce Change Request formatting and ban conversational preambles (65adabb)
- successfully ported deepseek_base.py (c8d444d)
- support dynamic
ollama_base_urlvia metadata in orchestration worker (7d3bc4c) - synchronize and alphabetize mixin imports and inheritance (e9eba55)
- synchronize and alphabetize mixin imports and inheritance (70d8aaf)
- synchronize worker classes with Qwen gold standard logic (678b13c)
- Temporarily remove status event messaging from shell_execution_mixin.py (0a2c406)
- Temporarily remove status event messaging from shell_execution_mixin.py (48f2702)
- Temporarily remove status event messaging from shell_execution_mixin.py (81fda55)
- The JE and SE are hallucinating solutions, update instruction set (486e5cd)
- TogetherAI level 3 tests. (48fdff4)
- TogetherAI level 3 tests. (371569a)
- tool role tool_call_id bug (502788e)
- Tweak unified_inference_test.py (cdb38a5)
- Update client to projectdavid==1.39.4 (af886ff)
- update client to projectdavid==1.51.2 (4c21d26)
- update client to projectdavid==1.51.2 (ee0554a)
- update client to projectdavid==1.60.0 (ea9efc9)
- update client to projectdavid==1.73.0 (69803ee)
- Update delta_normalizer.py with level 3 planning protocol tags (2e3edd2)
- update GitHub Actions workflows to use latest action versions and add placeholder test file (53846af)
- update integration test scripts. (cd566c9)
- Update process_conversation with decision state handling. (f38482f)
- update projectdavid client to : 1.59.0 (8c53820)
- Update projectdavid client to projectdavid==1.66.0 (c1387c8)
- Update projectdavid client to projectdavid==1.73.1 (5f4100b)
- Update projectdavid sdk to projectdavid==1.47.5 (6149b5f)
- update to projectdavid==1.54.4 (a5b0619)
- update to projectdavid==1.60.3 (aef1a1e)
- Upgrade client to projectdavid==1.39.6 (c4b1f9f)
- Upgrade client to projectdavid==1.39.6 (bb48ceb)
- Upgrade projectdavid 1.53.0 (091a83b)
- use self.assistant_id in process_tool_calls dispatch to reflect post-swap identity (255098f)
- use self.assistant_id in process_tool_calls dispatch to reflect post-swap identity (8c41a8a)
- We must explicitly set the cwd (Current Working Directory) of the Python subprocess to self.generated_files_dir. (9fb5991)
- web_search working. (04728be)
- web_search working. (3dfd3e3)
- web_search working. (b0b9afd)
- _get_enriched_topology (0382732)
- 9314d4058f78_add_agentic_state_columns_to_assistant_.py adds some level 3 agentic components to the master DB (1c8d684)
- Add get_enriched_topology endpoint (433d300)
- Add get_enriched_topology endpoint (b3796da)
- add
owner_idtoThreadtable and enhance thread management (242bb36) - add assistant ownership validation to
completionsendpoint (aa6f2be) - add BatfishSnapshot to models (8f22a13)
- Add engineer flag (18f2a0b)
- Add Engineers to context build logic (09863ea)
- add hard-purge daemons for soft-deleted files and vector stores (7c12eea)
- add owner_id to assistants with SafeDDL guards (7591325)
- add pytest options and ignore integration tests (040ba83)
- add run_batfish_tool and run_all_batfish_tools to tool router (576c2a3)
- add tool_resources to cached assistant payload (54f0dd4)
- add viewer support for shell sessions and enhance file harvest logic (6e53b60)
- add vLLM orchestration support and documentation (c133522)
- batfish_router.py (a231f10)
- batfish_router.py (0f96559)
- complete orchestration alignment and stream_sync implementation (8cb5728)
- cut over to projectdavid==1.39.0: bringing new models online: (5a9ed31)
- deep research (6a56cc5)
- DeepSearch paradigm 2 (28403bf)
- default-worker: implement async stream_sync wrapper and queue isolation (65fd483)
- docker compose exec api alembic revision --autogenerate -m "add ID to BatfishSnapshot to models" (6573524)
- enforce ownership validation for thread operations (1c81ca9)
- enforce secure file generation with mandatory tempfile.tempdir and path confinement (4d522d6)
- engineer: bridge client and service layers for inventory tools (fc20e8a)
- enhance Docker service management with --exclude flag and improve exception handling (5897dde)
- extend
docker-compose.dev.example.ymlwith Redis, browser, SearxNG, Jaeger, Otel Collector, and Ollama services (afa7dc3) - Extend DelegationMixin for Engineering delegation. (afc3363)
- fan out across tool_resources vector stores (7f82a17)
- implement auto-cleanup of ephemeral files after streaming (ba48f7c)
- implement auto-cleanup of ephemeral files after streaming (d17465e)
- implement delegated deep search model mapping (10e27a0)
- Implement Engineering tool defs (54d1a0a)
- implement expired file cleanup utility and daemon (5584c42)
- Implement full-stack real-time Scratchpad visualization (decb876)
- implement junior engineer second turn with intercepted tool execution (89d8bbb)
- implement NetworkEngineerMixin (ba7b681)
- Implement persistent research worker thread per session. (733dcca)
- Integrate Ollama local inference into the stack. (4d21102)
- integrate Ollama local inference support into DeltaNormalizer (8e0e8c1)
- intercept Junior Engineer tool calls and emit as ToolInterceptEvent (5f9d38f)
- introduce computer_shell_netfilter and enhance shell execution lifecycle (77aeff2)
- map engineer flag during Assistant creation in AssistantService (afec101)
- migrate DelegationMixin off HTTP SDK to NativeExecutionService (a964414)
- Migrate FileSearchMixin to direct VectoreStoreManager inference. (308015b)
- move tool-call suppression logic to inference handler (8e56c5b)
- move tool-call suppression logic to inference handler (4152548)
- pass delegated model through run metadata and update workers (a76a203)
- pass inference API key through run metadata and enhance worker stream handling (ee1d410)
- port latest orchestration features and stream_sync wrapper (fb4faf5)
- prevent
docker_manager.pyfrom running inside Docker containers (86e4ee7) - publish with deep search (08f464c)
- Refactor batfish_router (a4e35a7)
- remove deprecated assistant bootstrap scripts and add DockerManager CLI scaffolding (6c8bbce)
- replace DDG SERP scrape with SearxNG meta-search engine (0d72b81)
- replace shell command execution with sequential protocol; enhance session lifecycle with sandboxing and file harvest (a89a226)
- services: map engineer flag during Assistant creation in AssistantService (e6a25de)
- soft-delete functionality for files with Recycle Bin support (a6bf1c2)
- soft-delete functionality for files with Recycle Bin support (4c33903)
- tenant-isolated snapshot pipeline with ID-first design (7c1e2bf)
- track full ordered tool dispatch log per run (4a43c00)
- unify orchestration logic, add stream_sync, and upgrade run retrieval (bda1975)
- unify orchestration logic, add stream_sync, and upgrade run retrieval (1e2bf1c)
- upgrade projectdavid SDK to projectdavid==1.37.0 (a3305b1)
- wire worker scratchpad to shared supervisor thread (5cdc43a)
- wrap inventory_cache in a service layer (49ba796)
1.18.1 (2025-07-06)
- update_assistant association issues. (d57bf31)
1.18.0 (2025-06-17)
- Release. (cf082d0)
1.17.0 (2025-06-16)
- Structured Error Payloads. (383c2b0)
1.16.0 (2025-06-16)
- --Integrate mixins architecture. This major upgrade splits the original base class into a series of smaller mixin classes for better maintainability and less cognitive load. (80e54ca)
- --Integrate mixins architecture. This major upgrade splits the original base class into a series of smaller mixin classes for better maintainability and less cognitive load. (d02411b)
- Restore function call processing in the hyperbolicDs1 class. Function calls json objects can now be suppressed. Improve Mixin Architecture. (c9a5b1b)
1.15.1 (2025-05-25)
- cache export completely disabled (dab9b81)
1.15.0 (2025-05-25)
- --Integrate mixins architecture. This major upgrade splits the original base class into a series of smaller mixin classes for better maintainability and less cognitive load. (ac5d439)
- --Integrate mixins architecture. This major upgrade splits the original base class into a series of smaller mixin classes for better maintainability and less cognitive load. (cdab8fc)
1.14.0 (2025-05-25)
There are some major changes and enhancements to vector store creation and life cycle management (RAG). Creating a vector store No longer requires you manually pass the user id into the creaction method
vs = client.vectors.create_vector_store(
name="movielens-complete-demo",
user_id=USER_ID,
)Becomes:
vs = client.vectors.create_vector_store(
name="movielens-complete-demo",
)Search Methods
Several new search method have been added: vector_file_search_raw Search hits are returned in a raw format with similarity scoring. There is no further post processing, formatting or ranking. This is most appropriate where you need to apply custom or third party ranking and or post processing.
Example:
hits = client.vectors.vector_file_search_raw(
vector_store_id="vect_GsSezuKiXy11rFssDcRFAg",
query_text=query,
top_k=top_k,
vector_store_host=host_override,
)Simple_vector_file_search
Search hits are returned wrapped in an envelope that provides anotation and citations per hit. This is most appropriate for bodies of text where you might need the assistant to provide authorities and citations; a legal document for example.
Example
hits = client.vectors.simple_vector_file_search(
vector_store_id=STORE_ID,
query_text=query,
top_k=top_k,
)attended_file_search
Search results are synthesized by an integrated agent; results are passed to the Large Language model. The output comes with AI insights and organization. Additionally, result rankings are enhanced by a second pass through a ranking model. Suited for cumilitative research (deep research) and multi agent tasks.
Example:
hits = client.vectors.attended_file_search(
vector_store_id=STORE_ID,
query_text=query,
top_k=top_k,
)
unattended_file_search
Search hits are returned wrapped in an envelope that provides anotation and citations per hit. Additionally, result rankings are enhanced by a second pass through a ranking model
Example:
hits = client.vectors.unattended_file_search(
vector_store_id=STORE_ID,
query_text=query,
top_k=top_k,
)- --Integrate mixins architecture. This major upgrade splits the original base class into a series of smaller mixin classes for better maintainability and less cognitive load. (88216e0)
- --Integrate mixins architecture. This major upgrade splits the original base class into a series of smaller mixin classes for better maintainability and less cognitive load. (bf29576)
1.13.0 (2025-05-11)
- allow an admin to choose the owner (c3e57dd)
1.12.0 (2025-04-30)
- add tools_resources (3b399fd)
1.11.1 (2025-04-29)
- restore attach_tool_to_assistant method (ba87d17)
1.11.0 (2025-04-29)
- restore attach_tool_to_assistant method (4d6eb2e)
- Add canonical_id reserved ID's to base_tools (17b7214)
1.10.0 (2025-04-28)
- multi-stage requirements hashing wiht improved function call handling. Introducing the platform_tools param in the assistants data structure. Introducing hybrid hashed and non hashed requirements file for problematic packages. (8ae4b19)
- multi-stage requirements hashing wiht improved function call handling. Introducing the platform_tools param in the assistants data structure. Introducing hybrid hashed and non hashed requirements file for problematic packages. (a2f517a)
- multi-stage requirements hashing wiht improved function call handling. Introducing the platform_tools param in the assistants data structure. Introducing hybrid hashed and non hashed requirements file for problematic packages. (79e4c65)
- multi-stage requirements hashing wiht improved function call handling. Introducing the platform_tools param in the assistants data structure. Introducing hybrid hashed and non hashed requirements file for problematic packages. (267dbb9)
- multi-stage requirements hashing wiht improved function call handling. Introducing the platform_tools param in the assistants data structure. Introducing hybrid hashed and non hashed requirements file for problematic packages. (76efb7d)
1.9.0 (2025-04-23)
- function-call-tags (6e67d57)
- Improved function call handling. Working towards full call structure filtering. (4c4c67f)
1.8.0 (2025-04-23)
- Asynchronous-REDIS (8fc3de9)
1.7.1 (2025-04-19)
- generate_dev_docker_compose (570bda1)
1.7.0 (2025-04-19)
- shunt-streams-to-redis-phase-1 (1cab6f5) Shunting streams to Redis We are in the process of shunting streaming content to the Redis server. This lays the ground for state of the art utility performance enhancement, error recovery, edge device integration, and agentic features
1.6.0 (2025-04-19)
We have moved the primary message history and system message to a redis server. We use a data driven method of building the context window for each assistant. On each turn the latest messages from the assistant and user are appended onto the dialogue. This includes tool responses. The context window can quickly grows in a multi turn conversation. Fetching this from the database adds more and more latency as the size of the thread grows. Implementing Redis We moved the primary message history, tool definitions, and system message to a Redis server. At the same time, a redis server is now introduced into the docker container estate; the first in a series of changes that will leverage powerful features of Redis for a true scalable, enterprise AI inference platform. No Database change There is no database change, so you can retain existing data in Dev and not have to make any Alembic update s Whilst the solution has been tested, please let us know if you experience any abnormalities; these will be rapidly fixed.
1.5.0 (2025-04-18)
- basic_vector_embeddings_search (e5def53)
1.4.0 (2025-04-17)
- Integrate DeepSeek API. (e6c1dae)
1.3.2 (2025-04-17)
- upgrade pd client. (ae0569b)
1.3.1 (2025-04-17)
- TogetherAIHandler routing issues. (be6c386)
1.3.0 (2025-04-17)
- Normalize your route keys to lowercase in SUBMODEL_CLASS_MAP (a8d1f51)
- Add support for new models (4523191)
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
1.2.0 (2025-04-15)
1.2.1 (2025-04-16)
- Moved admin .env (3c2834e)
-
Introduced
scripts/generate_docker_compose.pyandscripts/generate_docker_compose_dev.py:- Automatically generate
docker-compose.ymland.envfiles if they do not exist. - Inject unique, secure values for
MYSQL_ROOT_PASSWORD,MYSQL_PASSWORD, andDEFAULT_SECRET_KEY. - Generate and map a
unique_secretfor custom Docker network binding.
- Automatically generate
-
Added fallback
.exampletemplates:docker-compose.dev.example.yml– now tracked in source control.- Redacts all secrets and replaces them with
REPLACE_MEtokens for dev visibility and safety.
start.py(DockerManager):- Aligned
.envgeneration to source values directly fromdocker-compose.yml(or fallback defaults). - Dynamically constructs
DATABASE_URLandSPECIAL_DB_URLusing parsed credentials. - Added logic to detect
docker-compose.ymlpresence and skip regeneration if already defined. - Ensured platform-aware path handling for mounted volumes (
SHARED_PATHdetection). - Added validation for
docker-compose.dev.ymlparsing via PyYAML.
- Aligned
- Hardened Docker secret management:
- Secrets are never committed to source control.
- All auto-generated credentials use
uuid.uuid4().hexorsecrets.token_urlsafe(...)for high entropy. .dockerignoreand.gitignorenow explicitly exclude sensitive runtime files.
- env generate_docker_compose.py (9ddde9f)
- dynamic-unique-env-secrets (13b556f)
1.1.0 (2025-04-15)
- ASSISTANTS_BASE_URL eroneus back slash / (6e70fd9)
- download: allow inline rendering of image MIME types via conditional Content-Disposition (d833909)
- download: allow inline rendering of image MIME types via conditional Content-Disposition (7b45b3b)
- remove comments from .env generation (7894e1e)
- users route. (de6683b)
- add routes.md (a2a52fa)
- add routes.md (f5ae598)
- add routes.md (eb03440)
- Add support for deepseek-ai/DeepSeek-V3-0324 (87ac173)
- Add support for deepseek-ai/DeepSeek-V3-0324 (350503f)
- bootstrap default assistant_set_up_service.py. (6cea7bb)
- bootstrap default assistant_set_up_service.py. (10518ff)
- enhance code interpreter output with smart file rendering (6f50b50)
- Implement API key protected routes (197aec4)
- Implement new provider routing. (45c16fa)
- Implement new provider routing. (3624b52)
- Integrate new models: (32b954f)
- multi-stage-containers. (092f1f7)
- multi-stage-containers. (a4dc666)
- New CI flow! (486d875)
- New CI flow! (1428ce7)
- New CI flow10! (57d2f3e)
- New CI flow11! (49e408a)
- New CI flow13! (59ea8df)
- New CI flow14! (1e7a303)
- New CI flow15! (293e133)
- New CI flow16! (f2b49fd)
- New CI flow17! (f31b927)
- New CI flow2! (a6db2c1)
- New CI flow3! (6bb1357)
- New CI flow4! (5d229be)
- New CI flow5! (fb95024)
- New CI flow6! (05f8d0d)
- New CI flow7! (4e704b4)
- New CI flow8! (1633e76)
- New CI flow9! (8cdc5f9)
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.