* Fix multi-term SQLite FTS5 search causing a 500 error When filtering cards by more than one term, `matching` was called once per term via an association join. Rails did not deduplicate association joins, resulting in two JOINs to `search_records_fts` in a single query. SQLite FTS5 then raised "ambiguous column name" when evaluating the MATCH condition. Fix by using a string join instead, which Rails deduplicates so only one JOIN to `search_records_fts` is generated regardless of how many terms are searched. Fixes: https://github.com/basecamp/fizzy/discussions/2354 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * test: verify multi-term search requires ALL terms to match --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Mike Dalessio <mike@37signals.com>
Fizzy
This is the source code of Fizzy, the Kanban tracking tool for issues and ideas by 37signals.
Running your own Fizzy instance
If you want to run your own Fizzy instance, but don't need to change its code, you can use our pre-built Docker image. You'll need access to a server on which you can run Docker, and you'll need to configure some options to customize your installation.
You can find the details of how to do a Docker-based deployment in our Docker deployment guide.
If you want more flexibility to customize your Fizzy installation by changing its code, and deploy those changes to your server, then we recommend you deploy Fizzy with Kamal. You can find a complete walkthrough of doing that in our Kamal deployment guide.
Development
You are welcome -- and encouraged -- to modify Fizzy to your liking. Please see our Development guide for how to get Fizzy set up for local development.
Contributing
We welcome contributions! Please read our style guide before submitting code.
License
Fizzy is released under the O'Saasy License.