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.
Sep 7 – 1354 cards
Tags, phase 3: tag pages, sidebar integration and system tags
Sprint 9uxfeaturePersonal tags can now be added to board cards
Sprint 9featureuxboardTags, phase 2: tags for files, messages and channels, plus channel and global admin screens
Sprint 9featureuxstoragechatTags, phase 1b: board UI on the new tags, with a tag manager replacing the label manager
Sprint 9featureboarduxTags, phase 1: card labels moved onto tags without changing the API
Sprint 9boardfeaturetech-debtTags: foundation — data model, service, tag chip and label migration
Sprint 9featuretech-debtQuickly add a label to a new card with a hash sign
Sprint 9boarduxfeatureThe card dialog saves changes automatically, with no Save button
Sprint 9featureboarduxtech-debtBoard sorting without a manual option: drag-and-drop works within a priority level
Sprint 9featuretech-debtuxboardPinning cards on a board: options researched
Sprint 9boardfeatureA card's short id is now visible on the card itself
Sprint 9boarduxfeatureEvery card now has a priority: 'none' retired, medium is the default
Sprint 9apiboardtech-debtuxDragging a card sometimes opened an offline chat page — cause found
Sprint 9boardbuguxDragging a card into an empty or closed column investigated
Sprint 9boardbuguxCommenting on a card assigned to you moved it to In progress by itself
Sprint 9boardbugapiA shortened card id worked in only one MCP tool; the rest required the full id
Sprint 9boarduxapiMCP: a board column could not be read — even 40 cards did not fit in the response
Sprint 9boardtech-debtapiMCP: cards could not be searched by text, and column listing failed on a channel id
Sprint 9apiboardMessages tied to shared records at the database level; duplicate columns removed
Sprint 9infratech-debtMessages on shared records: a companion record is now created with each message
Sprint 9infratech-debtLinks between cards moved onto shared record relations
Sprint 9infratech-debtboardCard hierarchy moved onto the shared record hierarchy
Sprint 9infratech-debtboardThe obsolete card visibility column removed from the database
Sprint 9infratech-debtCards tied to shared records at the database level; duplicate columns removed
Sprint 9infratech-debtCards on shared records: the shared record is created first, then the card
Sprint 9infratech-debtBoard cards now share a common foundation with other items (phase 1)
Sprint 9infratech-debtSeven obsolete channel types removed after migrating the data
infratech-debtRemoved seven obsolete channel types from code and database
Sprint 8tech-debtinfraThe obsolete board flag removed from the database
Sprint 8tech-debtboardRemoved leftover channel-shortcut fields from the data model
Sprint 8infratech-debtChannels with the board switched on moved to a dedicated Board type
Sprint 8accessboardtech-debtChannel shortcuts are now a separate feature, not a channel type
Sprint 8featuretech-debtuxNew card relation type: recommended order
Sprint 8boardfeatureIdea: view a channel as another type, e.g. a board as a catalog or mind map
Sprint 8uxideafeatureThe channels root now shows an expanded view of all available channels
Sprint 8featureuxAccess check for the parent channel when creating a channel
Sprint 8authsecurityapiChannel actions in the left panel: open in a view, create a subchannel, settings
Sprint 8uxfeatureChannel types simplified: the old direct and support types are retired
Sprint 8tech-debtinfraChannel subtypes: direct and support channels assessed as variations of chat
Sprint 8featuretech-debtA sprint can now be read as a list of cards through the API, MCP and board filter
Sprint 8apifeatureboardA whole milestone can now be added to a sprint, not just single cards
Sprint 8boardfeedbackuxfeatureMCP: card write responses are too large because they echo the full description
Sprint 8perfapiFixed: creating a card through MCP silently ignored labels, estimate and column
Sprint 8tech-debtapibugFiles in storage are now shown through the catalog view
Sprint 8storagetech-debtuxFixed: mind map connection lines were not drawn
Sprint 8bugCatalog and mind map now use the same action bar as the board
Sprint 8tech-debtuxChannel pages did not finish rendering in the embedded browser pane, blocking UI checks there
Sprint 8infrabugOne subheader per channel view: the board toolbar moved into it
Sprint 8tech-debtuxboardMind map and invitation acceptance now work with API tokens
Sprint 8accessapiauthAll channel kinds get a shared subheader, a parent-and-neighbors strip and own settings
Sprint 8featureuxboardA mind map as a channel type, and whether it fits the product direction now
Sprint 8ideafeatureViewing a card through the API without automatically starting it
Sprint 8boardapiFixed: a paid account was hitting the free plan's root channel limit
Sprint 8accessbugGroup channels move to catalog view; their own chats cleaned up
Sprint 8featureux
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-debtfeatureinfraFixed 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 8boardfeatureuxReal-time server deploys work again (login failure worked around)
Sprint 8infrabugLeft panel now updates a board's last-activity date
Sprint 8buguxboardLast-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 8docsboardNo external sync engine for now: staying with the in-house one
Sprint 7offlineinfraEncrypted archives for the local file cache: decided against
Sprint 7infrasecurityofflinestoragePanel swipe no longer clashes with horizontal swipes inside blocks
Sprint 7uxbugmobileIn-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 7uxfeaturemobileRemoved 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 7uxmobilebugGrouping messages by date now handles time zones near midnight
Sprint 7bugchatTimes shown in a chosen time zone, with a setting to change it
Sprint 7uxtech-debtbugDates 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 7perfauthbugThe translation catalogue is now cached instead of rebuilt on every request
Sprint 7tech-debtperfTranslations are no longer inlined into every page response
Sprint 7perfmobiletech-debtLanding page can be served as a static shell from a CDN
Sprint 7infraperfAPI 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 7perfbugtech-debtCard comments get a rich editor, like descriptions
Sprint 7boarduxfeatureBoard card descriptions now support rich text formatting
Sprint 7featureboarduxtech-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 7perfinfraMeasured cold-open time for logged-in users
Sprint 7perfmobileinfraThe channel page is split up by display mode
Sprint 7tech-debtchatperfWhether regular users download admin screens — measured
Sprint 7perfinfraaccessThe chat composer no longer loads drag-and-drop code on every channel page
Sprint 7perfchatinfraThe fractal generator and image cropper load only when needed
Sprint 7infraperfLogged-out visitors get a lean app without logged-in code
Sprint 7mobileperftech-debtListing 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 7ext-apitech-debtboardperfBoard search now finds cards by id, milestone and sprint, not just by title
Sprint 7uxboardfeatureReading pages no longer load chat realtime and the fractal engine
Sprint 7tech-debtperfchatmobileSide panels finally split into thin containers
Sprint 7uxtech-debtperfPersonal and social modes: what they actually change
Sprint 7tech-debtperfmobileinfraBoard loads faster: rarely used dialogs and reports left out of the first load
Sprint 7boardperftech-debtGuest join pages no longer preload the video client
Sprint 7infraperfuxCancelled subtasks no longer leave a closed card showing unfinished subtasks
Sprint 7buguxboardSprint closed: unfinished cards moved back to the backlog, summary and lessons recorded
Sprint 6docsboardFound that admins and moderators could not change channel settings
Sprint 6accesssecuritybugMissing permission settings are now caught instead of silently limiting features to owners
Sprint 6infraaccesssecuritybugThe Bots section points to where the Telegram publishing bot is set up
Sprint 6docsuxWordPress publishing no longer fails on images with Cyrillic names
Sprint 6bugtech-debtext-apiTelegram bot creation form restored; conflicting polling mode removed
Sprint 6aitech-debtext-apiApp font sizes: found to be a question of the default scale, not a missing feature
Sprint 6tech-debtuxResearch column cleared: nine cards triaged and moved on
Sprint 6boardOn phones the chat composer is shorter and stays on screen
Sprint 6mobilebugchatuxOn phones, chat menu submenus no longer go off-screen
Sprint 6mobilechatuxbugOAuth sign-in for external MCP servers
Sprint 6featureauthext-apiChanged how development cards are routed to AI models
Sprint 6aiboarddocsChannel settings regrouped into sections instead of fifteen flat tabs
Sprint 6tech-debtchatuxFixed raw translation keys showing after following a link
Sprint 6buguxperftech-debtScenarios by plan: the free plan gets one scenario
Sprint 6featureapiaccessScenarios 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 6ext-apifeaturechatA channel settings screen for managing external MCP servers
Sprint 6featureuxext-apiScenarios: poll options and a dedicated step powered by an external MCP server
Sprint 6ext-apifeatureapiChannels can connect external MCP servers — Coordio is now an MCP client too
Sprint 6infraaiext-apifeature
Aug 24 – 3012 cards
Scheduled messages can now repeat
Sprint 6featureapiinfrachatTelegram votes flow back into the native Coordio poll
Sprint 6featureext-apidocschatScenario poll options now drawn from channel members and past answers
Sprint 6featureext-apiapiScenario steps in personal threads: free-text questions and personal polls
Sprint 6chatfeatureext-apiLink between Telegram users and Coordio members
Sprint 6accessfeatureext-apiauthScenarios: waiting, deadlines and reminders
Sprint 6featureinfrachatScenarios: a working engine with message and poll steps in a channel
Sprint 6infraapifeaturechatAgent'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 6docsext-apitech-debtLazy-loading audit: where it is worth adding, judged by code weight
Sprint 5perfinfratech-debt
Aug 17 – 2387 cards
New planner tasks no longer start with the Research status
Sprint 5boardbugFixed: auto-picked cards landed in Research instead of In progress
Sprint 5bugtech-debtboardPlanner: a 24-hour circular day view
Sprint 5mobileuxfeatureSprint waves lived only in goal text, so no report could read them
Sprint 5boardtech-debtfeatureReport help text no longer presents one board's facts as product behaviour
Sprint 5docsboarduxtech-debtConversations for sprints and milestones, and a window of their own for milestones
Sprint 5featureuxdocsboardFixed tab freezing and the page title collapsing to the badge count
Sprint 5buginfraperfuxChart rows in reports no longer wrap and stretch the dialog
Sprint 5uxboardCard bounty is hidden when the feature is turned off
Sprint 5boarduxbugLong words no longer overflow the card
Sprint 5uxbugboardThe board label filter can find cards with no labels
Sprint 5boardfeatureuxSprint names no longer repeat the sprint number
Sprint 5uxtech-debtboardHeader navigation history shows full page paths
Sprint 5uxBoard: sorting moved into the bar, search moved into filters
Sprint 5boarduxColumn counters show both filtered and total card counts (10/17)
Sprint 5uxboardbugmobileOn phones, both sidebars are no longer rendered at once
Sprint 5uxperftech-debtmobilePages load only the translations they need
Sprint 5tech-debtmobileperfCall provider in the shell: measured, not worth splitting out on its own
Sprint 5perftech-debtinfraMedia viewer no longer loads on pages that cannot use it
Sprint 5mobilechatperfData loads right away without waiting for the session check
Sprint 5mobileauthperfLinks in file viewers no longer reload the app
Sprint 5uxperfVideo call client no longer loads until it is needed
Sprint 5infraperfmobiletech-debtFixed board export failing on Cyrillic names
Sprint 5bugboardapiLanguage detection no longer loads on every page
Sprint 5tech-debtmobileperfinfraMessage editor loads on focus instead of on page open
Sprint 5chatmobileuxperfSmall follow-ups after the emoji-picker fix
Sprint 5docstech-debtchatThe emoji picker now truly loads lazily
Sprint 5tech-debtperfchatSix requests that were made twice are no longer duplicated
Sprint 5perfinfraapitech-debtNavigation no longer prefetches the whole sidebar
Sprint 5perfinfrauxtech-debtAn unknown channel now shows an honest 404 instead of a silent redirect
Sprint 5bugaccessuxChannel sub-pages opened by slug (board, settings) now open correctly
Sprint 5uxaccessboardbugOpening a channel by its id link no longer takes two navigations
Sprint 5bugperfchatuxFound what page transitions wait for
Sprint 5infraperfuxMeasured what makes the first load heavy
Sprint 5mobileperfinfrauxPerformance numbers are visible live in the admin panel
Sprint 5uxperfinfrafeatureInternal links in messages no longer reload the app
Sprint 5tech-debtperfbuguxFewer duplicate API calls on page load
Sprint 5infraperfbugtech-debtTelegram bot token revoked and re-issued
Sprint 5authext-apiaisecurityReport blocks no longer grow without limit as sprints pile up
Sprint 4boarduxtech-debtFound an unfinished migration of agent tokens to encrypted storage
Sprint 4bugaiext-apisecurityRoles granted the mirror-management permission in production after deploy
Sprint 4accesssecurityinfraMirror access is governed by a permission instead of a hardcoded role
Sprint 4accessext-apitech-debtsecurityCost of the work is asked for when a card moves to Done
Sprint 4tech-debtboarduxEstimate-vs-actual report now shows when neighbouring sizes are indistinguishable
Sprint 4boarddocsuxNotifications outside the board no longer get lost after the server responds
Sprint 4infratech-debtbugBoard activity history no longer gets lost
Sprint 4tech-debtbugboardinfraCards entered In progress just before the commit, so cycle time read near zero
Sprint 4boardtech-debtfeatureCard links from notifications now open the right card
Sprint 4featurebugboarduxThe other-accounts check no longer polls the server every 5 minutes for nothing
Sprint 4perfauthinfraA board write no longer forces every open board to fully reload
Sprint 4bugperfboardThe unread-notification counter makes far fewer redundant requests
Sprint 4perftech-debtinfraUnknown API paths now return a lightweight 404 instead of a full page
Sprint 4perfinfraMade 404 responses cheap: scanners no longer get a full page render
Sprint 4tech-debtinfraperfThe help-text length limit is now enforced by automated tests
Sprint 4infradocstech-debtThe private sub-channel invite dialog is now translated
Sprint 4uxbugFive more board tooltips shortened to a sensible length
Sprint 4uxboardLong board tooltips shortened, details moved into "Read more"
Sprint 4boarduxHelp popups in reports now fit the screen
Sprint 4docsuxboardbugHelp tips for board controls: sprints, milestones, statuses, rules, columns
Sprint 4uxboarddocsEstimate-vs-actual report: does a story point still mean what it did before
Sprint 4uxboardfeatureVelocity chart flags sprints with retroactively derived estimates
Sprint 4uxtech-debtdocsboardReports now break work down by label as well
Sprint 4featureuxboardCreating a status now settles which column it belongs to
Sprint 4uxboardfeatureBoard Gantt chart was empty because cards had no dates filled in
Sprint 4uxboardbugtech-debtTask card: all labels visible, quick estimate and assignee changes
Sprint 4uxfeatureboardBoard 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 4tech-debtfeatureboardSprint numbering follows dates: earlier sprints get 0, −1, −2…
Sprint 4tech-debtfeatureboardA dedicated sprint for the era before the first sprint, with a retro
Sprint 4docsboardtech-debtBCG matrix and other analytical board views — evaluated
Sprint 4featureuxboardSort the board by estimate (story points)
Sprint 4uxboardfeatureSprints now cover all finished work, not less than half of it
Sprint 4tech-debtuxboardClosed access gaps in channel requests that exposed names and emails
Sprint 4securityext-apiClosed unauthorized access to a channel's mirror sources
Sprint 4ext-apisecurityMirror 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 4infradocsboardaiCycle-time report: how long cards take to finish is now measured
Sprint 4boardfeatureapiBoard reports are now available outside the browser via token and MCP
Sprint 4ext-apitech-debtapiboardChannel management split into separate permissions set in channel admin
Sprint 4featureuxaccesssecurityRemoved an unused mentions-processing endpoint
Sprint 3bugtech-debtBackground work after sending a message is no longer lost
Sprint 3chattech-debtAI agents: confirmed that execution was already real, not a stub
Sprint 3aitech-debtfeatureRemoved a dead message-write path and unified derived fields in one place
Sprint 3tech-debtbuguxBacklinks are found even when a title is spelled slightly differently
Sprint 3uxfeatureBoard filters for skill match and transliterated search
Sprint 3perfapiboard