Sync main to release 0.7 - #2535
Open
radofuchs wants to merge 346 commits into
Open
Conversation
…d-dependencies-5 LCORE-2922: Updated dependencies
…d-models-doc LCORE-3473: Updated models doc
…new-successful-responses-models LCORE-3473: added new successful responses models
…d-dependencies-6 LCORE-2922: Updated dependencies
…pending LCORE-1627: fix e2e proxy teardown asyncio task warnings
…new-common-models LCORE-3473: added new common models
…references/main Update Konflux references
…-config-format-version LCORE-2872: validate config_format_version against detected config shape
…nified-config RHIDP-14083: fix: set EXTERNAL_PROVIDERS_DIR in image for unified config
fix: update embedding model handling to work with ogx
…rated-models-doc LCORE-3473: Regenerated models doc
…-unified-synthesis-integration-tests LCORE-2747: integration tests for unified-mode synthesis
…cstring Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…oint
Implements comprehensive OpenTelemetry (OTEL) tracing instrumentation for the POST
/v1/query endpoint to enable distributed tracing and observability.
**Instrumented Components**
1. Query Endpoint Handler (`src/app/endpoints/query.py`)
2. Quota Check (`src/utils/quota_utils.py`)
3. Shield Moderation (`src/utils/shields.py`)
4. RAG Retrieval (`src/utils/vector_search.py`)
5. LLM Inference (`src/utils/agents/query.py`)
6. Tool Execution (`src/utils/agents/query.py`)
**Span Hierarchy**
```
query.handle_request (root span)
├── quota.check
├── shield.moderate
├── rag.retrieve
└── llm.inference
└── tool.execution (attributes only)
```
…experience-1 RHIDP-14130: OKP experience improvements - citation URLs, search mode, ogx provider migration
LCORE-1792: Add OpenTelemetry instrumentation for POST /v1/query endpoint
Signed-off-by: Jordan Dubrick <jdubrick@redhat.com>
* fix konflux issues with wrong package versions --------- Co-authored-by: Radovan Fuchs <rfuchs@rfuchs-thinkpadp1gen7.tpb.csb>
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…d-dependencies-7 LCORE-2096: Updated dependencies
LCORE-3467: Enable Ruff rule [PLW1510] on CI and fix all problems found in sources
…vulnerability-in-aiohttp LCORE-3706: Fixed vulnerability in aiohttp library
…-catch-blind-exception LCORE-3514: Do not catch blind exception
LCORE-2984: Add OpenTelemetry spans to A2A endpoint
…-catch-blind-exception LCORE-3513: Do not catch blind exception
…-exception-catch-in-environment-py LCORE-3510: Proper exception catch in environment.py
…d-doc LCORE-2096: Updated doc
…-ruff-rule-perf-402 LCORE-3465: Enable Ruff rule PERF-402
LCORE-3503: Do not catch blind exception
…ponses
Add a context_status field ("full" when no compaction occurred,
"summarized" when older turns were replaced by a compaction summary) to
the two response surfaces clients actually receive on the wire:
- QueryResponse (src/models/api/responses/successful/query.py) for the
non-streaming /v1/query endpoint.
- EndEventData (src/models/common/agents/stream_payloads.py), the SSE
"end" event payload, for the streaming /v1/streaming_query endpoint.
StreamingQueryResponse is a documentation-only class with an empty
body, so the field is deliberately NOT added there; only its SSE
example string is updated to show context_status in the end event.
The value maps directly from CompactionResult.compacted (set by the
LCORE-1572 compaction integration): a new context_status property on
CompactionResult performs the mapping in one place. The non-streaming
endpoint reads it when building QueryResponse; the streaming
compaction-aware path captures it from the yielded CompactionResult and
threads it through generate_agent_response (new context_status
parameter, defaulting to "full" for the non-compaction path) into
EndStreamPayload.create.
The shared ContextStatus Literal["full", "summarized"] type alias lives
in models/common/turn_summary.py (imported by both response surfaces
already) and is exported from models.common. In the regenerated OpenAPI
schema it becomes a named enum component referenced by
QueryResponse.context_status; the streaming endpoint's SSE example now
shows context_status in the end event (the streaming response is
documented via an inline example only, so EndEventData itself does not
appear as a component schema).
/v1/responses intentionally does not get the field (it stays
OpenAI-shaped and compacts silently by design, R12), and the A2A
executor is out of scope for the UI-indicator use case.
Unit tests cover the CompactionResult mapping, the QueryResponse field
(default, explicit value, rejection of unknown values), the end event
payload contents for both statuses, and the full/summarized threading
through both endpoint pipelines.
…n doc Update the conversation-compaction design doc to match the implemented context_status surface: - Rewrite the "API response changes" section: the field is added to QueryResponse (non-streaming /v1/query) and EndEventData (the streaming SSE end event payload), not to StreamingQueryResponse, which turned out to be a documentation-only class with an empty body — adding a field there would change nothing on the wire, so it is intentionally skipped and only its SSE example is updated. - Replace the stale "src/models/responses.py (now relocated)" row in the key-files table with the two real locations and the docs-only-skip note. - Update the request-flow step 11 note now that LCORE-1573 has landed.
Emits a single startup WARN when unified-mode synthesis starts from the shipped baseline as "default" (or with the selector omitted), naming "byo-llm" as the replacement, the release the built-in OpenAI provider is removed in, and the configuration documentation. The schedule is deprecate in 0.7, remove in 0.8. "default" and the shipped src/data/default_run.yaml went GA in 0.6.0, not only in an 0.7 release candidate, so the Engineering Support Agreement's mandatory one-minor-release deprecation phase applies before the OpenAI row can be dropped from it. The warning is scoped to the shipped baseline: selecting "byo-llm", "empty" or a profile stays silent, which the tests now assert alongside the existing behavioural checks so the scoping cannot regress. The warning itself was originally written and container-tested by Jordan Dubrick in lightspeed-core#2498 and removed there at review, so that the additive byo-llm baseline could land without carrying a release commitment that had not been made yet. This restores it with the release now decided.
LCORE-2547: Renamed non-functional LLS occurrences
…-deprecate-default-baseline LCORE-3696: deprecate the built-in OpenAI provider in baseline default
…-context-status LCORE-1573: surface compaction outcome as context_status in query responses
LCORE-3507 - Do not catch blind exception: Exception src/utils/vector_search.py:625:12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Type of change
pyproject.toml+uv.lock]requirements.*.txtfor Konflux]Tools used to create PR
Identify any AI code assistants used in this PR (for transparency and review context)
Related Tickets & Documents
Checklist before requesting a review
Testing