SUI-33: q03 decision — store full goaltext, sharpen privacy declaration #109

Merged
johannes.moskaliuk merged 1 commit from dev/sven/SUI-33 into main 2026-08-04 19:56:42 +00:00

SUI-33 — q03: Persistenz des Freitext-Ziels (voll vs. gehasht)

Entscheidung (Johannes): Voller goaltext wird im Klartext gespeichert (nicht gehasht), damit ihn die Phase-6-Reflexion erneut anzeigen kann.

Persistenz war bereits so umgesetzt (goaltext als TEXT, session\manager::set_goalfamily() speichert ungekürzt, Privacy-Provider exportiert/löscht ihn). Dieser MR macht die Deklaration explizit und schließt die DevFlow-Frage:

  • Privacy-Metadaten-Beschreibung goaltext (EN + DE): stellt Volltext-Speicherung klar (nicht gehasht).
  • 03-dev-doc.md: neue Sektion „Free-text goal persistence (q03)" mit Rationale + Privacy-Handling.
  • 04-tasks.md: q03 als entschieden markiert.
  • CHANGELOG + version/release-Bump, damit die reworded Privacy-Strings neu gecacht werden.

Checks: php -l grün · git diff --check clean · phpcs (moodle) 0 Errors auf allen geänderten PHP-Dateien (verbleibende Warnings sind vorbestehende String-Ordering-Nits, out of scope). Kein Logik-/Schema-Change; PHPUnit unberührt (bestehender Privacy-Test asserted bereits Volltext-Export).

Head-SHA: c51bdc8

Refs SUI-33

## SUI-33 — q03: Persistenz des Freitext-Ziels (voll vs. gehasht) **Entscheidung (Johannes):** Voller `goaltext` wird im Klartext gespeichert (nicht gehasht), damit ihn die Phase-6-Reflexion erneut anzeigen kann. Persistenz war bereits so umgesetzt (`goaltext` als `TEXT`, `session\manager::set_goalfamily()` speichert ungekürzt, Privacy-Provider exportiert/löscht ihn). Dieser MR macht die Deklaration explizit und schließt die DevFlow-Frage: - Privacy-Metadaten-Beschreibung `goaltext` (EN + DE): stellt Volltext-Speicherung klar (nicht gehasht). - `03-dev-doc.md`: neue Sektion „Free-text goal persistence (q03)" mit Rationale + Privacy-Handling. - `04-tasks.md`: q03 als entschieden markiert. - CHANGELOG + `version`/`release`-Bump, damit die reworded Privacy-Strings neu gecacht werden. **Checks:** `php -l` grün · `git diff --check` clean · phpcs (moodle) **0 Errors** auf allen geänderten PHP-Dateien (verbleibende Warnings sind vorbestehende String-Ordering-Nits, out of scope). Kein Logik-/Schema-Change; PHPUnit unberührt (bestehender Privacy-Test asserted bereits Volltext-Export). Head-SHA: c51bdc8 Refs SUI-33
docs(elediaai_strategy): record q03 decision — store full goaltext, sharpen privacy declaration
Some checks failed
Repo-Gates / gates (push) Failing after 25s
PHPCS quality / PHPCS full scan (push) Has been skipped
PHPCS quality / PHPCS ratchet (push) Successful in 34s
Repo-Gates / gates (pull_request) Failing after 25s
Moodle Plugin CI / changes (pull_request) Successful in 25s
PHPCS quality / PHPCS full scan (pull_request) Has been skipped
PHPCS quality / PHPCS ratchet (pull_request) Successful in 34s
Repo-Gates / Notify CI-Fixer (push) Has been skipped
PHPCS quality / Notify CI-Fixer (push) Has been skipped
Repo-Gates / Notify CI-Fixer (pull_request) Has been skipped
Moodle Plugin CI / subscription (MOODLE_502_STABLE) (, , subscription, MOODLE_502_STABLE, local/elediaai_subscription) (pull_request) Successful in 4m33s
Moodle Plugin CI / chat (MOODLE_502_STABLE) (, local/elediaai_core, chat, MOODLE_502_STABLE, blocks/elediaai_chat mod/aichat mod/aifeedback) (pull_request) Successful in 4m44s
Moodle Plugin CI / tutor-with-quota (MOODLE_502_STABLE) (, local/elediaai_core, tutor-with-quota, MOODLE_502_STABLE, blocks/elediaai_tutor) (pull_request) Successful in 5m16s
Moodle Plugin CI / Behat chat (MOODLE_502_STABLE) (, local/elediaai_core, chat, MOODLE_502_STABLE, blocks/elediaai_chat mod/aichat mod/aifeedback, @mod_aichat) (pull_request) Has been skipped
Moodle Plugin CI / Behat tactics (MOODLE_502_STABLE) (lernhive, , tactics, MOODLE_502_STABLE, local/elediaai_tactics blocks/elediaai_tactics, @local_elediaai_tactics,@block_elediaai_tactics) (pull_request) Has been skipped
PHPCS quality / Notify CI-Fixer (pull_request) Has been skipped
Moodle Plugin CI / tutor (MOODLE_502_STABLE) (, , tutor, MOODLE_502_STABLE, blocks/elediaai_tutor) (pull_request) Successful in 7m49s
ci-fixer/error Moodle CI core (MOODLE_502_STABLE): No syntax error found There was 1 failure: Failed asserting that two strings are identical.
Moodle Plugin CI / core (MOODLE_502_STABLE) (customerportal, local/elediaai_core qtype/aitext, core, MOODLE_502_STABLE, ai/provider/eledia local/activityfilter local/aitransparency auth/eledia_eduplaces admin/tool/taskrunner customfield/field/languageselect filter/eledia… (pull_request) Failing after 5m28s
Moodle Plugin CI / authoring (MOODLE_502_STABLE) (, local/elediaai_core, authoring, MOODLE_502_STABLE, local/elediaai_questiongen local/elediaai_coursegen qbank/elediaai_questiongen local/elediaai_h5pauthor qtype/aitext) (pull_request) Successful in 7m55s
Moodle Plugin CI / tactics (MOODLE_502_STABLE) (lernhive, , tactics, MOODLE_502_STABLE, local/elediaai_tactics blocks/elediaai_tactics) (pull_request) Successful in 4m32s
Moodle Plugin CI / learning (MOODLE_502_STABLE) (lernhive, local/elediaai_core mod/aichat, learning, MOODLE_502_STABLE, local/elediaai_selfstudy local/elediaai_strategy local/elediaai_teachertools local/elediaai_tutor_premium blocks/elediaai_path) (pull_request) Successful in 5m11s
Moodle Plugin CI / Notify CI-Fixer (pull_request) Has been skipped
c51bdc8761
q03 asked whether the free-text goal is persisted in full or only as a hash +
goal family. Decision (Johannes, SUI-33): store the full goaltext verbatim so
the Phase-6 reflection can show the teacher their original wording; a hash would
break that read-back without a real privacy gain.

Persistence already matched the decision (goaltext TEXT column, session manager
stores it unchanged, privacy provider exports/deletes it). This commit makes the
privacy declaration explicit and closes the DevFlow question:

- Privacy metadata description for goaltext (EN + DE) now states the full free
  text is stored verbatim, not hashed.
- 03-dev-doc.md: new "Free-text goal persistence (q03)" section with rationale
  and the privacy handling that follows.
- 04-tasks.md: q03 marked decided (full goaltext).
- CHANGELOG + version/release bump so the reworded privacy strings recache.

Refs SUI-33
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
johannes.moskaliuk/eledia.ai!109
No description provided.