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.