What shipped · Coordio
Finished cards from the Coordio board, week by week. This page is built straight from the board we work on in Coordio — nothing is copied by hand.
Aug 31 – Sep 673 cards
Added a Catalog channel type and a catalog view mode for any channel
Sprint 8ideafeatureShared storage for new kinds of information blocks
Sprint 8tech-debtinfrafeatureFixed raw translation keys appearing instead of text in several places
Sprint 8buguxThe board entry in the left panel now shows the kind of activity and the card title
Sprint 8boarduxfeatureReal-time server deploys work again (login failure worked around)
Sprint 8infrabugLeft panel now updates a board's last-activity date
Sprint 8bugboarduxLast-activity date in the left panel now accounts for the board, pinned groups and DMs
Sprint 8bugboarduxBoard is now its own channel type rather than a channel option
Sprint 8featureboardideaSprint closed and the next one planned (planning session)
Sprint 8boarddocsNo external sync engine for now: staying with the in-house one
Sprint 7infraofflineEncrypted archives for the local file cache: decided against
Sprint 7infrasecurityofflinestoragePanel swipe no longer clashes with horizontal swipes inside blocks
Sprint 7uxmobilebugIn-app not-found pages now return a real 404 status
Sprint 7infrabugThe reader and document viewers match the app's text sizing
Sprint 7uxFixed console errors in development mode
Sprint 7bugtech-debtPhotos and files can be shared into Coordio from other apps
Sprint 7featuremobileuxRemoved an unused chat sidebar component
Sprint 7tech-debtchatFixed a background worker error when navigation is cancelled
Sprint 7bugofflineMobile: tooltips no longer linger after the sidebar closes on navigation
Sprint 7mobilebuguxGrouping messages by date now handles time zones near midnight
Sprint 7bugchatTimes shown in a chosen time zone, with a setting to change it
Sprint 7tech-debtuxbugDates across the app are now formatted in the user's locale, not the server's
Sprint 7tech-debtbugPage redirects now happen at the edge, without rendering a full page first
Sprint 7authperfbugThe translation catalogue is now cached instead of rebuilt on every request
Sprint 7tech-debtperfTranslations are no longer inlined into every page response
Sprint 7tech-debtperfmobileLanding page can be served as a static shell from a CDN
Sprint 7perfinfraAPI routes no longer turn prerender signals into server errors
Sprint 7apibugEnabled partial prerendering across the app
Sprint 7infraperfWhy the landing page is neither prerendered nor streamed
Sprint 7perfinfraFixed the 'Hydration failed' error that appeared on every page
Sprint 7perftech-debtbugCard comments get a rich editor, like descriptions
Sprint 7uxboardfeatureBoard card descriptions now support rich text formatting
Sprint 7uxfeatureboardtech-debtPage load now makes one database query instead of two for settings and role
Sprint 7perfinfraChat page reads channel data once instead of five times
Sprint 7perfFinding a card by a short id prefix required dumping the whole board
Sprint 7boardapiChecked whether the server region matches the database region
Sprint 7infraperfMeasured cold-open time for logged-in users
Sprint 7perfinframobileThe channel page is split up by display mode
Sprint 7chattech-debtperfWhether regular users download admin screens — measured
Sprint 7perfinfraaccessThe chat composer no longer loads drag-and-drop code on every channel page
Sprint 7chatperfinfraThe fractal generator and image cropper load only when needed
Sprint 7perfinfraLogged-out visitors get a lean app without logged-in code
Sprint 7tech-debtperfmobileListing sprints through MCP returned the full summary of every sprint — far too much data
Sprint 7ext-apiboardperfReading the whole board through MCP returned a response too large to use
Sprint 7boardext-apitech-debtperfBoard search now finds cards by id, milestone and sprint, not just by title
Sprint 7boarduxfeatureReading pages no longer load chat realtime and the fractal engine
Sprint 7tech-debtmobileperfchatSide panels finally split into thin containers
Sprint 7tech-debtuxperfPersonal and social modes: what they actually change
Sprint 7perfmobileinfratech-debtBoard loads faster: rarely used dialogs and reports left out of the first load
Sprint 7tech-debtboardperfGuest join pages no longer preload the video client
Sprint 7perfuxinfraCancelled subtasks no longer leave a closed card showing unfinished subtasks
Sprint 7bugboarduxSprint closed: unfinished cards moved back to the backlog, summary and lessons recorded
Sprint 6boarddocsFound that admins and moderators could not change channel settings
Sprint 6accesssecuritybugMissing permission settings are now caught instead of silently limiting features to owners
Sprint 6accesssecurityinfrabugThe Bots section points to where the Telegram publishing bot is set up
Sprint 6uxdocsWordPress publishing no longer fails on images with Cyrillic names
Sprint 6bugtech-debtext-apiTelegram bot creation form restored; conflicting polling mode removed
Sprint 6tech-debtext-apiaiApp font sizes: found to be a question of the default scale, not a missing feature
Sprint 6uxtech-debtResearch column cleared: nine cards triaged and moved on
Sprint 6boardOn phones the chat composer is shorter and stays on screen
Sprint 6chatbugmobileuxOn phones, chat menu submenus no longer go off-screen
Sprint 6mobilechatbuguxOAuth sign-in for external MCP servers
Sprint 6ext-apiauthfeatureChanged how development cards are routed to AI models
Sprint 6docsboardaiChannel settings regrouped into sections instead of fifteen flat tabs
Sprint 6uxtech-debtchatFixed raw translation keys showing after following a link
Sprint 6buguxperftech-debtScenarios by plan: the free plan gets one scenario
Sprint 6featureaccessapiScenarios in the UI: list, step builder and run status in channel settings
Sprint 6featureuxchatdocsScenario reminders now reach Telegram, not only the Coordio thread
Sprint 6featureext-apiRole history to avoid offering the same role twice in a row: where it lives is decided
Sprint 6featureext-apiPersonal scenario questions now reach people in Telegram too
Sprint 6featurechatext-apiA channel settings screen for managing external MCP servers
Sprint 6featureext-apiuxScenarios: poll options and a dedicated step powered by an external MCP server
Sprint 6featureext-apiapiChannels can connect external MCP servers — Coordio is now an MCP client too
Sprint 6aiext-apifeatureinfra
Aug 24 – 3012 cards
Scheduled messages can now repeat
Sprint 6featureapiinfrachatTelegram votes flow back into the native Coordio poll
Sprint 6featureext-apichatdocsScenario poll options now drawn from channel members and past answers
Sprint 6featureext-apiapiScenario steps in personal threads: free-text questions and personal polls
Sprint 6featurechatext-apiLink between Telegram users and Coordio members
Sprint 6accessfeatureauthext-apiScenarios: waiting, deadlines and reminders
Sprint 6featurechatinfraScenarios: a working engine with message and poll steps in a channel
Sprint 6featurechatinfraapiAgent's scheduled-message tool now schedules instead of sending immediately
Sprint 6bugaichatDesigned message-sending scenarios
Sprint 6featurechatdocsPosting automation: publish from Coordio to Telegram and WordPress
Sprint 0featureext-apiaccessFound why the Telegram publishing bot did nothing
Sprint 6ext-apidocstech-debtLazy-loading audit: where it is worth adding, judged by code weight
Sprint 5perftech-debtinfra
Aug 17 – 2387 cards
New planner tasks no longer start with the Research status
Sprint 5bugboardFixed: auto-picked cards landed in Research instead of In progress
Sprint 5boardbugtech-debtPlanner: a 24-hour circular day view
Sprint 5mobileuxfeatureSprint waves lived only in goal text, so no report could read them
Sprint 5boardfeaturetech-debtReport help text no longer presents one board's facts as product behaviour
Sprint 5boarduxtech-debtdocsConversations for sprints and milestones, and a window of their own for milestones
Sprint 5uxboardfeaturedocsFixed tab freezing and the page title collapsing to the badge count
Sprint 5perfinfrauxbugChart rows in reports no longer wrap and stretch the dialog
Sprint 5boarduxCard bounty is hidden when the feature is turned off
Sprint 5boardbuguxLong words no longer overflow the card
Sprint 5bugboarduxThe board label filter can find cards with no labels
Sprint 5featureboarduxSprint names no longer repeat the sprint number
Sprint 5tech-debtboarduxHeader navigation history shows full page paths
Sprint 5uxBoard: sorting moved into the bar, search moved into filters
Sprint 5uxboardColumn counters show both filtered and total card counts (10/17)
Sprint 5boarduxbugmobileOn phones, both sidebars are no longer rendered at once
Sprint 5perfmobiletech-debtuxPages load only the translations they need
Sprint 5perftech-debtmobileCall provider in the shell: measured, not worth splitting out on its own
Sprint 5infraperftech-debtMedia viewer no longer loads on pages that cannot use it
Sprint 5chatmobileperfData loads right away without waiting for the session check
Sprint 5perfmobileauthLinks in file viewers no longer reload the app
Sprint 5uxperfVideo call client no longer loads until it is needed
Sprint 5mobileperfinfratech-debtFixed board export failing on Cyrillic names
Sprint 5bugapiboardLanguage detection no longer loads on every page
Sprint 5mobileperftech-debtinfraMessage editor loads on focus instead of on page open
Sprint 5uxperfchatmobileSmall follow-ups after the emoji-picker fix
Sprint 5chatdocstech-debtThe emoji picker now truly loads lazily
Sprint 5perftech-debtchatSix requests that were made twice are no longer duplicated
Sprint 5apiperftech-debtinfraNavigation no longer prefetches the whole sidebar
Sprint 5tech-debtuxinfraperfAn unknown channel now shows an honest 404 instead of a silent redirect
Sprint 5accessuxbugChannel sub-pages opened by slug (board, settings) now open correctly
Sprint 5bugboardaccessuxOpening a channel by its id link no longer takes two navigations
Sprint 5perfuxbugchatFound what page transitions wait for
Sprint 5uxperfinfraMeasured what makes the first load heavy
Sprint 5uxmobileinfraperfPerformance numbers are visible live in the admin panel
Sprint 5perfuxfeatureinfraInternal links in messages no longer reload the app
Sprint 5uxperfbugtech-debtFewer duplicate API calls on page load
Sprint 5buginfratech-debtperfTelegram bot token revoked and re-issued
Sprint 5ext-apiauthsecurityaiReport blocks no longer grow without limit as sprints pile up
Sprint 4tech-debtboarduxFound an unfinished migration of agent tokens to encrypted storage
Sprint 4securitybugext-apiaiRoles granted the mirror-management permission in production after deploy
Sprint 4securityaccessinfraMirror access is governed by a permission instead of a hardcoded role
Sprint 4accesstech-debtext-apisecurityCost of the work is asked for when a card moves to Done
Sprint 4uxtech-debtboardEstimate-vs-actual report now shows when neighbouring sizes are indistinguishable
Sprint 4docsboarduxNotifications outside the board no longer get lost after the server responds
Sprint 4infrabugtech-debtBoard activity history no longer gets lost
Sprint 4boardtech-debtinfrabugCards entered In progress just before the commit, so cycle time read near zero
Sprint 4tech-debtfeatureboardCard links from notifications now open the right card
Sprint 4bugfeatureuxboardThe other-accounts check no longer polls the server every 5 minutes for nothing
Sprint 4perfinfraauthA board write no longer forces every open board to fully reload
Sprint 4bugperfboardThe unread-notification counter makes far fewer redundant requests
Sprint 4infraperftech-debtUnknown API paths now return a lightweight 404 instead of a full page
Sprint 4infraperfMade 404 responses cheap: scanners no longer get a full page render
Sprint 4infratech-debtperfThe help-text length limit is now enforced by automated tests
Sprint 4tech-debtdocsinfraThe private sub-channel invite dialog is now translated
Sprint 4buguxFive more board tooltips shortened to a sensible length
Sprint 4uxboardLong board tooltips shortened, details moved into "Read more"
Sprint 4uxboardHelp popups in reports now fit the screen
Sprint 4buguxboarddocsHelp tips for board controls: sprints, milestones, statuses, rules, columns
Sprint 4docsboarduxEstimate-vs-actual report: does a story point still mean what it did before
Sprint 4featureuxboardVelocity chart flags sprints with retroactively derived estimates
Sprint 4tech-debtdocsuxboardReports now break work down by label as well
Sprint 4uxfeatureboardCreating a status now settles which column it belongs to
Sprint 4uxfeatureboardBoard Gantt chart was empty because cards had no dates filled in
Sprint 4boardbuguxtech-debtTask card: all labels visible, quick estimate and assignee changes
Sprint 4boarduxfeatureBoard reports explain what each metric measures
Sprint 4docsboarduxBoard export and import, including from Teamwork, Trello and Jira
Sprint 4featureboardapiRequests for missing pages such as the favicon no longer return a heavy page
Sprint 4buginfraperfThroughput report: how many cards were closed per sprint
Sprint 4featureboardtech-debtSprint numbering follows dates: earlier sprints get 0, −1, −2…
Sprint 4boardfeaturetech-debtA dedicated sprint for the era before the first sprint, with a retro
Sprint 4tech-debtboarddocsBCG matrix and other analytical board views — evaluated
Sprint 4uxfeatureboardSort the board by estimate (story points)
Sprint 4boardfeatureuxSprints now cover all finished work, not less than half of it
Sprint 4boarduxtech-debtClosed access gaps in channel requests that exposed names and emails
Sprint 4ext-apisecurityClosed unauthorized access to a channel's mirror sources
Sprint 4securityext-apiMirror source credentials were described as encrypted but were not actually encrypted
Sprint 4storageext-apisecurityCost report now gets filled: time and token usage on cards
Sprint 4aidocsinfraboardCycle-time report: how long cards take to finish is now measured
Sprint 4apiboardfeatureBoard reports are now available outside the browser via token and MCP
Sprint 4apiboardext-apitech-debtChannel management split into separate permissions set in channel admin
Sprint 4accessfeaturesecurityuxRemoved an unused mentions-processing endpoint
Sprint 3tech-debtbugBackground work after sending a message is no longer lost
Sprint 3tech-debtchatAI agents: confirmed that execution was already real, not a stub
Sprint 3featuretech-debtaiRemoved a dead message-write path and unified derived fields in one place
Sprint 3uxbugtech-debtBacklinks are found even when a title is spelled slightly differently
Sprint 3featureuxBoard filters for skill match and transliterated search
Sprint 3boardapiperf
Aug 10 – 1636 cards
Admin: grant a user the PRO plan manually
Sprint 3accessfeatureAdmin: sections and sub-tabs instead of a long row of flat tabs
Sprint 3accessuxtech-debtBoard permissions get their own section in channel permissions
Sprint 3uxboardsecurityfeatureInteractive card: labels, priority and badges as actions, plus sprint number
Sprint 3boardfeatureuxLow koord balance warning appears when an agent is assigned, not 15 minutes later
Sprint 3aiuxfeatureapiMilestones shown as summary bars on the Gantt view
Sprint 3featureuxWiki-link autocomplete: search beyond the start of a title
Sprint 3featureuxUploads keep the original file name; multi-upload order can be changed
Sprint 3chatfeatureuxstorageTelegram bot tokens are now stored encrypted
Sprint 3authsecurityaiEdit Markdown and text files right in the app
Sprint 3featureuxstorageBoard loads lighter: full card descriptions are no longer sent upfront
Sprint 3apiperfboardFollowing a board column: for now only cards can be followed
Sprint 3boardfeatureA subtask in a sprint is no longer counted twice in reports
Sprint 3boardbugSubtasks as full cards, with two viewing modes
Sprint 3featureboarduxFixed the automated type check failing in CI
Sprint 3buginfraperfA scheduler test that flakes under load was investigated
Sprint 3buginfratech-debtUsers' own AI provider keys are now stored encrypted
Sprint 3securitytech-debtaiFixed an occasional automated-test failure under load
Sprint 3infrabugtech-debtChecked whether two database client files duplicate each other
Sprint 3tech-debtinfraClearing a board filter brings cards back without a page reload
Sprint 3boarduxbugEditing a note's first line no longer breaks links to it
Sprint 3uxbugtech-debtRemaining on-device caches are now tied to the account
Sprint 3securitybugofflinetech-debtProduction service worker unregistered itself, leaving no offline shell
Sprint 3offlineinfrabugFeature toggles unified into a single check
Sprint 3tech-debtfeatureinfraActivating a sprint now completes the previous active one
Sprint 3bugapiboardThe file usage table is now translated
Sprint 3buguxstorageRemoved dead chat code
Sprint 3chattech-debtForwarded messages are now marked and show where they came from
Sprint 3chatbuguxA new board can copy columns, statuses and labels from an existing one
Sprint 2featureuxboardExpanded-form button next to quick add for cards and columns
Sprint 2uxfeatureboardCard dialog: grouped sections, empty ones collapsed, labels higher up
Sprint 2boarduxfeatureFixed: card description missing in the dialog and erased on save
Sprint 2bugboarduxBoard rules: column, status and assignee as a single mechanism
Sprint 2uxfeatureboardSubtasks open as a temporary highlighted column alongside
Sprint 2featureboarduxRemoved an unused "done column" field from the data model
Sprint 2boardtech-debtBoard sorting and main filters now run on the server
Sprint 2apiperfboard