Repository navigation
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 853c733b54
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (tagName === 'strong' || tagName === 'b') { | ||
| if (element.children) { | ||
| element.children.forEach(child => { | ||
| if (child.type === 'text' && child.data) { |
There was a problem hiding this comment.
Preserve text inside nested formatting marks
When an instruction combines formatting marks, as Tiptap can emit for bold-and-italic text such as <strong><em>Bewerten</em></strong>, this branch examines only direct text children and ignores the nested element, so the word disappears entirely from the generated DOCX. The same direct-child-only behavior exists for the other formatting branches; recurse through descendants while retaining the active formatting properties.
Useful? React with 👍 / 👎.
| if (node.type === 'text') { | ||
| if ('data' in node && node.data && node.data.trim()) { | ||
| children.push( | ||
| new TextRun({ | ||
| text: node.data.replace(/\s+/g, ' '), |
There was a problem hiding this comment.
Retain standalone spaces between formatted runs
When adjacent formatted runs are separated by a whitespace-only text node, for example <strong>vor</strong> <em>nach</em>, the trim() condition discards that node and the exported DOCX renders vornach. This affects ordinary rich-text instructions whenever formatting starts or ends at a word boundary, so whitespace-only nodes between visible siblings need to contribute a normalized space.
Useful? React with 👍 / 👎.
| <mat-checkbox [checked]="selection.includes(unit.unitId)" [disabled]="unit.disabled || busy" | ||
| [attr.data-cy]="'workspace-select-unit-list-checkbox-' + unit.key" [attr.aria-label]="unit.key" (change)="toggle(unit)"></mat-checkbox> |
There was a problem hiding this comment.
Disable individual unit selection while loading
When the host sets loading while refreshing the unit list, the select-all control and export button are disabled but each row checkbox remains active, and toggle() also permits the change. A user can therefore emit selection changes against stale units; when the refreshed list arrives, ngOnChanges silently removes invalid IDs without emitting the corrected selection, leaving host state out of sync.
Useful? React with 👍 / 👎.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Studio und Kodierbox erzeugen ihre Codebooks künftig mit derselben Studio-basierten Oberfläche und demselben JSON-/DOCX-Generator. Die gewohnte Anordnung und Dokumentdarstellung bleiben die Referenz; die vereinbarten Filterkorrekturen und „IQB Codebook“ sind ausdrücklich dokumentiert.
Umsetzung
codebook-models,codebook-generator,codebook-export. Generator mit ESM/CommonJS ohne Angular-Laufzeit; gemeinsame Regeltexte fest mit @iqb/responses 5.2.2.Verifiziert
Aktueller CI-Stand: 516 Angular-Tests, 6 Schemer-Tests und 31 Generator-Vertragstests bestanden; Build, Lint, Responsive- und Sicherheitsprüfungen grün. Lokal ebenfalls Build, 31 Generator-Vertragstests und Lint ohne Fehler. Die fünf neuen Regressionstests scheiterten mit dem bisherigen Renderer und bestehen mit der Korrektur. Der Studio-Referenzvergleich bleibt unverändert.
Der Studio-Referenzvergleich normalisiert ausschließlich Kennzeichnung und Datum und prüft Dokument-XML, Styles, Nummerierung, Einstellungen und Fußzeile. Rich Text einschließlich verschachtelter Markierungen ist zusätzlich abgesichert. Die gemeinsame gepackte UI wurde mit Playwright bei 1440 und 700 Pixeln in beiden Spaltenkonfigurationen geprüft: Schulungsfilter, JSON, Gesamtauswahl trotz Suche, gesperrte Aufgaben und Speichersperre; keine Browserfehler. Die mehrseitige LibreOffice-Sichtprüfung vom 28.09.2026 bleibt ergänzende Layoutevidenz.
Vor Freigabe
4.1.0 bleibt ein unveröffentlichter Release-Kandidat. Beide Host-PRs verwenden denselben eingecheckten Tarball. Die Browserprüfung betrifft die isolierte gemeinsame UI; die vollständige Systemabnahme in beiden laufenden Anwendungen mit realer Datenbank, Redis/Queue, Berechtigungen und Downloads ist weiterhin offen. Keine vollständigen Docker-Images gebaut, nichts veröffentlicht oder ausgerollt.
Nach gemeinsamer Abnahme Bibliothek veröffentlichen, beide Hosts auf dieselbe Registry-Version umstellen und koordiniert ausrollen. Fachliche Korrekturen und Integrationsvertrag:
docs/shared-codebook.md.Zusammengehörige PRs