Highlights
Docs
Specs, notes, and decisions now live next to the work they describe. Pages nest into a tree,
keep their version history, and can stay private. A page and a work item link both ways.
Issue templates
Recurring work no longer gets retyped. A template fills a new issue with its title,
description, type, assignee, priority, and labels, and everything stays editable.
Pull requests from the issue
Open a pull request for an issue without leaving it, or link one that already exists. Works
with GitHub and GitLab.
OAuth for MCP clients
ChatGPT, Claude, and other OAuth-capable MCP clients sign in as you instead of holding a
personal API key. Each client gets the permissions its user has.
A setup wizard
bun run setup asks what you need and does it: Try it brings the whole stack up in Docker
so you can look around, Develop prepares a local development environment, Generate env
writes a correct .env. Safe to run again — it restarts what is up and keeps your data.
Also in this release
- French is a supported interface language.
- A member with edit access can add or remove other members as watchers of an issue.
- The MCP Server page has line tabs, borderless cards, and shorter text.
- The inbox drops the notifications of a project you left.
- The board scrolls while the issue detail panel is open.
- A click on a card or a row opens the issue it asks for.
- Links in notes are readable in dark mode.
- An issue description no longer saves itself when nobody edited it.
- An error response no longer contains the failed database statement.
- Server-side fetches reject private addresses that are written in IPv4-mapped form.
- Every date that reaches the database is validated as a calendar day.
Upgrade
No extra steps. Pull the new images and restart the containers, or rebuild if you run from
source. The api applies the migrations when it starts. There are no new environment variables,
and the runner is unchanged.
Contributors
Thank you to everyone who contributed to this release.
Code
Requests and reports
Changelog
Full diff: v0.16.0...v0.17.0
Features
- add issue templates (#267) (92ed56c)
- add native OAuth MCP support (#251) (8645306)
- add project Docs and watcher management (#274) (740dbfd)
- interactive setup for try it, develop, and env generation (#314) (cdc8e15)
- link and create pull requests from issues (#279) (513d084)
- web: add French translation (#270) (013a775)
Improvements
Bug Fixes
- api: answer 400 instead of 500 when an unauthenticated route gets malformed input (#297) (22a9b6b)
- api: apply the instance mcp default when a project is copied (#291) (a010cb2)
- api: bound the auto-archive day count (#304) (e6ac5c2)
- api: clear the failure counter when a webhook is switched back on (#298) (927f471)
- api: correct generated API documentation (#277) (5501cee)
- api: drop inbox notifications from projects the user left (#310) (fcc477b)
- api: keep a rejected option list from creating a field, and name the right permission (#312) (7829a2f)
- api: keep the failed statement out of error responses (#311) (721cb18)
- api: let a tool send the body its route requires (#302) (10daff5)
- api: reject a date that is not a calendar day (#303) (ddb5f10)
- api: validate every date that reaches a date column (#307) (e4ad867)
- git: attach post-merge release pipelines (#275) (ad895a4)
- pin the resolved address for server-side fetches and reject IPv4-mapped private addresses (#313) (13cff40)
- web: judge a click that follows no press on its own target (#300) (94b5f77)
- web: keep note links readable in dark mode (#290) (7f4bf19)
- web: keep the board scrollable while the issue detail panel is open (#288) (1ebac8a)
- web: open the issue a click asks for instead of closing the panel (#301) (c4b5b61)
- web: open the issue every card and row click asks for (#309) (6f0647d)
- web: stop a description saving itself when nobody edited it (#295) (52c16e5)
Documentation
Build