Skip to content

Conversation

@simongundelwein
Copy link

@simongundelwein simongundelwein commented Jan 26, 2026

Motivation and Context

Trying to run Athena without any changes leads to errors. this PR fixes those errors.

Description

  • fixed docker compose build race condition by making them depend on each other during build time
  • updated react in playground to fix security vulnerability
  • added dotenv as a dependency for modules that need it
  • updated dependency for module_text_cofee to fix runtime error

Steps for Testing

As the weren't made any changes to functionality, testing only needs to consist of validating that every service starts and runs as intended

Testserver States

Note

These badges show the state of the test servers.
Green = Currently available, Red = Currently locked
Click on the badges to get to the test servers.


Screenshots

Summary by CodeRabbit

  • Bug Fixes

    • Improved health check reliability by handling connection timeouts alongside connection errors.
  • Chores

    • Optimized Docker build configurations across multiple services for improved context sharing.
    • Enhanced dependency installation process in containerized modules.
    • Updated dependencies: python-dotenv (1.2.1), protobuf (6.31.1), and Next.js (14.2.35).

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

@simongundelwein simongundelwein requested a review from a team as a code owner January 26, 2026 18:23
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 26, 2026

📝 Walkthrough

Walkthrough

This PR updates infrastructure and dependencies across multiple modules, including broadened HTTP timeout exception handling, Docker build context configuration changes, Python dependency additions (python-dotenv), Dockerfile build step modifications, protobuf version upgrades, and a Next.js version bump.

Changes

Cohort / File(s) Summary
Health Check Exception Handling
athena/assessment_module_manager/assessment_module_manager/endpoints/health_endpoint.py
Broadens exception handling to catch both httpx.ConnectError and httpx.ConnectTimeout in the is_healthy method, ensuring timeouts are treated as server-unreachable conditions
Docker Orchestration Configuration
athena/docker-compose.yml
Replaces simple build paths with explicit build.context blocks and adds build.additional_contexts mappings across multiple services for improved build context resolution
LLM Module Build & Dependencies
athena/modules/modeling/module_modeling_llm/Dockerfile, athena/modules/modeling/module_modeling_llm/pyproject.toml,
athena/modules/programming/module_programming_llm/Dockerfile, athena/modules/programming/module_programming_llm/pyproject.toml,
athena/modules/text/module_text_llm/Dockerfile, athena/modules/text/module_text_llm/pyproject.toml
Dockerfiles add --no-root flag to initial poetry install and introduce a second install step post-file-copy; pyproject.toml files add python-dotenv = "1.2.1" dependency
Text Processing Module Dependencies
athena/modules/text/module_text_cofee/Dockerfile, athena/modules/text/module_text_cofee/pyproject.toml
Dockerfile updates protobuf-dev from 29.4-r0 to 31.1-r1; pyproject.toml updates protobuf dependency from 5.29.5 to 6.31.1
Frontend Dependencies
athena/playground/package.json
Updates Next.js version from 14.2.33 to 14.2.35

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 Hops through the code with Docker's delight,
While timeouts are caught in exception's light,
Dependencies sprouting with dotenv's embrace,
Protobuf dancing through modules with grace,
Infrastructure blooms as the gardens take flight! 🌱

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Fix/update broken dependencies' accurately reflects the main objectives of the PR, which address broken dependencies across multiple services and modules.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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: 2

🤖 Fix all issues with AI agents
In `@athena/docker-compose.yml`:
- Around line 11-19: The llm_core service contains inconsistent indentation for
the build: block; adjust the indentation so the build:, context:,
additional_contexts:, and its nested keys align with the same indentation level
used by other services (match 4-space indentation used elsewhere) in the
llm_core service definition to restore consistent YAML formatting for the build
block.

In `@athena/modules/text/module_text_cofee/Dockerfile`:
- Around line 5-7: Update the Dockerfile to document the protobuf version
synchronization: next to the protobuf-dev=31.1-r1 pin (and/or the golang:alpine
FROM line) add a brief comment referencing pyproject.toml's protobuf==6.31.1
requirement so maintainers understand the versions must stay in sync, and
optionally replace golang:alpine with a pinned base like golang:1.23-alpine3.21
to avoid drift.
🧹 Nitpick comments (3)
athena/modules/text/module_text_llm/Dockerfile (1)

22-32: Optional: avoid installing dev dependencies in the runtime image.

If dev/test groups aren’t required at runtime, you can reduce image size by installing only main deps.

♻️ Suggested tweak (optional)
-    && poetry install --no-interaction --no-ansi --no-root
+    && poetry install --no-interaction --no-ansi --no-root --only main
@@
-RUN poetry install --no-interaction --no-ansi
+RUN poetry install --no-interaction --no-ansi --only main
athena/assessment_module_manager/assessment_module_manager/endpoints/health_endpoint.py (1)

11-18: Consider catching all httpx timeouts, not just connect timeouts.

httpx.ReadTimeout/WriteTimeout/PoolTimeout still propagate and could 500 the health check. Catching httpx.TimeoutException keeps “unreachable” handling consistent.

♻️ Suggested tweak
-    except (httpx.ConnectError, httpx.ConnectTimeout):
+    except (httpx.ConnectError, httpx.TimeoutException):
athena/modules/programming/module_programming_llm/Dockerfile (1)

3-3: Nit: Stale comment in header.

The comment says "assessment module manager" but this is module_programming_llm. Consider updating for accuracy.

Suggested fix
-# This is the Dockerfile for the assessment module manager.
+# This is the Dockerfile for the programming exercise feedback LLM module.

Comment on lines 11 to 19
llm_core:
build: ./llm_core
build:
context: ./llm_core
additional_contexts:
athena: service:athena
depends_on:
- athena
image: llm_core
command: echo "llm_core build succeeded, exiting (this is normal)"
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 | 🟡 Minor

Inconsistent indentation in llm_core service.

The build: block has extra indentation (6 spaces) compared to other services (4 spaces). This inconsistency should be fixed for readability and consistency.

Suggested fix
   llm_core:
-      build:
-        context: ./llm_core
-        additional_contexts:
-          athena: service:athena
-      depends_on:
+    build:
+      context: ./llm_core
+      additional_contexts:
+        athena: service:athena
+    depends_on:
       - athena
-      image: llm_core
-      command: echo "llm_core build succeeded, exiting (this is normal)"
+    image: llm_core
+    command: echo "llm_core build succeeded, exiting (this is normal)"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
llm_core:
build: ./llm_core
build:
context: ./llm_core
additional_contexts:
athena: service:athena
depends_on:
- athena
image: llm_core
command: echo "llm_core build succeeded, exiting (this is normal)"
llm_core:
build:
context: ./llm_core
additional_contexts:
athena: service:athena
depends_on:
- athena
image: llm_core
command: echo "llm_core build succeeded, exiting (this is normal)"
🤖 Prompt for AI Agents
In `@athena/docker-compose.yml` around lines 11 - 19, The llm_core service
contains inconsistent indentation for the build: block; adjust the indentation
so the build:, context:, additional_contexts:, and its nested keys align with
the same indentation level used by other services (match 4-space indentation
used elsewhere) in the llm_core service definition to restore consistent YAML
formatting for the build block.

Comment on lines 5 to +7
# Protobuf build
FROM golang:alpine AS cofee_protobuf
RUN apk update && apk add --no-cache make protobuf-dev=29.4-r0
RUN apk update && apk add --no-cache make protobuf-dev=31.1-r1
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 | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify the pinned protobuf-dev version appears in the Dockerfile
rg -n "protobuf-dev=31\.1-r1" athena/modules/text/module_text_cofee/Dockerfile

Repository: ls1intum/edutelligence

Length of output: 130


🏁 Script executed:

#!/bin/bash
# Check the complete Dockerfile to understand the full context
cat -n athena/modules/text/module_text_cofee/Dockerfile

Repository: ls1intum/edutelligence

Length of output: 1344


🏁 Script executed:

#!/bin/bash
# Search for any other base image pins or Alpine version specifications in the repo
rg -i "golang:alpine|alpine:" --type dockerfile | head -20

Repository: ls1intum/edutelligence

Length of output: 100


🏁 Script executed:

#!/bin/bash
# Search for Dockerfile patterns in the repository
find . -name "Dockerfile*" -type f | head -20

Repository: ls1intum/edutelligence

Length of output: 901


🏁 Script executed:

#!/bin/bash
# Check other Dockerfile patterns to see if this is a consistent issue
rg "FROM.*alpine" | head -20

Repository: ls1intum/edutelligence

Length of output: 405


🏁 Script executed:

#!/bin/bash
# Check if there are any other pinned package versions in Dockerfiles for comparison
rg "apk add.*=" --type dockerfile | head -20

Repository: ls1intum/edutelligence

Length of output: 100


🏁 Script executed:

#!/bin/bash
# Search for any issues, discussions, or TODOs related to Alpine/package versions
rg -i "alpine|protobuf-dev|31\.1-r1" --type-add 'yaml:*.yml' --type yaml | head -20

Repository: ls1intum/edutelligence

Length of output: 114


🏁 Script executed:

#!/bin/bash
# Check git history to see if this was recently added or if there are related commits
git log --oneline --all -- "athena/modules/text/module_text_cofee/Dockerfile" | head -10

Repository: ls1intum/edutelligence

Length of output: 190


🏁 Script executed:

#!/bin/bash
# Check the specific commit that fixed the outdated dependency
git show 6658f9b --stat

Repository: ls1intum/edutelligence

Length of output: 50379


🏁 Script executed:

#!/bin/bash
# Check the detailed changes in that commit
git show 6658f9b -- athena/modules/text/module_text_cofee/Dockerfile

Repository: ls1intum/edutelligence

Length of output: 1579


🏁 Script executed:

#!/bin/bash
# Check if there are any Alpine version constraints or base image pins elsewhere in the repo
rg "FROM golang:alpine" -A 5 -B 5

Repository: ls1intum/edutelligence

Length of output: 877


🏁 Script executed:

#!/bin/bash
# Verify if the pinned version solves a critical issue by checking dependencies
cat -n athena/modules/text/module_text_cofee/pyproject.toml | head -30

Repository: ls1intum/edutelligence

Length of output: 1257


Document the protobuf version synchronization requirement in the Dockerfile.

The version pin protobuf-dev=31.1-r1 on a floating golang:alpine base image creates a maintenance risk—when the base image updates, this specific package version may become unavailable. However, this pin is intentionally synchronized with the Python protobuf==6.31.1 dependency (documented in pyproject.toml) following a recent fix. To make this constraint clearer to future maintainers, add a comment in the Dockerfile linking to the pyproject.toml requirement, or consider pinning the golang image to a specific Alpine version (e.g., golang:1.23-alpine3.21) to reduce drift.

🤖 Prompt for AI Agents
In `@athena/modules/text/module_text_cofee/Dockerfile` around lines 5 - 7, Update
the Dockerfile to document the protobuf version synchronization: next to the
protobuf-dev=31.1-r1 pin (and/or the golang:alpine FROM line) add a brief
comment referencing pyproject.toml's protobuf==6.31.1 requirement so maintainers
understand the versions must stay in sync, and optionally replace golang:alpine
with a pinned base like golang:1.23-alpine3.21 to avoid drift.

@github-actions
Copy link

Athena Test Results Summary

TestsPassed ✅SkippedFailed
Athena Test Report10 ran10 passed0 skipped0 failed

Failing Tests Summary

TestResult
No test annotations available

@github-actions
Copy link

📊 Detailed Coverage Table

Combining 3 coverage files...
Parsing test-results/programming_module_programming_llm_coverage.xml...
Parsing test-results/text_module_text_llm_coverage.xml...
Parsing test-results/modeling_module_modeling_llm_coverage.xml...
Combining duplicate packages...
Creating combined coverage file: test-results/combined_coverage.xml
✅ Combined coverage saved to test-results/combined_coverage.xml
📊 Combined 31 unique packages

📊 Combined Coverage Summary:

Package Line Rate Branch Rate Status
athena 37.8% 3.3%
athena.helpers 100.0% 100.0%
athena.helpers.programming 33.0% 0.0%
athena.helpers.text 0.0% 100.0%
athena.models 0.0% 0.0%
athena.schemas 76.5% 8.3%
athena.storage 21.1% 0.0%
llm_core 100.0% 100.0%
llm_core.core 54.4% 20.8%
llm_core.loaders 79.3% 37.5%
llm_core.loaders.model_loaders 68.1% 34.6%
llm_core.models 66.2% 33.3%
llm_core.models.providers 76.4% 56.2%
llm_core.utils 56.8% 22.6%
modeling.module_modeling_llm.module_modeling_llm 100.0% 100.0%
modeling.module_modeling_llm.module_modeling_llm.apollon_transformer 71.4% 50.0%
modeling.module_modeling_llm.module_modeling_llm.apollon_transformer.parser 79.2% 60.2%
modeling.module_modeling_llm.module_modeling_llm.core 88.9% 50.0%
modeling.module_modeling_llm.module_modeling_llm.models 100.0% 100.0%
modeling.module_modeling_llm.module_modeling_llm.prompts 100.0% 100.0%
modeling.module_modeling_llm.module_modeling_llm.utils 100.0% 50.0%
programming.module_programming_llm.module_programming_llm 100.0% 100.0%
programming.module_programming_llm.module_programming_llm.helpers 27.6% 0.0%
programming.module_programming_llm.module_programming_llm.prompts 100.0% 100.0%
text.module_text_llm.module_text_llm 72.7% 12.5%
text.module_text_llm.module_text_llm.default_approach 66.4% 36.1%
text.module_text_llm.module_text_llm.default_approach.prompts 100.0% 100.0%
text.module_text_llm.module_text_llm.default_approach.schemas 100.0% 100.0%
text.module_text_llm.module_text_llm.divide_and_conquer 34.0% 0.0%
text.module_text_llm.module_text_llm.helpers 55.4% 26.7%
text.module_text_llm.module_text_llm.self_consistency 46.2% 0.0%

Total packages: 31

Note: Coverage thresholds: ✅ (≥70%), ❌ (<70%)

@maximiliansoelch maximiliansoelch changed the title Fix/update broken dependencies Athena: Fix/update broken dependencies Jan 27, 2026
@github-actions
Copy link

github-actions bot commented Feb 4, 2026

There hasn't been any activity on this pull request recently. Therefore, this pull request has been automatically marked as stale and will be closed if no further activity occurs within seven days. Thank you for your contributions.

@github-actions github-actions bot added stale and removed stale labels Feb 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant