Skip to content

Releases: hherb/consensus

Consensus 2.0.0

Choose a tag to compare

@hherb hherb released this 19 Jul 23:31
b7f9f2c

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); forced tool_choice downgrades to required when 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-app

macOS users can instead download the signed & notarized Consensus-2.0.0.dmg below.

🤖 Generated with Claude Code

v1.99.1 — first public PyPI release

Choose a tag to compare

@hherb hherb released this 19 Jul 13:34
cdf5037

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-app

The 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 /health and the UI, MCP server responds to initialize, all bundled static files and 14 migrations ship correctly
  • macOS bundle and DMG both notarized (Accepted) and stapled; spctl reports source=Notarized Developer ID
  • execute_python verified on the notarized build — the frozen app spawns a separate consensus-worker binary under hardened runtime, previously the only runtime path never exercised end to end. Confirmed working both directly and wrapped in sandbox-exec, with sandbox restrictions still enforced (disallowed imports rejected)

Known rough edges

  • The MCP server reports its own serverInfo.version as 1.0.0, independent of the package version

v1.0.0 — Consensus 1.0

Choose a tag to compare

@hherb hherb released this 10 Mar 14:12

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

Choose a tag to compare

@hherb hherb released this 05 Mar 09:53

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/.env via
    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 guideQUICKSTART.md for new users
  • Project roadmapROADMAP.md outlining 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_DIALOG API usage

License: GNU AGPL-3.0-or-later
Python: ≥ 3.11
Install: uv pip install -e ".[all]"