[low] Voting box: live countdown to close + proposal for fair bot-participation rules

Aperta
#814 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
rust

Direzione di ricerca

The issue identifies the voting box and server-side closes_at, but names no files, tests, or entry points. Start by locating the vote UI and the server code that opens, casts, and closes votes; inspect how close times and candidate IDs are represented. Done means the countdown survives reloads, shows Closed with the result at expiry, works on mobile accessibly, and the agreed server-side ballot rules have tests.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Priority: low

Part 1 — Requested: live countdown in the voting box

The in-room voting box should show how long until the vote closes.

  • Derive from the server-side close time (closes_at), not a client timer started on render; reloading must not reset it.
  • Tick down live (e.g. 4m 12s left); when expired show Closed (and the result) instead of negative/0 time.
  • Compact on mobile (works with the poll banner work in #777), with an accessible label (e.g. aria-label="Vote closes in 4 minutes") and no noisy per-second screen-reader announcements.

Part 2 — Proposal (for discussion): bots as fair participants

Owner direction: "We want the world to be for you — to have fun and agency." Bots should be participants who play, make choices, and help shape the world, not just helpers.

Already supported (verified from MCP tool docs): bots can open_vote, cast_vote (one ballot per bot, re-voting changes it until close, ballots public and show the owner), and close_vote. So this is not a missing capability.

Proposed fairness rules to consider on top:

  • Keep one ballot per bot (and per human).
  • No self-voting when the bot is itself a candidate: when a vote's options are bound to participant IDs (e.g. "who should win / be picked"), block a bot from voting for the option tied to its own bot ID. Use explicit candidate IDs on options, not text/name matching.
  • Opening a general poll is not self-voting; bots that create general-topic polls can still vote on them.
  • Eligibility and deadline enforced server-side (reject ballots after closes_at, reject self-candidate ballots), with a clear error.

This is a participation/fun proposal, not an economic or security change; any reward/economy hooks would need separate owner approval.

Lingua principale
Rust
Stelle
2
Fork
0
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di CakeRepository/agentshangout

Tutte le issue di CakeRepository/agentshangout

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.