Skip to content

LCORE-973: updated generated doc#865

Merged
tisnik merged 1 commit intolightspeed-core:mainfrom
tisnik:lcore-973-updated-generated-doc
Dec 3, 2025
Merged

LCORE-973: updated generated doc#865
tisnik merged 1 commit intolightspeed-core:mainfrom
tisnik:lcore-973-updated-generated-doc

Conversation

@tisnik
Copy link
Contributor

@tisnik tisnik commented Dec 3, 2025

Description

LCORE-973: updated generated doc

Type of change

  • Refactor
  • New feature
  • Bug fix
  • CVE fix
  • Optimization
  • Documentation Update
  • Configuration Update
  • Bump-up service version
  • Bump-up dependent library
  • 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

Tools used to create PR

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

  • Assisted-by: N/A
  • Generated by: N/A

Related Tickets & Documents

  • Related Issue #LCORE-973

Summary by CodeRabbit

Release Notes

  • Documentation

    • Significantly improved configuration documentation with clearer field descriptions and human-friendly titles throughout all sections
    • Added detailed explanations for authentication concepts including JWT and JWK configurations
    • Enhanced schema clarity with better field-level documentation
  • Style

    • Improved responsive design for embedded graphics in documentation

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 3, 2025

Walkthrough

Documentation and schema enrichment across configuration and OpenAPI files. Changes add descriptive titles and expanded field descriptions to JSON schema definitions, update HTML styling and remove legacy IE8 shiv, refine PlantUML diagram types from Optional to required, and expand Markdown documentation with clarifying notes.

Changes

Cohort / File(s) Summary
Configuration documentation
docs/config.html, docs/config.json, docs/config.md, docs/config.puml
Added responsive SVG styling, removed IE8 conditional shiv; expanded field descriptions and titles for AccessRule, Action, ByokRag, CORSConfiguration, CustomProfile, InferenceConfiguration, JwtConfiguration, JwkConfiguration, PostgreSQLDatabaseConfiguration, SQLiteDatabaseConfiguration, UserDataCollection, and related config schemas; updated PlantUML diagram to reflect required vs. optional field types and added component relationships; added clarifying notes for non-model enumerations
OpenAPI documentation
docs/openapi.json, docs/openapi.md
Enhanced schema field titles and descriptions for alignment with configuration updates; added explicit descriptions for enum entries and configuration-related schemas; expanded explanatory notes for JWT, JWK, BYOK RAG, conversation history, and feedback/data collection fields
API reference documentation
docs/output.md
Replaced placeholder field descriptions with concrete explanations; expanded BYOK RAG, JWT/JWK configuration, and endpoint documentation; added clarifying notes for non-real models and updated response field semantics

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

  • docs/config.puml: Type annotations changed from Optional[T] to T across multiple fields—verify consistency with actual schema validation logic
  • Cross-file consistency: Descriptions and titles added across four config documentation formats—check that descriptions are consistent and accurate across HTML, JSON, Markdown, and PlantUML representations
  • New relationships in PlantUML: Several composition relationships added to the diagram—validate that relationship cardinality and naming match the schema structure

Possibly related PRs

Suggested reviewers

  • umago

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'LCORE-973: updated generated doc' is vague and generic, using imprecise language like 'updated' and 'generated doc' that does not convey specific information about what was actually changed in the documentation. Revise the title to be more descriptive and specific about the documentation changes, such as 'Add descriptions and titles to configuration schema fields' or 'Enhance config documentation with field-level descriptions and titles'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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 and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
docs/openapi.json (3)

4285-4288: Content-type/schema mismatch for text outputs

For text/plain and text/html responses you reference JSON object schemas (UnauthorizedResponse/ForbiddenResponse/InternalServerErrorResponse). Code generators and validators expect a string schema for these media types.

Proposed fix:

  • Use type "string" for text/plain and text/html variants.
  • Keep object schemas only under application/json.

Example diffs:

/metrics 401 text/plain:

-      "text/plain": {
-        "schema": {
-          "$ref": "#/components/schemas/UnauthorizedResponse"
-        }
-      }
+      "text/plain": {
+        "schema": { "type": "string" }
+      }

Repeat similarly for 403, 500, 503 under /metrics, and for root GET 401 text/html.

Also applies to: 4307-4310, 4329-4332, 4351-4354, 67-71


2607-2613: ConversationDeleteResponse example contradicts success flag

“not found” example sets success: true with a failure message. Should be false and message spelling should be “cannot”.

Suggested diffs:

/v1/conversations/{conversation_id} DELETE examples:

- "response": "Conversation can not be deleted",
- "success": true
+ "response": "Conversation cannot be deleted",
+ "success": false

Schema examples (components):

- "response": "Conversation can not be deleted",
- "success": true
+ "response": "Conversation cannot be deleted",
+ "success": false

Also applies to: 4982-4988


1377-1379: Typo: “attatchment” → “attachment”

Fix spelling in 422 examples across endpoints and components.

Example diff:

- "cause": "Invalid attatchment type: must be one of ['text/plain', 'application/json', 'application/yaml', 'application/xml']",
+ "cause": "Invalid attachment type: must be one of ['text/plain', 'application/json', 'application/yaml', 'application/xml']",

Also applies to: 1657-1659, 3596-3598, 3879-3881, 7680-7682

🧹 Nitpick comments (14)
docs/openapi.json (8)

5920-5921: JsonPathOperator: enum description

Good clarification that it’s an enum. Consider aligning “JSONPath” spelling consistently across file (see related comment below).


1031-1033: Consistent capitalization: RAG vs Rag

Use “RAG” consistently in summaries and example messages.

Example diffs:

- "summary": "Get Rag Endpoint Handler",
+ "summary": "Get RAG Endpoint Handler"
- "cause": "Rag with ID ... does not exist",
+ "cause": "RAG with ID ... does not exist",

Also applies to: 6200-6202


4495-4496: Title capitalization: K8S/K8s and API/CA

Use standard capitalization: “K8s Cluster API”, “K8s CA Cert Path”.

- "title": "K8S Cluster Api"
+ "title": "K8s Cluster API"
- "title": "K8S Ca Cert Path"
+ "title": "K8s CA Cert Path"

Also applies to: 4507-4508


5978-5984: JSONPath naming consistency

Use “JSONPath” consistently (not “JSON path”).

- "title": "JSON path",
- "description": "JSONPath expression to evaluate against the JWT payload"
+ "title": "JSONPath",
+ "description": "JSONPath expression to evaluate against the JWT payload"

Also consider aligning “JSON path comparison operator” to “JSONPath comparison operator”.


6253-6263: PostgreSQL: gss_encmode title clarity

“GSS encmode” is awkward; suggest “GSS encryption mode” (or “gssencmode” to mirror libpq).

- "title": "GSS encmode",
+ "title": "GSS encryption mode",

6248-6251: PostgreSQL: “Name space” → “Namespace”

- "title": "Name space",
+ "title": "Namespace",

6296-6304: Provider health status example casing

Examples use “OK” while ProviderHealthStatus status examples use “ok”. Consider standardizing to a single casing across docs (prefer lower-case “ok”).

Also applies to: 6416-6422


3736-3743: Streaming v2: narrow 200 content types

SSE responses are better advertised only under text/event-stream. The application/json entry with a string payload can confuse clients. Consider removing application/json here and keeping text/event-stream with a string schema + example.

docs/config.html (3)

327-471: Configuration & CORS sections are much clearer; consider tiny grammar tweaks

The added colgroups and expanded descriptions for CORS and the main Configuration fields are a solid improvement and consistent with the JSON schema.

Minor optional nits you may want to address:

  • Line 408–409: “user data(transcription history and feedbacks)” → consider “user data (transcription history and feedback)” (space after “data” and “feedback” is usually uncountable).
  • Line 450–452: “One LLM provider and one its model might be selected as default ones.” → consider “One LLM provider and one of its models can be selected as defaults.”

These are purely wording polish; structure and semantics look fine.


472-509: Conversation history, custom profiles, inference & JsonPath docs are consistent; small wording nit

The new descriptions for ConversationHistoryConfiguration, CustomProfile, InferenceConfiguration, and the JSONPath operator note accurately reflect the schemas and make the configuration semantics easier to understand.

Optional wording suggestion:

  • Line 531–532: “Dictionary containing map of system prompts” → “Dictionary mapping system prompt names to prompts” or simply “Map of system prompts”.

Otherwise this group of sections looks good.

Also applies to: 523-532, 622-646, 651-652


1238-1273: UserDataCollection docs are clearer; consider calling out data retention/PII

The descriptions for feedback_enabled, feedback_storage, transcripts_enabled, and transcripts_storage now clearly describe what gets persisted and where.

Given these options control storage of potentially sensitive user data and transcripts, you might optionally add a brief note pointing readers to any existing privacy/retention controls or policies (e.g., recommended storage locations, rotation/retention guidance).

docs/config.json (2)

814-858: Clarify quota_increase optionality vs required status in QuotaLimiterConfiguration

The description states that quota_increase “is the value (if specified) used to increase the quota when the period is reached” and distinguishes use cases where you either reset the quota via initial_quota or increase it via quota_increase. However, in the schema quota_increase is listed in the required array.

To avoid confusing config authors, consider either:

  • Making quota_increase truly optional in the schema (remove it from required), or
  • Adjusting the prose to drop “if specified” and explicitly say that both initial_quota and quota_increase must be provided, with guidance on how to set one to 0 if unused.

Same applies to the “two basic use cases” description, which currently implies that you can omit one of the fields entirely.


875-885: Clarify semantics of nullable required_entitlements

RHIdentityConfiguration.required_entitlements is typed as an array, nullable: true, default: null, but the description says “List of all required entitlements.”

If null is a meaningful “no entitlements required” state distinct from an empty list, consider briefly documenting that distinction (e.g., null vs []). If there is no intended difference, making it non-nullable or defaulting to [] could simplify the contract.

docs/config.puml (1)

24-31: Consider restoring primitive types for some scalar fields in the UML

Several important scalar fields are now shown without explicit types in the diagram even though their JSON schemas and surrounding docs define them as primitives, for example:

  • ByokRag.db_path, ByokRag.embedding_dimension
  • InMemoryCacheConfig.max_entries
  • JwkConfiguration.url, JwkConfiguration.jwt_configuration
  • PostgreSQLDatabaseConfiguration.password, PostgreSQLDatabaseConfiguration.port
  • QuotaLimiterConfiguration.initial_quota, QuotaLimiterConfiguration.quota_increase
  • QuotaSchedulerConfiguration.period

For readers using this diagram as a quick reference, having at least the base type (str / int / bool / referenced config type) would be helpful. If the omission is due to stripping Annotated[...] or URL/path types, consider mapping those to their underlying primitives when rendering the UML.

Also applies to: 85-87, 96-104, 128-138, 147-156

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8aa441c and 3a24dee.

⛔ Files ignored due to path filters (2)
  • docs/config.png is excluded by !**/*.png
  • docs/config.svg is excluded by !**/*.svg
📒 Files selected for processing (7)
  • docs/config.html (15 hunks)
  • docs/config.json (14 hunks)
  • docs/config.md (7 hunks)
  • docs/config.puml (6 hunks)
  • docs/openapi.json (18 hunks)
  • docs/openapi.md (9 hunks)
  • docs/output.md (9 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-11-24T16:58:04.410Z
Learnt from: CR
Repo: lightspeed-core/lightspeed-stack PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-24T16:58:04.410Z
Learning: Applies to src/models/config.py : All configuration must use Pydantic models extending `ConfigurationBase` with `extra="forbid"` to reject unknown fields

Applied to files:

  • docs/config.puml
📚 Learning: 2025-11-24T16:58:04.410Z
Learnt from: CR
Repo: lightspeed-core/lightspeed-stack PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-24T16:58:04.410Z
Learning: Applies to src/models/**/*.py : Pydantic configuration classes must extend `ConfigurationBase`; data models must extend `BaseModel`

Applied to files:

  • docs/config.puml
📚 Learning: 2025-11-24T16:58:04.410Z
Learnt from: CR
Repo: lightspeed-core/lightspeed-stack PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-24T16:58:04.410Z
Learning: Applies to src/models/config.py : Use type hints `Optional[FilePath]`, `PositiveInt`, `SecretStr` for Pydantic configuration models

Applied to files:

  • docs/config.puml
🪛 markdownlint-cli2 (0.18.1)
docs/config.md

218-218: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


219-219: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


243-243: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


244-244: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


245-245: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

docs/output.md

4453-4453: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4454-4454: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4478-4478: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4479-4479: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4480-4480: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

docs/openapi.md

4453-4453: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4454-4454: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4478-4478: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4479-4479: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)


4480-4480: Unordered list indentation
Expected: 0; Actual: 2

(MD007, ul-indent)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: Konflux kflux-prd-rh02 / lightspeed-stack-on-pull-request
  • GitHub Check: build-pr
  • GitHub Check: e2e_tests (azure)
  • GitHub Check: e2e_tests (ci)
🔇 Additional comments (27)
docs/openapi.md (2)

3871-5051: Documentation enhancements are clear and well-structured.

The additions throughout the Components section effectively clarify field purposes and types. The new descriptions for AccessRule, ByokRag, ConversationHistoryConfiguration, CustomProfile, InferenceConfiguration, JwkConfiguration, JwtConfiguration, and UserDataCollection provide helpful context for API consumers. The "Note: not a real model" clarifications for enumerations (Action, JsonPathOperator) are particularly useful.


4453-4454: Fix markdown list indentation to comply with linting standards.

The unordered lists under "Useful resources:" sections in JwkConfiguration (lines 4453-4454) and JwtConfiguration (lines 4478-4480) use 2-space indentation instead of the required 0-space indentation. This violates the MD007 markdown linting rule.

Apply the following fix:

  JWK (JSON Web Key) configuration.
  
  A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure
  that represents a cryptographic key.
  
  Useful resources:
  
-   - [JSON Web Key](https://openid.net/specs/draft-jones-json-web-key-03.html)
-   - [RFC 7517](https://www.rfc-editor.org/rfc/rfc7517)
+  - [JSON Web Key](https://openid.net/specs/draft-jones-json-web-key-03.html)
+  - [RFC 7517](https://www.rfc-editor.org/rfc/rfc7517)

Apply the same fix to JwtConfiguration.

docs/config.md (2)

10-72: Configuration documentation is accurate and improves clarity for users.

Field descriptions in AccessRule, AuthorizationConfiguration, ByokRag, and other sections now provide meaningful context. The addition of the "Note: not a real model" annotation for Action and JsonPathOperator enumerations helps distinguish enumerations from actual data models. Documentation is consistent with openapi.md updates.


218-219: Fix markdown list indentation to comply with linting standards.

The unordered lists under "Useful resources:" sections in JwkConfiguration and JwtConfiguration use 2-space indentation instead of the required 0-space indentation. This violates the MD007 markdown linting rule.

Apply the following fix:

  JWK (JSON Web Key) configuration.
  
  A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure
  that represents a cryptographic key.
  
  Useful resources:
  
-   - [JSON Web Key](https://openid.net/specs/draft-jones-json-web-key-03.html)
-   - [RFC 7517](https://www.rfc-editor.org/rfc/rfc7517)
+  - [JSON Web Key](https://openid.net/specs/draft-jones-json-web-key-03.html)
+  - [RFC 7517](https://www.rfc-editor.org/rfc/rfc7517)

Apply the same fix to JwtConfiguration (lines 243-245).

docs/output.md (2)

1-5051: Documentation consistency across all three files is well-maintained.

The output documentation mirrors the improvements made in openapi.md and config.md, providing consistent descriptions and clarifications across the generated documentation surface. Field descriptions are clear, enumeration notes are helpful, and JWT/JWK configuration guidance is appropriately expanded.


4453-4454: Fix markdown list indentation to comply with linting standards.

Same markdown indentation issues as in docs/openapi.md. The unordered lists under "Useful resources:" sections in JwkConfiguration (lines 4453-4454) and JwtConfiguration (lines 4478-4480) use 2-space indentation instead of 0-space indentation, violating MD007.

Apply consistent fixes across all affected sections.

Also applies to: 4478-4480

docs/openapi.json (11)

4367-4377: AccessRule: titles/descriptions look good

Clearer naming for role and allowed actions. No issues.


4416-4417: Action enum: description addition LGTM

Helpful note that this is an enum, not a model.


4542-4544: AuthorizationConfiguration: clarity improvements

“Access rules” title/description are clearer. Good change.


4629-4663: ByokRag: improved field docs

Titles/descriptions for IDs, types, dimensions, and paths read well. No schema impact detected.

Also applies to: 4673-4674


5118-5156: ConversationHistoryConfiguration: consistent labeling

Type and backend section titles/descriptions are clearer; nullability preserved. Looks good.


5355-5365: CustomProfile: clearer labels

“Path to custom profile” and “System prompts” titles are improvements. Good.


5780-5793: InferenceConfiguration: defaults documented

Titles/descriptions for default model/provider are clearer. No issues.


5929-5935: JwkConfiguration/JwtConfiguration cross‑links

Strong improvements explaining JWK/JWT and linking related schema. No issues.

Also applies to: 5943-5944


5950-5966: JwtConfiguration: claim/rules documentation

Helpful descriptions; no schema changes. LGTM.

Also applies to: 5971-5972


7192-7193: RHIdentityConfiguration: entitlement list clarity

Good clarification. LGTM.


7692-7693: UserDataCollection: clearer titles/descriptions

Improved clarity for feedback/transcripts toggles and storage paths. LGTM.

Also applies to: 7705-7706, 7710-7711, 7723-7724

docs/config.html (4)

63-66: Responsive SVG styling looks good

Making SVGs auto-height with max-width 100% aligns them with existing image handling and improves layout on narrow screens. No issues spotted.


177-205: RBAC “Configuration schema” intro and Action note are clear

The new top-level “📋 Configuration schema” heading and the clarifications for AccessRule and Action (explicitly calling Action an enumeration, not a real model) read well and match the JSON schema updates.


654-707: JWT/JWK documentation is a strong upgrade

The expanded explanations for JWK and JWT, plus the resource links and clarified field descriptions (url, user_id_claim, username_claim, role_rules), align with common JWT/JWK terminology and with the JSON schema changes. This should make auth configuration much less opaque for readers.


879-956: PostgreSQL and quota limiter docs are detailed and consistent

The new PostgreSQL configuration explanation (including references and field-level descriptions) and the expanded quota limiter/scheduler narrative clearly describe how these settings work. The table fields match the JSON schema (host/port/db/user/password/namespace/ssl_mode/gss_encmode/ca_cert_path, limiter periods and quotas).

No semantic issues spotted here.

Also applies to: 957-1067

docs/config.json (4)

13-35: RBAC and BYOK schema descriptions are consistent and helpful

The added descriptions/titles for:

  • AccessRule.role / AccessRule.actions
  • the Action enum (explicitly called out as an enumeration, not a real model)
  • AuthorizationConfiguration.access_rules
  • the ByokRag fields (rag_id, rag_type, embedding_model, embedding_dimension, vector_db_id, db_path)

are clear and match the intent of the configuration. They also line up with the HTML documentation.

Also applies to: 116-135, 132-183


331-384: Conversation history, cache, custom profile, inference, and JWT config enrichments look correct

The new description/title entries for:

  • ConversationHistoryConfiguration.type, memory, sqlite, postgres
  • CustomProfile.path and CustomProfile.prompts
  • InferenceConfiguration.default_model and default_provider
  • JwtConfiguration.user_id_claim, username_claim, and role_rules

accurately describe the semantics and are consistent with the surrounding docs and the HTML tables. This is a good improvement in discoverability.

Also applies to: 485-523, 502-523, 559-585


535-557: JWK/JWT, MCP, Llama Stack, Service, and TLS schema docs are solid

The expanded descriptions and resource links for:

  • JwkConfiguration (JWK overview, url, jwt_configuration)
  • JwtConfiguration
  • ModelContextProtocolServer
  • LlamaStackConfiguration
  • ServiceConfiguration
  • TLSConfiguration

are technically accurate and align well with how these pieces are used in configuration. No inconsistencies with the UML or HTML documentation stood out.

Also applies to: 558-585, 628-663, 664-691, 906-961, 962-990


991-1024: UserDataCollection schema docs are clear

The new titles and descriptions for feedback_enabled, feedback_storage, transcripts_enabled, and transcripts_storage accurately convey behavior and match the HTML documentation. This should help integrators understand the implications of toggling these flags.

docs/config.puml (2)

21-31: RBAC, BYOK, and CORS diagram updates align with schemas

  • AuthorizationConfiguration.access_rules : list[AccessRule] now matches its array nature.
  • ByokRag fields (rag_id, rag_type, embedding_model, embedding_dimension, vector_db_id, db_path) and
  • CORSConfiguration (allow_credentials, allow_headers, allow_methods, allow_origins)

are all represented consistently with the JSON schema and HTML docs. This keeps the UML in sync with the public configuration surface.

Also applies to: 32-38


39-54: New config relationships and QuotaSchedulerConfiguration class look correct

The added composition edges:

  • AuthenticationConfigurationConfiguration.authentication
  • DatabaseConfiguration / InferenceConfiguration / QuotaHandlersConfiguration / ConversationHistoryConfiguration / CORSConfiguration / TLSConfiguration
    and the new QuotaSchedulerConfiguration class composed into QuotaHandlersConfiguration.scheduler accurately reflect how the config models relate.

QuotaSchedulerConfiguration is also shown as extending ConfigurationBase, which is consistent with the repo guideline that config models derive from ConfigurationBase. Based on learnings, this is the right pattern.

Also applies to: 140-156, 163-172

@tisnik tisnik merged commit e6ef1f4 into lightspeed-core:main Dec 3, 2025
21 of 23 checks passed
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