Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
cd6ae8e
[TRTLLM-17261][infra] Add trtllm-serve CI coverage lint and a multi-G…
JunyiXu-nv Oct 28, 2026
76d1df3
[TRTLLM-17261][infra] Reject multi-GPU table entries that are a prefi…
JunyiXu-nv Oct 28, 2026
fbc46f9
[TRTLLM-17261][infra] Use capfd in the lint CLI tests
JunyiXu-nv Oct 28, 2026
c16d0fa
[None][infra] Reject repeated keys in the serve CI coverage data file
JunyiXu-nv Oct 28, 2026
03843c1
[TRTLLM-17261][fix] Validate YAML merge sources and clarify coverage …
JunyiXu-nv Oct 30, 2026
b291cca
[TRTLLM-17261][test] Add route, middleware-order and shim-identity sn…
JunyiXu-nv Oct 28, 2026
c9311ab
[TRTLLM-17261][test] Record the trtllm-serve route reference and test…
JunyiXu-nv Nov 1, 2026
81b0350
[TRTLLM-17261][test] Cover the attached-frontend route registration i…
JunyiXu-nv Nov 1, 2026
2eb184a
[None][test] Address review of the serve snapshot and layering tests
JunyiXu-nv Nov 2, 2026
5138e15
[TRTLLM-17261][test] Refresh the serve route reference and baselines …
JunyiXu-nv Nov 4, 2026
045a69e
[None][test] Make the route snapshot and the object.__new__ ratchet f…
JunyiXu-nv Nov 4, 2026
75fc8e7
[TRTLLM-17262][test] Pin the disaggregated entry-point wrapper and it…
JunyiXu-nv Nov 2, 2026
533cb0b
[TRTLLM-17262][refactor] Split the disaggregated entry-point wrapper …
JunyiXu-nv Nov 2, 2026
1a3a615
[TRTLLM-17262][refactor] Shared middleware package for the aggregated…
JunyiXu-nv Nov 2, 2026
a0aa0df
[TRTLLM-17262][refactor] ServerArrivalTimeMiddleware keeps an existin…
JunyiXu-nv Nov 2, 2026
68344ed
[TRTLLM-17261][refactor] Move the msgpack route classes to tensorrt_l…
JunyiXu-nv Nov 2, 2026
9f4a48e
[TRTLLM-17261][refactor] Add the trtllm-serve router skeleton and ser…
JunyiXu-nv Nov 2, 2026
caf3a29
[TRTLLM-17261][infra] Multi-GPU triggers and type checking for the ne…
JunyiXu-nv Nov 2, 2026
4a6325d
[TRTLLM-17261][test] Register the system router in the multi-frontend…
JunyiXu-nv Nov 2, 2026
7e29509
[TRTLLM-17261][test] Match a request instead of reading route paths i…
JunyiXu-nv Nov 2, 2026
d3aacdd
[TRTLLM-17261][test] Classify endpoint-package imports by the importe…
JunyiXu-nv Nov 2, 2026
5bcd0a1
[TRTLLM-17264][refactor] Move the VisualGen protocol models into serv…
JunyiXu-nv Nov 3, 2026
9b8661f
[TRTLLM-17264][infra] Give tensorrt_llm/serve/api/visual_gen to the V…
JunyiXu-nv Nov 3, 2026
e122006
[TRTLLM-17264][test] Gate the VisualGen protocol models and their laz…
JunyiXu-nv Nov 3, 2026
18a8b2f
[TRTLLM-17264][test] Harden the VisualGen api-stability gate and pin …
JunyiXu-nv Nov 3, 2026
543322f
[TRTLLM-17263][test] Pin the chat completion handler's HTTP answers b…
JunyiXu-nv Nov 3, 2026
6174ee4
[TRTLLM-17263][refactor] Move the chat SSE generator to tensorrt_llm/…
JunyiXu-nv Nov 3, 2026
bd6b3d7
[TRTLLM-17263][refactor] Split openai_chat into a typed create_chat_c…
JunyiXu-nv Nov 3, 2026
936cc54
[TRTLLM-17263][infra] Type-check tensorrt_llm/serve/_base/errors.py
JunyiXu-nv Nov 3, 2026
974e4bd
[TRTLLM-17263][test] Stub the chat response as a ChatCompletionRespon…
JunyiXu-nv Nov 3, 2026
d8c56b5
[TRTLLM-17263][test] Pin that an unencodable chat response is answere…
JunyiXu-nv Nov 3, 2026
bbea912
[TRTLLM-17269][chore] Merge the router skeleton branch into the middl…
JunyiXu-nv Nov 4, 2026
752da8b
[TRTLLM-17263][refactor] Move the Anthropic Messages modules into ser…
JunyiXu-nv Nov 3, 2026
147c114
[TRTLLM-17263][test] Pin both servers' Anthropic Messages answers and…
JunyiXu-nv Nov 3, 2026
aa73407
Merge branch 'dev-junyix-feat-serve-typed-chat-core' into dev-junyix-…
JunyiXu-nv Nov 4, 2026
db50772
Merge branch 'dev-junyix-feat-serve-disagg-entry-split' into dev-juny…
JunyiXu-nv Nov 4, 2026
31fa80b
[TRTLLM-17263][refactor] Add the Anthropic count-tokens and batches s…
JunyiXu-nv Nov 3, 2026
95bb1e1
[TRTLLM-17263][refactor] Move the Anthropic count-tokens and batch ha…
JunyiXu-nv Nov 3, 2026
d5e971e
[TRTLLM-17263][refactor] One Anthropic Messages serving class for the…
JunyiXu-nv Nov 3, 2026
07016ff
[TRTLLM-17263][test] Test the Anthropic serving class, the request co…
JunyiXu-nv Nov 3, 2026
633a332
[TRTLLM-17269][refactor] Add build_http_app and serve_uvicorn, the sh…
JunyiXu-nv Nov 3, 2026
24f9585
[TRTLLM-17269][refactor] Build the aggregated and disaggregated trtll…
JunyiXu-nv Nov 3, 2026
1fc2c43
[TRTLLM-17265][refactor] Split openai_protocol.py into a package with…
JunyiXu-nv Nov 4, 2026
7b5d307
[TRTLLM-17269][chore] Merge the typed chat core branch into the share…
JunyiXu-nv Nov 4, 2026
df75a2b
[TRTLLM-17265][test] Pin the openai_protocol facade: completeness, la…
JunyiXu-nv Nov 3, 2026
8d62a8e
[TRTLLM-17265][refactor] State why the facade keeps the VisualGen row…
JunyiXu-nv Nov 3, 2026
0cd4354
[TRTLLM-17269][test] Pin the validation-error answers of both trtllm-…
JunyiXu-nv Nov 3, 2026
fba3195
[TRTLLM-17269][refactor] Add the dialect-neutral serving errors, the …
JunyiXu-nv Nov 3, 2026
1c1172c
[TRTLLM-17269][refactor] Register trtllm-serve error renderers per wi…
JunyiXu-nv Nov 3, 2026
0bbc9ee
[TRTLLM-17269][test] Check the error modules' VisualGen imports with …
JunyiXu-nv Nov 4, 2026
36fbf3f
[None][fix] Chat completions honor TRTLLM_KVCACHE_TIME_OUTPUT_PATH li…
JunyiXu-nv Nov 4, 2026
6998c2b
[TRTLLM-17263][test] Mount the Messages usage test on the Anthropic r…
JunyiXu-nv Nov 4, 2026
01382fc
Merge branch 'dev-junyix-feat-serve-exception-handling' into dev-juny…
JunyiXu-nv Nov 5, 2026
20b4855
Merge branch 'dev-junyix-feat-serve-openai-protocol-package' into dev…
JunyiXu-nv Nov 5, 2026
058f22f
Merge branch 'dev-junyix-feat-serve-ci-coverage-lint' into dev-junyix…
JunyiXu-nv Nov 5, 2026
23b255e
Merge branch 'dev-junyix-fix-serve-chat-kvcache-time-output' into dev…
JunyiXu-nv Nov 5, 2026
0a3c243
[TRTLLM-17268][feat] Serve gpt-oss chat completions through the share…
JunyiXu-nv Nov 5, 2026
ed6663c
[TRTLLM-17268][test] Pin gpt-oss chat parity with chat_harmony and th…
JunyiXu-nv Nov 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -371,6 +371,7 @@
/cpp/tensorrt_llm/thop/*lysses* @NVIDIA/trt-llm-torch-visual-gen-devs
/cpp/tensorrt_llm/kernels/ulysses* @NVIDIA/trt-llm-torch-visual-gen-devs
/tensorrt_llm/media @NVIDIA/trt-llm-torch-visual-gen-devs
/tensorrt_llm/serve/api/visual_gen @NVIDIA/trt-llm-torch-visual-gen-devs
/tensorrt_llm/visual_gen @NVIDIA/trt-llm-torch-visual-gen-devs @NVIDIA/trt-llm-runtime-devs
/tests/integration/defs/examples/visual_gen @NVIDIA/trt-llm-torch-visual-gen-devs
/tests/integration/defs/visual_gen @NVIDIA/trt-llm-torch-visual-gen-devs
Expand Down
51 changes: 47 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -417,13 +417,30 @@ common-files: &common_files |
tensorrt_llm/scaffolding/worker.py |
tensorrt_llm/scheduling_params.py |
tensorrt_llm/serve/__init__.py |
tensorrt_llm/serve/_base/msgspec_route.py |
tensorrt_llm/serve/_base/sse.py |
tensorrt_llm/serve/api/anthropic/serving.py |
tensorrt_llm/serve/api/visual_gen/protocol.py |
tensorrt_llm/serve/chat_utils.py |
tensorrt_llm/serve/cluster_storage.py |
tensorrt_llm/serve/disagg_auto_scaling.py |
tensorrt_llm/serve/harmony_adapter.py |
tensorrt_llm/serve/metadata_server.py |
tensorrt_llm/serve/middleware/arrival_time.py |
tensorrt_llm/serve/middleware/user_middleware.py |
tensorrt_llm/serve/openai_disagg_server.py |
tensorrt_llm/serve/openai_protocol.py |
tensorrt_llm/serve/openai_protocol/chat.py |
tensorrt_llm/serve/openai_protocol/common.py |
tensorrt_llm/serve/openai_protocol/completions.py |
tensorrt_llm/serve/openai_protocol/control.py |
tensorrt_llm/serve/openai_protocol/disagg.py |
tensorrt_llm/serve/openai_protocol/embeddings.py |
tensorrt_llm/serve/openai_protocol/kv_cache.py |
tensorrt_llm/serve/openai_protocol/models.py |
tensorrt_llm/serve/openai_protocol/responses.py |
tensorrt_llm/serve/openai_protocol/sampling.py |
tensorrt_llm/serve/openai_protocol/tokenize.py |
tensorrt_llm/serve/openai_protocol/tools.py |
tensorrt_llm/serve/openai_server.py |
tensorrt_llm/serve/postprocess_handlers.py |
tensorrt_llm/serve/responses_utils.py |
Expand Down Expand Up @@ -1144,13 +1161,30 @@ legacy-files: &legacy_files |
tensorrt_llm/scaffolding/worker.py |
tensorrt_llm/scheduling_params.py |
tensorrt_llm/serve/__init__.py |
tensorrt_llm/serve/_base/msgspec_route.py |
tensorrt_llm/serve/_base/sse.py |
tensorrt_llm/serve/api/anthropic/serving.py |
tensorrt_llm/serve/api/visual_gen/protocol.py |
tensorrt_llm/serve/chat_utils.py |
tensorrt_llm/serve/cluster_storage.py |
tensorrt_llm/serve/disagg_auto_scaling.py |
tensorrt_llm/serve/harmony_adapter.py |
tensorrt_llm/serve/metadata_server.py |
tensorrt_llm/serve/middleware/arrival_time.py |
tensorrt_llm/serve/middleware/user_middleware.py |
tensorrt_llm/serve/openai_disagg_server.py |
tensorrt_llm/serve/openai_protocol.py |
tensorrt_llm/serve/openai_protocol/chat.py |
tensorrt_llm/serve/openai_protocol/common.py |
tensorrt_llm/serve/openai_protocol/completions.py |
tensorrt_llm/serve/openai_protocol/control.py |
tensorrt_llm/serve/openai_protocol/disagg.py |
tensorrt_llm/serve/openai_protocol/embeddings.py |
tensorrt_llm/serve/openai_protocol/kv_cache.py |
tensorrt_llm/serve/openai_protocol/models.py |
tensorrt_llm/serve/openai_protocol/responses.py |
tensorrt_llm/serve/openai_protocol/sampling.py |
tensorrt_llm/serve/openai_protocol/tokenize.py |
tensorrt_llm/serve/openai_protocol/tools.py |
tensorrt_llm/serve/openai_server.py |
tensorrt_llm/serve/postprocess_handlers.py |
tensorrt_llm/serve/responses_utils.py |
Expand Down Expand Up @@ -1547,6 +1581,14 @@ repos:
additional_dependencies: [jinja2]
always_run: true
pass_filenames: false
- id: serve-ci-coverage
name: check trtllm-serve CI coverage (multi-GPU list, CBTS VisualGen prefixes, CODEOWNERS)
entry: python scripts/check_serve_ci_coverage.py
language: python
additional_dependencies: [PyYAML]
pass_filenames: false
# Test-directory changes may create/remove paths covered by CODEOWNERS rules.
files: ^(\.github/CODEOWNERS|jenkins/L0_MergeRequest\.groovy|jenkins/scripts/cbts/cbts/rules/visual_gen\.py|scripts/check_serve_ci_coverage\.py|scripts/serve_ci_coverage\.yml|tensorrt_llm/serve/|tensorrt_llm/commands/|tests/unittest/serve/|tests/test_common/serve/)
- id: vendor-sources-check
name: verify vendored sources are in sync
entry: python scripts/vendor/manage.py check
Expand Down Expand Up @@ -1620,6 +1662,7 @@ repos:
# Run mypy with no explicit paths so it type-checks the set declared in
# pyproject.toml [tool.mypy] `files` (single source of truth). This
# `files:` pattern only decides when the hook triggers — any change under
# the sampler source/test dirs.
# the sampler source/test dirs or the serving frontends. A PR that adds
# a typed module elsewhere extends this pattern in the same PR.
pass_filenames: false
files: ^(tensorrt_llm/_torch/pyexecutor/sampler/|tests/unittest/_torch/sampler/)
files: ^(tensorrt_llm/_torch/pyexecutor/sampler/|tests/unittest/_torch/sampler/|tensorrt_llm/serve/|tensorrt_llm/commands/serve_cli/)
11 changes: 11 additions & 0 deletions jenkins/L0_MergeRequest.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -1948,10 +1948,21 @@ def getMultiGpuFileChanged(pipeline, testFilter, globalVars)
"tensorrt_llm/models/llama/",
"tensorrt_llm/parameter.py",
"tensorrt_llm/serve/__init__.py",
// _MsgspecRoute decodes the disaggregated frontend's msgpack bodies.
"tensorrt_llm/serve/_base/",
// The disaggregated /v1/messages runs through the Anthropic serving class.
"tensorrt_llm/serve/api/anthropic/api_router.py",
"tensorrt_llm/serve/api/anthropic/serving.py",
// /health is the disaggregated readiness probe.
"tensorrt_llm/serve/api/ops/",
"tensorrt_llm/serve/chat_tokenization.py",
"tensorrt_llm/serve/cluster_storage.py",
"tensorrt_llm/serve/disagg_auto_scaling.py",
// The error renderers both apps install; the disaggregated frontend runs them.
"tensorrt_llm/serve/exception_handling/",
"tensorrt_llm/serve/extensions/",
"tensorrt_llm/serve/metadata_server.py",
"tensorrt_llm/serve/middleware/",
"tensorrt_llm/serve/openai_client.py",
"tensorrt_llm/serve/openai_disagg_server.py",
"tensorrt_llm/serve/openai_disagg_service.py",
Expand Down
19 changes: 18 additions & 1 deletion legacy-files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -409,13 +409,30 @@ tensorrt_llm/scaffolding/task_collection.py
tensorrt_llm/scaffolding/worker.py
tensorrt_llm/scheduling_params.py
tensorrt_llm/serve/__init__.py
tensorrt_llm/serve/_base/msgspec_route.py
tensorrt_llm/serve/_base/sse.py
tensorrt_llm/serve/api/anthropic/serving.py
tensorrt_llm/serve/api/visual_gen/protocol.py
tensorrt_llm/serve/chat_utils.py
tensorrt_llm/serve/cluster_storage.py
tensorrt_llm/serve/disagg_auto_scaling.py
tensorrt_llm/serve/harmony_adapter.py
tensorrt_llm/serve/metadata_server.py
tensorrt_llm/serve/middleware/arrival_time.py
tensorrt_llm/serve/middleware/user_middleware.py
tensorrt_llm/serve/openai_disagg_server.py
tensorrt_llm/serve/openai_protocol.py
tensorrt_llm/serve/openai_protocol/chat.py
tensorrt_llm/serve/openai_protocol/common.py
tensorrt_llm/serve/openai_protocol/completions.py
tensorrt_llm/serve/openai_protocol/control.py
tensorrt_llm/serve/openai_protocol/disagg.py
tensorrt_llm/serve/openai_protocol/embeddings.py
tensorrt_llm/serve/openai_protocol/kv_cache.py
tensorrt_llm/serve/openai_protocol/models.py
tensorrt_llm/serve/openai_protocol/responses.py
tensorrt_llm/serve/openai_protocol/sampling.py
tensorrt_llm/serve/openai_protocol/tokenize.py
tensorrt_llm/serve/openai_protocol/tools.py
tensorrt_llm/serve/openai_server.py
tensorrt_llm/serve/postprocess_handlers.py
tensorrt_llm/serve/responses_utils.py
Expand Down
29 changes: 28 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -474,13 +474,30 @@ exclude = [
"tensorrt_llm/scaffolding/worker.py",
"tensorrt_llm/scheduling_params.py",
"tensorrt_llm/serve/__init__.py",
"tensorrt_llm/serve/_base/msgspec_route.py",
"tensorrt_llm/serve/_base/sse.py",
"tensorrt_llm/serve/api/anthropic/serving.py",
"tensorrt_llm/serve/api/visual_gen/protocol.py",
"tensorrt_llm/serve/chat_utils.py",
"tensorrt_llm/serve/cluster_storage.py",
"tensorrt_llm/serve/disagg_auto_scaling.py",
"tensorrt_llm/serve/harmony_adapter.py",
"tensorrt_llm/serve/metadata_server.py",
"tensorrt_llm/serve/middleware/arrival_time.py",
"tensorrt_llm/serve/middleware/user_middleware.py",
"tensorrt_llm/serve/openai_disagg_server.py",
"tensorrt_llm/serve/openai_protocol.py",
"tensorrt_llm/serve/openai_protocol/chat.py",
"tensorrt_llm/serve/openai_protocol/common.py",
"tensorrt_llm/serve/openai_protocol/completions.py",
"tensorrt_llm/serve/openai_protocol/control.py",
"tensorrt_llm/serve/openai_protocol/disagg.py",
"tensorrt_llm/serve/openai_protocol/embeddings.py",
"tensorrt_llm/serve/openai_protocol/kv_cache.py",
"tensorrt_llm/serve/openai_protocol/models.py",
"tensorrt_llm/serve/openai_protocol/responses.py",
"tensorrt_llm/serve/openai_protocol/sampling.py",
"tensorrt_llm/serve/openai_protocol/tokenize.py",
"tensorrt_llm/serve/openai_protocol/tools.py",
"tensorrt_llm/serve/openai_server.py",
"tensorrt_llm/serve/postprocess_handlers.py",
"tensorrt_llm/serve/responses_utils.py",
Expand Down Expand Up @@ -862,6 +879,16 @@ files = [
"tensorrt_llm/_torch/pyexecutor/sampler/token_ban.py",
"tensorrt_llm/_torch/pyexecutor/sampler/ops/flashinfer.py",
"tensorrt_llm/_torch/pyexecutor/sampler/ops/vanilla.py",
"tensorrt_llm/serve/_base/app_builder.py",
"tensorrt_llm/serve/_base/chat_backend.py",
"tensorrt_llm/serve/_base/errors.py",
"tensorrt_llm/serve/_base/request_context.py",
"tensorrt_llm/serve/_base/routing.py",
"tensorrt_llm/serve/api/anthropic/api_router.py",
"tensorrt_llm/serve/api/ops/system/api_router.py",
"tensorrt_llm/serve/api/ops/system/serving.py",
"tensorrt_llm/serve/exception_handling/register.py",
"tensorrt_llm/serve/middleware/register.py",
"tests/unittest/_torch/sampler/test_torch_sampler.py",
"tests/unittest/_torch/sampler/test_token_ban.py",
"tests/unittest/_torch/sampler/test_beam_search.py",
Expand Down
6 changes: 6 additions & 0 deletions ruff-legacy-baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,9 @@
"tensorrt_llm/scaffolding/task.py": {
"F821": 1
},
"tensorrt_llm/serve/_base/sse.py": {
"F821": 1
},
"tensorrt_llm/serve/disagg_auto_scaling.py": {
"D205": 2,
"D212": 2
Expand All @@ -539,6 +542,9 @@
"D212": 19,
"D415": 1
},
"tensorrt_llm/serve/middleware/arrival_time.py": {
"D212": 1
},
"tensorrt_llm/serve/openai_disagg_server.py": {
"D210": 1,
"F811": 1
Expand Down
19 changes: 18 additions & 1 deletion ruff-legacy.toml
Original file line number Diff line number Diff line change
Expand Up @@ -426,13 +426,30 @@ include = [
"tensorrt_llm/scaffolding/worker.py",
"tensorrt_llm/scheduling_params.py",
"tensorrt_llm/serve/__init__.py",
"tensorrt_llm/serve/_base/msgspec_route.py",
"tensorrt_llm/serve/_base/sse.py",
"tensorrt_llm/serve/api/anthropic/serving.py",
"tensorrt_llm/serve/api/visual_gen/protocol.py",
"tensorrt_llm/serve/chat_utils.py",
"tensorrt_llm/serve/cluster_storage.py",
"tensorrt_llm/serve/disagg_auto_scaling.py",
"tensorrt_llm/serve/harmony_adapter.py",
"tensorrt_llm/serve/metadata_server.py",
"tensorrt_llm/serve/middleware/arrival_time.py",
"tensorrt_llm/serve/middleware/user_middleware.py",
"tensorrt_llm/serve/openai_disagg_server.py",
"tensorrt_llm/serve/openai_protocol.py",
"tensorrt_llm/serve/openai_protocol/chat.py",
"tensorrt_llm/serve/openai_protocol/common.py",
"tensorrt_llm/serve/openai_protocol/completions.py",
"tensorrt_llm/serve/openai_protocol/control.py",
"tensorrt_llm/serve/openai_protocol/disagg.py",
"tensorrt_llm/serve/openai_protocol/embeddings.py",
"tensorrt_llm/serve/openai_protocol/kv_cache.py",
"tensorrt_llm/serve/openai_protocol/models.py",
"tensorrt_llm/serve/openai_protocol/responses.py",
"tensorrt_llm/serve/openai_protocol/sampling.py",
"tensorrt_llm/serve/openai_protocol/tokenize.py",
"tensorrt_llm/serve/openai_protocol/tools.py",
"tensorrt_llm/serve/openai_server.py",
"tensorrt_llm/serve/postprocess_handlers.py",
"tensorrt_llm/serve/responses_utils.py",
Expand Down
Loading