Skip to content

🚀 add serving and telemetry#139

Merged
renardeinside merged 152 commits intomainfrom
experimentation/framework
Mar 30, 2026
Merged

🚀 add serving and telemetry#139
renardeinside merged 152 commits intomainfrom
experimentation/framework

Conversation

@renardeinside
Copy link
Copy Markdown
Collaborator

No description provided.

renardeinside and others added 30 commits March 4, 2026 21:40
…/OutboundResponse

Phase 2+3: ASGI objects, transport converters, and dual dispatch bridge.

- HandlerDispatch takes InboundRequest, returns OutboundResponse (no axum types)
- python_handler is the sole transport boundary (axum→InboundRequest→OutboundResponse→axum)
- AsgiBridgeDispatch collects ASGI events from scope/receive/send channel
- Header + Cookie param extraction with alias support and validation errors
- ConnectInfo<SocketAddr> wired through tcp.rs → build_router → HandlerState
- BoundRoute extended with dependant/fastapi_app fields for phase-5
- 207 tests pass, zero clippy warnings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…very

- Add : extract routes directly from live FastAPI app
  (dependant, params, response_model, dispatch strategy classification)
- Remove Python-side  package, , and PyO3 intermediaries
  (, , )
- Extract  to shared  module
- Cache  with , register ASGI classes in pyapi
- Add  strings to  lint attributes across test modules
- Update Rust skill docs with expanded conventions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements Phase 5:  loads pre-built
manifest, imports only handler functions (no FastAPI), and executes compiled
dependency plans via Rust-side PlanExecutorDispatch.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…oilerplate

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…rce::RawRequest

In v1 (FastAPI-only DSL), these types are unreachable:
- pyapi::Request was only produced by ParamSource::RawRequest, which no
  discovery path ever generates (FastAPI routes with Request param use
  ASGI bridge + Starlette Request instead).
- pyapi::Response was only consumed by serialize_raw_response, which
  duck-typed .status/.body — silently broken for the common case of
  handlers returning dicts/Pydantic models without response_model=.

Replaces serialize_raw_response with serialize_untyped_response that
tries model_dump_json first, falls back to json.dumps.

Also fixes serialize_model_response to respect route.manifest.status_code
instead of hardcoding 200 (POST 201 now works correctly).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…tted path validation, add CorsConfig, replace polling loops, and convert #[allow] to #[expect]
… scope keys, single-chunk fast path, empty-body fast path, direct PyBytes extraction
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…te, latency guard

- Add scripts/bench/results/ to .gitignore
- Create root .dockerignore (excludes target/, .git/, node_modules/ from APX build context)
- Make delete_item idempotent (204 regardless of existence)
- Fix latency ratio guard to check both sides

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add target: "apx::http" to HTTP span so EnvFilter matches apx=info
- Enable experimental_use_tracing_span_context on appender-tracing
- Preserve instrument name/description/unit in histogram_bucket_view
- Unit tests for Unit, span, log, Counter, Histogram, Gauge, StatusCode
- Integration tests for metric correctness (names, types, units, descriptions)
- Integration tests for span attributes and structure
- Regression guard for empty metric name bug
@renardeinside renardeinside merged commit 80aeee6 into main Mar 30, 2026
@renardeinside renardeinside deleted the experimentation/framework branch March 30, 2026 21:34
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.

1 participant