v0.4.0

ogx-ai/ogxv0.4.0Jan 6, 2026by cdoern

AI Summary

A major architectural overhaul renaming configuration files and APIs, removing deprecated endpoints, and introducing OpenTelemetry and FastAPI.

Key Highlights

  • Configuration file and API renaming
  • Removal of Agents and SDG APIs
  • Introduction of OpenTelemetry auto-instrumentation
  • FastAPI router system migration

Breaking Changes

  • Configuration class renamed (StackRunConfig -> StackConfig)
  • Configuration file renamed (run.yaml -> config.yaml)
  • vector_db_id renamed to vector_store_id
  • Agents API removed
  • SDG API Stubs removed
  • Deprecated v1 routes with v1alpha equivalents removed
  • Bedrock env variable renamed
  • Removed chunk_id property from Chunk class
  • Removed register/unregister resource APIs

New Features

  • OpenTelemetry auto-instrumentation support
  • FastAPI router system migration
  • OpenAI-compatible Bedrock provider
  • OCI GenAI service integration
  • Query rewrite support
  • Parallel tool calls support
  • New Admin API
  • Read-only Connectors API

Full Release Notes

# llama-stack v0.4.0 

## 🎯 Notable Features in llama-stack v0.4.0

### ⚠️ Breaking Changes + Noteworthy Functional Changes to be Aware of

####  Configuration Files

  - StackRunConfig → StackConfig: Configuration class renamed
  - run.yaml → config.yaml: Runtime configuration file renamed
  - build.yaml removed: Build configuration consolidated into config.yaml
  - New required config sections: vector_stores, safety, and structured storage.stores configuration

#### Vector Store API

  - vector_db_id → vector_store_id: Renamed across all endpoints and data structures (#3923)
  - ChunkMetadata now required: No longer optional in Chunk class (#4413)
  - Embeddings refactored: Removed from base Chunk class, added new EmbeddedChunk class (#4413)
  - Removed chunk_id property: Dropped from Chunk class (#3954)
  - Search response structure changed: Updated return format (#4080)

 #### API Removals

  - Agents API removed: Sessions and turns endpoints deleted—use Responses + Conversations instead (#4055)
  - SDG API Stubs removed: Synthetic data generation endpoints deleted (#4035)
  - /v1/openai/v1/* routes removed: Use /v1/* routes instead (#4054)
  - Deprecated v1 routes with v1alpha equivalents were removed (#4054)
  - Register/unregister resources deprecated: Resource registration APIs deprecated (#4099)

#### Provider Configuration

  - Bedrock env variable: Token variable renamed to match AWS/boto3 conventions—update your environment (#4152)
  - Inference base_url standardized: Unified configuration format across providers (#4177)

#### API Behavior Changes

  - Parallel tool calls: New parallel_tool_calls parameter affects execution flow (#4124)
  - Logprobs parameter: Use include parameter instead of direct field (#4261)
  - Telemetry architecture: Complete redesign around OpenTelemetry auto-instrumentation (#4127)

### 🏗️ Architecture Improvements

  - API/Provider Separation: Split API and provider specs into separate llama-stack-api package for better modularity (#3895)
  - FastAPI Migration: Converted multiple APIs to FastAPI router system (Files, Providers, Inspect, Datasets, Benchmarks) for improved performance and maintainability
  - Inspect API Update: /v1/inspect now only lists v1 APIs by default (#3948)

### 🔍 Vector Store Enhancements

  - Query Rewrite Support: Added query rewrite capabilities in vector_store.search (#4171)
  - Qdrant Improvements: Hybrid and keyword search support (#4006)
  - ChromaDB Enhancements: Keyword search and delete_chunk implementation (#3057)
  - Persistence: Vector stores now persist across server restarts (#3977)
  - Metadata & Embeddings: Return embeddings and metadata from vector store methods (#4046)

### 🤖 Model & Inference

  - Model Discovery: List available models via provider_data header (#3968, #3928)
  - New Providers:
    - OpenAI-compatible Bedrock provider (#3748)
    - OCI GenAI service integration (#3876)
    - OCI embeddings support (#4300)
  - Standardized Configuration: Unified base_url for inference providers (#4177)

### đź“‹ Responses API Improvements

  - Parallel tool calls support (#4124)
  - tool_choice parameter (#4106)
  - max_tool_calls parameter (#4062)
  - Logprobs via include parameter (#4261)

### 🆕 New APIs

  - Read-only Connectors API (#4258)
  - File Processor API skeleton (#4113)
  - Admin API
    - Stack Administration: New /admin API (v1alpha) for administrative operations (#4401)
    - Endpoints: Provider management, health checks, version info, and route listing
    - Deprecates: Standalone /providers and /inspect APIs (still functional for backward compatibility)

### 🗑️ Deprecations & Removals

  - Deprecated register/unregister resource APIs (#4099)
  - Removed Agents (sessions/turns) API (#4055)
  - Removed SDG Stub API (#4035)

### đź”’ Security Fixes

  - Fixed RBAC bypass vulnerabilities in model access (#4270)
  - Prevented ABAC bypass in vector store operations (#4394)
  - JWT token redaction in logs (#4325)

### 🛠️ Infrastructure & DX

  - Multi-architecture builds with ARM compatibility (#4290)
  - OpenTelemetry auto-instrumentation support (#4281)
  - SQLite WAL mode to prevent database locking (#4048)
  - File deletion permission enforcement (#4275)
 
## What's Changed

* feat: Adding Demo script  by @franciscojavierarceo in https://github.com/llamastack/llama-stack/pull/3870
* chore: use --no-cache in Containerfile by @ehhuang in https://github.com/llamastack/llama-stack/pull/3884
* feat: Add rerank models and rerank API change by @jiayin-nvidia in https://github.com/llamastack/llama-stack/pull/3831
* fix(conversations)!: update Conversations API definitions (was: bump openai from 1.107.0 to 2.5.0) by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/3847
* fix(logging): ensure logs go to stderr, loggers obey levels by @ashwinb in https://github.com/llamastack/llama-stack/pull/3885
* fix(responses): sync conversation before yielding terminal events in streaming by @ashwinb in https://github.com/llamastack/llama-stack/pull/3888
* chore: better error messages for moderations API by @ehhuang in https://github.com/llamastack/llama-stack/pull/3887
* test: suppress expected error logs in SSE test by @ashwinb in https://github.com/llamastack/llama-stack/pull/3886
* fix(ci): enable responses tests in CI; suppress expected MCP auth error logs by @ashwinb in https://github.com/llamastack/llama-stack/pull/3889
* chore(misc): update datasets, benchmarks to use alpha, beta prefixes by @ashwinb in https://github.com/llamastack/llama-stack/pull/3891
* chore(telemetry): add an arguement to select conatiner runtime explicitly by @ehhuang in https://github.com/llamastack/llama-stack/pull/3896
* chore: support default model in moderations API by @ehhuang in https://github.com/llamastack/llama-stack/pull/3890
* chore(telemetry): code cleanup by @ehhuang in https://github.com/llamastack/llama-stack/pull/3897
* feat: Add static file import system for docs by @franciscojavierarceo in https://github.com/llamastack/llama-stack/pull/3882
* chore: update docs for telemetry api removal by @ehhuang in https://github.com/llamastack/llama-stack/pull/3900
* chore: update run configs by @ehhuang in https://github.com/llamastack/llama-stack/pull/3902
* chore(ui-deps): bump @testing-library/jest-dom from 6.8.0 to 6.9.1 in /llama_stack/ui by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/3914
* chore(ui-deps): bump @types/react-dom from 19.2.1 to 19.2.2 in /llama_stack/ui by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/3915
* chore(ui-deps): bump @tailwindcss/postcss from 4.1.14 to 4.1.16 in /llama_stack/ui by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/3913
* chore(ui-deps): bump @types/node from 24.8.1 to 24.9.1 in /llama_stack/ui by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/3912
* chore(github-deps): bump astral-sh/setup-uv from 7.1.0 to 7.1.1 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/3906
* chore(github-deps): bump actions/upload-artifact from 4.6.2 to 5.0.0 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/3905
* chore: remove duplicate provider definition by @leseb in https://github.com/llamastack/llama-stack/pull/3917
* fix(tests): limit vector store providers for record mode in CI tests by @derekhiggins in https://github.com/llamastack/llama-stack/pull/3898
* fix: Avoid BadRequestError due to invalid max_tokens by @luis5tb in https://github.com/llamastack/llama-stack/pull/3667
* fix!: Enhance response API support to not fail with tool calling by @luis5tb in https://github.com/llamastack/llama-stack/pull/3385
* feat(prompts): attach prompts to storage stores in run configs by @r3v5 in https://github.com/llamastack/llama-stack/pull/3893
* chore(package): migrate to src/ layout by @ashwinb in https://github.com/llamastack/llama-stack/pull/3920
* feat: add provider data keys for Cerebras, Databricks, NVIDIA, and RunPod by @mattf in https://github.com/llamastack/llama-stack/pull/3734
* fix: add missing shutdown methods to PromptServiceImpl and ConversationServiceImpl by @nathan-weinberg in https://github.com/llamastack/llama-stack/pull/3925
* chore!: BREAKING CHANGE: vector_db_id -> vector_store_id by @ehhuang in https://github.com/llamastack/llama-stack/pull/3923
* chore(telemetry): add grafana dashboards by @ehhuang in https://github.com/llamastack/llama-stack/pull/3921
* chore(telemetry): more cleanup: remove apis.telemetry by @ehhuang in https://github.com/llamastack/llama-stack/pull/3919
* fix(context): prevent provider data leak between streaming requests by @ashwinb in https://github.com/llamastack/llama-stack/pull/3924
* chore: bump openai package version by @leseb in https://github.com/llamastack/llama-stack/pull/3918
* chore: remove leftover llama_stack directory by @leseb in https://github.com/llamastack/llama-stack/pull/3940
* chore(mypy): add mypy and type stub packages to dev deps by @ashwinb in https://github.com/llamastack/llama-stack/pull/3930
* feat(responses)!: introduce OpenAI compatible prompts to Responses API by @r3v5 in https://github.com/llamastack/llama-stack/pull/3942
* fix(mypy): resolve OpenTelemetry typing issues in telemetry.py by @ashwinb in https://github.com/llamastack/llama-stack/pull/3931
* fix(mypy): resolve OpenTelemetry typing issues in telemetry.py by @ashwinb in https://github.com/llamastack/llama-stack/pull/3943
* fix(mypy): resolve type issues in MongoDB, batches, and auth providers by @ashwinb in https://github.com/llamastack/llama-stack/pull/3933
* fix(mypy): resolve model implementation typing issues by @ashwinb in https://github.com/llamastack/llama-stack/pull/3934
* fix(mypy): resolve provider utility and testing type issues by @ashwinb in https://github.com/llamastack/llama-stack/pull/3935
* fix(mypy): resolve OpenAI SDK and provider type issues by @ashwinb in https://github.com/llamastack/llama-stack/pull/3936
* fix(mypy): add type stubs and fix typing issues by @ashwinb in https://github.com/llamastack/llama-stack/pull/3938
* fix(inference): enable routing of models with provider_data alone by @ashwinb in https://github.com/llamastack/llama-stack/pull/3928
* docs: add documentation on how to use custom run yaml in docker by @raghotham in https://github.com/llamastack/llama-stack/pull/3949
* feat: openai files provider by @ehhuang in https://github.com/llamastack/llama-stack/pull/3946
* test: enable telemetry tests in server mode by @ehhuang in https://github.com/llamastack/llama-stack/pull/3927
* chore: remove unused methods from InferenceRouter by @derekhiggins in https://github.com/llamastack/llama-stack/pull/3953
* feat: add backward compatibility tests for run.yaml by @ashwinb in https://github.com/llamastack/llama-stack/pull/3952
* ci: add pre-commit check ensuring FIPS compliance by @nathan-weinberg in https://github.com/llamastack/llama-stack/pull/3899
* chore: ignore API docs generation by @nathan-weinberg in https://github.com/llamastack/llama-stack/pull/3959
* fix(mypy-cleanup): part-01 resolve meta reference agent type issues (126 errors) by @ashwinb in https://github.com/llamastack/llama-stack/pull/3945
* fix(mypy): part-02 resolve OpenAI compatibility layer type issues by @ashwinb in https://github.com/llamastack/llama-stack/pull/3947
* fix(mypy): part-03 completely resolve meta reference responses impl typing issues by @ashwinb in https://github.com/llamastack/llama-stack/pull/3951
* fix: typo in .gitignore by @nathan-weinberg in https://github.com/llamastack/llama-stack/pull/3960
* fix(docs): remove leftover telemetry sidebar section by @nathan-weinberg in https://github.com/llamastack/llama-stack/pull/3961
* chore: delete openapi.stainless.yaml for now. not source of truth. by @ashwinb in https://github.com/llamastack/llama-stack/pull/3967
* docs: A getting started notebook featuring simple agent examples. by @omaryashraf5 in https://github.com/llamastack/llama-stack/pull/3955
* chore(mypy): part-04 resolve mypy errors in meta_reference agents by @ashwinb in https://github.com/llamastack/llama-stack/pull/3969
* feat(models): list models available via provider_data header by @ashwinb in https://github.com/llamastack/llama-stack/pull/3968
* fix: make integration-tests.sh Mac friendly by @cdoern in https://github.com/llamastack/llama-stack/pull/3971
* fix!: remove chunk_id property from Chunk class by @cdoern in https://github.com/llamastack/llama-stack/pull/3954
* fix(mypy): add fast and full mypy modes by @ashwinb in https://github.com/llamastack/llama-stack/pull/3975
* test: Updated test skips that were marked with "inline::vllm" by @derekhiggins in https://github.com/llamastack/llama-stack/pull/3979
* chore: add batches to openapi schema by @leseb in https://github.com/llamastack/llama-stack/pull/3980
* fix: remove LLAMA_STACK_TEST_FORCE_SERVER_RESTART setting in fixture by @ehhuang in https://github.com/llamastack/llama-stack/pull/3982
* fix(ci): add back server:ci-tests to replay tests by @ashwinb in https://github.com/llamastack/llama-stack/pull/3976
* fix(ci): show pre-commit output easily on failure by @ashwinb in https://github.com/llamastack/llama-stack/pull/3985
* ci: support release branches and match client branch by @ashwinb in https://github.com/llamastack/llama-stack/pull/3990
* ci: target release-X.Y.x branches instead of release-X.Y.x-maint by @ashwinb in https://github.com/llamastack/llama-stack/pull/3995
* feat: support `workers` in run config by @ehhuang in https://github.com/llamastack/llama-stack/pull/3992
* fix: relax structured output test assertions to handle whitespace and… by @derekhiggins in https://github.com/llamastack/llama-stack/pull/3997
* fix: handle missing external_providers_dir by @rhdedgar in https://github.com/llamastack/llama-stack/pull/3974
* ci: standardize release branch pattern to release-X.Y.x by @ashwinb in https://github.com/llamastack/llama-stack/pull/3999
* feat: Add rerank API for NVIDIA Inference Provider by @jiayin-nvidia in https://github.com/llamastack/llama-stack/pull/3329
* fix(ci): replace unused LLAMA_STACK_CLIENT_DIR with direct install by @ashwinb in https://github.com/llamastack/llama-stack/pull/4000
* fix(ci): install client from release branch before uv sync by @ashwinb in https://github.com/llamastack/llama-stack/pull/4001
* feat: Adding Prompts to admin UI by @franciscojavierarceo in https://github.com/llamastack/llama-stack/pull/3987
* fix(ci): remove precommit trigger workflow by @ashwinb in https://github.com/llamastack/llama-stack/pull/4008
* chore(api)!: /v1/inspect only lists v1 apis by default by @raghotham in https://github.com/llamastack/llama-stack/pull/3948
* fix(ci): use test.pypi as extra index for RC dependencies by @ashwinb in https://github.com/llamastack/llama-stack/pull/4009
* fix(ci): unset empty UV index env vars to prevent uv errors by @ashwinb in https://github.com/llamastack/llama-stack/pull/4012
* feat: llama stack run --providers by @cdoern in https://github.com/llamastack/llama-stack/pull/3989
* fix(ci): export UV_INDEX_STRATEGY to current shell before running uv sync by @ashwinb in https://github.com/llamastack/llama-stack/pull/4020
* fix: help mypy & fix precommit on main by @leseb in https://github.com/llamastack/llama-stack/pull/4037
* chore(github-deps): bump astral-sh/setup-uv from 6.0.1 to 7.1.2 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4023
* chore: remove HTML generation for openapi spec by @leseb in https://github.com/llamastack/llama-stack/pull/4039
* chore: bump version to 0.4.0.dev0 by @ashwinb in https://github.com/llamastack/llama-stack/pull/4018
* fix: generate provider config when using --providers by @cdoern in https://github.com/llamastack/llama-stack/pull/4044
* fix: allowed_models config did not filter models by @mattf in https://github.com/llamastack/llama-stack/pull/4030
* ci: test adjustments for Qwen3-0.6B by @derekhiggins in https://github.com/llamastack/llama-stack/pull/3978
* ci: introduce Mergify bot to notify on PR conflicts by @leseb in https://github.com/llamastack/llama-stack/pull/4043
* test: always start a new server in integration-tests.sh by @ehhuang in https://github.com/llamastack/llama-stack/pull/4050
* fix: enable SQLite WAL mode to prevent database locking errors by @ashwinb in https://github.com/llamastack/llama-stack/pull/4048
* feat: add custom_metadata to OpenAIModel to unify /v1/models with /v1/openai/v1/models by @ashwinb in https://github.com/llamastack/llama-stack/pull/4051
* chore!: remove SDG API by @leseb in https://github.com/llamastack/llama-stack/pull/4035
* fix: update tests for OpenAI-style models endpoint by @ashwinb in https://github.com/llamastack/llama-stack/pull/4053
* fix: return to hardcoded model IDs for Vertex AI by @nathan-weinberg in https://github.com/llamastack/llama-stack/pull/4041
* chore!: remove all deprecated routes (including /openai/v1/ ones) by @ashwinb in https://github.com/llamastack/llama-stack/pull/4054
* chore(test): migrate unit tests from `unittest` to `pytest` nvidia test eval by @Elbehery in https://github.com/llamastack/llama-stack/pull/3249
* chore!: remove the agents (sessions and turns) API by @ashwinb in https://github.com/llamastack/llama-stack/pull/4055
* chore(api)!: remove tool_runtime.rag_tool from the API surface by @ashwinb in https://github.com/llamastack/llama-stack/pull/4067
* chore: move src/llama_stack/ui to src/llama_stack_ui by @ehhuang in https://github.com/llamastack/llama-stack/pull/4068
* chore: remove unused classes by @leseb in https://github.com/llamastack/llama-stack/pull/4077
* chore(ci): remove unused recordings by @ashwinb in https://github.com/llamastack/llama-stack/pull/4074
* fix: show built-in distributions in llama stack list by @r-bit-rry in https://github.com/llamastack/llama-stack/pull/4040
* feat(tests): metrics tests by @iamemilio in https://github.com/llamastack/llama-stack/pull/3966
* fix: Avoid model_limits KeyError by @Wojciech-Rebisz in https://github.com/llamastack/llama-stack/pull/4060
* fix: print help for list-deps if no args by @cdoern in https://github.com/llamastack/llama-stack/pull/4078
* fix(ci): use --no-cache instead of --no-cache-dir by @ashwinb in https://github.com/llamastack/llama-stack/pull/4081
* fix: last_id when listing files in vector store by @ehhuang in https://github.com/llamastack/llama-stack/pull/4079
* fix!: BREAKING CHANGE: vector_store: search API response fix by @ehhuang in https://github.com/llamastack/llama-stack/pull/4080
* feat: ability to use postgres as store for starter distro by @r-bit-rry in https://github.com/llamastack/llama-stack/pull/4076
* fix: actualize chunking strategy in vector store create API by @ehhuang in https://github.com/llamastack/llama-stack/pull/4086
* refactor(passthrough): use AsyncOpenAI instead of AsyncLlamaStackClient by @ashwinb in https://github.com/llamastack/llama-stack/pull/4085
* ci: Add vLLM support to integration testing infrastructure (with qwen) by @derekhiggins in https://github.com/llamastack/llama-stack/pull/3545
* ci: vllm ci job update by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4088
* ci: Temperarily disable Telemetry during tests by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4090
* feat: remove core.telemetry as a dependency of llama_stack.apis by @cdoern in https://github.com/llamastack/llama-stack/pull/4064
* chore: update stainless config by @leseb in https://github.com/llamastack/llama-stack/pull/4096
* chore(ui): remove the Streamlit UI by @ashwinb in https://github.com/llamastack/llama-stack/pull/4097
* feat: add OpenAI-compatible Bedrock provider by @skamenan7 in https://github.com/llamastack/llama-stack/pull/3748
* fix(tests): bring back some responses tests by @ashwinb in https://github.com/llamastack/llama-stack/pull/4098
* docs: fix typos in some files by @khanhkhanhlele in https://github.com/llamastack/llama-stack/pull/4101
* chore: Stack server no longer depends on llama-stack-client by @ashwinb in https://github.com/llamastack/llama-stack/pull/4094
* feat(responses)!: Add web_search_2025_08_26 to the WebSearchToolTypes by @aakankshaduggal in https://github.com/llamastack/llama-stack/pull/4103
* fix(ci): add recordings for responses suite due to web search type changing by @ashwinb in https://github.com/llamastack/llama-stack/pull/4104
* chore(ci): setup automated stainless builds by @dgellow in https://github.com/llamastack/llama-stack/pull/3557
* fix: Vector store persistence across server restarts by @jperezdealgaba in https://github.com/llamastack/llama-stack/pull/3977
* docs: Add Llama Stack Operator docs by @VaishnaviHire in https://github.com/llamastack/llama-stack/pull/3983
* fix(vector store)!: fix file content API by @ehhuang in https://github.com/llamastack/llama-stack/pull/4105
* feat(api)!: deprecate register/unregister resource APIs by @ashwinb in https://github.com/llamastack/llama-stack/pull/4099
* feat: add oci genai service as chat inference provider by @dkennetzoracle in https://github.com/llamastack/llama-stack/pull/3876
* feat: Implement the 'max_tool_calls' parameter for the Responses API by @s-akhtar-baig in https://github.com/llamastack/llama-stack/pull/4062
* refactor: remove dead inference API code and clean up imports  by @cdoern in https://github.com/llamastack/llama-stack/pull/4093
* refactor: inspect routes now shows all non-deprecated APIs by @nathan-weinberg in https://github.com/llamastack/llama-stack/pull/4116
* docs: use 'uv pip' to avoid pitfalls of using 'pip' in virtual environment by @paulengineer in https://github.com/llamastack/llama-stack/pull/4122
* chore(ui): add npm package and dockerfile by @ehhuang in https://github.com/llamastack/llama-stack/pull/4100
* chore: remove dead code by @cdoern in https://github.com/llamastack/llama-stack/pull/4125
* chore(deps): update pypdf to fix DoS vulnerabilities by @crackcodecamp in https://github.com/llamastack/llama-stack/pull/4121
* chore(stainless): add config for file header by @dgellow in https://github.com/llamastack/llama-stack/pull/4126
* fix(tests): add OpenAI client connection cleanup to prevent CI hangs by @cdoern in https://github.com/llamastack/llama-stack/pull/4119
* feat: allow returning embeddings and metadata from `/vector_stores/` methods; disallow changing Provider ID by @franciscojavierarceo in https://github.com/llamastack/llama-stack/pull/4046
* fix(docs): link to test replay-record docs for discoverability by @ktdreyer in https://github.com/llamastack/llama-stack/pull/4134
* docs: clarify model identification uses provider_model_id not model_id by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4128
* fix: harden storage semantics by @ashwinb in https://github.com/llamastack/llama-stack/pull/4118
* feat(storage): share sql/kv instances and add upsert support by @ashwinb in https://github.com/llamastack/llama-stack/pull/4140
* docs: Add comprehensive Files API and Vector Store integration doc by @akram in https://github.com/llamastack/llama-stack/pull/3279
* feat(tests): enable MCP tests in server mode by @ashwinb in https://github.com/llamastack/llama-stack/pull/4146
* fix: remove_disabled_providers filtering models with None fields by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4132
* chore: Fix docs so can be deployed by @franciscojavierarceo in https://github.com/llamastack/llama-stack/pull/4149
* chore: set minimum pre-commit version by @leseb in https://github.com/llamastack/llama-stack/pull/4148
* feat: split API and provider specs into separate llama-stack-api pkg by @cdoern in https://github.com/llamastack/llama-stack/pull/3895
* fix(api): ensure openapi spec has deprecated routes by @ashwinb in https://github.com/llamastack/llama-stack/pull/4156
* fix: Error out when creating vector store with unknown embedding model by @franciscojavierarceo in https://github.com/llamastack/llama-stack/pull/4154
* fix: failure in responses during construct metrics by @slekkala1 in https://github.com/llamastack/llama-stack/pull/4157
* fix: rename llama_stack_api dir by @cdoern in https://github.com/llamastack/llama-stack/pull/4155
* chore: bump starlette version by @leseb in https://github.com/llamastack/llama-stack/pull/4158
* fix: MCP authorization parameter implementation by @omaryashraf5 in https://github.com/llamastack/llama-stack/pull/4052
* fix: Propagate the runtime error message to user by @slekkala1 in https://github.com/llamastack/llama-stack/pull/4150
* test: Restore responses unit tests by @msager27 in https://github.com/llamastack/llama-stack/pull/4153
* feat(openapi): switch to fastapi-based generator by @leseb in https://github.com/llamastack/llama-stack/pull/3944
* fix: list-deps command by @leseb in https://github.com/llamastack/llama-stack/pull/4174
* chore: Remove myself from codeowners by @terrytangyuan in https://github.com/llamastack/llama-stack/pull/4175
* fix(openapi): restore embedded request wrappers by @ashwinb in https://github.com/llamastack/llama-stack/pull/4176
* chore: remove pyyaml and starlette duplication in pyproject by @leseb in https://github.com/llamastack/llama-stack/pull/4172
* fix: Remove authorization from provider data by @omaryashraf5 in https://github.com/llamastack/llama-stack/pull/4161
* docs: Improvements on `provider_codegen` for type hints and multi-line yaml descriptions  by @thepetk in https://github.com/llamastack/llama-stack/pull/4033
* feat(openapi): generate stainless config "more" programmatically by @ashwinb in https://github.com/llamastack/llama-stack/pull/4164
* test(api): pre-commit check to ensure API does not import llama_stack by @cdoern in https://github.com/llamastack/llama-stack/pull/4160
* chore(docs): Remove Llama 4 support details from README by @raghotham in https://github.com/llamastack/llama-stack/pull/4178
* feat!: Wire through parallel_tool_calls to Responses API by @anastasds in https://github.com/llamastack/llama-stack/pull/4124
* refactor(storage): make { kvstore, sqlstore } as llama stack "internal" APIs by @ashwinb in https://github.com/llamastack/llama-stack/pull/4181
* chore: add storage sane defaults by @cdoern in https://github.com/llamastack/llama-stack/pull/4182
* feat!: standardize base_url for inference by @cdoern in https://github.com/llamastack/llama-stack/pull/4177
* feat: Make Safety API an optional dependency for meta-reference agents provider by @anik120 in https://github.com/llamastack/llama-stack/pull/4169
* feat(tests): add TypeScript client integration test support by @ashwinb in https://github.com/llamastack/llama-stack/pull/4185
* fix(ci): prefix stainless branches with fork author by @dgellow in https://github.com/llamastack/llama-stack/pull/4187
* fix: Pydantic validation error with list-type metadata in vector search (#3797) by @r-bit-rry in https://github.com/llamastack/llama-stack/pull/4173
* fix: Fix max_tool_calls for openai provider and add integration tests for the max_tool_calls feat by @s-akhtar-baig in https://github.com/llamastack/llama-stack/pull/4190
* fix(docs): fix glob vulnerability by @ashwinb in https://github.com/llamastack/llama-stack/pull/4193
* chore: remove dead code from openai_compat utility by @ashwinb in https://github.com/llamastack/llama-stack/pull/4194
* feat(responses)!: implement support for OpenAI compatible prompts in Responses API by @r3v5 in https://github.com/llamastack/llama-stack/pull/3965
* chore(ci): make stainless workflow more DRY by @dgellow in https://github.com/llamastack/llama-stack/pull/4195
* chore: update code owners by @ashwinb in https://github.com/llamastack/llama-stack/pull/4199
* fix: enforce allowed_models during inference requests by @ashwinb in https://github.com/llamastack/llama-stack/pull/4197
* feat(ci): add --typescript-only flag to skip Python tests in integration test script by @ashwinb in https://github.com/llamastack/llama-stack/pull/4201
* feat!: change bedrock bearer token env variable to match AWS docs & boto3 convention by @ktdreyer in https://github.com/llamastack/llama-stack/pull/4152
* chore: Add @cdoern as a code owner by @raghotham in https://github.com/llamastack/llama-stack/pull/4209
* fix: update hard-coded google model names by @ktdreyer in https://github.com/llamastack/llama-stack/pull/4212
* chore(github-deps): bump actions/setup-node from 4.1.0 to 6.0.0 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4216
* chore(github-deps): bump actions/checkout from 5.0.0 to 6.0.0 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4217
* chore(github-deps): bump astral-sh/setup-uv from 7.1.2 to 7.1.4 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4215
* chore(github-deps): bump stainless-api/upload-openapi-spec-action from 1.6.0 to 1.7.0 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4214
* chore(github-deps): bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4213
* fix: bind to proper default hosts by @cdoern in https://github.com/llamastack/llama-stack/pull/4232
* chore: rm CHANGELOG.md by @leseb in https://github.com/llamastack/llama-stack/pull/4240
* docs: fix logging environment variable separator in example by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4254
* chore(github-deps): bump actions/setup-python from 6.0.0 to 6.1.0 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4259
* test: Update JWKS tests to properly mock authentication by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4257
* feat!: Architect Llama Stack Telemetry Around Automatic Open Telemetry Instrumentation by @iamemilio in https://github.com/llamastack/llama-stack/pull/4127
* fix: remove telemetry_traceable by @iamemilio in https://github.com/llamastack/llama-stack/pull/4205
* feat: Add metadata field to request and response by @abhibongale in https://github.com/llamastack/llama-stack/pull/4237
* feat(api)!: deprecate `toolgroup` and `tool_runtime` apis by @jaideepr97 in https://github.com/llamastack/llama-stack/pull/4249
* feat(api): oasdiff OpenAI openAPI spec against ours by @cdoern in https://github.com/llamastack/llama-stack/pull/3529
* fix: use string annotations for S3Client type hints by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4242
* fix(docs): Updated the LS documentation to point users to the correct docker container by @omaryashraf5 in https://github.com/llamastack/llama-stack/pull/4267
* fix(files): Enforce DELETE action permission for file deletion by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4275
* fix: Add policies to adapters by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4277
* fix: call setup_logging early to apply category-specific log levels by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4253
* fix: correct parameter names in error messages by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4268
* docs: Refine and fix nits in README by @kelbrown20 in https://github.com/llamastack/llama-stack/pull/4220
* feat: Add opt-in OpenTelemetry auto-instrumentation to Docker images by @codefromthecrypt in https://github.com/llamastack/llama-stack/pull/4281
* feat: Implement FastAPI router system by @leseb in https://github.com/llamastack/llama-stack/pull/4191
* fix: RBAC bypass vulnerabilities in model access by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4270
* chore: bump mcp package version by @leseb in https://github.com/llamastack/llama-stack/pull/4287
* chore(cve): Update node-forge to 1.3.3 by @raghotham in https://github.com/llamastack/llama-stack/pull/4289
* fix: set SqlRecord owner to None when owner_principal is empty by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4284
* feat: Add debug logging for RBAC access control decisions by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4255
* feat(qdrant): implement hybrid and keyword search support by @varshaprasad96 in https://github.com/llamastack/llama-stack/pull/4006
* fix: check if distro dirs exist before listing by @cdoern in https://github.com/llamastack/llama-stack/pull/4301
* chore(ci): unify uv versions used in pre-commit by @nathan-weinberg in https://github.com/llamastack/llama-stack/pull/4297
* fix(ci): use latest version of setup-uv and remove pin by @nathan-weinberg in https://github.com/llamastack/llama-stack/pull/4299
* fix(ci): standardize CI on node 22 by @nathan-weinberg in https://github.com/llamastack/llama-stack/pull/4302
* chore(deps): bump next from 15.5.4 to 15.5.7 in /src/llama_stack_ui by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4305
* fix(tests): handle http URLs as aliases for server mode by @ashwinb in https://github.com/llamastack/llama-stack/pull/4306
* feat: Implement `keyword search` and `delete_chunk` at ChromaDB by @bwook00 in https://github.com/llamastack/llama-stack/pull/3057
* fix: llama_stack_api inspect API rename by @cdoern in https://github.com/llamastack/llama-stack/pull/4311
* fix: access control to fail-closed when owner attributes are missing by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4273
* fix: nvidia provider no longer crashes sans API key by @nathan-weinberg in https://github.com/llamastack/llama-stack/pull/4317
* fix: runpod provider no longer crashes sans API key by @nathan-weinberg in https://github.com/llamastack/llama-stack/pull/4316
* fix: Correct broken links in README by @varad-ahirwadkar in https://github.com/llamastack/llama-stack/pull/4218
* chore: Small Auth CI refactor  by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4322
* fix(security): redact JWT tokens in server logs by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4325
* fix(ui): Fix model dropdown not displaying models in chat playground by @varshaprasad96 in https://github.com/llamastack/llama-stack/pull/4329
* chore(github-deps): bump actions/checkout from 6.0.0 to 6.0.1 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4331
* chore(github-deps): bump actions/stale from 10.1.0 to 10.1.1 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4332
* chore(github-deps): bump actions/setup-node from 6.0.0 to 6.1.0 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4333
* chore(github-deps): bump stainless-api/upload-openapi-spec-action from 1.7.0 to 1.7.1 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4334
* fix: httpcore deadlock in CI by properly closing streaming responses by @leseb in https://github.com/llamastack/llama-stack/pull/4335
* feat: Adding OCI Embeddings by @rriley99-oci in https://github.com/llamastack/llama-stack/pull/4300
* feat(UI): Adding Files API to Admin UI by @franciscojavierarceo in https://github.com/llamastack/llama-stack/pull/4319
* docs: Fix vector_store_create params by @varshaprasad96 in https://github.com/llamastack/llama-stack/pull/4364
* feat: remove usage of build yaml by @cdoern in https://github.com/llamastack/llama-stack/pull/4192
* feat: convert Benchmarks API to use FastAPI router by @leseb in https://github.com/llamastack/llama-stack/pull/4309
* feat: Add support for query rewrite in vector_store.search by @franciscojavierarceo in https://github.com/llamastack/llama-stack/pull/4171
* feat: add workflow_dispatch and self-trigger to stainless builds by @cdoern in https://github.com/llamastack/llama-stack/pull/4361
* fix(inference): respect table_name config in InferenceStore by @leseb in https://github.com/llamastack/llama-stack/pull/4371
* feat(api): add readonly connectors API by @jaideepr97 in https://github.com/llamastack/llama-stack/pull/4258
* feat!: Implement include parameter specifically for adding logprobs in the output message by @s-akhtar-baig in https://github.com/llamastack/llama-stack/pull/4261
* feat: added oci-s3 compatibility by @rriley99-oci in https://github.com/llamastack/llama-stack/pull/4374
* docs: Add details on model registration and refresh_models by @varshaprasad96 in https://github.com/llamastack/llama-stack/pull/4383
* docs: Adding initial updates to the RAG documentation and examples by @omaryashraf5 in https://github.com/llamastack/llama-stack/pull/4377
* fix(inference): AttributeError in streaming response cleanup by @r-bit-rry in https://github.com/llamastack/llama-stack/pull/4236
* chore(github-deps): bump actions/cache from 4.3.0 to 5.0.1 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4389
* chore(github-deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4388
* chore(github-deps): bump stainless-api/upload-openapi-spec-action from 1.7.1 to 1.8.1 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4387
* chore(github-deps): bump astral-sh/setup-uv from 7.1.4 to 7.1.6 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4386
* docs: make inference model configurable by @makelinux in https://github.com/llamastack/llama-stack/pull/4385
* fix: correctly unwrap provider data api_key from secret string by @asimurka in https://github.com/llamastack/llama-stack/pull/4380
* feat: Making static prompt values in Rag/File Search configurable in Vector Store Config by @franciscojavierarceo in https://github.com/llamastack/llama-stack/pull/4368
* feat: add support for tool_choice to responses api by @jaideepr97 in https://github.com/llamastack/llama-stack/pull/4106
* feat: convert Datasets API to use FastAPI router by @leseb in https://github.com/llamastack/llama-stack/pull/4359
* fix: remove run config from logs by @cdoern in https://github.com/llamastack/llama-stack/pull/4395
* feat: wire Stainless preview SDK into integration tests by @cdoern in https://github.com/llamastack/llama-stack/pull/4360
* docs: Update pre-commit version in CONTRIBUTING.md by @anastasds in https://github.com/llamastack/llama-stack/pull/4399
* fix: ABAC bypass in vector store operations by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4394
* fix(server): add middleware for provider data and test context by @mfleader in https://github.com/llamastack/llama-stack/pull/4367
* feat: migrate Providers API to FastAPI router pattern by @leseb in https://github.com/llamastack/llama-stack/pull/4405
* feat: migrate Inspect API to FastAPI router by @leseb in https://github.com/llamastack/llama-stack/pull/4403
* feat: Enhance Vector Stores config with full configurations by @franciscojavierarceo in https://github.com/llamastack/llama-stack/pull/4397
* ci: record-if-missing when coming from stainless by @cdoern in https://github.com/llamastack/llama-stack/pull/4408
* fix: run all clients on stainless SDK, fix workflow, properly commit recordings by @cdoern in https://github.com/llamastack/llama-stack/pull/4410
* fix(scoring): remove broken dataset validation in score_batch methods by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4420
* feat: enable streaming usage metrics for OpenAI-compatible providers by @skamenan7 in https://github.com/llamastack/llama-stack/pull/4326
* fix: Remove unused TELEMETRY_SINKS and add OTEL_EXPORTER_OTLP_PROTOCOL by @derekhiggins in https://github.com/llamastack/llama-stack/pull/4406
* fix: code was injecting run_config.vector_stores even when it was None. by @dkennetzoracle in https://github.com/llamastack/llama-stack/pull/4423
* feat: introduce /admin API for stack administration and operations by @cdoern in https://github.com/llamastack/llama-stack/pull/4401
* chore(github-deps): bump medyagh/setup-minikube from 0.0.20 to 0.0.21 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4422
* chore(github-deps): bump stainless-api/upload-openapi-spec-action from 1.8.1 to 1.9.0 by @dependabot[bot] in https://github.com/llamastack/llama-stack/pull/4421
* refactor: demo_script.py by @makelinux in https://github.com/llamastack/llama-stack/pull/4409
* feat(api): add file_processor API skeleton by @alinaryan in https://github.com/llamastack/llama-stack/pull/4113
* docs: Enabled mermaid chart support for docs by @gyliu513 in https://github.com/llamastack/llama-stack/pull/4433
* chore: censor pgvector password in initialization log by @Bobbins228 in https://github.com/llamastack/llama-stack/pull/4439
* docs: llamastack operator namespace update by @gyliu513 in https://github.com/llamastack/llama-stack/pull/4434
* feat: enable multi-arch builds with ARM compatibility by @rhdedgar in https://github.com/llamastack/llama-stack/pull/4290
* feat: convert Files API to use FastAPI router by @mfleader in https://github.com/llamastack/llama-stack/pull/4339
* fix(security): Pin tornado>=6.5.3 (GHSA-c98p-7wgm-6p64) by @Elbehery in https://github.com/llamastack/llama-stack/pull/4447
* fix: bump urllib3 version >=2.6.0 by @cdoern in https://github.com/llamastack/llama-stack/pull/4450
* chore!: Refactor embeddings out of VectorStoreWithIndex and into OpenAIVectorStoreMixin and make ChunkMetadata required. by @franciscojavierarceo in https://github.com/llamastack/llama-stack/pull/4413

## New Contributors
* @r-bit-rry made their first contribution in https://github.com/llamastack/llama-stack/pull/4040
* @Wojciech-Rebisz made their first contribution in https://github.com/llamastack/llama-stack/pull/4060
* @khanhkhanhlele made their first contribution in https://github.com/llamastack/llama-stack/pull/4101
* @dgellow made their first contribution in https://github.com/llamastack/llama-stack/pull/3557
* @VaishnaviHire made their first contribution in https://github.com/llamastack/llama-stack/pull/3983
* @dkennetzoracle made their first contribution in https://github.com/llamastack/llama-stack/pull/3876
* @paulengineer made their first contribution in https://github.com/llamastack/llama-stack/pull/4122
* @crackcodecamp made their first contribution in https://github.com/llamastack/llama-stack/pull/4121
* @ktdreyer made their first contribution in https://github.com/llamastack/llama-stack/pull/4134
* @msager27 made their first contribution in https://github.com/llamastack/llama-stack/pull/4153
* @thepetk made their first contribution in https://github.com/llamastack/llama-stack/pull/4033
* @anik120 made their first contribution in https://github.com/llamastack/llama-stack/pull/4169
* @abhibongale made their first contribution in https://github.com/llamastack/llama-stack/pull/4237
* @bwook00 made their first contribution in https://github.com/llamastack/llama-stack/pull/3057
* @varad-ahirwadkar made their first contribution in https://github.com/llamastack/llama-stack/pull/4218
* @rriley99-oci made their first contribution in https://github.com/llamastack/llama-stack/pull/4300
* @asimurka made their first contribution in https://github.com/llamastack/llama-stack/pull/4380
* @mfleader made their first contribution in https://github.com/llamastack/llama-stack/pull/4367
* @gyliu513 made their first contribution in https://github.com/llamastack/llama-stack/pull/4433

**Full Changelog**: https://github.com/llamastack/llama-stack/compare/v0.3.5...v0.4.0