Skip to content

v0.24.0

Choose a tag to compare

@h3xxit h3xxit released this 05 Oct 15:57
· 907 commits to main since this release

Before you upgrade

This release encrypts personal data in the database, and the first start after the upgrade rewrites the existing rows. Three things are different from an ordinary upgrade. The full notes are in UPGRADING.md.

  • Take a database backup first. An older version cannot read the encrypted data, so there is no way back without one.
  • Stop the old version before the new one starts. A deployer that starts the new container first and stops the old one afterwards leaves the old version running on encrypted data for a moment. Turn rolling updates off for this release, or stop the app first.
  • Keep a copy of SECRETS_ENC_KEY outside the server. Losing it now loses this data too, and the app refuses to start under a different key.

The first start refuses to come up, and says why, in two cases: two accounts share one address up to case and whitespace, or SECRETS_ENC_KEY is not a clean hex or base64 value.

What's new

Personal data is encrypted in the database. Emails, display names, avatar addresses, change-request titles and bodies, review comments and the error messages kept beside merges and queued commits are stored encrypted. Nothing new to configure: the key comes from SECRETS_ENC_KEY. Branch names and file paths are not encrypted.

Agents upload files instead of typing them out. An agent asks for a one-time upload address, sends a file or a zip of many files to it with any HTTP client, and applies it to a folder on a branch in one commit. Large files, files full of escape characters and binary files such as images and PDFs arrive byte for byte. Every path is checked against the caller's write access as a normal write is.

Tool descriptions are no longer cut off. The rules every file tool shares are stated once, in the connection instructions and in the agent guide at the repository root, and each tool describes only itself. No description is longer than 1,200 characters.

Tool chains say what went wrong. A chain that fails or times out answers with the reason, where it used to answer an empty success or drop the connection. The example in the tool description is one that works on the connection it is shown on. Chains can decode base64 and UTF-8 bytes (atob, btoa, TextEncoder, TextDecoder).

Fixes

  • Change requests are no longer reported with an unknown branch, and no changed files, when their branch is on the remote.
  • A zip entry can no longer expand past the size limit by declaring a wrong size. This applies to uploads and to unzip.
  • Opening a branch right after the repository was replaced no longer fails when two people open it at the same moment.

For integrators

  • Code that reads or writes accounts, or any other personal data, with its own SQL must be adapted before taking this version. The upgrade notes say how.
  • open_change_request and the file tools are unchanged in what they accept. call_tool_chain descriptions are now built per connection.