Skip to content

bug(server integration): adopt Praxis-managed subrequest policy reloads #639

Description

@franciscojavierarceo

Problem

AI callouts using the server-provided SubRequestClient can retain
the startup body_limits.max_response_bytes ceiling after a
successful dynamic configuration reload.

This makes reload appear successful while affected callouts continue
enforcing stale runtime policy.

Ownership and status

This issue tracks Praxis AI adoption and AI-visible regression
coverage. The underlying server composition, client policy, and
reload lifecycle are generic Praxis concerns tracked upstream by:

Implementation remains blocked until the proposal is accepted and
the required Praxis core API is available. Praxis AI should not
introduce its own reloadable client handle, require callers to
coordinate handle identity, or duplicate generic server, watcher,
and reload lifecycle code.

Scope

  • Adopt the Praxis-managed server composition and subrequest-policy
    API in the Praxis AI server.
  • Remove the duplicated AI lifecycle plumbing superseded by that
    upstream API.
  • Ensure every AI filter that receives the shared SubRequestClient
    inherits the active server-managed response ceiling. Current
    consumers include:
    • anthropic_web_search
    • openai_file_resolve
    • openai_file_search_callout
    • openai_responses_compact
    • openai_web_search
  • Keep connector settings that require restart explicit and
    consistently diagnosed.
  • Document which subrequest settings are reloadable versus
    restart-required.

Out of scope

  • Defining or implementing the upstream Praxis composition API.
  • Implementing atomic pipeline, activation, and runtime-policy
    publication in Praxis core.
  • Defining policy behavior for listeners retained across a
    topology-changing reload.
  • Unifying Praxis startup, validation/dump, and reload construction
    paths.
  • Making connection-pool, connection-cap, or circuit-breaker
    configuration dynamically reloadable unless the upstream design
    explicitly supports it.

These generic guarantees belong to Enhancements EPIC praxis-proxy/praxis#1076 and its
Praxis implementation issues.

Acceptance criteria

  • Praxis AI uses the supported Praxis composition and policy API
    without copied generic server, watcher, or reload-policy plumbing.
  • Reload with a smaller max_response_bytes value and prove
    file-resolve and web-search callouts enforce the smaller ceiling.
  • Reload with a larger value and prove an allowed response is no
    longer rejected by the startup ceiling.
  • All shared-client AI factories consume the Praxis-managed client
    without an AI-specific reload handle or handle-identity
    requirement.
  • Operator documentation distinguishes reloadable response limits
    from restart-required connector settings.

Related

Activity

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

Metadata

Metadata

Assignees

Type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions