Every release that shipped this month, newest first.
Inbox and email
Forget deleted mail now works from any connected mailbox that received the message, not only the one the deletion happened to record, so the next sync can import it again. Mail deleted before this release keeps the old behavior.
Developer platform
A saved AI provider key is now sent only to the host of the endpoint it was saved with, so it can no longer be redirected to a different host. A key you enter yourself is still tested against the endpoint you enter with it.
Invoicing
The Ready to invoice panel now has a capped height, keeps exact backlog totals, and can be collapsed while still showing the total waiting to be invoiced.
Invoice finalization now uses separate database capacity from ordinary API requests and no longer fetches decorative logos while holding invoice locks.
Documents
You can now preview .docx files directly in the file viewer instead of downloading them first.
You can now change an attachment's document type after upload on projects, organizations, employees, and contacts, except for document types reserved by Steerd.
Attachments on projects, organizations, employees, and contacts can now be opened in the inline preview viewer instead of only downloaded.
Public API clients can now retry file and attachment uploads with an Idempotency-Key without creating duplicate uploads or orphaned stored objects.
CVs
You can now reorder CV sections with drag-and-drop or keyboard controls, and the same order is used in browser, PDF, and Word outputs.
You can now hide a CV section from the finished document without deleting the content saved in that section.
Travel and expenses
Travel expense CSV exports now use the requested language for headers, delimiters, number formatting, and filenames. Short mileage descriptions no longer round down to 0 km.
Inbox and email
Imported mail can now be deleted one message or one conversation at a time without disconnecting the mailbox. Deleted imported mail stays out of future syncs unless an admin clears that suppression.
The Reply button now shows when an account cannot send before you open the composer, including whether sending is not configured, the sending mailbox is missing, or the plan does not include email integration.
Connected mailboxes can now import new messages automatically through scheduled sync.
Mailbox settings now show when a configured IMAP folder can no longer be found and give admins a direct action to choose a folder.
If a mailbox is reconfigured while a fetch is in progress, mail from the old configuration is no longer stored under the new configuration.
Opening a conversation now keeps the message and reply area on the page instead of squeezing them into an internal scroller. Selecting or deep-linking to a conversation also scrolls it into view.
Sent reply attachments are now shown when reading conversations and stuck-send records, in the same order they were composed.
The AI draft rate option can now quote a selected employee's rate instead of only the signed-in user's rate. The option is shown only to users allowed to see employee rates.
The Gmail connection flow now asks Google to show its consent screen in the language currently used in Steerd.
The AI draft answers section now includes explanatory text and is announced as a form section, so it no longer reads like an empty field.
Outbound replies now return a retryable send-capacity response when storage reservation contention would otherwise keep send slots occupied.
You can now unblock ignored senders from the ignore confirmation or from integration settings. Steerd now clarifies that unblocking affects future mail only.
Developer platform
Main lists now use Previous and Next pagination with 25 rows shown by default instead of a Load more button.
AI settings can now show available models for supported providers and test the selected model before it is used.
Public API idempotent write replays now return an authorization-changed error when the caller's permissions or project access have narrowed since the original request.
The App Store Connect integration is available again.
Account and billing
Settings and permission pages now show readable labels for all capabilities instead of raw translation keys, with a fallback label for newly added capabilities.
Changing your account email now updates both your sign-in email and the profile email used on Steerd pages and outgoing account mail.
The audit log now distinguishes automatic Steerd actions from actions by deleted users.
Duplicate team invitations created at the same time now return the normal duplicate-invitation response instead of a server error. Invite-related selectors also have accessible names.
Console invitations are now emailed to the invited address, and the console reports whether the email was sent while still showing the accept link.
Fixes and polish
Rows in the Files list now keep size, uploader, date, visibility, and action columns aligned even when some actions or visibility badges are not shown.
Several visual issues were fixed: the project attention filter no longer changes size when active, the Editorial CV summary no longer uses a drop cap, and the team invitation language hint no longer wraps under a narrow selector.
Clients and projects
When changing a pipeline lane type or reassigning a lane, Steerd now checks again before deleting close reasons. If the number that would be deleted has changed since you confirmed, the change is refused and you are asked to confirm again.
Inbox and email
When attaching a CV to an inbox reply, you can now choose the PDF heading language for each attached CV. The default matches the sender's Steerd language.
The inbox Draft with AI panel now makes better use of the available pane width and includes a Close button. Typed instructions are kept when you reopen it.
Account and billing
Team invitations are now checked against your current seat limit when they are sent. If there is no paid seat available, the invite is refused instead of creating a pending invitation that cannot be used.
Chrome no longer mistakes the AI provider credential fields for a Steerd sign-in form. This prevents saved Steerd credentials from being filled into the endpoint and API key fields.
Time tracking
Date defaults and "today" markers now follow your local calendar day instead of UTC, so time entries and calendars do not shift around midnight in non-UTC time zones.
Clients and projects
When you edit pipeline lanes, Steerd now warns you before the change clears project close reasons and shows how many projects are affected when that count is available.
Project start and end dates on contact details now show the stored project calendar day for viewers west of UTC. This prevents those dates from appearing one day earlier.
Changing only a project's contacts or organizations now updates the project's modified time, so the project appears in recent-project lists after those changes.
Documents
File uploads, exports, attachments, profile photos, and cleanup jobs now have time limits when talking to storage. If storage stalls, those jobs can fail or continue instead of waiting indefinitely.
CVs
You can now download CVs as PDFs from the CV download menu. The PDF uses your current language, and Steerd now shows clearer messages if the PDF cannot be created.
Teams that downgrade can still render and export CVs that were created while the team had access to the saved CV features on them. Adding new CV features that require a higher plan remains blocked.
Inbox and email
Disconnecting a mailbox now removes mail that was tied only to unconfirmed import drafts. Mail linked to existing projects or created as projects is still kept.
Account and billing
Employee records can now be linked only to active team members, including if a team member is disabled while the link is being created or changed. This helps prevent employee records from ending up tied to disabled accounts.
Team access settings now show readable permission names for permissions you can grant, instead of raw translation text.
Clients and projects
Project contact lists and contact-based filters now use the contacts saved on each project, including primary, secondary, and other contacts. This keeps lists and filters aligned with the project details you see.
When closing a project as won or lost, you can now add an outcome-specific reason category and notes from the places where projects are closed. Closed projects show the recorded reason afterward.
Documents
Account holders can now enter the company and data-protection contact details needed for the AVV/DPA, review the exact agreement version, sign it electronically, download the confirmation, and open the published AVV/DPA pages.
CVs
CV PDF exports now use the same print rendering as the browser preview, so the exported design better matches what you see. Names and content in supported scripts, including Japanese characters, now render in PDFs.
Unpublished CV draft content is no longer returned through public CV sharing and integrations, so visitors and connected tools only see published CV content.
Inbox and email
When you disconnect a mailbox in Settings, Steerd now asks for confirmation and explains which synced conversations and sending settings will be removed before anything changes.
If filing an email conversation to a project is interrupted, the conversation now shows the unfinished action so you can resume it. Conversations with abandoned, dismissed, or failed filing attempts are no longer treated as filed when Steerd decides what to retain or whether to announce replies.
If Steerd cannot confirm whether an email reply was accepted, the message now explains how to check. It tells you whether your Sent folder can answer it or whether you should ask the recipient before sending again.
Email reply sending now has clearer limits for recipient volume and simultaneous sends, and limit messages tell you when you can try again.
Mail data now has stricter team ownership checks for stored credentials, encryption keys, connections, and outbound attachments, helping keep one team's mailbox data from being linked to another team's mail.
Developer platform
Steerd can now generate customer-facing release notes for production releases in English and German from the work included in the release, making it easier to share accurate updates.
Some requests are now less likely to fail right after a temporary backend reconnection, because Steerd waits briefly before running request limit and verification checks.
Account and billing
Sign-ups are now less likely to be rejected during legal document updates, because Steerd accepts the new document version before it appears in the sign-up flow.