llama-stack-mirror/llama_stack/distribution
Ashwin Bharambe 9e3ae50306
feat(server): construct the stack in a persistent event loop (#2818)
When we call `construct_stack()`, providers are instantiated and
`initialize()` is called. This call can end up doing _anything_ at all
-- specifically, providers are free to create long running background
tasks as part of this. If we wrapped this within a `asyncio.run()` as in
the current code, these tasks get canceled when the stack construction
finishes. This is not correct. The PR addresses the issue by creating a
persistent event loop which is used for both the stack as well as for
running the uvicorn server. In other words, the lifetime of the
providers (and downstream async code) is now the same as the lifetime of
the uvicorn server.

## Test Plan

This should not affect any current code since we don't have background
tasks created right now. However,
https://github.com/meta-llama/llama-stack/pull/2805 will start using
this functionality.
2025-07-18 10:29:19 -07:00
..
access_control fix: auth sql store: user is owner policy (#2674) 2025-07-10 14:40:32 -07:00
routers fix: Fix /vector-stores/create API when vector store with duplicate name (#2617) 2025-07-15 11:24:41 -04:00
routing_tables fix: Fix /vector-stores/create API when vector store with duplicate name (#2617) 2025-07-15 11:24:41 -04:00
server feat(server): construct the stack in a persistent event loop (#2818) 2025-07-18 10:29:19 -07:00
store fix: store configs (#2593) 2025-07-03 10:07:23 -07:00
ui chore: remove nested imports (#2515) 2025-06-26 08:01:05 +05:30
utils chore: update pre-commit hook versions (#2708) 2025-07-10 16:47:59 +02:00
__init__.py API Updates (#73) 2024-09-17 19:51:35 -07:00
build.py chore: bump python supported version to 3.12 (#2475) 2025-06-24 09:22:04 +05:30
build_conda_env.sh chore: fix build script bug (#2507) 2025-06-24 12:05:22 -07:00
build_container.sh fix: container build on podman (#2723) 2025-07-11 16:25:33 +02:00
build_venv.sh chore: remove straggler references to llama-models (#1345) 2025-03-01 14:26:03 -08:00
client.py chore: make cprint write to stderr (#2250) 2025-05-24 23:39:57 -07:00
common.sh feat(pre-commit): enhance pre-commit hooks with additional checks (#2014) 2025-04-30 11:35:49 -07:00
configure.py fix: stop image_name from being cast to an integer (#2759) 2025-07-15 09:44:21 -07:00
datatypes.py feat(auth): support github tokens (#2509) 2025-07-08 11:02:36 -07:00
distribution.py ci: fix external provider test (#2438) 2025-06-12 16:14:32 +02:00
inspect.py chore: use starlette built-in Route class (#2267) 2025-05-28 09:53:33 -07:00
library_client.py refactor: unify stream and non-stream impls for responses (#2388) 2025-06-05 17:48:09 +02:00
providers.py feat: consolidate most distros into "starter" (#2516) 2025-07-04 15:58:03 +02:00
request_headers.py feat: fine grained access control policy (#2264) 2025-06-03 14:51:12 -07:00
resolver.py fix: de-clutter llama stack run logs (#2783) 2025-07-16 09:44:26 -07:00
stack.py fix: stop image_name from being cast to an integer (#2759) 2025-07-15 09:44:21 -07:00
start_stack.sh refactor: remove container from list of run image types (#2178) 2025-06-02 09:57:55 +02:00