Skip to content

9.0.0

Choose a tag to compare

@bassner bassner released this 08 Apr 16:43
· 326 commits to develop since this release
352441e

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

Important information for administrators

  • Migration path: Version 9.0.0 is designed for fresh installations of Artemis or upgrades from version 8.8.6 only, due to significant database migration cleanups. All 66 incremental Liquibase changelogs from 8.x have been consolidated into a new initial schema.
  • AI services: When upgrading to 9.0.0, ensure to upgrade all Edutelligence services such as Pyris, Atlas, Athena etc. to version 2.0.0!
  • Nebula retired: The Nebula service (part of Edutelligence) has been retired. The features are now part of Pyris. Nebula deployments can be shut down and Nebula configuration should be removed.
  • Pre-deployment testing: We strongly recommend thoroughly testing this release in a test environment before deployment on production systems, as it includes extensive updates and breaking changes (see below).
  • Spring Boot 4 upgrade: The server has been upgraded from Spring Boot 3.5 to Spring Boot 4.0.5, along with Spring Framework 7, Spring Security 7, Hibernate 7.2, and Spring AI 2.0.0-M4. Server administrators should carefully review their application-prod.yml for any relocated or changed configuration keys.
  • Global Search: The new search is implemented as a runtime feature toggle that can be enabled via the admin panel or application-local.yml

Release highlights

🔍 Global Search

A new global search modal accessible via Cmd+K / Ctrl+K allows users to quickly search across exercises, lectures, and other content from anywhere in Artemis. An AI answer panel powered by Iris provides contextual answers alongside search results in a split view.

🏠 Redesigned Landing Page

A new public landing page greets unauthenticated visitors at the root URL, replacing the previous login-only view. The page showcases key features via a tabbed spotlight with demo videos, displays partner university logos, includes an expandable FAQ section, and provides clear call-to-action buttons. Authenticated users are automatically redirected to their dashboard.

🧠 Iris Chat UI Overhaul

The Iris AI assistant has received a comprehensive UI redesign: a new chat widget header with inline session switcher, redesigned thinking state with animated status feedback and a status indicator when minimized, redesigned chat items with entity display on the sidebar, improved summary bubbles, citation deep linking into the new PDF viewer, prompt scaffolding with suggestion chips for the empty state, and memory display showing used and created memories in chat. The lecture content processing pipeline has been fully migrated from Nebula to Pyris with capacity-aware dispatch, heartbeat-based stuck detection, and automatic re-queuing on Iris restart.

🎯 Iris Context Selection

Previously, opening a new chat on the dashboard initialized it with the entire course as context. Now, users can select a specific exercise or lecture as chat context through a new context selection interface, making Iris responses more targeted and relevant.

🧩 Iris In-Chat Quiz Generation

Students can now request AI-generated multiple-choice quiz questions directly within the Iris chat. Iris responds with an interactive MCQ carousel grounded in actual lecture content, supporting multi-question sets with score tracking, inline answering with correct/incorrect feedback and explanations, citation links back to lecture material, and response persistence across sessions. The server detects MCQ-formatted JSON in LLM responses and renders them as interactive components instead of plain text.

🤖 Autonomous Tutor Responses in Communication Channels

Iris can now proactively respond to student posts in course communication channels without requiring students to explicitly open the Iris chat. When enabled via the new AutonomousTutor feature toggle (disabled by default), a dedicated iris-bot user posts AI-generated replies directly into conversation threads. The AI autonomously decides whether to reply based on confidence. Reply forwarding respects AI consent preferences — posts from students who opted out are never forwarded, and their content in threads is redacted before being sent to Pyris.

✨ AI-Powered Exercise Creation (Hyperion)

Instructors can now create programming exercises with AI using a new "Generate with AI" button that initializes an empty repository (avoiding default template files as LLM context) and kicks off LLM-based code generation with progress tracking and repository selection. Hyperion also adds an AI-powered quality checklist panel to the problem statement editor that detects issues like vague wording, missing task structure, and unclear grading criteria, with one-click AI-generated fixes (individual, bulk, or multi-select). Additional checklist sections provide competency inference and difficulty assessment. Consistency issues are persisted as review comments.

📝 AI Quiz Generation

Instructors can generate quiz questions with AI via a dedicated modal in the quiz creation/edit view (requires Hyperion). The modal allows configuring topic, language, number of questions, question types (single-choice, multiple-choice, true/false), difficulty, and an optional prompt. Generated questions are previewed with Markdown rendering and can be appended to the quiz.

📄 PDF Viewer with Deep Linking

A new in-app PDF viewer displays lecture slides directly within Artemis when opening a lecture unit card with a PDF attachment. Deep linking is supported via URL query parameters, allowing Iris citation bubbles and other features to link directly to specific pages. The viewer includes zoom controls and a live page indicator.

🏗️ Build Plan Phases

A new phases-based build plan format for LocalCI. Each phase has a name, script, execution condition (e.g. always or only after the due date), and result paths. Instructors can edit, reorder, and configure phases through the UI. Existing configurations are automatically converted. Build success/failure determination is now phase-aware: phases with result paths expect test feedback, while phases without result paths use exit codes.

🏫 Exam Room Management

Exam room management is now accessible to instructors (previously admin-only) via the "Distribute" button on the exam Students page. The UI has been simplified and the room upload/management workflow is now co-located with student distribution for easier access.

📊 Improved Competency Management

The competency and prerequisite management tables now support client-side column sorting (Title, Taxonomy, Soft Due Date, Mastered Students), a live search/filter bar, and a "no results" row. A new bulk server endpoint returns course-level progress for all competencies in a single call instead of N individual requests. The standardized competency import has also been improved with better layout and client-side JSON validation.

👥 Collaborative Live Editing in Online Code Editor

Multiple instructors and editors can now concurrently edit code files in the online code editor (template, solution, tests, and auxiliary repositories) with conflict-free synchronization. The feature includes cursor awareness showing other users' positions, live file tree synchronization (create/delete/rename with rename resilience), and a new-commit alert notification when another user pushes changes while the editor is open.

🎓 Course Onboarding Wizard

A new 5-step guided onboarding wizard (General Settings, Enrollment, Communication, Assessment, Explore Artemis) helps instructors configure essential course settings immediately after creation. Progress is persisted on each step so it is not lost if the user navigates away. Courses that haven't completed onboarding auto-redirect instructors to the wizard. FAQ management is now always available, with student visibility based on whether accepted FAQs exist.

📝 Redesigned Exercise Participation & Management

The student exercise experience has been consolidated into a single split-panel interface using ExerciseSplitPanelComponent. Problem statement, editor/submission area, Iris chatbot, discussion, example solution, and complaints are all accessible without page navigation. New header components provide a unified exercise title with metadata, a result history dropdown for browsing previous submissions, and a participation mode toggle for switching between graded and practice modes. Practice mode with AI feedback (Athena) has been extended to text and modeling exercises. The instructor exercise management page has also been streamlined: shortened button labels, consolidated date and points columns, and visual status indicators replacing text.

🎨 Next-Generation Modeling Editor (Apollon)

The modeling editor has been completely redesigned from the ground up, introducing a modern architecture that significantly improves performance, scalability, and usability. The new editor delivers a much smoother and more responsive modeling experience, especially for large and complex diagrams. Interactions such as creating, editing, and navigating models are now faster and more intuitive, reducing friction for both students and instructors. Beyond performance, the rewrite lays the foundation for future innovation in modeling-based learning, enabling more advanced features and tighter integration with AI-driven feedback and assessment. The new editor is available directly within Artemis and can also be explored independently without an account:
👉 https://apollon.aet.cit.tum.de

Breaking Changes

Infrastructure & Configuration

  • ⚠️ Nebula removed: The Nebula transcription path for lecture content processing has been fully replaced by Pyris. See Pull Request #12459.
  • ⚠️ Spring Boot 4 upgrade: Major framework upgrade from Spring Boot 3.5 to 4.0.5. This includes Spring Framework 7.0.6, Spring Security 7.0.4, Hibernate 7.2.7, Spring Data 4.0.4, and Spring AI 2.0.0-M4. Server administrators must review their application-prod.yml for relocated configuration keys (25+ package relocations). See Pull Request #12381 for full details.
  • ⚠️ Liquibase upgraded from 4.27.0 to 5.0.2. Existing installations upgrading from 8.8.6 will have checksums recalculated automatically.
  • ⚠️ Database schema consolidated: 66 incremental changelogs folded into the initial schema. Upgrade from 8.8.6 is required — skipping intermediate versions will fail. See Pull Request #12401.
  • ⚠️ Token authentication now default: The default repository authentication order changed from password,token,ssh to token,ssh,password. See Pull Request #12456.
  • ⚠️ Sentry configuration changed: Default DSN is now disabled, PII collection is disabled by default, and data scrubbing is enabled for all Sentry messages. See Pull Request #12357.
  • ⚠️ Apollon upgraded to v4: The modeling diagram editor has been upgraded from @ls1intum/apollon v3 to @tumaet/apollon v4. See Pull Request #12189.
  • ⚠️ Build plan phases: Programming exercises now use a new phases-based build plan format for LocalCI, moving away from the Aeolus/Windfile model. Existing build configurations may need to be updated. See Pull Request #12265.
  • ⚠️ Weaviate configuration (for global search): Administrators deploying global search need to configure the Weaviate vector database with an embedding model and optionally an OpenAI-compatible API key. See Pull Request #12021 and Pull Request #12324.
  • ⚠️ FACT Docker image updated: The default FACT Docker image changed to ls1tum/artemis-fact-minimal-docker:1.1.0. See Pull Request #12266.

Removed Features & Deprecated Code

  • Judgement of Learning (JoL) self-assessment feature has been removed. Students can no longer rate their own mastery of competencies. The CompetencyJol entity, related endpoints, and all UI components have been deleted. See Pull Request #12288.
  • Deprecated AthenaResource forwarding endpoints removed (zero callers).
  • NotificationType enum deleted (dependent service already removed).
  • SubmissionType.ILLEGAL enum value removed, with Liquibase migration.
  • Lecture.visibleDate field removed from entity, DTOs, and client code, with Liquibase migration to drop the column.
  • faqEnabled flag removed from courses. FAQ management is now always available for instructors; student visibility is based on whether accepted FAQs exist.
  • ⚠️ Apollon drag-and-drop quizzes temporarily disabled via feature flag due to the Apollon v4 upgrade. See Pull Request #12484.

Improvements

  • Programming exercises: Enable collaborative live editing in online code editor for editors by @Elfari1028 in #12195
  • Programming exercises: Synchronize review comments between active users by @IcanCUthere in #12174
  • Programming exercises: Show review comment count in file browser by @IcanCUthere in #12173
  • Programming exercises: Enable instructors to view the exercise version history by @IcanCUthere in #12255
  • Programming exercises: Add build plan phases by @matyasht in #12265
  • Programming exercises: Normalize CRLF to LF in problem statement sync to fix collaborative editing offsets by @Elfari1028 in #12361
  • Integrated code lifecycle: Prioritize token authentication as default repository auth method by @bassner in #12456
  • Quiz exercises: Allow instructors to generate quizzes with AI by @MaximilianAnzinger in #12246
  • Quiz exercises: Add Markdown for AI Quiz Generation by @MaximilianAnzinger in #12289
  • Quiz exercises: Prevent editing during and after quiz running by @krusche in #12139
  • Communication: Allow users to mark messages as unread by @ayca-cevdet in #12079
  • Communication: Add "Unread" sidebar category and enhance channel sorting by @Kiara65 in #12192
  • Communication: Ensure answer posts are always displayed when sent by @anian03 in #12227
  • Communication: Hide markdown text actions when not applicable by @anian03 in #12158
  • Exam mode: Add room management for instructors by @SamuelRoettgermann in #12044
  • Adaptive learning: Allow instructors to execute a full workflow involving all sub-agents in plan mode by @Yhmidi in #12198
  • Adaptive learning: Improve standardized competency management layout and import validation by @jaylann in #12234
  • Learning analytics: Add sorting and filtering to competency management table by @louis-heinrich in #12231
  • Lectures: Create PDF viewer with deep linking by @vivienxr in #12257
  • Lectures: Create deep linking for HLS video player by @vivienxr in #12323
  • Lectures: Follow-up for PDF viewer by @vivienxr in #12369
  • Lectures: Improve transcription documentation and add UI hint by @Nayer-kotry in #12389
  • Iris: Enable Autonomous Tutor Responses in Communication Channels by @toukhi in #12130
  • Iris: Redesign chat-widget header by @thynguyentumde in #12200
  • Iris: Redesign Iris thinking state and add status indicator for Iris widget when minimized by @thynguyentumde in #12260
  • Iris: Add interactive MCQ rendering in chat by @alretum in #12278
  • Iris: Add MCQ carousel, response persistence, and content-aware quiz generation by @alretum in #12355
  • Iris: Redesign chat items with entity on sidebar by @krusche in #12322
  • Iris: Improve design of summary bubbles by @vivienxr in #12310
  • Iris: Deeplink citation bubbles by @vivienxr in #12348
  • Iris: Add prompt scaffolding features to Iris empty state by @thynguyentumde in #12380
  • Iris: Introduce context selection for new dashboard chats by @Senan04 in #12396
  • Iris: Show used and created memories in chat by @bassner in #12225
  • Iris: Add Memiris (disabled by default) by @bassner in #12232
  • Iris: Add AI answer panel with split view to global search by @Nayer-kotry in #12236
  • Iris: Improve about-iris links and redirect docs to edutelligence site by @bassner in #12314
  • Iris: Nebula to Pyris migration by @Nayer-kotry in #12459
  • Tutorial groups: Improve tutorial group management by @marlonnienaber in #12096
  • Hyperion: Add "Generate with AI" button to start Java programming exercise creation from an empty repo by @sawys777 in #11934
  • Hyperion: Add problem statement quality issue detection and AI-assisted fixes by @HawKhiem in #12182
  • Hyperion: Add competency inference and difficulty assessment to problem statement checklist by @HawKhiem in #12183
  • Hyperion: Persist consistency issues as review comments by @IcanCUthere in #12155
  • Hyperion: Add repository selection for AI generation and overview for generation progress by @sawys777 in #12333
  • Hyperion: Track LLM usage for programming exercise generation by @sawys777 in #12126
  • Hyperion: Improve consistency check accuracy by @khinevich in #12290
  • General: Add global search to navbar (behind feature toggle) by @Nayer-kotry in #12146
  • General: Design new Artemis landing page for unauthenticated users by @thynguyentumde in #12356
  • General: Add course onboarding wizard and improve course overview page by @krusche in #12285
  • General: Add deletion summaries for all exercises to prevent accidental deletions by @matyasht in #12020
  • General: Improve participation user experience by @DominikRemo in #12335
  • General: Improve organization management by @ayca-cevdet in #12186
  • General: Improve exercise management page layout and reduce table width by @matyasht in #12400
  • General: Improve landing page text for accuracy, clarity, and messaging by @krusche in #12480
  • General: Improve link action in markdown editor by @anian03 in #12117

Bugfixes

  • Programming exercises: Fix review comments not showing at the correct line in the editor by @IcanCUthere in #12273
  • Programming exercises: Fix popup blocker when opening online IDE in Safari by @IcanCUthere in #12275
  • Modeling exercises: Fix dark mode theming in Apollon editor by @FelixTJDietrich in #12399
  • Communication: Fix naming for delete message buttons by @anian03 in #12386
  • Exam mode: Fix intermittent live event delivery and test run submission errors by @krusche in #12479
  • Adaptive learning: Fix learning path navigation overview when course learner profile is missing by @MaximilianAnzinger in #12419
  • Adaptive learning: Fix creating knowledge area when no competencies exist by @jaylann in #12259
  • Learning analytics: Fix AtlasML health indicator and configuration defaults by @MaximilianAnzinger in #12197
  • Iris: Fix thinking state container display bug by @thynguyentumde in #12387
  • Tutorial groups: Fix Bugs Found in 9.0 Pre-Release Testing Session by @marlonnienaber in #12421
  • General: Fix system notification layout overflow and persist dismissals by @krusche in #12175
  • General: Fix an issue with the markdown editor which is hidden after switching between preview and edit by @ayca-cevdet in #12264
  • General: Fix result selection for modeling and text submissions with multiple assessments by @krusche in #12147

Development

Full Changelog: 8.8.6...9.0.0