Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
ec9beee
feat:translation on some enums to facilitate frontend use
Extroias Aug 7, 2026
23012cf
fix: removed redundant delegate from the delegates payload
Extroias Aug 7, 2026
1ed354f
fix: as operator ignores type safety, replaced by satisfies
Extroias Aug 7, 2026
5b5bdb4
feat:motions button now (mostly) works
Extroias Aug 7, 2026
494968e
revert(backend): revert VotingContext removal of Majority Type
r0liveir Aug 7, 2026
3a6cd81
feat:motions list now functional
Extroias Aug 9, 2026
86de2c7
fix/feat: minor fixes and integration on speaker-list and voting popup
Extroias Aug 9, 2026
78c2a9b
feat:time-stamp on motions list, and now you can deny/accept them
Extroias Aug 9, 2026
ba18c8c
refactor(backend): split MotionEvent into Delegate and Chair events
r0liveir Aug 9, 2026
3209848
docs: update events docs
r0liveir Aug 9, 2026
1b7ca3b
refactor(backend): extract passed motion application
r0liveir Aug 9, 2026
490f3bb
fix(backend): timestamp chair logged motions
r0liveir Aug 9, 2026
c6de051
refactor(backend): remove unused variable
r0liveir Aug 9, 2026
38707bd
feat(backend): add finish caucus event
r0liveir Aug 10, 2026
3bb3961
feat(backend): add debate-aware speaker controls
r0liveir Aug 10, 2026
7431db9
docs: document debate speaker events
r0liveir Aug 10, 2026
c0100e8
style: format files
r0liveir Aug 10, 2026
3d84380
fix(backend): restore state after quorum roll call
r0liveir Aug 10, 2026
c3ac322
Implement resolution voting lifecycle
r0liveir Aug 10, 2026
f35cd1f
Document resolution voting flow
r0liveir Aug 10, 2026
fc40d7e
refactor(backend): remove deprecated voting_choice
r0liveir Aug 10, 2026
1b9fc07
ci: refactor sonar exclusions
r0liveir Aug 10, 2026
ad05725
refactor(backend): refactor _record_vote
r0liveir Aug 10, 2026
ba14ad3
Simplify session voting state
r0liveir Aug 10, 2026
05092e5
test(backend): consolidate resolution lifecycle coverage
r0liveir Aug 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@
- Treat `representation_id` as the delegation identity everywhere.
- For cross-boundary changes, verify the backend tests and the frontend build/typecheck. Report pre-existing failures separately.
- Inspect security advisories before changing dependencies. Do not run `npm audit fix --force` without approval and a review of the resulting version changes.
- For any commit done by an agent, include the agent as coauthor (for example, Codex should append `-m "Co-authored-by: Codex <codex@openai.com>"`)
16 changes: 16 additions & 0 deletions backend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,19 @@ uv run pytest

We deeply recommend contributers to first lint and test their code before sending the commit. This way we make our codebase better.

## Realtime resolution voting events

Resolution-related motions use delegation-supplied `resolution_id`,
`amendment_id`, and `split_resolution_id`, along with `resolution_title`,
`target_resolution_id`, `is_friendly`, and `split_title` as applicable. The server
derives the submitting representation and accepts a draft before it enters state.
Once debate ends, the chair starts the first `DRAFT` item in `draft_resolutions`
with `StartResolutionVoteEvent {}`. Pending unfriendly amendments are voted
procedurally before substantive voting begins.

For substantive votes, delegates use `CastVoteEvent { vote }`; chairs can record
a vote with `RecordSubstantiveVoteEvent { representation_id, vote }`. Chairs close
ordinary substantive votes with `CloseSubstantiveVotingEvent`. Roll-call votes use
`AdvanceSubstantiveVoteRoundEvent` for the initial, yes-with-rights, and
no-with-rights rounds; right-of-reply speakers are served through the existing
`NextSpeakerEvent` or `GrantFloorEvent` controls for 30 seconds each.
Loading
Loading