Release notes

BUGFIX

Consensus now counts every opinion and demands real agreement

Consensus cannot rest on someone merely opening with “agree.” In a council discussion, where several participants state positions before a conclusion is collected, stance labels used to be checked only at the beginning of each turn’s first line. A label appearing later, or at line end, could disappear like a ballot dropped beside the box. The whole first line is now scanned, but a turn counts only when it names exactly one distinct label; a turn quoting several remains unparsed rather than being guessed at. An agreement opening must also say what was reviewed, why it agrees, and what concerns remain. The result is less a rubber stamp than meeting minutes with every ballot traceable.

FEATURE

Selecting participants and starting a discussion are finally clear

When you add Claude, Codex, or Antigravity to a discussion, every selected seat now shows a ✓. The mark used to sit on the avatar itself: it happened to appear for Antigravity’s inline SVG icon, but stayed invisible for Claude and Codex image avatars, making a fully selected lineup look half-selected. All three now place the overlay on a wrapper, so selection is consistently visible. If Start discussion is greyed out, text underneath now says whether the topic is missing, nobody is selected, or a discussion is already running. That reason is connected to the button and placed in a status region, so keyboard and screen-reader users receive it too. It is like a registration desk where every attendee finally gets a visible badge, and a closed door explains exactly what is still missing.

FEATURE

Moderator stars no longer make assistive tools guess

When it is time to choose a moderator, the three stars used to give a screen reader the same accessible name, leaving no way to tell which seat was moderating. Each star now exposes whether it is pressed, and its tooltip says either “current moderator” or “set as moderator.” The change is small but lets people who do not view the screen confirm who is steering the meeting just as everyone else can. It is like a stage control board whose three buttons once all said “light”; now you can see or hear which lamp is on and which button changes it.

FEATURE

Packaging tool setuptools moves to 83.0.0

This release also moves setuptools, a Python tool for packaging and installing software, to 83.0.0. The source note does not describe any effect on the interface or features. The source notes only this dependency upgrade and do not promise a specific feature change. For someone installing from source, packaging, or maintaining Usage, it is like replacing a kitchen measuring cup. The source note does not say what changes, if anything, in the finished app. If you only use the finished app, treat this as maintenance. If you manage build dependencies, use 83.0.0 as the stated version.

Original changelog

Original changelogConsensus now counts every opinion and demands real agreement
**The council consensus tally no longer drops opinions**: stance labels were only matched at the very start of a turn's first line, so a rebuttal that reached its label a few words in — or ended its first line with one — counted as unparsed and vanished from the count. The whole first line is now scanned, and a turn must name exactly one distinct label to be counted; a turn quoting several stays unparsed instead of having one guessed for it.
**Agreeing in a council rebuttal requires reasons**: a participant opening with the agreement stance must state what it reviewed, why it agrees, and what concerns remain, so consensus cannot be reached by rubber-stamping.
Original changelogSelecting participants and starting a discussion are finally clear
**Every selected participant shows its check mark**: the "✓" marking a participant as joining the discussion is drawn as a CSS `::after` overlay, which never renders on a replaced element. It therefore appeared only on the seat whose avatar falls back to an inline SVG (Antigravity) and stayed invisible on the seats drawn from an image icon (Claude, Codex), making a fully selected line-up look half-selected. All three now host the overlay on a wrapper element.
**The disabled *start discussion* button says why it is disabled**: a line under the button now names what is missing — no topic, no participant selected, or a discussion already running — instead of leaving a greyed-out button and no explanation. The reason is tied to the button with `aria-describedby` and lives in a status region, so keyboard and screen-reader users get it too, not only whoever hovers.
Original changelogModerator stars no longer make assistive tools guess
**The moderator star is tellable apart**: all three stars carried the same accessible name, so a screen reader could not say which seat was moderating. Each star now exposes its pressed state, and its tooltip reads *current moderator* or *set as moderator* to match.
Original changelogPackaging tool setuptools moves to 83.0.0
Bumped `setuptools` to 83.0.0.