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 21 – 2777 cards
Board filters now fit the screen; 'hide finished' moved to the sub-header
Sprint 12uxbugboardLocal development: automatic sign-in as a chosen account
Sprint 12authinfraRestored card dependencies that had disappeared from the board
Sprint 12bugboardinfraRepositioning the platform: from idea to project
Sprint 15featureuxaccessFixed: client-side crashes were shown as 'server unavailable'
Sprint 12uxbugofflineboardAn agent that can't decide asks a question and moves the card to 'Waiting on me'
Sprint 12uxaiboardfeatureAn agent on a card starts right away instead of after up to 15 minutes
Sprint 12aiperfinfraTag list in the board dialog scrolls with the mouse
Sprint 12boardbugRate limit on creating user tags
Sprint 12Fixed mirror channel sync
Sprint 12bugA board channel is created in one form with its specific fields
Sprint 12boardfeatureuxLocal dev server returned 404 on sign-in routes: cause found
Sprint 12infraauthBoard channel breadcrumbs show the parent channel
Sprint 12boardbugLeft sidebar in tab mode shows add-channel buttons
Sprint 12buguxFinding channels by name through MCP
Sprint 12ext-apifeatureLocally every API request returned 404 due to a stale build cache
Sprint 12infradocsFixed a raw translation key showing in the Cluster view sub-header
Sprint 12buguxCard priority colors are easier to tell apart
Sprint 12boarduxBoard cards show a single link icon instead of several
Sprint 12boarduxMirroring sent an outdated message attachments field
Sprint 12bugext-apiAgent run accepted any card without an access check
Sprint 12securityaibugImages can be added from the clipboard, not only from a file
Sprint 12featureShortcuts: presets and reset all to defaults
Sprint 12featureuxTwo more channel links switched to readable addresses
Sprint 12tech-debtperfLocal folders: cross-browser improvement
Sprint 12featurestorageuxSearch across Help Center articles
Sprint 12docsfeatureBoard export: choose whether to include completed cards
Sprint 12uxboardfeatureRemapping editor formatting shortcuts now really overrides the defaults
Sprint 12uxbugtech-debtAPI "no such route" responses are now distinguishable from "not found"
Sprint 12apiOffline media cache grows without limit and can crowd out chat cache
Sprint 12perfofflinestorageAudit of heavy libraries in the app's initial load
Sprint 12tech-debtperfWhy the home page responds much slower than neighboring pages — investigated
Sprint 12perfbuginfraFirst launch: empty states guide new users step by step
Sprint 12uxfeatureDefault AI model was retired and silently zeroed out cost estimates
Sprint 11aitech-debtMCP: a titles-only mode for long card lists
Sprint 11ext-apiboardRemoved an unused dashboard statistics cache
Sprint 11tech-debtdocsCircle view: move an item to another hour right on the circle
Sprint 11featureuxmobilePlanner circle view: what it needs for everyday use
Sprint 11feedbackfeaturemobileuxComplex cards log both the sum of subtasks and their own work
Sprint 11boardtech-debtfeatureA newly created sprint can be moved up the planned queue
Sprint 11featureuxboardCreating a card via MCP no longer drops all labels when one is invalid
Sprint 11feedbackapiOne shared date-time input helper instead of four copies
Sprint 11tech-debtOptions in the admin defaults settings are now translated
Sprint 11tech-debtBoard gets a status filter, including for cancelled cards
Sprint 11uxboardBoard columns show total story points, hours and tokens
Sprint 11uxfeatureboardLabel filter has three states: with, without, off
Sprint 11boarduxfeatureLabel filter is more compact: less space and tighter spacing
Sprint 11boarduxBoard: a virtual 'Other' column for cards that fit no column
Sprint 11tech-debtuxfeatureboardStatus order can now be changed from the UI
Sprint 11featureboardtech-debtuxThe Add button in the dependency dialog no longer overflows
Sprint 11boarduxbugChannel storage header is now translatable
Sprint 11tech-debtuxstorageChannel creation forms are translated, no more hardcoded English
Sprint 11buguxA channel's tier is separate from its owner's tier
Sprint 11featureaccessChanging a plan's storage quota now updates what existing users see
Sprint 11tech-debtstoragebugStorage quotas: older files are now counted correctly
Sprint 11bugtech-debtstorageThree admin switches that did nothing — found
Sprint 11accessbugtech-debtFixed: Google sign-up bypassed invite-only registration
Sprint 11accessbugThe sign-up invitation code could never be valid — cause found
Sprint 11tech-debtaccessbugRemoved an unused user time zone field
Sprint 11tech-debtMaintenance mode works: a timer and an allow-list
Sprint 11infrafeatureWhether long fixed dropdown lists need search: considered
Sprint 11uxLong dropdowns across the app now have search from 10 options
Sprint 11uxtech-debtFeature maturity stages: alpha, beta, generally available
Sprint 11featureaccessChannel-type-specific settings moved into their own section
Sprint 11tech-debtuxUser default settings split into pages instead of cramped tabs
Sprint 11uxtech-debtRemoved dead admin switches and wired up the marketplace switch
Sprint 11tech-debtinfraAdmin platform settings without an extra row of tabs
Sprint 11tech-debtuxFixed: the verification link in sign-up emails did not verify new accounts
Sprint 11accessbugAdmins can now create new point rules from the UI
Sprint 11uxbugThe API token limit message is now translated
Sprint 11tech-debtuxPlan limit messages are now translated
Sprint 11tech-debtuxActivation funnel: added the missing steps (sign-up, first note, etc.)
Sprint 11featureuxAudit of limits that are promised but not controlled from admin
Sprint 11tech-debtSubscriptions screen: tier benefits and the upgrade button
Sprint 11tech-debtuxPayments: a donation link on the pricing page and manual PRO grants
Sprint 11featureA tier gives an included quota; coords are spent only beyond it
Sprint 11featureAll economy logic (limits, plans, koords) now lives in one module
Sprint 11tech-debt
Sep 14 – 2059 cards
Video minutes and publishing now count toward coords
Sprint 11featureTiers based on activity, not storage; coords only for AI, video and publishing
Sprint 11featureSubscription tiers are the product; coords only count use beyond limits
Sprint 11Measured the fixed monthly cost and the per-action cost (AI, video, publishing)
Sprint 11Subchannel tab row is now opaque and its tabs have tooltips
Sprint 10uxchatbugCode linter runs again after a configuration error
Sprint 10infrabugFixed the code lint check that failed across the whole repository
Sprint 10tech-debtinfraAPI refusals now carry a reason code and limit, not just error text
Sprint 10tech-debtapiTwo diverging guest channel views merged into one
Sprint 10accesschattech-debtCluster view: a graph of connections between a channel's items
Sprint 10featureuxInformative channel icons: publishing, mirrors, type and privacy
Sprint 10featurechatuxPublishing settings moved into a channel tab instead of a separate page
Sprint 10ext-apiuxchatfeatureGuests and members see each other's messages without reloading
Sprint 10bugauthchatGuests in one channel can no longer pick the same name
Sprint 10bugaccessapiFixed: guest chat showed a constantly blinking 'Loading…' indicator
Sprint 10uxchatbugFixed: guest names were missing from their messages
Sprint 10chatbuguxFixed: guests saw encrypted message text
Sprint 10bugchattech-debtGuest channel view is rendered in one place; the old link redirects
Sprint 10tech-debtaccesschatExpanded channel view no longer duplicates message rendering
Sprint 10uxtech-debtchatRolled out signed realtime broadcasts (three steps, strict order)
Sprint 10infrasecurityRealtime chat broadcasts are now protected by a signature
Sprint 10authsecurityinfraPermission to send messages is now checked in the API too
Sprint 10accessbugsecurityChannel bans now apply to the board, storage and API, not just chat
Sprint 10accessbugsecurityChannel storage page is now the channel's Files view, not a separate page
Sprint 10storageuxtech-debtMeasured the extra channel data read when opening a channel
Sprint 10tech-debtinfraperfChannel links go straight to the final address, with no extra redirect
Sprint 10perftech-debtuxEach channel view now has its own URL path
Sprint 10perfuxtech-debtfeatureReview of channel sub-pages: which stay, become tabs, or go
Sprint 10tech-debtuxOld channel addresses are remembered after a rename
Sprint 10tech-debtinfrachatAuto-generated app tags from field visibility levels — researched
Sprint 10featureInterval tags for numeric and date fields with automatic ranges
Sprint 10featureuxA banned tag could come back via a hashtag in text — gap found
Sprint 10securityboardbugA view header outside channels, so the catalog works at the channels root
Sprint 10uxtech-debtfeatureChat as a board: messages in columns by hashtag, author, week or thread, read-only
Sprint 10chatfeatureboarduxChat as a board and a board as chat: different views of the same items
Sprint 10featureuxboardchatGranted the new table-row write and delete permissions after rollout
Sprint 10infraaccessTyped catalog fields now come from linked custom table rows
Sprint 10featureThe project's test overview now covers tag tests
Sprint 10docstech-debtA hashtag in a card comment or description now becomes a tag
Sprint 10boardfeatureTags: votes against, tag reports, bans and auto-bans
Sprint 10featureuxsecurityapiTags: a vote and an assignment are now the same action
Sprint 10featuretech-debtapiTag synonyms can be grouped into one association, across languages
Sprint 10apifeatureuxBoard column and status names are now stored per language only
Sprint 10bugtech-debtuxboardTag suggestions in the plain-text chat input
Sprint 9chatuxfeatureSprints and milestones of cards available as system tags
Sprint 9featureuxboardThe remaining database query arguments are now type-checked
Sprint 9infratech-debtTag suggestions in card descriptions, comments and chat
Sprint 9featurechatuxOne shared tag picker, now used for the card title too
Sprint 9featureuxboardTag suggestions after a hash sign: popular tags and search
Sprint 9featureapiA hashtag in a card title now becomes a tag
Sprint 9featureboardChat quiet since March: found that it only ever held test content
Sprint 9uxchatDecision: the source code stays closed for now
Sprint 9securityStrategy and app review (performance, usability, economics) with 18 proposals
Sprint 9docsTags, phase 7: internal channel tags replaced by a dedicated channel kind field
Sprint 9apitech-debtfeatureThe sidebar tags block now links to tag pages
Sprint 9uxtech-debtboardfeatureTags, phase 6: string-based channel tags replaced by unified tags
Sprint 9accesstech-debtfeatureReactions and private tag assignments: visibility check
Sprint 9accesschatbugsecurityTags, phase 5: old message reactions table retired, reactions now live as tags
Sprint 9featurechattech-debtTags, phase 4: old card label tables retired once tags proved stable
Sprint 9tech-debtideafeatureboard
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 9featureboarduxTags, phase 2: tags for files, messages and channels, plus channel and global admin screens
Sprint 9chatuxfeaturestorageTags, phase 1b: board UI on the new tags, with a tag manager replacing the label manager
Sprint 9boarduxfeatureTags, phase 1: card labels moved onto tags without changing the API
Sprint 9tech-debtboardfeatureTags: 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 9tech-debtfeatureboarduxBoard sorting without a manual option: drag-and-drop works within a priority level
Sprint 9featureuxboardtech-debtPinning cards on a board: options researched
Sprint 9boardfeatureA card's short id is now visible on the card itself
Sprint 9featureboarduxEvery card now has a priority: 'none' retired, medium is the default
Sprint 9apitech-debtboarduxDragging 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 9bugboardapiA shortened card id worked in only one MCP tool; the rest required the full id
Sprint 9uxboardapiMCP: a board column could not be read — even 40 cards did not fit in the response
Sprint 9tech-debtboardapiMCP: cards could not be searched by text, and column listing failed on a channel id
Sprint 9boardapiMessages 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 9tech-debtboardinfraCard hierarchy moved onto the shared record hierarchy
Sprint 9tech-debtinfraboardThe obsolete card visibility column removed from the database
Sprint 9tech-debtinfraCards 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 9tech-debtinfraSeven obsolete channel types removed after migrating the data
tech-debtinfraRemoved seven obsolete channel types from code and database
Sprint 8tech-debtinfraThe obsolete board flag removed from the database
Sprint 8boardtech-debtRemoved leftover channel-shortcut fields from the data model
Sprint 8tech-debtinfraChannels with the board switched on moved to a dedicated Board type
Sprint 8boardtech-debtaccessChannel shortcuts are now a separate feature, not a channel type
Sprint 8tech-debtfeatureuxNew card relation type: recommended order
Sprint 8boardfeatureIdea: view a channel as another type, e.g. a board as a catalog or mind map
Sprint 8ideauxfeatureThe channels root now shows an expanded view of all available channels
Sprint 8featureuxAccess check for the parent channel when creating a channel
Sprint 8securityapiauthChannel actions in the left panel: open in a view, create a subchannel, settings
Sprint 8featureuxChannel types simplified: the old direct and support types are retired
Sprint 8tech-debtinfraChannel subtypes: direct and support channels assessed as variations of chat
Sprint 8tech-debtfeatureA sprint can now be read as a list of cards through the API, MCP and board filter
Sprint 8boardapifeatureA whole milestone can now be added to a sprint, not just single cards
Sprint 8boarduxfeedbackfeatureMCP: card write responses are too large because they echo the full description
Sprint 8apiperfFixed: creating a card through MCP silently ignored labels, estimate and column
Sprint 8apitech-debtbugFiles 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 8uxtech-debtChannel 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 8uxboardtech-debtMind map and invitation acceptance now work with API tokens
Sprint 8apiaccessauthAll channel kinds get a shared subheader, a parent-and-neighbors strip and own settings
Sprint 8uxfeatureboardA mind map as a channel type, and whether it fits the product direction now
Sprint 8featureideaViewing 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 8uxfeature
Aug 31 – Sep 673 cards
Added a Catalog channel type and a catalog view mode for any channel
Sprint 8featureideaShared 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 8uxboardfeatureReal-time server deploys work again (login failure worked around)
Sprint 8infrabugLeft panel now updates a board's last-activity date
Sprint 8boardbuguxLast-activity date in the left panel now accounts for the board, pinned groups and DMs
Sprint 8uxbugboardBoard is now its own channel type rather than a channel option
Sprint 8ideafeatureboardSprint 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 7buginfraThe 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 7uxmobilefeatureRemoved an unused chat sidebar component
Sprint 7chattech-debtFixed a background worker error when navigation is cancelled
Sprint 7offlinebugMobile: tooltips no longer linger after the sidebar closes on navigation
Sprint 7buguxmobileGrouping 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 7bugtech-debtPage redirects now happen at the edge, without rendering a full page first
Sprint 7perfbugauthThe 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 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 7tech-debtbugperfCard comments get a rich editor, like descriptions
Sprint 7boardfeatureuxBoard card descriptions now support rich text formatting
Sprint 7uxboardfeaturetech-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 7tech-debtchatperfWhether regular users download admin screens — measured
Sprint 7infraperfaccessThe 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 7perfinfraLogged-out visitors get a lean app without logged-in code
Sprint 7mobiletech-debtperfListing 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 7tech-debtext-apiboardperfBoard search now finds cards by id, milestone and sprint, not just by title
Sprint 7featureuxboardReading pages no longer load chat realtime and the fractal engine
Sprint 7mobilechatperftech-debtSide panels finally split into thin containers
Sprint 7uxtech-debtperfPersonal and social modes: what they actually change
Sprint 7inframobiletech-debtperfBoard loads faster: rarely used dialogs and reports left out of the first load
Sprint 7perfboardtech-debtGuest join pages no longer preload the video client
Sprint 7infraperfuxCancelled 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 6docsboardFound that admins and moderators could not change channel settings
Sprint 6securitybugaccessMissing permission settings are now caught instead of silently limiting features to owners
Sprint 6accessinfrasecuritybugThe Bots section points to where the Telegram publishing bot is set up
Sprint 6uxdocsWordPress publishing no longer fails on images with Cyrillic names
Sprint 6bugext-apitech-debtTelegram 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 6mobileuxchatbugOn phones, chat menu submenus no longer go off-screen
Sprint 6mobilebuguxchatOAuth sign-in for external MCP servers
Sprint 6authfeatureext-apiChanged how development cards are routed to AI models
Sprint 6aidocsboardChannel settings regrouped into sections instead of fifteen flat tabs
Sprint 6chatuxtech-debtFixed raw translation keys showing after following a link
Sprint 6uxtech-debtbugperfScenarios by plan: the free plan gets one scenario
Sprint 6apiaccessfeatureScenarios in the UI: list, step builder and run status in channel settings
Sprint 6featureuxchatdocsScenario reminders now reach Telegram, not only the Coordio thread
Sprint 6ext-apifeatureRole 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-apichatfeatureA channel settings screen for managing external MCP servers
Sprint 6featureext-apiuxScenarios: poll options and a dedicated step powered by an external MCP server
Sprint 6ext-apiapifeatureChannels can connect external MCP servers — Coordio is now an MCP client too
Sprint 6featureext-apiaiinfra