Rapport: restpunten uit de reviews op #138 (curvetoestand, kolommen laten vallen, weekendcijfers, getalnotatie, artifacts-beleid) - #139
Merged
Conversation
…kolommen laten vallen, weekendcijfers, getalnotatie, artifacts-beleid, middernacht-doc Alle zes vervolgpunten die na PR #138 waren blijven liggen, in één keer: - Eén weergaveregel voor de curvetoestand van een toewijzing (`src/engine/contour/curveState.ts`: `assignmentCurveState`, `contouredAssignmentIds`) die het eigenschappenpaneel én het resourcediagram delen; het verschil met de verdeelregel van `assignmentDayUnits` staat daar gedocumenteerd in plaats van op twee plekken herhaald. - De toewijzingskolommen vallen automatisch weg zodra de tabel minder dan `MIN_CHART_WIDTH_PX` (240 px) tijdlijn per papierbreedte overlaat (lange taaknamen met afkappen uit); `RenderReportResult.assignmentColumnsDropped`, melding in het overzichtsblok, sleutel in 14 locales. - Een tijdvenster zonder werkdag dat op de kalender-as terugvalt nummert nu ook de weekenddagen (anders stond er geen enkel dagcijfer). - Eén getalnotatie voor alle rapporten (`src/utils/reportNumber.ts`): hoogstens twee decimalen, geen duizendtalscheiding, decimaalteken van de app-taal — tabelrapporten via `dd.num`/`dd.signed`, de eenhedenkolom via `PrintOptions.numberLocale`; zonder taal de neutrale punt (tests ongewijzigd). - Artifacts-beleid vastgelegd: `artifacts/<onderwerp>/` = klein gecommit schermbewijs bij een PR, `qa/` = lokaal (CLAUDE.md, .gitignore). - Gids nl+en: presets zonder statusdatum schuiven na middernacht een dag op; de kolommen kunnen wegvallen bij een brede naamkolom. Regressie: check-print-report (weglaten bij 800 px naamkolom op A4 liggend, niet bij de gewone; weekendcijfers 10/11 op een weekendvenster; "1,5" bij numberLocale nl), check-reports (curvetoestand-helper, contourkoppeling, getalnotatie nl/en/de/plus). Browserspecs resourcediagram, tabelrapporten, contourdialoog en rapportopties groen. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014zosxbSXvi3YSGmeN1MsQq
… het helpt, één getalnotatie in alle rapporten, docs en melding waarheidsgetrouw Hyperkritische review op de restpunten-PR (twaalf bevindingen, alle opgepakt): - Toewijzingskolommen laten vallen (bevindingen 1, 2, 4): de grens is niet langer een vaste 240 px maar een vijfde van de printbreedte met een vloer van 160 px, en de render laat de kolommen alléén weg als de tabel zónder die kolommen wél past. A4 staand met verse instellingen houdt de kolommen dus; een naamkolom van 800 px op A4 liggend houdt ze óók (weglaten loste daar niets op: 8 px tijdlijn). De melding en beide gidsen noemen nu de echte hefbomen (papier/richting, lettergrootte, naamkolom, Voltooiing tonen) in plaats van "kap de namen af" — dat stond al aan (bevinding 3). - Getalnotatie (bevindingen 5–7): `formatReportNumber` dwingt Latijnse cijfers af (`-u-nu-latn`, fa koos anders arabext naast Latijnse tellingen), stript de bidi-markering U+200E die Inter in de vector-PDF als spatie zette, geeft "0" in plaats van "-0", en de plus komt uit `signDisplay: 'exceptZero'` in plaats van een ASCII-plus naast een typografische min. De Duur-cel van de Gantt-afdruk, `fmtDelta` in het variance-rapport (DOM én PDF) en de lag-tekst in het gezondheidsrapport (`localizeDecimalPoint`) volgen nu dezelfde notatie als de Eenh./d-cel en de tabelrapporten. - Middernacht-doc (bevinding 8): "vandaag" volgt de UTC-kalender en wordt bij elke weergave bepaald, niet "bij elke herberekening". - Artifacts-beleid (bevinding 9): benoemt dat `artifacts/tabel-overhaul/` van vóór de regel dateert. - Melding (bevindingen 10, 11): browserassertie op de melding (verschijnt op A4 staand 125 %, verdwijnt op 100 %); de vlag wordt gewist zodra er geen Gantt-render meer is. - `curveState` (bevinding 12): lege `curveValues` zijn geen geïmporteerde curve. Regressie: check-print-report (drop/geen drop/staand/lettergrootte, duurcel), check-reports (fa/ar/-0/NaN/onbekende taal/lag-tekst/lege curveValues), resource-gantt-report.spec.ts. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014zosxbSXvi3YSGmeN1MsQq
…p monotoon, melding zonder loze hefbomen, formatters gecachet Zeven bevindingen van de tweede hyperkritische review, alle opgepakt: - Bidi (bevinding 1, hoog): de U+200E die Intl in ar/fa vóór een teken zet wordt niet meer gestript — zonder staat "-2" in een RTL-alinea als "2-" (DOM én de bidi-js-levels van de vector-PDF). De tofu die Inter ervan maakte is een emissieprobleem en zit nu dáár: `bidiShape.stripBidiControls` haalt de stuurtekens (LRM/RLM/ALM/embeddings/isolaten) pas weg bij het shapen van elke run, ná de levelberekening; het Latijnse/CJK-snelpad en `measureText` strippen vóór het encoden; beide coverage-checks slaan ze over. De test die de strip eiste is omgekeerd, plus een headless `layoutRuns`-test met nepfonts. - Kolomdrop (bevinding 3): weer monotoon in de tabelbreedte — de tussen- variant "alleen als weglaten helpt" liet een dode zone open (A4 staand, naamkolom 350: tabel past de pagina niet, kolommen bleven, tijdas 1 px, geen melding) en een bredere naamkolom bracht de kolommen terug. Regressiecase op precies die zone; de 800-px-case laat nu wél vallen. - Melding + gidsen (bevinding 2): geen "zet Voltooiing tonen uit" en geen verwijzing naar de naamkolomslider (die in de automodus niet bestaat); alleen wat aantoonbaar ruimte geeft, zonder te beloven dat de kolommen terugkomen. 14 locales. - Formatters gecachet per taal (bevinding 4: ~35 µs → ~0,7 µs per cel), ook het decimaalteken voor `localizeDecimalPoint`. - Duurcel: niet-eindig ⇒ "—" in plaats van een losse "d" (bevinding 5). - WarningsPanel toont de lag met hetzelfde decimaalteken als het gezondheidsrapport (bevinding 6); bewerkbare cellen blijven ASCII. - `formatSignedReportNumber` past dezelfde "-0"-vangnet toe en een welgevormde maar onbekende taalcode valt expliciet terug (bevinding 7). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014zosxbSXvi3YSGmeN1MsQq
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Refs #113, vervolg op #138. De twee hyperkritische reviewrondes op #138 lieten zes punten als "follow-up" liggen; op verzoek van de maintainer hier alle zes in één PR (commit 1), plus twee reviewrondes op déze PR zelf (commit 2 en 3).
src/engine/contour/curveState.ts(assignmentCurveState,contouredAssignmentIds) is nu de ene weergaveregel voor "contour / geïmporteerde curve / vorm" die het eigenschappenpaneel (TaskAssignmentsSection) én het resourcediagram (computeResourceGanttRows) gebruiken — rapport en paneel kunnen niet meer uit elkaar drijven. Het verschil met de verdeelregel vanResourceLoad.ts'sassignmentDayUnits(die verdeelt metcurveValuesóók naast eencurve) staat daar één keer gedocumenteerd; die verdeelregel is bewust niet veranderd. LegecurveValuesgelden niet als geïmporteerde curve.renderReportde twee kolommen weg en meldt dat viaRenderReportResult.assignmentColumnsDropped; het paneel toont de melding in het overzichtsblok (resourceGantt.columnsDropped, 14 locales). De regel is monotoon in de tabelbreedte (een bredere tabel laat altijd óók vallen; weglaten maakt de tijdas nooit smaller), A4 staand met verse instellingen houdt de kolommen, en de melding noemt alleen wat aantoonbaar ruimte geeft (papier/richting, lettergrootte, smallere tabel) zonder te beloven dat de kolommen terugkomen. Raster- en vector-export delen dezelfde beslissing, want dezelfde render.showWeekendDayNumbersindrawTimelineHeader); anders stond er geen enkel dagcijfer.src/utils/reportNumber.ts(formatReportNumber,formatSignedReportNumber,localizeDecimalPoint): hoogstens twee decimalen, geen duizendtalscheiding, decimaalteken van de app-taal, altijd Latijnse cijfers (-u-nu-latn;fakoos anders Perzische cijfers naast Latijnse tellingen), "0" in plaats van "-0", plus én min uit dezelfdeIntl-aanroep (signDisplay: 'exceptZero'), formatters per taal gecachet. De bidi-markering U+200E dieIntlin ar/fa vóór een teken zet blijft bewust staan (zonder staat "-2" in een RTL-alinea als "2-"); dat Inter er in de vector-PDF een tofu van maakte is opgelost waar het hoort:bidiShape.stripBidiControlslaat de stuurtekens pas weg bij het shapen van elke run (ná de levelberekening) en op het Latijnse/CJK-snelpad vóór het encoden. Gebruikt door de tabelrapporten (dd.num/dd.signed/dd.lagText), de Eenh./d- én Duur-cel van de Gantt-afdruk (PrintOptions.numberLocale; niet-eindige duur ⇒ "—"),fmtDeltain het variance-rapport (DOM en PDF) en de lag in het waarschuwingenpaneel. Zonder taal de neutrale punt. Let op: dit verandert de tabelrapporten vantoFixed(1)naar hoogstens twee decimalen ("2.35" i.p.v. "2.3"), geeft in nl/de/fr een komma, en rondt de Duur-cel van de Gantt-afdruk op twee decimalen af; hele duren blijven byte-identiek.CLAUDE.md+.gitignore:artifacts/<onderwerp>/= klein gecommit schermbewijs bij een PR (PNG, ≤ ~150 KB, een handvol per PR, na de merge niet bijwerken); geldt vooruit,artifacts/tabel-overhaul/dateert van daarvóór;qa/= lokaal.Bewust gelaten: de PID-hergebruikzwakte in de browser-testguard (
scripts/dev-lock.mjs) — buiten dit onderwerp; het UTC-"vandaag" zelf (formatDate(new Date()), een app-breed patroon) — gedocumenteerd, niet veranderd; en de ASCII-lag in bewerkbare gridcellen (parseLagInputleest die terug).How it was verified
npm run verifygreen — lokaal, los per commit: typecheck, lint, verify:docs (34 × 14), verify:i18n, cycles, store-boundaries, de volledige planningssuite (exit 0, tijdzone-matrix incl.), en de browserspecsresource-gantt-report,table-reports,report-options,contour-dialog(6/6).tests/planning/check-print-report.ts(kolommen weggelaten bij 500 én 800 px naamkolom op A4 liggend, bij naamkolom 350 en bij 125 % op A4 staand, niet op A4 staand met verse instellingen; weekendvenster toont dagcijfers 10 en 11;numberLocale: 'nl'⇒ "1,5" en "2,5d"; niet-eindige duur ⇒ "—"),tests/planning/check-reports.ts(curvetoestand incl. legecurveValues; getalnotatie nl/en/de/fa/ar, bidi-markering blijft, -0, NaN, misvormde én onbekende taalcode, lag-tekst;layoutRunsmet nepfonts: geen stuurteken bereikt het shapen, "-2" blijft één LTR-run met de min vooraan),tests/browser/resource-gantt-report.spec.ts(de melding verschijnt op A4 staand 125 % en verdwijnt op 100 %).bidi-js-levels, run-segmentatie en glyph-emissie.Does this touch
assignmentDayUnitsis niet aangeraakt).resourceGantt.columnsDroppedin alle 14report.json-locales; getallen in de rapporten volgen nu de app-taal.@tauri-apps/*— n.v.t.Documentation
public/docs/{nl,en}/gids-rapporten-printen.md(periodesectie: UTC-middernacht; resourcediagram: wanneer de kolommen wegvallen en wat ruimte geeft),CLAUDE.md(artifacts-beleid),.gitignore-commentaar.docs/CHANGELOG.mdbewust niet (alleen bij een release).🤖 Generated with Claude Code
https://claude.ai/code/session_014zosxbSXvi3YSGmeN1MsQq