1.2.8
October 31, 2026
Fixes
API
- Account deletion finishes Deleting an account removes old team memberships and inbox items, and it clears you as the creator of keys on teams that remain. If deletion canceled the subscription and then stopped, the next try restores that subscription or removes the team.
- Audit visitor address Audit entries record the visitor address the rest of the app already trusts.
- Billing webhook retry A billing webhook can be delivered again when the job was not queued.
- Child team members A member who joins a parent team stays on the child team when a sync is already running.
- Reuse a deleted account email You can sign up again with an email from an account that was deleted. Confirming an email change onto that address stops before your sessions are signed out.
- Invite when billing is missing Accepting an invite tells you when team billing is not ready yet. A team that is full still refuses the invite.
- Leave a team Leaving a team removes it from your team list right away.
- Member update body The member update API rejects an empty body. Sending an empty note still clears the note.
- Notification confirmation links Notification confirmation links use your public API address in production.
- Seat counts The first paid period keeps the seat count already on the team, and a later period keeps the count from the period that just ended. A new paid team counts each member once.
- Team invites An expired invite can be replaced or canceled. Invites match the mailbox regardless of letter case, and a canceled invite cannot still add a member.
- Last team owner A team keeps an owner when two owners change roles at the same time.
- Usage alerts A usage alert is sent when the threshold is crossed.
Security
API
- API key roll Rolling an API key drops the previous key before the new secret is shown. A failed roll can be retried without leaving the old key active.
- Profile save Saving your name and emoji leaves the password that is already stored.
- Other sessions sign out first Changing a password, resetting a password, or deleting an account signs other sessions out before the change is saved. A reset link is used once with the new password, and the account stays if that sign-out fails.
- Webhook addresses Webhook delivery rejects shared carrier addresses and local IPv6 ranges along with private networks.
Frontend
- Error reports omit reset links Error reports mask page text and drop the token from password-reset and email-confirmation links.
- Sign-in redirect stays on this site A redirect after sign-in stays on this site when the path hides another address with a tab or a line break.