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 28 – Oct 448 cards
Card titles readable by outsiders: a guide rule and cleaned-up titles on finished cards
Sprint 13docsboardOne shared table for user-entered names in several languages
Sprint 13infraboardCard titles can now be stored in two languages
Sprint 13boardfeatureapiCustom tables stabilised: tests, rate limits and a form builder
Sprint 13apitech-debtsecurityRemoved leftover page rendering flags that no longer did anything
Sprint 13tech-debtinfraReal-user page speed metrics (LCP, INP, CLS) are now measured
Sprint 13featureperfinfraFixed: a public file exposed where it was used in private channels
Sprint 13apisecuritybugstorageFixed: file details were returned without an access check
Sprint 13apibugsecuritystorageLocal files are registered lazily: one local library filled most of the files table
Sprint 13storageperfHardened URL validation for external MCP servers
Sprint 13aisecuritybugNetwork drives: WebDAV support (Nextcloud, ownCloud, Synology)
Sprint 13ext-apifeaturestorageSensitivity-based routing: which model providers may see which data
Sprint 13aisecurityfeaturePlanned sprints have no dates until they are activated
Sprint 13boardfeatureChecking the chat offline cache: slugs, sub-routes, degraded mode
Sprint 13chatofflinebugThe app shell cache could store a user's page unencrypted
Sprint 13securityofflineauthStatic shell skeleton extended to more pages, accounting for phones
Sprint 13perfStatic app shell from a CDN: the UI renders before the first database request
Sprint 13infraperfPrivate data sat unencrypted in some browser offline caches
Sprint 13securitystorageofflineLanguage mods: sharing, a mod catalog, machine draft translation and community review
Sprint 13featureaiaccessLanguage mods: showing what changed in the app since the mod was made
Sprint 13featurestorageLanguage mods: a starter template and export of your own mod
Sprint 13featurestorageLanguage mods: users upload translation files and apply them for themselves
Sprint 13featureinfrastorageScenarios are available through MCP and access tokens
Sprint 13ext-apifeatureapiMCP: activating a sprint dropped a goal passed in the same call
Sprint 13apiboardOffline cache for the stream and cluster views
Sprint 13offlineuxfeatureOffline cache for the mind map view
Sprint 13featureofflineuxOffline cache for the catalog view
Sprint 13offlinefeatureuxCaching and offline support for every channel view
Sprint 13offlineboardfeatureUnified client read path for items — a foundation for caching
Sprint 13apifeatureinfraofflineNotify existing users about the updated Terms and Privacy Policy
Sprint 12docsuxfeatureTelegram bot agents no longer always fail
Sprint 12tech-debtaiBoard export and import keep the labels on card relations
Sprint 12featureboardBoard filters are saved per user
Sprint 12boarduxOllama agents can't work in production: the address is resolved on the server
Sprint 12bugaiuxGuest chat opens via the channel's address
Sprint 12bugFixed: the page title revealed the name of a private channel
Sprint 12bugsecurityaccessWiki: detail levels and links to article sections
Sprint 12featureWiki: editing a whole article and splitting it into sections
Sprint 12featureWiki: an article as a tree of sections with 'Read more' blocks
Sprint 12featureBoard: an explanation on links between cards
Sprint 12featureboardapiMigrating Help Center articles into the wiki
Sprint 12featuredocsWiki: a stable article address and links between translations
Sprint 12featureWiki: public reading without signing in, for guests
Sprint 12featureaccessWiki: manual aliases for article titles
Sprint 12featureHelp Center as wiki articles
Sprint 12featureWiki: viewing an article's revision history
Sprint 12featureuxWiki: who can edit articles — all members or admins only
Sprint 12featureaccessWiki as a separate channel type
Sprint 12featureux
Sep 21 – 2776 cards
Board filters now fit the screen; 'hide finished' moved to the sub-header
Sprint 12boardbuguxLocal 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 15uxfeatureaccessFixed: client-side crashes were shown as 'server unavailable'
Sprint 12buguxofflineboardAn 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 12perfinfraaiTag 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 12boarduxfeatureLocal dev server returned 404 on sign-in routes: cause found
Sprint 12authinfraBoard channel breadcrumbs show the parent channel
Sprint 12boardbugLeft sidebar in tab mode shows add-channel buttons
Sprint 12uxbugFinding channels by name through MCP
Sprint 12featureext-apiLocally 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 12uxboardMirroring sent an outdated message attachments field
Sprint 12bugext-apiAgent run accepted any card without an access check
Sprint 12securitybugaiImages 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 12perftech-debtLocal folders: cross-browser improvement
Sprint 12featurestorageuxSearch across Help Center articles
Sprint 12docsfeatureBoard export: choose whether to include completed cards
Sprint 12featureboarduxRemapping 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 12perfstorageofflineAudit of heavy libraries in the app's initial load
Sprint 12perftech-debtWhy the home page responds much slower than neighboring pages — investigated
Sprint 12perfinfrabugFirst 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 11featuremobileuxPlanner circle view: what it needs for everyday use
Sprint 11mobileuxfeaturefeedbackComplex 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 11featureboarduxCreating a card via MCP no longer drops all labels when one is invalid
Sprint 11apifeedbackOne 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 11boardfeatureuxLabel 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 11boardfeatureuxtech-debtStatus order can now be changed from the UI
Sprint 11uxboardtech-debtfeatureThe Add button in the dependency dialog no longer overflows
Sprint 11bugboarduxChannel creation forms are translated, no more hardcoded English
Sprint 11uxbugA channel's tier is separate from its owner's tier
Sprint 11featureaccessChanging a plan's storage quota now updates what existing users see
Sprint 11storagetech-debtbugStorage quotas: older files are now counted correctly
Sprint 11storagebugtech-debtThree admin switches that did nothing — found
Sprint 11bugtech-debtaccessFixed: Google sign-up bypassed invite-only registration
Sprint 11bugaccessThe sign-up invitation code could never be valid — cause found
Sprint 11bugaccesstech-debtRemoved 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 11uxtech-debtUser 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 11bugaccessAdmins can now create new point rules from the UI
Sprint 11buguxThe 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 11uxtech-debtPayments: 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 10uxbugchatCode linter runs again after a configuration error
Sprint 10buginfraFixed 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 10uxfeatureInformative channel icons: publishing, mirrors, type and privacy
Sprint 10featureuxchatPublishing settings moved into a channel tab instead of a separate page
Sprint 10chatuxext-apifeatureGuests and members see each other's messages without reloading
Sprint 10authbugchatGuests 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 10chatuxbugFixed: guests saw encrypted message text
Sprint 10bugtech-debtchatGuest channel view is rendered in one place; the old link redirects
Sprint 10accesschattech-debtExpanded channel view no longer duplicates message rendering
Sprint 10chatuxtech-debtRolled out signed realtime broadcasts (three steps, strict order)
Sprint 10securityinfraRealtime chat broadcasts are now protected by a signature
Sprint 10securityauthinfraPermission to send messages is now checked in the API too
Sprint 10securityaccessbugChannel bans now apply to the board, storage and API, not just chat
Sprint 10accesssecuritybugChannel storage page is now the channel's Files view, not a separate page
Sprint 10storagetech-debtuxMeasured the extra channel data read when opening a channel
Sprint 10perfinfratech-debtChannel links go straight to the final address, with no extra redirect
Sprint 10perfuxtech-debtEach channel view now has its own URL path
Sprint 10uxperftech-debtfeatureReview of channel sub-pages: which stay, become tabs, or go
Sprint 10uxtech-debtOld channel addresses are remembered after a rename
Sprint 10infrachattech-debtAuto-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 10securitybugboardA 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 10featureboardchatuxChat as a board and a board as chat: different views of the same items
Sprint 10uxfeatureboardchatGranted the new table-row write and delete permissions after rollout
Sprint 10accessinfraTyped catalog fields now come from linked custom table rows
Sprint 10featureThe project's test overview now covers tag tests
Sprint 10tech-debtdocsA hashtag in a card comment or description now becomes a tag
Sprint 10featureboardTags: votes against, tag reports, bans and auto-bans
Sprint 10apifeatureuxsecurityTags: a vote and an assignment are now the same action
Sprint 10tech-debtfeatureapiTag synonyms can be grouped into one association, across languages
Sprint 10featureapiuxBoard column and status names are now stored per language only
Sprint 10bugtech-debtboarduxTag suggestions in the plain-text chat input
Sprint 9chatfeatureuxSprints and milestones of cards available as system tags
Sprint 9featureboarduxThe remaining database query arguments are now type-checked
Sprint 9tech-debtinfraTag suggestions in card descriptions, comments and chat
Sprint 9uxfeaturechatOne shared tag picker, now used for the card title too
Sprint 9featureuxboardTag suggestions after a hash sign: popular tags and search
Sprint 9apifeatureA hashtag in a card title now becomes a tag
Sprint 9boardfeatureChat 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 9featuretech-debtapiThe sidebar tags block now links to tag pages
Sprint 9tech-debtfeatureuxboardTags, phase 6: string-based channel tags replaced by unified tags
Sprint 9tech-debtaccessfeatureReactions and private tag assignments: visibility check
Sprint 9accesssecuritybugchatTags, phase 5: old message reactions table retired, reactions now live as tags
Sprint 9tech-debtfeaturechatTags, phase 4: old card label tables retired once tags proved stable
Sprint 9featuretech-debtideaboard
Sep 7 – 1352 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 9featurechatuxstorageTags, phase 1b: board UI on the new tags, with a tag manager replacing the label manager
Sprint 9uxboardfeatureTags, phase 1: card labels moved onto tags without changing the API
Sprint 9boardtech-debtfeatureTags: 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 9uxfeatureboardtech-debtBoard sorting without a manual option: drag-and-drop works within a priority level
Sprint 9boardfeatureuxtech-debtPinning cards on a board: options researched
Sprint 9boardfeatureA card's short id is now visible on the card itself
Sprint 9featureuxboardEvery card now has a priority: 'none' retired, medium is the default
Sprint 9uxtech-debtboardapiDragging 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 9apiuxboardMCP: a board column could not be read — even 40 cards did not fit in the response
Sprint 9boardapitech-debtMCP: 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 9tech-debtinfraMessages 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 9infraboardtech-debtThe obsolete card visibility column removed from the database
Sprint 9tech-debtinfraCards tied to shared records at the database level; duplicate columns removed
Sprint 9tech-debtinfraCards 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 8infratech-debtThe 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 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 8featureideauxThe 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 8uxfeatureChannel types simplified: the old direct and support types are retired
Sprint 8infratech-debtChannel 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 8featureapiboardA whole milestone can now be added to a sprint, not just single cards
Sprint 8boardfeaturefeedbackuxMCP: card write responses are too large because they echo the full description
Sprint 8apiperfFixed: 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 8buginfraOne subheader per channel view: the board toolbar moved into it
Sprint 8uxboardtech-debtMind map and invitation acceptance now work with API tokens
Sprint 8authaccessapiAll 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 8apiboardFixed: a paid account was hitting the free plan's root channel limit
Sprint 8bugaccessGroup channels move to catalog view; their own chats cleaned up
Sprint 8uxfeature