Skip to content

10.5

Latest

Choose a tag to compare

@bensofficial bensofficial released this 31 Oct 22:33
· 31 commits to develop since this release
59b5ca3

⭐️ If you find Artemis valuable, please consider giving our GitHub project a star! ⭐️

Highlights

  • 🤖 Hyperion drafts complete programming exercises and verifies them before saving: Model output for a programming exercise could fail silently, for example a template that already passes or tests that the solution fails. Hyperion now writes the problem statement, template, solution and tests for Java Gradle and Maven exercises on a separate AI worker, builds them like a student submission and saves only a verified result. Create, Adapt and Create variant share one run view that instructors can follow, cancel and undo. See #13829 and #13830.

  • 📊 Students see redesigned course statistics: The statistics page concentrated on exercise graphs whose controls became hard to use in large courses. It now lists searchable, linked exercise results filtered by type and assessment status, compares each result with students who have similar assessed results once at least ten others have one, and adds learning material and competency progress. See #14371.

  • 🎥 Recordings of connected TUM.Live courses play in Artemis: Artemis could only play and transcribe recordings of public TUM.Live courses. For a course connected to TUM.Live, it now reads recordings through the course's connection, so students can watch lectures that are visible only to signed-in TUM.Live users without a TUM.Live account. See #14306.

  • 🔐 Course role changes take effect immediately: A newly granted course role could be rejected while an existing session still carried its earlier global authorities. Teaching permissions now come only from the user's current role in the course that owns the resource, so granting or removing a role applies to the next request without signing in again. See #14370.

  • 🔍 Quizzes and quiz questions can be previewed before importing them: Instructors had to open old courses next to the import dialog to find the right version of a quiz. The import dialog and the panel for adding existing questions now show a preview of a quiz or a single question. See #14350 and #14385.

  • ✍️ Sent messages look like the editor: Mentions, line breaks and bullet lists looked right while typing but changed after sending, and empty lines were lost. Sent messages now render as one document that matches the editor, and the editor toolbar always stays on one line. See #14415, #14342, and #14349.

  • 👥 Students can find tutorial groups with free spots: A toggle in the tutorial group overview shows only groups that still have open spots, and the capacity badges have a uniform width. The create and edit form for tutorial groups now uses TUM AET UI throughout and explains why Save is disabled. See #14326 and #14028.

Improvements

  • Adaptive learning: Document the Atlas agent and clarify its feature toggles by @MaximilianAnzinger in #14369
  • Communication: Improve whitespace below send button by @rabeatwork in #14339
  • Exercises: Reject zero-point exercises and fix viewer and toolbar bugs by @krusche in #14349
  • Hyperion: Add unified programming exercise authoring and monitoring by @FelixTJDietrich in #13830
  • Learning analytics: Redesign student course statistics by @krusche in #14371
  • Lectures: Play and process recordings of connected TUM.Live courses by @bassner in #14306
  • Programming exercises: Use Vitest in the JavaScript and TypeScript templates by @krusche in #14422
  • Quiz exercises: Show student names in the participations of course quizzes by @krusche in #14343
  • Quiz exercises: Preview quizzes and quiz questions before importing them by @krusche in #14350
  • Quiz exercises: Show the import preview inside the import dialog by @krusche in #14385
  • Tutorial groups: Modernize the create form and unify the management pages by @az108 in #14028
  • Tutorial groups: Improve the student overview sidebar and attendance chart by @az108 in #14326
  • Usability: Use one points input for all points, bonus points and credits by @krusche in #14347
  • Usability: Modernize git clone dialog by @marlonnienaber in #14305

Bugfixes

  • Communication: Fix message editor empty lines, list backspace, delete button and pin option by @krusche in #14342
  • Communication: Show the course title in notifications about channels by @krusche in #14359
  • Communication: Fix sent messages with mentions, line breaks and lists differing from the editor by @krusche in #14415
  • Exam mode: Fix editing exams that have an example solution publication date by @krusche in #14398
  • Notifications: Fix publication of assessed team exercises by @krusche in #14395
  • Programming exercises: Preserve grading order and improve editor feedback by @krusche in #14367
  • Programming exercises: Check short names in target course during import by @maximiliansoelch in #14375
  • Quiz exercises: Persist short answer solution text changes on re-evaluation by @Nihad74 in #14259
  • Quiz exercises: Allow instructors to delete quiz results by @Nihad74 in #14265
  • Tutorial groups: Fix tutor names, lesson order and email footer link by @krusche in #14340
  • Usability: Allow decimal quiz points and stop replacing emoticons in the code editor by @krusche in #14345
  • Usability: Fix the attendance card size and the code of conduct height by @krusche in #14344
  • Usability: Fix too wide dividers and make all dividers between panels 6px by @krusche in #14396
  • General: Fix communication visibility and reported usability issues by @krusche in #14362
  • General: Improve editor and management usability by @krusche in #14365
  • General: Improve feedback state, result selection and navigation by @krusche in #14379

Development

Important information for administrators

  • ⚠️ Take a database backup: two migrations delete data and cannot be rolled back: The Memiris columns kept in 10.4 are dropped together with AI preference rows without a recorded decision, and duplicate one-to-one chats of the same pair of users are merged into the oldest one. Liquibase rollback stops for both and points to the backup taken before the upgrade. Reverting the WAR to 10.4 still works. Installations that used Memiris must delete its Weaviate collections after deploying Pyris without Memiris. See #14333 and #14357.

  • ⚠️ JavaScript and TypeScript exercises need the Node 24 build image: The new templates run their tests with Vitest, which requires Node 22.12 or newer. New exercises must build with ghcr.io/ls1intum/artemis-javascript-docker:v1.2.0, so installations that configure the build image themselves have to update it. Existing exercises keep their Jest test repositories. See #14422.

  • 🔐 Global tutor, editor and instructor authorities are removed: Teaching permissions come only from course roles. A migration gives teaching-only accounts basic user access and deletes the retired authorities; course roles are unchanged and older sessions keep working. Organization user search, LTI platform configuration and system notification administration moved to admin routes. See #14370.

  • 🤖 Programming exercise generation runs on a separate AI worker and is off by default: The worker uses the release image with the prod,aiworker profiles, 8 GB of memory and its own sandbox image, and coordinates with core through the distributed-data provider. Enable it with artemis.hyperion.enabled and artemis.hyperion.exercise-generation.enabled on every core and LocalVC node, plus artemis.aiworker.enabled and artemis.aiworker.ids on the worker. Do not place workers on exam-critical build capacity; the Ansible collection supports the deployment in artemis-ansible-collection#258. See #13829 and #13830.

  • 🧠 The quiz question pool chooses its models in the configuration: Hyperion's new per-course quiz question pool reads its generator and judge models from artemis.hyperion.quiz-pool.generator-model and judge-model; blank values use the default chat model. See #14308.

  • 🎥 TUM.Live recordings need the matching TUM.Live version: Playing recordings of connected courses uses a TUM.Live endpoint added in TUM-Dev/gocast#2101. With the TUM.Live connection disabled, nothing changes; the unused GET api/videosource/playlist endpoint is removed. See #14306.

  • 📉 Logs contain fewer errors and no personal mail data: Requests that the server answered correctly, such as a missing repository or a rejected access, now log at WARN or lower, and mail logs omit recipients and rendered subjects. Alerts based on the ERROR level may fire less often. See #14356 and #14362.

Security hardening

Database and schema

  • Remove obsolete memiris database storage by @krusche in #14333
  • Allow one chat per pair of users and create participants idempotently by @krusche in #14357

AI services and adaptive learning

API, client architecture, and code quality

Operations, logging, and build

  • Avoid server errors for many languages and removed profile pictures by @krusche in #14355
  • Improve server side log levels by @krusche in #14356
  • Update pnpm to 12.15.0 by @krusche in #14354
  • Update non-breaking client, server and infrastructure dependencies by @krusche in #14411
  • Document Android and iOS feature availability by @krusche in #14364
  • Reserve draft pull requests for unfinished implementations by @krusche in #14389

Tests and CI

  • Reduce CI congestion with affected test selection by @krusche in #14419
  • Repair Sonar scanner memory and badge refresh by @krusche in #14421

Full Changelog: 10.4...10.5