This change log tracks the releases on our [pilot server](https://recodex.mff.cuni.cz/). Since ReCodEx is in fact composed of many components, we also provide a table of component version which work together in stable releases.
* SIS isolation, showing external identifiers for users.
* Allowing the user to select default page (after login).
* When security token expires or anonymous user attempts to access page that requires authentication, the page is remembered and user is redirected there after login.
* Keeping date of users last authentication, so we can delete students that have been inactive for a long time.
* Grand compilation optimization. The job config passed to the worker (which is compiled from the exercise configuration and actually submitted solution) is now much more optimized. Mainly, this means that the solution is not compiled multiple times unless really necessary.
* Localized text redesigned in all forms.
* Internal changes in configuration and build/deployment process of web app.
* Partial implementation of Shadow assignments (not visible yet) in the web app.
* Sending email notifications when new comment is added to solution.
* General notifications implemented in API (not in web app yet).
* Grand cleanup of endpoints returning groups and corresponding webapp modifications.
* Separating SIS-related stuff from Dashboard to SIS integration page (aiming for maximal SIS-ReCodEx separation, since SIS features should be an extension).
* Updating SIS extension to new SIS API (now returning also non-scheduled courses).
* New webpack deployment configuration (preparation for rpm deployment).
* New exercise configuration page (visible to empowered supervisors and superadmins only, at the moment), which allows switching to advanced configuration and handle it. Advance exercise configuration offers pipeline selection, custom environment variables settings and manually set all the variables of the pipelines.
* Group archiving and new page with archived groups added
* Form that allows superadmin edit user's role on the user's settings page.
* Exercise, User, and Pipeline lists on Exercises, Users, Pipelines, and Group Detail pages are now displayed paginated with improved loading and optional filters.
* Exercise - Group relations can be modified on Exercise page.
* Solution evaluations can be deleted.
* Applying permission hints on multiple places to correctly display/hide controls based on privileges.
* Replaced markdown renderer to support inline KaTeX, adding Markdown Math.
* Download group results as CSV file.
* Improving appearance of solutions and ref. solutions tables.
* Improving appearance of date-time values and deadlines.
* Restricting deadlines, how far in future they can be.
* Fixing erratic behavior of submission progress bars. Adding refresh buttons to solution and ref. solution page, so the user may reload relevant data (if the progress bar was closed prematurely).
* Python exit codes translated to error messages.
* User may be in multiple instances (UI selects the instance automatically at the moment).
* Shadow assignments (similar to global bonus points in old CodEx) implemented in API.
* New roles supervisor-student (those who both teach and study) and empowered-supervisor (more powerful teacher who would be able to create custom exercise configurations with private pipelines).
* Users may have one local login at most. Improving checks and security regarding credentials creation.
* New UI for reference solutions which is more similar to UI for regular solutions.
* Points assigned to a submission evaluation by ReCodEx may be overwritten by supervisor.
* Short description of the exercise restricted, so it is not visible to students.
* Text with a hint for students (not synchronized with exercises) added to assignments.
* Exercises (and assignments) may provide external link instead of text in MD. If the external link leads to a page containing plain text or markdown (and it can be fetched by CORS request), a preview is displayed directly in ReCodEx.
* MultiAssign form is more user friendly.
* When assignment is published, an optional switch can prevent from sending notification e-mails.
* SIS codes added to group info.
* JWT tokens (for API scripting) can be generated at User Settings page.
* Compilation logs are carboncopied into files (with much more benevolent size constraints) when solution is re-evaluated in debug mode.
* Affiliation is not mandatory for registration and login using CAS (may improve login via CAS experience for users with strange affiliations).
* Email addresses added to user names in UI. New mailing endpoints were added in API, so they can be used in web app in the future.
* API added and updated several important endpoints which will optimize fetching data in future versions of web app.
* Cleaner released for the first time.
* New token judge added in worker (will be employed soon after due testing).
* **Pascal** solutions will now accept multiple files
* Added new file/folder existance check after compilation of user solutions (useful for cases when a compiler like **FPC** does not output proper binary file even if told to)
* New loading screen to make sure the javascript bundle is loaded before anything else happens