Skip to content

refactor: restructure into 3-crate workspace per ADR-03#29

Open
leseb wants to merge 6 commits into
vllm-project:mainfrom
leseb:leseb/adr-3-v1
Open

refactor: restructure into 3-crate workspace per ADR-03#29
leseb wants to merge 6 commits into
vllm-project:mainfrom
leseb:leseb/adr-3-v1

Conversation

@leseb
Copy link
Copy Markdown
Collaborator

@leseb leseb commented May 19, 2026

Summary

Restructures the flat single-crate layout into a Cargo workspace with three crates per ADR-03:

  • agentic-core: framework-agnostic library — proxy logic, config, error types, LLM readiness. No axum/clap/tower dependencies. Exposes proxy_request() as a composable building block.
  • agentic-server: standalone axum binary — thin handler adapter, CLI (clap), server lifecycle, vLLM subprocess management.
  • agentic-praxis: stub for future Praxis gateway adapter.

Built on top of PR #24's proxy gateway code (cherry-picked with full commit history). Renames vllm_* identifiers to llm_* for gateway-agnostic naming. Includes improvements to error logging, multi-value header forwarding, and CLI arg deduplication.

Test Plan

  • cargo test --workspace — 16 tests pass (7 unit in agentic-core + 9 integration in agentic-server)
  • cargo clippy --workspace --all-targets -- -D warnings — clean
  • cargo fmt -- --check — clean
  • cargo bench -p agentic-server --no-run — benchmarks compile

@leseb
Copy link
Copy Markdown
Collaborator Author

leseb commented May 19, 2026

draft because this is on top of #24 and implements proposed ADR in #28

Copy link
Copy Markdown

@ashwing ashwing left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've been following this refactor and ADR-03 closely — with #24 and #28 now merged, this looks ready to land. Left a few observations while the code is fresh; nothing blocking, mostly forward-looking questions and one small gap I'd be happy to contribute as a follow-up.

Comment thread crates/agentic-server/src/app.rs
Comment thread crates/agentic-core/src/proxy.rs
Comment thread crates/agentic-server/benches/proxy_bench.rs
leseb added 5 commits May 27, 2026 09:26
Restructure the flat crate into a Cargo workspace with three crates:

- agentic-core: framework-agnostic library (proxy logic, config, error,
  readiness). No axum/clap/tower dependencies.
- agentic-server: axum binary with CLI, thin handler adapter, server
  lifecycle, and vLLM subprocess management.
- agentic-praxis: stub for future Praxis gateway adapter.

Rename vllm_* identifiers to llm_* throughout for gateway-agnostic
naming. All existing tests and benchmarks migrate to agentic-server
with updated imports.

Signed-off-by: Sébastien Han <seb@redhat.com>
- Add tracing::warn for LLM timeout, connection, and body-read errors
- Use append instead of insert for multi-value header forwarding
- Set content-type on error responses
- Add 900s timeout on stream client to prevent infinite hangs
- Use PAYLOAD_TOO_LARGE (413) instead of BAD_REQUEST for body size
- Deduplicate CLI args into shared CommonArgs struct
- Move bytes/futures/reqwest to dev-dependencies in agentic-server

Signed-off-by: Sébastien Han <seb@redhat.com>
Update the placeholder comment to reflect ADR-03's direction: multiple
HttpFilter implementations (one per core function) composed into a
Praxis filter chain with branch support for tool-call looping.

Signed-off-by: Sébastien Han <seb@redhat.com>
Signed-off-by: Sébastien Han <seb@redhat.com>
Signed-off-by: Sébastien Han <seb@redhat.com>
@leseb leseb force-pushed the leseb/adr-3-v1 branch from c5cf4ab to bec31f3 Compare May 27, 2026 07:27
@leseb leseb marked this pull request as ready for review May 27, 2026 07:28
Signed-off-by: Sébastien Han <seb@redhat.com>
@leseb
Copy link
Copy Markdown
Collaborator Author

leseb commented May 27, 2026

@ashwing thanks for the review, i'd be happy to discuss some of your followup items in issues, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants