Skip to content

Sync main to release 0.7 - #2535

Open
radofuchs wants to merge 346 commits into
lightspeed-core:release/0.7from
radofuchs:sync-main-to-release-0.7
Open

Sync main to release 0.7#2535
radofuchs wants to merge 346 commits into
lightspeed-core:release/0.7from
radofuchs:sync-main-to-release-0.7

Conversation

@radofuchs

Copy link
Copy Markdown
Contributor

Description

Type of change

  • Refactor
  • New feature
  • Bug fix
  • CVE fix
  • Optimization
  • Documentation Update
  • Configuration Update
  • Bump-up service version
  • Bump-up dependent library [pyproject.toml + uv.lock]
  • Bump-up dependent library [requirements.*.txt for Konflux]
  • Bump-up library or tool used for development (does not change the final image)
  • CI configuration change
  • Konflux configuration change
  • Unit tests improvement
  • Integration tests improvement
  • End to end tests improvement
  • Benchmarks improvement

Tools used to create PR

Identify any AI code assistants used in this PR (for transparency and review context)

  • Assisted-by: (e.g., Claude, CodeRabbit, Ollama, etc., N/A if not used)
  • Generated by: (e.g., tool name and version; N/A if not used)

Related Tickets & Documents

  • Related Issue #
  • Closes #

Checklist before requesting a review

  • I have performed a self-review of my code.
  • PR has passed all pre-merge test jobs.
  • If it is a core feature, I have added thorough tests.

Testing

  • Please provide detailed steps to perform tests related to this code change.
  • How were the fix/results from this change verified? Please provide relevant screenshots or results.

tisnik and others added 30 commits August 9, 2026 11:23
…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>
@radofuchs
radofuchs requested a review from tisnik August 25, 2026 08:31
@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 6e0e4a13-6d22-4725-b88a-b681a71238e8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

tisnik and others added 28 commits August 25, 2026 14:00
…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
…-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
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.