Skip to content

fix(votes): chair-keyed tallies — party counts/absent match the hemicycle

Scaffold Digital Fleet requested to merge feat/scrutins-votes-v2 into master

Follow-up to !40 (merged) (post-!39 fix round with Catalyst, 2026-09-09).

Root cause of the tallies mismatch (SOC 2-vs-6, H&I 3-vs-4, DR 48/47): the party counter mixed CURRENT directory M2M with AT-VOTE-TIME members:

  • ministers kept old party rows and voted via suppléant (AN counts them)
  • resigned members kept seatless vote rows (DR phantom: 48 votes / 47 seats)
  • renamed groups left orphan rows

party-tallies now returns chair-keyed fields alongside the row-based ones:

  • absent = group directory chairs nobody voted from (== amber rule)
  • chairVotes / chairPositions = vote rows mapped to the group's current seats Scrutin-level legend counters stay row-based (AN official decompte). Verified: chairVotes + absent == size on every party (law 705 / scrutin 7764). Front counterpart: risefor-front !80 (reads chair-keyed bar/total, amber seat-keyed, absent legend dot visible).

Merge request reports