Commit graph

19 commits

Author SHA1 Message Date
8fd3bccd86 [IMP] event list: retained collisions replace the redundancy target gap
The event list summarised the retained placement by its distance to a
redundancy target, a figure the operator does not act on. It now shows the
retained placement's cumulated collisions (pair and round), the same number
as the proposals table. The target setting, which only fed that column, is
removed: a file or journal that still carries it opens and replays without
error and drops it at the next write. Undo and redo now step past an entry
that changes nothing, instead of refusing it, so old journals stay undoable.
Checked: node 5130, browser 1145, long 129; captures stable on two passes.

--- FR ---

[IMP] liste des événements : collisions du retenu, cible retirée

La liste résumait le retenu par son écart à une cible de redondance, un
chiffre sur lequel l'opérateur n'agit pas. Elle montre désormais les
collisions cumulées (paire et tour) du retenu, le nombre du tableau des
propositions. Le réglage de la cible, qui ne servait qu'à cette colonne, est
retiré : un fichier ou un journal qui le porte s'ouvre et se rejoue sans
erreur et le perd à la prochaine écriture. Défaire et refaire passent une
entrée sans effet au lieu de la refuser : un ancien journal reste défaisable.
Vérifié : node 5130, navigateur 1145, longues 129 ; captures stables, 2 passes.

Assisted-by: Claude Opus 5.5
2026-10-13 04:52:17 -04:00
dbeb97f261 [IMP] quality page: a reached floor reads « le meilleur atteint »
The line a tile writes when its measure equals its proved floor now reads
« plancher N, le meilleur atteint », the wording chosen for the page; it
still speaks of that one measure only. A floor of 0 in the goals view stays
written, as it confirms zero is reachable.
Checked: node 5130, browser 1146, long 128; one capture moves with the text.

--- FR ---

[IMP] page qualité : un plancher atteint se lit « le meilleur atteint »

La ligne qu'écrit une tuile quand sa mesure égale son plancher prouvé se lit
désormais « plancher N, le meilleur atteint », le libellé retenu pour la
page ; elle ne parle toujours que de cette mesure. Un plancher 0 dans la vue
des objectifs reste écrit : il confirme que zéro est atteignable.
Vérifié : node 5130, navigateur 1146, longues 128 ; une capture suit le texte.

Assisted-by: Claude Opus 5.5
2026-10-13 01:55:12 -04:00
18cd4c51be [IMP] quality page: tile floors, measured thresholds, spec integrated
A tile now writes the floor the diagnostic proves under its number, and says
when the measure reaches it, so an operator stops relaunching toward a value
no placement can beat; no floor is written outside the floors' domain. A
proved bar segment keeps its 6 px outline without pushing the bar past its
value. The matrix and label thresholds adopt their measured values (44
people, 168 px). The spec and the changelog describe the quality page as
the code builds it.
Checked: node 5130, browser 1146, long 128; captures stable on two passes.

--- FR ---

[IMP] page qualité : planchers des tuiles, seuils mesurés, spec intégrée

Une tuile écrit sous son chiffre le plancher que prouve le diagnostic, et dit
quand la mesure l'atteint : l'opérateur cesse de relancer vers une valeur
qu'aucun placement ne bat ; hors du domaine des planchers, rien ne s'écrit.
Un segment prouvé garde son contour de 6 px sans pousser la barre au-delà de
sa valeur. Les seuils de la matrice et des libellés prennent leurs valeurs
mesurées (44 personnes, 168 px). La spec et le journal des versions
décrivent la page de qualité telle que le code la construit.
Vérifié : node 5130, navigateur 1146, longues 128 ; captures stables, 2 passes.

Assisted-by: Claude Opus 5.5
2026-10-13 01:48:10 -04:00
91a0cea4cb [ADD] quality page: walkthrough captures, edge cases, contrast guards
The quality page is now photographed and guarded like the other
screens. The walkthrough captures each view and the seven edge cases
where a sentence replaces a chart; the transversal guards measure the
page's marks, keyboard access and tooltips, a dotted reference line
against the chart background and a run point against what its trace
covers. Proved and remaining shares differ by outline, not colour
alone; tooltips keep clear of the sticky banner; rank axes print whole
numbers. The two bench thresholds of the page are measured.
Checked: node 5096, navigateur 1137, node-long 128; captures published.

--- FR ---

[ADD] page de qualité : parcours, cas limites, gardes du contraste

La page de qualité est désormais photographiée et gardée comme les autres
écrans. Le parcours photographie chaque vue et les sept cas limites où une
phrase remplace un graphique ; les gardes transversales mesurent ses
marques, son clavier et ses infobulles, un repère pointillé contre le fond
du graphique, un point de relevé contre ce que son tracé recouvre. Prouvé
et reste se distinguent par le contour, pas par la seule couleur ; les
infobulles évitent le bandeau collant ; les rangs s'écrivent en entiers.
Les deux seuils de la page sont mesurés au banc.
Vérifié : node 5096, navigateur 1137, longues 128 ; captures publiées.

Assisted-by: Claude Opus 5.5
2026-10-12 16:38:04 -04:00
133ae77907 [ADD] quality page base: Qualité tab, detail, charts, course companion
The quality page gets its section, its data and its building blocks.
The engine details a placement (percentages floored, worst case as a
count, three table-mix counts with their orders, per-round floors); a
Qualité tab, loaded as its own chunk, follows the proposition the plan
shows; charts and their twin tables share one component set. The search
course goes to a companion file written only when propositions change,
keyed by proposition identity, timestamp and placement fingerprint, so a
gesture costs what it did and a stale course never reaches the page.
Checked: node 4929, navigateur 1016, node-long 128; main chunk 689 ko.

--- FR ---

[ADD] base de la qualité : onglet, détail, graphiques, compagnon

La page de qualité reçoit sa section, ses données et ses briques. Le
moteur détaille un placement (pourcentages arrondis vers le bas, pire cas
en compte, trois comptes du mélange par table et leurs ordres, planchers
par tour) ; un onglet Qualité, chargé à part, suit la proposition que
montre le plan ; graphiques et tableaux jumeaux partagent leurs
composants. La course de la recherche va dans un fichier compagnon écrit
quand les propositions changent, clé : identité, horodatage, empreinte du
placement ; un geste coûte ce qu'il coûtait, aucune course périmée.
Vérifié : node 4929, navigateur 1016, longues 128 ; entrée à 689 ko.

Assisted-by: Claude Opus 5.5
2026-10-12 07:42:34 -04:00
426eb911c9 [IMP] card and priority editor: red circled cross, number weight field
A tag's « Retirer » text button read like plain text, and the weight of
a criterion took a whole column for a number from 1 to 100. The card
now removes a tag with a red circled cross, shown in write mode only,
named « Retirer « tag » » for screen readers, with a 24 px target; the
red has its own token, exempted from the conflict-hue rule and limited
to card surfaces. The weight is a narrow number field, still read and
refused as before.
Checked: node 4597, navigateur 965; captures 04a and 10a republished.

--- FR ---

[IMP] fiche et priorités : croix rouge cerclée, poids en champ nombre

Le bouton texte « Retirer » d'une étiquette se lisait comme du texte, et
le poids d'un critère prenait toute une colonne pour un nombre de 1 à
100. La fiche retire désormais une étiquette par une croix rouge cerclée,
en mode écriture seulement, nommée « Retirer « étiquette » » pour les
lecteurs d'écran, sur une cible de 24 px ; le rouge a son jeton, exempté
de la règle des teintes de conflit et borné aux surfaces de la fiche. Le
poids est un champ nombre étroit, lu et refusé comme avant.
Vérifié : node 4597, navigateur 965 ; captures 04a et 10a republiées.

Assisted-by: Claude Opus 5.5
2026-10-11 23:34:28 -04:00
d17e2931a7 [ADD] walkthrough: tags, table goals, goals CSV and a weighted tier
The photographed walkthrough now exercises the new inputs end to end:
it adds tags on a card (04a), sets an evening and a round goal on screen
(05a), imports the goals CSV with refused lines and merged spellings
(05b), ranks excess and rounds off goal together in one tier weighted
1 and 3 (10a), and generates under that order, capture 11 scrolled to
the goal columns. Read-only and locked runs try every new gesture; the
merged tag spellings read as a comma list. Captures republished.
Checked: node 4590, navigateur 963, node-long 124.

--- FR ---

[ADD] parcours : étiquettes, objectifs, CSV d'objectifs, palier pondéré

Le parcours photographié exerce désormais les nouvelles saisies de bout
en bout : étiquettes sur une fiche (04a), objectif de soirée et de tour à
l'écran (05a), import du CSV des objectifs avec lignes refusées et
orthographes fondues (05b), excédent et tours hors objectif réunis en un
palier pondéré 1 et 3 (10a), puis génération sous cet ordre, la capture
11 défilée jusqu'aux colonnes des objectifs. Lecture et plan bloqué
tentent chaque geste nouveau ; les orthographes fondues se lisent en
liste à virgules. Captures republiées.
Vérifié : node 4590, navigateur 963, longues 124.

Assisted-by: Claude Opus 5.5
2026-10-11 21:01:48 -04:00
91879ea4a5 [ADD] screens: tags on the card, table goals, priority editor, import
The operator now reaches tags, goals and priorities from the screens.
A person's card adds and removes tags, the participant list carries a
tag legend; each table takes an evening goal or one per round with its
rule; the generation settings hold a keyboard-operable priority editor
(move, join, split, restore, weights), the two optional criteria and the
goal mode; the proposals table and its ranking sentence follow the
order; the import screen reads a participants or a goals file. Removing
a tag or a goal returns focus to a neighbouring control.
Checked: node 4590, navigateur 942, node-long 124; captures republished.

--- FR ---

[ADD] écrans : étiquettes, objectifs des tables, priorités, import

L'opérateur atteint étiquettes, objectifs et priorités depuis les écrans.
La fiche ajoute et retire les étiquettes, la liste porte leur légende ;
chaque table reçoit un objectif de soirée ou par tour avec sa règle ; les
réglages de génération portent un éditeur des priorités utilisable au
clavier (monter, joindre, séparer, rétablir, poids), les deux critères
facultatifs et le mode des objectifs ; le tableau des propositions et sa
phrase suivent l'ordre ; l'import lit un fichier de personnes ou
d'objectifs. Retirer une étiquette ou un objectif rend le focus à côté.
Vérifié : node 4590, navigateur 942, longues 124 ; captures republiées.

Assisted-by: Claude Opus 5.5
2026-10-11 17:53:34 -04:00
320b1b1687 [ADD] tags and goals: engine measures, CSV column, commands, bridge
Tags on people and goals on tables now reach every layer below the
screens. The engine measures rounds served, never-served people and
facilitators met, with a floor per goal mode at the diagnostic; the CSV
reads and writes an etiquettes column through the shared split and
spelling reconciliation; commands set tags, goals, their rule and the
two optional criteria, each refusal with cause and remedy; facilitators
and the stored priority order reach the engine through one bridge.
Without goals or the facilitator case, plans equal the reference prints.
Checked: node 4373, navigateur 885, node-long 113.

--- FR ---

[ADD] étiquettes et objectifs : mesures, colonne CSV, commandes, pont

Les étiquettes des personnes et les objectifs des tables atteignent toutes
les couches sous les écrans. Le moteur mesure les tours servis, les
personnes jamais servies et les animateurs rencontrés, avec un plancher
par mode au diagnostic ; le CSV lit et écrit une colonne d'étiquettes par
la découpe et la réconciliation communes ; des commandes posent étiquettes,
objectifs, règle et les deux critères facultatifs, chaque refus avec cause
et remède ; animateurs et ordre écrit passent au moteur par un seul pont.
Sans objectif ni case des animateurs, les plans égalent les empreintes.
Vérifié : node 4373, navigateur 885, node-long 113.

Assisted-by: Claude Opus 5.5
2026-10-11 15:03:13 -04:00
10f2c8039f [UPD] captures: event screen without frame, at full width
The walkthrough images and the README show the event screen without
its mode frame, at full width. Print captures are unchanged.
Checked: walkthrough 34/34 in verification mode.

--- FR ---

[UPD] captures : écran d'événement sans cadre, en pleine largeur

Les images du parcours et le README montrent l'écran de l'événement
sans cadre de mode, en pleine largeur. Les captures imprimées ne
changent pas. Vérifié : parcours 34/34 en vérification.

Assisted-by: Claude Opus 5.5
2026-10-11 02:44:53 -04:00
40bdfc7d77 [UPD] captures: redesigned screens, walkthrough checks a warning action
The walkthrough images and their manifest show the redesigned screens,
and the README regenerates from them. Before step 04 is captured, the
walkthrough now checks that the warning zone does not scroll and that
« Ouvrir les tables » sits inside it: a capture only refreshes when the
step's text changes, so a layout regression could hide behind an old
image. Print captures are unchanged.
Checked: node 4012, browser 872, long 105, walkthrough 34/34.

--- FR ---

[UPD] captures : écrans refondus, le parcours vérifie l'action d'un avis

Les images du parcours et leur manifeste montrent les écrans refondus,
et le README s'en régénère. Avant la capture de l'étape 04, le parcours
vérifie que la zone des avis ne défile pas et que « Ouvrir les tables »
y tient : une capture ne se renouvelle que si le texte de l'étape
change, une régression de mise en page pourrait se cacher derrière une
image ancienne. Les captures imprimées ne changent pas.
Vérifié : node 4012, navigateur 872, long 105, parcours 34/34.

Assisted-by: Claude Opus 5.5
2026-10-11 02:14:20 -04:00
9a2c8c20f3 [FIX] plan preview: drag ghost effect, page fallback, sheet border
The drag ghost now states what releasing does where the default said
otherwise: a person with no reservation changes nothing, and the floor
under the retained plan removes the person from the tour. A long event
name no longer throws in the plan preview: the cut falls back to the
orientation that still has room, and throws only when neither has. The
on-screen sheet draws its edge as an inset outline, so the content zone
is as wide as on paper. The unused page cut of the preview model is gone.
Checked: node 3899, browser 769; captures 22 and 23 republished.

--- FR ---

[FIX] aperçu du plan : effet du fantôme, repli de page, bord de feuille

Le fantôme du glisser dit ce que fait le relâcher là où le défaut disait
autre chose : une personne sans réservation ne change rien, et le sol
sous le retenu la retire du tour. Un long nom d'événement ne fait plus
lever l'aperçu du plan : la découpe se replie sur l'orientation qui a la
place, et ne lève que si aucune ne l'a. La feuille à l'écran trace son
bord en contour intérieur : la zone de contenu a la largeur du papier.
La découpe inutilisée du modèle de l'aperçu disparaît.
Vérifié : node 3899, navigateur 769 ; captures 22 et 23 republiées.

Assisted-by: Claude Opus 5.5
2026-10-10 20:14:18 -04:00
7c9b708cc9 [FIX] badges: injective sheet file names, a reissue never overwrites
Two propositions with the same timestamp, or the by-table order, gave the
same file name, so one badge sheet silently replaced another. The name now
carries -p<id> for a proposition and _table for the by-table order; the
unmarked retained alphabetical name is unchanged. A reissue, or a name cut
to fit under a long folder, takes the first free rank and never replaces a
file; a folder that cannot be listed refuses first. A faulty proposition is
refused with its own message. The control sheet names its source.
Checked: node 3896, browser 767, long 105; captures 24 and 25 republished.

--- FR ---

[FIX] badges : noms de planche injectifs, une réédition n'écrase rien

Deux propositions au même horodatage, ou l'ordre par table, donnaient le
même nom : une planche en remplaçait une autre sans un mot. Le nom porte
-p<id> pour une proposition et _table pour l'ordre par table ; le nom du
retenu alphabétique ne change pas. Une réédition, ou un nom raccourci sous
un dossier long, prend le premier rang libre et n'écrase rien ; un dossier
qui ne se liste pas refuse d'abord. Une proposition fautive a son refus.
La feuille de contrôle nomme sa source.
Vérifié : node 3896, navigateur 767, long 105 ; captures 24 et 25 republiées.

Assisted-by: Claude Opus 5.5
2026-10-10 20:09:25 -04:00
cb89060e34 [ADD] captures: badge control page and first sheet, rasterised from PDF
The walkthrough produces the retained plan's badge sheet through the
Badges section and rasterises the PDF under node with pdfjs at 96 dpi:
page 1 becomes the control page, page 2 the first sheet of four A6.
Manifest entries carry the PDF's sha256, so an unchanged PDF leaves the
images unchanged; two productions under the driven clock must hash the
same, and a missing canvas fails the step by name with nothing written.
No capture remains pending.
Checked: node 3787, browser 758, node-long 101 from the index alone.

--- FR ---

[ADD] captures : feuille de contrôle et planche, tramées du PDF

Le parcours produit la planche du retenu par la section Badges et trame
le PDF sous node par pdfjs à 96 ppp : la page 1 donne la feuille de
contrôle, la page 2 la première planche de quatre A6. Les entrées du
manifeste portent le sha256 du PDF : un PDF inchangé laisse les images
inchangées ; deux productions sous l'horloge pilotée ont même empreinte,
et un canevas absent fait échouer l'étape en le nommant, rien d'écrit.
Plus aucune capture n'est à venir.
Vérifié : node 3787, navigateur 758, longues 101 depuis l'index seul.

Assisted-by: Claude Opus 5.5
2026-10-10 14:36:21 -04:00
b72f3fe784 [ADD] captures: print preview of a draft and of the retained plan
The walkthrough photographs the printed plan twice from the same scroll
position: a proposal not retained carries BROUILLON and its own footer,
the retained plan carries neither watermark nor proposal timestamp. The
visible condition is judged on the whole box of each element, so a
label cut at the window edge fails the walkthrough; capture 19 now aims
at a seat that keeps the ghost and its label inside the plan. A failed
preview step closes the preview before the next tests run.
Checked: node 3777, browser 756, node-long 101 from the index alone.

--- FR ---

[ADD] captures : aperçu imprimé d'un brouillon et du placement retenu

Le parcours photographie deux fois le plan imprimé au même défilement :
une proposition non retenue porte BROUILLON et son propre pied, le
retenu ne porte ni filigrane ni horodatage de la proposition. La
condition visible se juge sur la boîte entière de chaque élément : un
libellé coupé au bord de la fenêtre fait échouer le parcours ; la
capture 19 vise un siège qui garde le fantôme et son libellé dans le
plan. Un échec à l'aperçu le referme avant les épreuves suivantes.
Vérifié : node 3777, navigateur 756, longues 101 depuis l'index seul.

Assisted-by: Claude Opus 5.5
2026-10-10 13:37:50 -04:00
e71879e852 [ADD] badges: event section to prepare, produce and reissue the sheet
The Badges section follows Propositions. It offers the retained plan by
default, or the proposal chosen in Propositions, which always prints as
BROUILLON; the announcement names the source, the imposition and the
page count before anything is written. The paper question is asked
once per machine, refusals sit beside « Produire » with their remedy,
and a new production clears the previous sheet's path. Section buttons
narrow so eight still fit one line at 1 366 px.
Checked: node 3769, browser 745, node-long 101 from the index alone.

--- FR ---

[ADD] badges : section pour préparer, produire et rééditer la planche

La section Badges suit Propositions. Elle offre le retenu par défaut,
ou la proposition choisie dans Propositions, toujours BROUILLON ;
l'annonce nomme la source, l'imposition et le nombre de pages avant
toute écriture. La question du papier se pose une fois par machine, les
refus se posent à côté de « Produire » avec leur remède, et une
nouvelle production efface le chemin de la précédente. Les boutons de
section s'amincissent : huit tiennent sur une ligne à 1 366 px.
Vérifié : node 3769, navigateur 745, node-long 101 depuis l'index seul.

Assisted-by: Claude Opus 5.5
2026-10-10 11:11:33 -04:00
e5d9026b2a [ADD] print: seating plan cut into pages, with cartouche and scale
The printed plan draws every table in seat mode with its name lists,
whatever the zoom, and drops screen gestures: no selection, focus,
grab handle or highlight reaches paper. Each page carries a cartouche
(page p of n, column, row) and references to its neighbours; the cut
uses the band measured under the footer. Print marks resolve their
colour tokens from the printed document, so a dark screen theme
leaves the paper light.
Checked: node 3721, browser 720, node-long 101 from the index alone.

--- FR ---

[ADD] impression : plan découpé en pages, avec cartouche et échelle

Le plan imprimé dessine chaque table en régime sièges, avec ses listes
de noms, quel que soit le zoom, et laisse les gestes à l'écran :
sélection, focus, poignée et mise en évidence n'atteignent pas le
papier. Chaque page porte un cartouche (page p sur n, colonne, rangée)
et ses renvois aux voisines ; la découpe prend la bande mesurée sous le
pied. Les marques lisent leurs jetons dans le document imprimé : un
thème sombre à l'écran laisse le papier clair.
Vérifié : node 3721, navigateur 720, node-long 101 depuis l'index seul.

Assisted-by: Claude Opus 5.5
2026-10-10 11:03:12 -04:00
858018323b [ADD] print: preview screen, printable sheet, paper question
Printed pages must show exactly what will come out of the printer. An
Imprimer button in the event header opens a preview screen where each page
is a sheet at paper size, light whatever the theme, with its footer and,
under the strict draft rule, BROUILLON in outline; a proposal shown on a
retained plan prints as a draft. The paper is asked once per machine and
can be changed there. The table sheets offer one sheet per round. A failed
print shows IMPRESSION_ECHEC. The captures are republished with the button.
Checked: red first; 3651 node, 707 browser and 101 long tests green from
the index alone.

--- FR ---

[ADD] impression : aperçu, feuille imprimable, question du papier

Une page imprimée doit montrer exactement ce que l'imprimante rendra. Un
bouton Imprimer de la tête de l'événement ouvre un aperçu où chaque page
est une feuille au format du papier, claire quel que soit le thème, avec
son pied et, sous la règle stricte, BROUILLON au trait ; une proposition
montrée sur un plan retenu s'imprime en brouillon. Le papier se demande une
fois par machine et s'y change. Les feuilles par table offrent une feuille
par tour. Une impression échouée affiche IMPRESSION_ECHEC. Les captures
sont republiées avec le bouton.
Vérifié : rouge d'abord ; 3651 node, 707 navigateur et 101 longues vertes
depuis l'index seul.

Assisted-by: Claude Opus 5.5
2026-10-09 17:11:37 -04:00
43dbfad8a5 [ADD] docs: photographed walkthrough publishes doc/captures
The screenshots must come from the tested walkthrough, not from a separate
script that can drift. The browser walkthrough runs on the simulated file
system with a driven clock and the direct executor, light theme, 1366 x
700 at scale 1, transitions off, and photographs each step once its
condition holds. make captures writes the images and the manifest; the
plain test run compares them instead. Eighteen captures are published, the
later ones named as postponed. The forged-names scan skips the manifest,
which records the demo names shown on screen.
Checked: red first; 3620 node, 681 browser and 101 long tests green from
the index alone.

--- FR ---

[ADD] docs : parcours photographié, publication de doc/captures

Les captures doivent venir du parcours éprouvé, non d'un script à part qui
dérive. Le parcours navigateur joue sur le système de fichiers simulé,
l'horloge pilotée et l'exécuteur direct, thème clair, 1366 × 700 au facteur
1, transitions coupées, et photographie chaque étape quand sa condition
tient. make captures écrit les images et le manifeste ; la série ordinaire
les compare au lieu de les écrire. Dix-huit captures sont publiées, les
suivantes nommées reportées. Le balayage des noms forgés saute le
manifeste, qui relève les noms de démonstration affichés.
Vérifié : rouge d'abord ; 3620 node, 681 navigateur et 101 longues vertes
depuis l'index seul.

Assisted-by: Claude Opus 5.5
2026-10-09 15:33:59 -04:00