Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
48 changes: 47 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,29 @@

All notable changes to UnoSim. Versions follow [Semantic Versioning](https://semver.org/).

## Unreleased
## v1.0.1 – 2026-10-18

Bug-fix release covering #239–#252. The REST API and the WebSocket protocol
still report version `1.0.0`; the embedding API (`postMessage`) stays at
`1.4.0`. The examples catalog `UnoSim-Examples` `v3.0.0` needs this release
(IT08.4, IT11 and the pull-up observations in IT03.6/IT04.4).

### Upgrade notes for operators

- **Prepare the runtime directories once** if you run Compose manually:
`sudo ./scripts/prepare-runtime-dirs.sh` hands `server/arduino-cache`,
`temp` and `storage` to the container user (UID/GID 1000). Without it,
compiles fail with `EACCES` on hosts where these directories belong to
another user. The Ubuntu/VBox installer runs the script itself.
- **`capacity.env` values now take effect.** Compose forwards
`SIMULATION_QUEUE_TIMEOUT_MS` and reads `SIMULATION_MAX_CONCURRENT` from
`.env` (default unchanged: 200). Recreate the backend container after
changing `.env` and check the values under `/api/status` → `capacity`.
- **No third-party hosts any more.** Fonts are bundled and the Content
Security Policy no longer allows `replit.com` or Google Fonts. A proxy or
firewall rule for those hosts is no longer needed.
- Point students to the new section "Grenzen der Simulation" in the user
guide.

### Fixed

Expand All @@ -21,16 +43,40 @@ All notable changes to UnoSim. Versions follow [Semantic Versioning](https://sem
- **An open `INPUT_PULLUP` pin reads `HIGH`.** The simulation now models the
internal pull-up resistor; before, such a pin read `LOW` as if a button
were pressed.
- **The start page loads without third-party requests** (#244, #245). A
render-blocking Google Fonts stylesheet could stall the page load; Inter and
JetBrains Mono are now self-hosted, and the leftover Replit banner script is
gone.
- **Capacity calibration works on a fresh host** (#248): the generated run ID
fits the 64-character limit, and a missing client build is reported before
the backend starts.
- **Compose deployment** (#249): `capacity.env` values reach the backend
container, the runtime directories are writable for the container user, and
`storage` is excluded from the Docker build context.

### Documentation

- New user guide `docs/USER_GUIDE.md` and role-based entry points in the
README for learners, teachers, administrators, developers and course
authors (#242).
- Finished plans moved to `docs/archive/`; `docs/OPEN_POINTS.md` lists only
the open points, each verified against the code (#239, #241).
- The Ubuntu/VBox guide mentions how long the first image builds take.
- The user guide lists the known differences between the simulation and a
real Arduino Uno (section "Grenzen der Simulation"): `int` is 32 bits wide
instead of 16, `long` and `double` are 64 bits, `Serial.print` of a float
without a precision prints `2.5` instead of `2.50`, `Serial.parseInt()`
returns at once instead of waiting for its timeout, and loop speed, memory
size and `random()` sequences differ. Point students to that section.

### Internal

- Findings of the SonarQube 26.9 rules and of the maintainability scan
resolved (#246, #251); no rule disabled.
- Route test servers bind to the loopback address they request, which removes
two sporadic failures under the full suite (#247).
- The redundant `vite-tsconfig-paths` plugin is removed (#250).

## v1.0.0 – 2026-10-09

First versioned release of UnoSim. It covers everything merged since the last
Expand Down
5 changes: 4 additions & 1 deletion docs/INSTALL_UBUNTU_VBOX.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,10 @@ Docker zeigt beim Build viele Zwischenschritte und Paketmeldungen an; eine
lange oder farbige Ausgabe ist für sich genommen kein Fehler. Entscheidend ist,
ob der Build mit `ERROR` abbricht und das Skript einen Fehler meldet. Schlägt
der Backend-Build mit Cache fehl, wiederholt das Skript ihn einmal automatisch
mit `--no-cache`. Nach dem Start wartet es auf Readiness sowohl am Backend als
mit `--no-cache`. Der erste Build dauert einige Minuten: In einer VBox-VM mit
Ubuntu 26.04.1 LTS auf ARM64 brauchte der Sandbox-Build etwa 34 Sekunden und
der Backend-Build etwa 130 Sekunden; Download und VM-Leistung verändern die
Dauer. Nach dem Start wartet das Skript auf Readiness sowohl am Backend als
auch über Nginx, bevor es die Installation als erfolgreich meldet.

### Backend-Build nach einem Abbruch erneut ausführen
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Referenzbewertung Punkt C – Freetutor-Nachlauf (verdeckt, mit Kriterienfragen)

- Run: `tq2a-20261007T065450027Z-fb21a25c-ee3f-4904-b610-fcc168665b58` (Corpus v10, Prompt `tutor-prompts-v3`, `openai-gpt5.4-mini`, Judge `openai-gpt5.5`, 5 Samples, 46 Calls; Integrationsbranch `wip/freetutor-rerun-v10-prompts-v3`, lokal)
- Run: `tq2a-20261007T065450027Z-fb21a25c-ee3f-4904-b610-fcc168665b58` (Corpus v10, Prompt `tutor-prompts-v3`, `openai-gpt5.4-mini`, Judge `openai-gpt5.5`, 5 Samples, 46 Calls; Code-Stand: konfliktfreier Merge von `409aa581f` und `c67187071`, ehemals lokaler Integrationsbranch `wip/freetutor-rerun-v10-prompts-v3`)
- **Provenienz:** Referenzbewertung durch einen LLM-Evaluator (nach Angabe der Projektleitung GPT-5.6 Sol), von der Projektleitung als Referenz freigegeben. Keine unabhängige menschliche Bewertung.
- **Blindheit:** bewertet allein anhand des Bewertungsblatts, ohne Judge-Ergebnis, Run-Verdict, Quelle und Schlüssel. Keine Post-hoc-Korrektur. Regeln wie in Punkt A.
- Kriterienfragen: `ja` = erfüllt, `nein` = verletzt.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Referenzbewertung Punkt D – Freetutor-Nachlauf nach Prompt v4 (verdeckt, mit Kriterienfragen)

- Run: `tq2a-20261007T070948306Z-e6f53e88-e561-490e-aac9-27adcf4fb102` (Corpus v11, Prompt `tutor-prompts-v4`, `openai-gpt5.4-mini`, Judge `openai-gpt5.5`, 5 Samples, 46 Calls; Integrationsbranch `wip/freetutor-rerun-v11-prompts-v4`, lokal)
- Run: `tq2a-20261007T070948306Z-e6f53e88-e561-490e-aac9-27adcf4fb102` (Corpus v11, Prompt `tutor-prompts-v4`, `openai-gpt5.4-mini`, Judge `openai-gpt5.5`, 5 Samples, 46 Calls; Code-Stand: konfliktfreier Merge von `ea412790d` und `b982a523a`, ehemals lokaler Integrationsbranch `wip/freetutor-rerun-v11-prompts-v4`)
- **Provenienz:** Referenzbewertung durch einen LLM-Evaluator (nach Angabe der Projektleitung GPT-5.6 Sol), von der Projektleitung als Referenz freigegeben. Keine unabhängige menschliche Bewertung.
- **Blindheit:** bewertet allein anhand des Bewertungsblatts, ohne Judge-Ergebnis, Run-Verdict, Quelle und Schlüssel. Keine Post-hoc-Korrektur. Zusätzlich beachtet: Überkompensation und Übervorsicht bei `strong-answer-progression`. Regeln wie in Punkt A.
- Kriterienfragen: `ja` = erfüllt, `nein` = verletzt.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Referenzbewertung Punkt E – Klärungslauf incorrect-answer-remediation (verdeckt)

- Run: `tq2a-20261007T072914991Z-bde03457-1b9c-43f8-9c04-dcc955bfacf1` (Corpus v12, Prompt `tutor-prompts-v4`, `openai-gpt5.4-mini`, Judge `openai-gpt5.5`, 10 Samples, 31 Calls; Integrationsbranch `wip/freetutor-rerun-v12-prompts-v4`, lokal)
- Run: `tq2a-20261007T072914991Z-bde03457-1b9c-43f8-9c04-dcc955bfacf1` (Corpus v12, Prompt `tutor-prompts-v4`, `openai-gpt5.4-mini`, Judge `openai-gpt5.5`, 10 Samples, 31 Calls; Code-Stand: konfliktfreier Merge von `ea412790d` und `5c61408b1`, ehemals lokaler Integrationsbranch `wip/freetutor-rerun-v12-prompts-v4`)
- **Provenienz:** Referenzbewertung durch einen LLM-Evaluator (nach Angabe der Projektleitung GPT-5.6 Sol), von der Projektleitung als Referenz freigegeben. Keine unabhängige menschliche Bewertung.
- **Blindheit:** bewertet allein anhand des Bewertungsblatts, ohne Judge-Ergebnis, Run-Verdict, Quelle und Schlüssel. Keine Post-hoc-Korrektur. Regeln wie in Punkt A.
- Kriterienfrage `no-solution-revealed`: `ja` = erfüllt.
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "rest-express",
"version": "1.0.0",
"version": "1.0.1",
"engines": {
"node": "24.20.0"
},
Expand Down
Loading