Releases: hherb/consensus
Release list
Consensus 2.0.0
First stable release after the 1.99.x alpha series.
Highlights since v1.99.1
Stability hardening based on extensive manual testing of the alpha:
- Hang-proof turn cycle — bridge watchdog, per-tool progress reporting, and file-based logs so a stalled provider or tool can no longer freeze a discussion (8dcea1b)
- Provider API error resilience — any sampling parameter rejected with a 400 is dropped and the request retried, not just
temperature(1ee304d); forcedtool_choicedowngrades torequiredwhen a provider rejects it (fcf27e5) - No more silent failures — moderator summary failures are surfaced instead of silently stopping the discussion (6bd9d9f); provider error detail is shown in participant skip notices (f61490f); a notice is rendered when a model returns no visible output (8426b38)
Install
uv tool install consensus-app
# or: pip install consensus-appmacOS users can instead download the signed & notarized Consensus-2.0.0.dmg below.
🤖 Generated with Claude Code
v1.99.1 — first public PyPI release
The first published release of Consensus on PyPI, and the first notarized macOS build. uv tool install consensus-app now works — until this release the package did not exist on PyPI, so the install instructions in the README could not be followed.
Install
macOS app: download Consensus-1.99.1.dmg below and drag Consensus into Applications. The build is signed and notarized by Apple, so it launches without a Gatekeeper warning.
Command line / other platforms:
uv tool install consensus-appThe command and import package are plainly consensus; only the PyPI distribution name is consensus-app (the name consensus was already taken). Every feature — desktop, web, documents, memory, images, sandboxed code execution — installs by default.
What's in this release
Structured-phase human input (#57, #58) — Humans taking a turn in a structured phase now get a form generated from that phase's schema, with one labelled widget per field, instead of having to hand-write JSON. Deeply nested schemas fall back to a guided JSON textarea pre-filled with the right structure. Input is validated on the same path AI turns use, partially filled forms survive pause/resume/reload, and unparseable input raises a visible error rather than being silently dropped.
Follow-up fixes (#59, #60) — Human-turn guard narrowed to concluded discussions, enum sentinel extended to arrays, and three latent AttributeError fixes.
Documentation refresh (#62) — README, QUICKSTART, and the user manual brought in line with the code. Several documented instructions would previously have failed if followed: the .[memory] extra installs nothing, two documented embedding environment variables do not exist, and several tool names were wrong (kg_assert/kg_query, doc_add/doc_ask, BRAVE_SEARCH_API_KEY). The method catalogue is documented at its real size of 18, and two shipped features that change what a human does during a discussion — structured-phase input and evidence attachment — were previously undocumented.
Verification
- 2505 tests pass
- Published to TestPyPI first and installed into a clean environment before promoting to PyPI
- Installed wheel verified end to end: CLI starts, web server boots and serves
/healthand the UI, MCP server responds toinitialize, all bundled static files and 14 migrations ship correctly - macOS bundle and DMG both notarized (Accepted) and stapled;
spctlreportssource=Notarized Developer ID execute_pythonverified on the notarized build — the frozen app spawns a separateconsensus-workerbinary under hardened runtime, previously the only runtime path never exercised end to end. Confirmed working both directly and wrapped insandbox-exec, with sandbox restrictions still enforced (disallowed imports rejected)
Known rough edges
- The MCP server reports its own
serverInfo.versionas1.0.0, independent of the package version
v1.0.0 — Consensus 1.0
Consensus 1.0 🎉
The first major release of Consensus — a moderated discussion platform enabling structured multi-party dialogues between humans and AI entities.
Core Features
- Multi-party AI discussions with configurable moderator (human or AI) managing turn flow, synthesis, and mediation
- Dual-mode deployment — desktop (pywebview) and web (aiohttp) sharing the same backend
- Multiple AI providers — any OpenAI-compatible API via provider registry (OpenRouter, local LLMs, etc.)
- BYOK (Bring Your Own Key) — browser-based API key management, never persisted server-side
- Multi-user web mode with session isolation, authentication (email/password + OAuth), and CSRF protection
Discussion Methods
- Standard round-robin, Oxford-style debate, Delphi method, Socratic seminar, fishbowl, brainstorming, and more
- Devil's advocate role assignment with auto-provisioned tools
AI Tools & Integration
- MCP tool support — connect external MCP servers for expert consultation
- Document RAG — ingest URLs, PDFs, and text for retrieval-augmented Q&A
- Web search — Brave Search API with DuckDuckGo fallback
- Image support — upload/URL images as visual context for vision-capable models; images display in the discussion flow
- Ask User tool — AI can pause mid-turn to request human input
- Entity memory — persistent knowledge base per AI participant
UI & Export
- Tabbed setup (New Discussion, Providers, Profiles, Prompts, History)
- Live discussion view with storyboard summaries, cost tracking, and tool call details
- Markdown/JSON/text export with full transcript including tool calls
- Light/dark mode via CSS custom properties
Architecture
- Async throughout (httpx, aiohttp)
- SQLite persistence with auto-discovery migrations
- Customizable prompt templates per role and task
- Model pricing via OpenRouter with fuzzy name matching
First feature complete working beta test
Consensus v0.9.0 — Release Notes
A moderated discussion platform for structured multi-party dialogues
between humans and AI entities.
Core Platform
- Dual-mode application — runs as a native desktop app (pywebview) or
as a web server (aiohttp), sharing the same backend - Moderated discussions — a designated moderator (human or AI) manages
turn-taking, synthesis, and conclusion - Multi-provider AI support — connects to any OpenAI-compatible API;
built-in support for OpenAI, Anthropic, DeepSeek, and Mistral - Dynamic model listing — fetches available models from each provider
in real time - SQLite persistence — thread-safe storage for discussions, entities,
providers, prompt templates, and full message history
Discussion Management
- Customizable prompt templates — per-role (moderator/participant) and
per-task (turn, summary, conclusion, mediation) templates stored in DB - Discussion export — save discussions as JSON, HTML, or PDF with
native save dialogs in desktop mode - Discussion history — browse, search, and re-export past discussions
- Entity profiles — create and manage human and AI participant profiles
with avatar colors and assigned AI models
User Interface
- Tabbed setup UI — New Discussion, Providers, Profiles, Prompts, and
History tabs for streamlined configuration - Light and dark mode — CSS custom properties for seamless theme switching
- Swatch-based color picker — cross-platform avatar color selection
- Smart entity list — shows 6 most recent entities with search for
larger collections - Entity soft-delete — safe removal with reactivation support to
preserve foreign key integrity
Security & Configuration
- Secure API key storage — keys stored in
~/.consensus/.envvia
dotenv, never in the database - Path traversal protection — hardened static file serving in web mode
- Input validation and type safety — integer IDs, SQL parameterization,
and security hardening throughout
Documentation
- Programmer's manual — contributor guide in
docs/devel/ - Quick-start guide —
QUICKSTART.mdfor new users - Project roadmap —
ROADMAP.mdoutlining future direction
Bug Fixes
- Fixed PDF export to show print dialog directly in desktop mode
- Fixed discussion topic text box shrinking with long participant lists
- Fixed FK constraint failures during entity and discussion operations
- Fixed model listing for Anthropic and DeepSeek providers
- Fixed export dropdown menus and read-only history export
- Fixed deprecated pywebview
SAVE_DIALOGAPI usage
License: GNU AGPL-3.0-or-later
Python: ≥ 3.11
Install: uv pip install -e ".[all]"