Spaces:
Sleeping
Sleeping
Commit History
-
perf(orchestrator): parallel phases, streaming, early table summaries
NeonClary +1: Cursor- Parallel participant turns in Phases 1/2/4 via orchestrator_speed.run_roster_ai_turns_parallel - SSE token streaming on consensus + targeted follow-up turns (message_stream_start / message_delta) - Parallel ballot collection in majority / ranked-choice / Robert's Rules votes - Heuristic-first addressed_to classifier skips most LLM calls - Compact rolling transcript for orchestrator judge prompts (cached per session) - Fast orchestrator model (gemini-2.0-flash) for lightweight classifier calls - Lazy contribution summaries kicked off after Phase 4 so Table View loads instantly - Conditional Phase-3 credential refresh only when follow-ups are needed - max_tokens 4x multiplier limited to thinking models Co-authored-by: Cursor <cursoragent@cursor.com>83add3c -
feat(conversation): pluggable structures + decision methods (Robert's Rules, ranked-choice, majority)
NeonClary +1: CursorThe orchestrator is now structured as ConversationStructure → DecisionMethod plugins joined by a standardized DecisionInput contract. The existing six-phase flow is preserved as CollaborativeDiscussion + ConsensusDecision (unchanged behavior); three new decision methods (MajorityRulesDecision, RankedChoiceDecision, RobertsRulesVote) and one new structure (RobertsRulesDiscussion) are wired into the registry. Adding a new structure or decision method now means dropping a class into backend/app/services/conversation/{structures,decisions}/ and adding one line to the registry. Backend - New package backend/app/services/conversation/ with base classes, DecisionInput contract, and a get_structure/get_decision registry resolver (defaults: collaborative + consensus, so older /chat/start payloads keep working). - CollaborativeDiscussion + ConsensusDecision are thin wrappers over the original _phase_* functions in orchestrator.py — zero behavior change for the default path. - RobertsR…e661e91