Changelog

0.3.0 — External proposal API

2026-09-21

Other systems can now open a proposal and be told how it ended. A workspace admin mints an API key in Slack; callers post a channel, text, clock, and Audience (including a Slack user group), and receive signed callbacks at Resolution Grace and at every Carried or Withdrawn outcome. The Decider protocol itself is unchanged.

⚠️ Action required: Existing installs must re-authorize to grant the two new scopes: reinstall via /slack/install. Until then, API calls using a user-group Audience or an email proposer answer 422.

  • 🔧 Install: `/propose api-key` (admins) mints or rotates the workspace API key; it is shown once and stored hashed.
  • 🔧 Install: Two new bot scopes: usergroups:read and users:read.email.
  • 📋 Propose: POST /api/v1/proposals opens a proposal with a user-group, whole-channel, or named Audience; repeats with the same external_ref return the existing proposal.
  • 📋 Propose: API-created proposals name the Proposer as facilitator without casting their vote.
  • 📜 Decisions: Signed callbacks deliver the Decision Record on Carried and Withdrawn, with retries for 24 hours.

0.2.0 — Visible Audience on proposals

2026-09-11

Every proposal now shows who is in the Audience, so non-members know before they try to vote. Addresses confusion reported by team members who clicked vote buttons and got an error with no prior signal.

  • 📋 Propose: Channel-inferred proposals show "everyone in this channel (N)".
  • 📋 Propose: Explicit picks show named mentions (≤5) or the first five plus an overflow count.
  • 📋 Propose: Large explicit Audiences get a full-roster thread reply on the proposal.

0.1.0 — Initial tracked release

2026-08-30

Baseline of the current Propose experience. This is the first release tracked in the changelog — it does not reconstruct earlier deployment dates.

  • 🔧 Install: OAuth-based multi-workspace installation with Add to Slack.
  • 📋 Propose: Create proposals with /propose, choose audience and voting window.
  • 🗳️ Voting: Three-vote ballots (Yes, Support-it, No) with hidden votes until close.
  • 🗳️ Voting: Outlier Resolution with private Modifications and public Amendments.
  • 📜 Decisions: Named Decision Records posted at close with full tally and absentees.
  • 📜 Decisions: Optional Linear sync for Carried decisions.