Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
bfec4f3
Add data collector configuration and integrate service startup/shutdown
jrobertboos Jul 3, 2025
9f0a47f
LCORE-311: build dev image from main with tag dev-latest (#181)
matysek Jul 3, 2025
4330f7a
LCORE-217: utilities for endpoints handlers
tisnik Jul 4, 2025
d198124
Merge pull request #184 from tisnik/utilities-for-endpoints-handlers
tisnik Jul 4, 2025
0cc48c5
Service version v. 0.1.0
tisnik Jul 4, 2025
a3b7d51
Merge pull request #185 from tisnik/service-version-0.1.0
tisnik Jul 4, 2025
4ab572b
changes in the makefile
omkarjoshi0304 Jul 4, 2025
eaa27fb
Merge pull request #186 from omkarjoshi0304/dev
tisnik Jul 4, 2025
4cfe44a
LCORE-311: Update readme
matysek Jul 4, 2025
b6cc25b
Merge pull request #188 from matysek/lcore-311-3
tisnik Jul 4, 2025
37c6181
Configuration loading check in /config endpoint
tisnik Jul 6, 2025
f3e00c7
Updated unit tests accordingly
tisnik Jul 6, 2025
25cab0d
Updated OpenAPI schema
tisnik Jul 6, 2025
280d7be
Merge pull request #190 from tisnik/lcore-217-updated-config-endpoint
tisnik Jul 6, 2025
b7d13ed
Updated /query endpoint handler
tisnik Jul 6, 2025
8982769
Updated unit tests accordingly
tisnik Jul 6, 2025
11c75a0
Updated OpenAPI schema
tisnik Jul 6, 2025
be17079
Merge pull request #191 from tisnik/lcore-217-updated-query-endpoint
tisnik Jul 6, 2025
7cb9308
Additional checks in /models endpoint
tisnik Jul 6, 2025
ce89d9d
Unit tests for /models endpoint handler
tisnik Jul 6, 2025
0cb8486
Updated OpenAPI schema
tisnik Jul 6, 2025
0738e68
Merge pull request #192 from tisnik/lcore-217-updated-models-endpoint
tisnik Jul 6, 2025
4299586
Removed unused lockfile
tisnik Jul 6, 2025
2e73753
Merge pull request #193 from tisnik/remove-unused-lockfile
tisnik Jul 6, 2025
fe4b0fc
Updated streaming query endpoint
tisnik Jul 6, 2025
c1efd8f
Added new unit tests
tisnik Jul 6, 2025
cc2d649
Merge pull request #194 from tisnik/lcore-217-updated-streaming-query…
tisnik Jul 6, 2025
0024e06
LCORE-317: tooling to generate list of scenarios
tisnik Jul 7, 2025
9acb538
Generated list of scenarioss
tisnik Jul 7, 2025
9859c0f
Merge pull request #195 from tisnik/lcore-317-tooling-to-generate-lis…
tisnik Jul 7, 2025
48248a0
Do not create new session if conversation_id is provided
rawagner Jul 2, 2025
34a5224
Pass mcp config and auth headers in streaming_query too
rawagner Jul 3, 2025
5737dbf
Merge pull request #179 from rawagner/streaming_mcp
tisnik Jul 7, 2025
d11c09d
Introduce authentication to LS-stack API
umago Jul 1, 2025
2aed129
Removed unused dependency
tisnik Jul 7, 2025
71c3730
Merge pull request #196 from tisnik/removed-unused-dependency
tisnik Jul 7, 2025
07abc44
LCORE-303: silent improper Pyright warning in e2e's common.py
tisnik Jul 7, 2025
0b3fdad
Merge pull request #197 from tisnik/lcore-303-silent-improper-pyright…
tisnik Jul 7, 2025
4da4893
Fix K8SAuthDependency docstring
umago Jul 7, 2025
c717127
Add data collector service and update Makefile
jrobertboos Jul 7, 2025
dbccaa9
Referenced documents support
TamiTakamiya Jul 3, 2025
b2385be
Check metadata before building referenced documents list
TamiTakamiya Jul 7, 2025
35feb6b
Merge pull request #183 from lightspeed-core/TamiTakamiya/referenced_…
tisnik Jul 7, 2025
dba0c08
Enhance data collector configuration and update related services
jrobertboos Jul 7, 2025
da036c0
Add types-requests to development dependencies
jrobertboos Jul 7, 2025
95ab581
Enhance unit tests for DataCollectorService
jrobertboos Jul 7, 2025
9c1783f
Merge pull request #189 from umago/auth
tisnik Jul 8, 2025
7372aa5
Add tests for get_agent
rawagner Jul 8, 2025
1b8fa21
LCORE-293: config file utils
tisnik Jul 8, 2025
548ef80
Added unit tests for the new code
tisnik Jul 8, 2025
0177946
Merge pull request #201 from tisnik/lcore-293-config-file-utils
tisnik Jul 8, 2025
fbf3440
LCORE-293: support for customization options
tisnik Jul 8, 2025
5eeb059
Updated unit tests accordingly
tisnik Jul 8, 2025
303846d
Merge pull request #203 from tisnik/lcore-293-support-for-customization
tisnik Jul 8, 2025
8e24e8b
Merge pull request #200 from rawagner/get_agent_tests
tisnik Jul 8, 2025
f080a4b
LCORE-326: Add linux/arm64 arch for image building (support Mac users…
matysek Jul 8, 2025
5f4340c
LCORE-293: system prompt retrieval refactoring
tisnik Jul 8, 2025
2bdda1a
Merge pull request #204 from tisnik/lcore-293-system-prompt-refactoring
tisnik Jul 8, 2025
e66e1c8
LCORE-326: Add restore dev tagging for image building
matysek Jul 8, 2025
a86837c
Merge pull request #206 from matysek/lcore-326-1
tisnik Jul 8, 2025
f6adecf
Support MCP Headers
ldjebran Jul 8, 2025
1e28b2d
Merge pull request #202 from ldjebran/add-mcp-headers
ldjebran Jul 8, 2025
480587d
Add CORS middleware to FastAPI application
jrobertboos Jul 8, 2025
b2f72b2
Merge pull request #207 from jrobertboos/lcore-335
tisnik Jul 8, 2025
dacd970
LCORE-323: LlamaStackClient should be a singleton
manstis Jul 4, 2025
e60d7df
LCORE-293: use customized system prompt if provided
tisnik Jul 9, 2025
371b985
Updated unit tests accordingly
tisnik Jul 9, 2025
fec6903
Documentation about system prompt
tisnik Jul 9, 2025
0c7de14
Merge pull request #208 from tisnik/lcore-293-use-customized-system-p…
tisnik Jul 9, 2025
bf4a166
LCORE-316: bump-up dependencies #1
tisnik Jul 9, 2025
d678ede
Merge pull request #209 from tisnik/lcore-316-1
tisnik Jul 9, 2025
2cc5e93
Merge pull request #187 from manstis/LCORE-323
manstis Jul 9, 2025
621b610
Implement the /authorized endpoint
umago Jul 9, 2025
0596fbf
Add work-around for tool_calls with granite models.
manstis Jul 8, 2025
a881753
Document and provide test for embedding system_prompt in customizatio…
manstis Jul 9, 2025
b78ee00
Merge pull request #212 from manstis/system_prompt_docs
tisnik Jul 9, 2025
acdaa3b
Refactor DataCollectorConfiguration and enhance error handling
jrobertboos Jul 9, 2025
98e69de
Merge pull request #211 from manstis/granite_tool_parser
tisnik Jul 9, 2025
7b41edf
Updated OpenAPI schema
tisnik Jul 9, 2025
17bf0c3
Merge pull request #217 from tisnik/updated-openapi-schema
tisnik Jul 9, 2025
f5aa9c6
LCORE-326: Add arm64 image building for releases
matysek Jul 10, 2025
5e9f001
Merge pull request #218 from matysek/lcore-326-2
tisnik Jul 10, 2025
ecb63cb
Add an option to disable query system prompt
omertuc Jul 9, 2025
d501148
Merge pull request #216 from omertuc/disablequerysystemprompt
tisnik Jul 10, 2025
4ad2636
Add work-around for tool_calls with granite models and /query endpoint.
manstis Jul 10, 2025
c8ed06e
Merge pull request #219 from manstis/granite_tool_parser
manstis Jul 10, 2025
2f71c65
Merge pull request #210 from umago/authorized-endpoint
tisnik Jul 10, 2025
751d103
Add data collector constants and refactor configuration model
jrobertboos Jul 10, 2025
8dd0435
Allow mcp headers to contain mcp servers names
ldjebran Jul 11, 2025
71d3667
Merge pull request #221 from ldjebran/allow-mcp-headers-with-mcp-serv…
tisnik Jul 11, 2025
2755fea
New Makefile targets
tisnik Jul 11, 2025
e4805cc
Howto prepare and publish Python package
tisnik Jul 11, 2025
9640295
Merge pull request #222 from tisnik/lcore-240
tisnik Jul 11, 2025
9fcd408
LCORE-240: build dependencies
tisnik Jul 11, 2025
b69c20b
Merge pull request #224 from tisnik/lcore-240-build-dependencies-
tisnik Jul 11, 2025
d44e3c6
Add `pyright` configuration file
omertuc Jul 11, 2025
54dee42
Merge pull request #225 from omertuc/pyright
tisnik Jul 11, 2025
b1cb492
Unpack auth tuple to get token
omertuc Jul 10, 2025
b074aea
Merge pull request #220 from omertuc/token
tisnik Jul 11, 2025
4b9b39c
Containerfile: replace cmd with entrypoint
frzifus Jul 11, 2025
85941bf
Fixed Pylinter/Pyright issues in common_http.py
tisnik Jul 13, 2025
a3f4a1d
Fixed Pylinter/Pyright issues in llm_query_response.py
tisnik Jul 13, 2025
8dfdd6e
Better script to list e2e scenarios
tisnik Jul 13, 2025
36225c9
Merge pull request #228 from tisnik/lcore-303-fix-e2e-tests
tisnik Jul 13, 2025
4a4e90c
LCORE-303: updated docstrings
tisnik Jul 13, 2025
fcbaaa9
Merge pull request #230 from tisnik/lcore-303-updated-docstrings
tisnik Jul 13, 2025
21d153b
LCORE-316: update deps
tisnik Jul 13, 2025
c454da0
Merge pull request #231 from tisnik/lcore-316-update-deps-
tisnik Jul 13, 2025
6fbe07a
LCORE-303: fix integration tests
tisnik Jul 14, 2025
0578b21
Merge pull request #232 from tisnik/lcore-303-fix-integration-tests
tisnik Jul 14, 2025
741d9a7
Unused return values fix
tisnik Jul 14, 2025
6bf1102
Minor issues fix
tisnik Jul 14, 2025
90e48a2
Added missing docstrings
tisnik Jul 14, 2025
f570ac2
New tests + fixed existing tests
tisnik Jul 14, 2025
a59ba0e
Merge pull request #233 from tisnik/lcore-303-fixed-pylint-issues
tisnik Jul 14, 2025
d6eb0d2
Merge pull request #227 from frzifus/main
tisnik Jul 14, 2025
98fed29
Add ingress content service name to data collector configuration
jrobertboos Jul 14, 2025
e05b8ae
LCORE-369: Align service URLs with road-core
manstis Jul 14, 2025
2c0acc8
Merge pull request #236 from manstis/LCORE-369
tisnik Jul 14, 2025
4887e2a
Add data collector configuration and integrate service startup/shutdown
jrobertboos Jul 3, 2025
0c7c878
Add data collector service and update Makefile
jrobertboos Jul 7, 2025
cdf7907
Enhance data collector configuration and update related services
jrobertboos Jul 7, 2025
773374c
Add types-requests to development dependencies
jrobertboos Jul 7, 2025
e33a51b
Enhance unit tests for DataCollectorService
jrobertboos Jul 7, 2025
51ef7f4
Refactor DataCollectorConfiguration and enhance error handling
jrobertboos Jul 9, 2025
b866386
Add data collector constants and refactor configuration model
jrobertboos Jul 10, 2025
2e8d59a
Add ingress content service name to data collector configuration
jrobertboos Jul 14, 2025
636b6c9
Merge branch 'lcore-302' of github.com:jrobertboos/lightspeed-stack i…
jrobertboos Jul 14, 2025
f8becbf
Update package versions in lock file and clean up config imports
jrobertboos Jul 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 0 additions & 22 deletions .github/workflows/build.yaml

This file was deleted.

61 changes: 61 additions & 0 deletions .github/workflows/build_and_push_dev.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Build image, main branch push quay.io

on:
push:
branches: [ main ]

env:
IMAGE_NAME: lightspeed-stack
IMAGE_NAMESPACE: lightspeed-core
IMAGE_REGISTRY: quay.io
LATEST_TAG: dev-latest
CONTAINER_FILE: Containerfile

jobs:
build-and-push-dev:
runs-on: ubuntu-latest
permissions:
contents: read
# Required for image pushing to a registry
packages: write
steps:
- name: Install buildah
run: |
sudo apt update
# qemu is required for arm64 builds
sudo apt install -y buildah qemu-user-static
- name: Checkout code
uses: actions/checkout@v4
- name: Create dev image tag
run: |
echo "DEV_TAG=dev-$(date +%Y%m%d)-$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "dev image tag: ${{ env.DEV_TAG }}"
- name: Build image with Buildah
Comment on lines +30 to +33
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Bug: ${{ env.DEV_TAG }} isn’t available inside the same step

The variable is written to $GITHUB_ENV during this step and becomes available only after the step finishes, so the echo prints an empty string. Use the shell variable instead:

-echo "dev image tag: ${{ env.DEV_TAG }}"
+echo "dev image tag: $DEV_TAG"

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In .github/workflows/build_and_push_dev.yaml around lines 30 to 33, the
environment variable DEV_TAG is written to $GITHUB_ENV but referenced in the
same step using ${{ env.DEV_TAG }}, which is not yet available. To fix this,
replace ${{ env.DEV_TAG }} with the shell variable $DEV_TAG within the same run
step to correctly print the tag value.

id: build_image
uses: redhat-actions/buildah-build@v2
with:
image: ${{ env.IMAGE_NAME }}
tags: |
${{ env.DEV_TAG }}
${{ env.LATEST_TAG }}
containerfiles: |
${{ env.CONTAINER_FILE }}
archs: amd64, arm64
oci: true
- name: Check images
run: |
buildah images | grep '${{ env.IMAGE_NAME }}'
echo '${{ steps.build_image.outputs.image }}'
echo '${{ steps.build_image.outputs.tags }}'
- name: Check manifest
run: |
set -x
buildah manifest inspect ${{ steps.build_image.outputs.image }}:${{ env.LATEST_TAG }}
- name: Push image to Quay.io
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build_image.outputs.image }}
tags: ${{ steps.build_image.outputs.tags }}
registry: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAMESPACE }}
username: ${{ secrets.QUAY_REGISTRY_USERNAME }}
password: ${{ secrets.QUAY_REGISTRY_PASSWORD }}
13 changes: 12 additions & 1 deletion .github/workflows/build_and_push_release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ jobs:
- name: Install buildah
run: |
sudo apt update
sudo apt install -y buildah
# qemu is required for arm64 builds
sudo apt install -y buildah qemu-user-static
- name: Checkout code
uses: actions/checkout@v4
- name: Build image with Buildah
Expand All @@ -37,7 +38,17 @@ jobs:
${{ env.LATEST_TAG }}
containerfiles: |
${{ env.CONTAINER_FILE }}
archs: amd64, arm64
oci: true
- name: Check images
run: |
buildah images | grep '${{ env.IMAGE_NAME }}'
echo '${{ steps.build_image.outputs.image }}'
echo '${{ steps.build_image.outputs.tags }}'
- name: Check manifest
run: |
set -x
buildah manifest inspect ${{ steps.build_image.outputs.image }}:${{ env.LATEST_TAG }}
- name: Push image to Quay.io
uses: redhat-actions/push-to-registry@v2
with:
Expand Down
46 changes: 46 additions & 0 deletions .github/workflows/build_pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Check image building

on:
- pull_request

env:
IMAGE_NAME: lightspeed-stack
IMAGE_NAMESPACE: lightspeed-core
LATEST_TAG: dev-latest
CONTAINER_FILE: Containerfile

jobs:
build-pr:
runs-on: ubuntu-latest
permissions:
contents: read
# Required for image pushing to a registry
packages: write
steps:
- name: Install qemu and buildah
run: |
sudo apt update
# qemu is required for arm64 builds
sudo apt install -y buildah qemu-user-static
- name: Checkout code
uses: actions/checkout@v4
- name: Build image with Buildah
id: build_image
uses: redhat-actions/buildah-build@v2
with:
image: ${{ env.IMAGE_NAME }}
tags: |
${{ env.LATEST_TAG }}
containerfiles: |
${{ env.CONTAINER_FILE }}
archs: amd64, arm64
oci: true
- name: Check images
run: |
buildah images | grep '${{ env.IMAGE_NAME }}'
echo '${{ steps.build_image.outputs.image }}'
echo '${{ steps.build_image.outputs.tags }}'
- name: Check manifest
run: |
set -x
buildah manifest inspect ${{ steps.build_image.outputs.image }}:${{ env.LATEST_TAG }}
2 changes: 1 addition & 1 deletion Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ ENV PATH="/app-root/.venv/bin:$PATH"

# Run the application
EXPOSE 8080
CMD ["python3.12", "src/lightspeed_stack.py"]
ENTRYPOINT ["python3.12", "src/lightspeed_stack.py"]

LABEL vendor="Red Hat, Inc."

Expand Down
17 changes: 15 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
ARTIFACT_DIR := $(if $(ARTIFACT_DIR),$(ARTIFACT_DIR),tests/test_results)
PATH_TO_PLANTUML := ~/bin

# Python registry to where the package should be uploaded
PYTHON_REGISTRY = pypi


run: ## Run the service locally
uv run src/lightspeed_stack.py

run-data-collector: ## Run the data collector service locally
uv run src/lightspeed_stack.py --data-collector

test-unit: ## Run the unit tests
@echo "Running unit tests..."
@echo "Reports will be written to ${ARTIFACT_DIR}"
Expand Down Expand Up @@ -60,19 +66,26 @@ pyright:
uv run pyright src

docstyle:
uv run pydocstyle -v .
uv run pydocstyle -v src

ruff:
uv run ruff check . --per-file-ignores=tests/*:S101 --per-file-ignores=scripts/*:S101

verify:
verify: ## Run all linters
$(MAKE) black
$(MAKE) pylint
$(MAKE) pyright
$(MAKE) ruff
$(MAKE) docstyle
$(MAKE) check-types

distribution-archives: ## Generate distribution archives to be uploaded into Python registry
rm -rf dist
pdm run python -m build

upload-distribution-archives: ## Upload distribution archives into Python registry
pdm run python -m twine upload --repository ${PYTHON_REGISTRY} dist/*

help: ## Show this help screen
@echo 'Usage: make <OPTIONS> ... <TARGETS>'
@echo ''
Expand Down
Loading