Changelog

What shipped, release by release.

Changelog

All notable changes to CoachKeeper are documented here.

Maintainers: format follows Keep a Changelog; the bug-hunter routine (.claude/skills/bug-hunter/) appends entries under ## Unreleased as changes ship, and cutting a release is a human step. The audience is users — this file is rendered at coachkeeper.com/changelog, so every entry describes what a user can see or do, in plain language. Internal work (tests, tooling, refactors, infrastructure) doesn’t belong here.

Unreleased

Added

  • All your tags at a glance. The Library opens on a chart of every tag, drawn like a star map: the nearer a tag sits to the centre, the more recently it changed (rings mark this week, this month and this season); the bigger the star, the more it holds; the small figure around it is its newest items, one arm per branch of its tree. Nested tags are moons, tags that share items are joined by a dashed line when you select one, and gold dust counts what is still untagged. A tag keeps its place, so you learn where things are. Point at a star and its card lights up; click twice to open it; drop an untagged row on a star to file it. Each tag card now shows its tree in miniature. On a phone the chart is a band at the top that opens full screen.
  • Every tag is a tree. A tag’s page now opens on a botanical plate of everything in it, beside a working list. Notes are leaves, tasks are flowers that open as their checklist fills, notebooks are sprigs of pages, nested tags are acorns, events, links and files are berries — and pale means untouched for weeks. Point at a leaf and its row lights up. Your own branches stay where you put them; the map groups the rest and regroups only when you ask, showing what would move first. Move to…, drag onto a branch, + New here, filters, real facts on every row (status, due date, next meeting), and a Since you last looked strip with Keep and Undo for what your agents did. Inside the list, drag a row onto another row to put it on that branch, hold ⌥ to merge two notes or two tasks or to add a note to a task, drag a row onto another tag in the rail to re-file it, and press Delete to send it to the Trash. On a phone the list comes first, with the tree a tap away. Agents can read the same tree and place items on branches (get_tag_tree, move_to_branch), and every move they make can be undone.
  • Evergreen notes. Under a note, Mark as evergreen says “this is my settled view”. The note gets a small leaf in the notes list, the Library and search. Connected agents see the mark and are told to cite the note rather than contradict it; if one edits it, the mark pauses, the note and Today say so, and Undo brings back the text and the mark together. An agent can never delete an evergreen note. Evergreen replaces the recall star: your evergreen notes are what Today asks you about.
  • See what your agents planted. In the Library, a note, task or link an agent created reads Planted by Claude · 3d until you keep it — one tap on Keep, or just edit or file it. Each tag card shows a thin growth line: how much of the shelf is evergreen and how much is still planted.
  • Merge two notes into one. On a tag’s page, hold ⌥ and drag a note’s row onto another — or pick Move to… → Merge into… — and it merges in: its text under its own heading, its tags and links along, the old note to the Trash. One Undo takes the whole merge back, and agents can merge notes too.
  • Move to the Trash from a tag’s page. Select a note, task or link and press Delete, or pick Move to Trash — one Undo brings it back.
  • Undo for tags. Merging, deleting, nesting and pruning empty tags now come with Undo. Drag a tag card onto another to merge it; hold ⌥ to nest it instead.
  • The Round. Tend · N in the Library opens up to ten small decisions — keep what an agent wrote, merge two notes that say the same thing, merge overlapping tags, mark an old note evergreen or let it go — one card at a time. Each card says why it is there and what every choice will do. Keys 1–4 on a computer, thumb-sized buttons on a phone, then a receipt where every decision has its own Undo. “Keep both” is remembered, by the Round and by your agent’s garden lint.
  • The almanac. At the foot of the Library, a quiet month-by-month record of what you tended. Months only — no streaks.
  • Bring your vault — with its links. Drop an Obsidian, Logseq or Bear vault (as a .zip) on Import and every note arrives linked: [[Note]] and [[Note|alias]] become links to the imported note, pictures and PDFs become file cards in the page, front-matter tags become tags, and folders become notebooks. At the end you see what happened — “312 notes, 1,204 links resolved, 9 not found” — with the list of what was not found.
  • Notion exports import too. Pages become notes, nested pages become notebooks, and a database with a status column becomes tasks, with their status, due date, priority, tags and page text.
  • Restore a CoachKeeper export. Importing the zip from Export brings everything back as it was: notes with their exact formatting, notebooks, tags, tasks, events, saved links, page frames and files.
  • Undo an import in one step. Undo import takes the whole import back — notes go to the trash, notebooks and the import’s files and tags are removed. A note you edited after importing stays.
  • No limit on how many notes the Notes list shows. It used to show the 500 most recently changed; now it loads every note and draws them as you scroll.
  • Your notes come back to you. Under a note, Related shows three notes, tasks or links like it. Mentioned, not linked lists the notes that name this one without a link, each with its sentence and a one-click Link. Referenced by now shows what each note says around its link. A note can have aliases (other names it answers to), and the [[ menu finds notes by them too.
  • One question a day on Today. Star a note (Ask me about this later) or write a > [!claim] or > [!question] callout in it, and Today asks you about it — the question first, the note after you try. Mark Remembered, Forgot or Not useful; the gaps grow from 3 days to 7, 21 and 60. The question is your own callout, or one your connected agent wrote for the note, or a plain “What did you conclude in …?”. No built-in AI writes them.
  • Welcome back. After four or more days away, Today opens with three short lists — past their date, started then paused, captured but not filed — and one tap for each: re-plan for today, back to the backlog, or drop.
  • Notes that fed nothing. A tag’s page lists its notes that are a month old and that no task, note or notebook uses yet, as a prompt to link them or let them go.
  • A garden question in the morning email (opt-in). Settings → Agent Settings → Garden questions adds one question from your own notes to the morning email — only the question; the link opens it on Today. On days your agents were quiet it can come alone, at most four times a week, and it pauses itself after 14 questions you did not open. Notes under the tags and notebooks you list (a journal, health) are never emailed.
  • Choose what each agent can see. Settings → Agent Settings → What each agent can see lists the in-app chat and every agent you connected. Give one Read or Read & write on some tags or notebooks and it sees only those; Hide keeps a tag or notebook (your journal, say) away from it. What is outside an agent’s rules does not exist for it — it can’t find it in search, lists, the overview or the chat’s background reading, and it can’t write there. The connect screen offers the same choice when you authorize a new agent.
  • What agents know about you, in one note. An About me note that every agent reads first and adds to, each change signed with the agent’s name and restorable. Import memory from another assistant takes the memory Claude or ChatGPT keeps about you and hands it to your own agent, which proposes additions as a run you review.
  • A second agent starts where the first stopped. Connected agents can ask what happened since they were last here: what other agents changed and asked, and what you edited.
  • Agents can read a note’s history, what links to it and what is related to it, and save, edit and delete your links — every link change undoable from Today like the rest.
  • Tend the garden with your agent. Ask a connected agent to lint your garden (or use its Tend the garden prompt): it finds duplicates, broken links, unfiled notes and tasks, out-of-date lines in About me and overlapping tags, proposes one fix each, and changes only what you approve.
  • Your export keeps the history. The workspace export now includes every earlier version of each note with who replaced it, every change an agent made with its before and after, and every agent run with its brief and report.
  • Capture from anywhere. A browser extension (Chrome, and Safari through Xcode) saves the page you read as a link with its text, or a passage as a highlight with your own line — to the inbox or into a note. Saved pages open in a reader in the Library, and their text is found by search. Highlights go to a note as quote blocks that link back to the page.
  • Mail in, with no AI reading it. Settings → Capture gives you a private address: forward a mail and it lands in your inbox as a note, its attachments as files, marked From email. Start the subject with agent: to hand it to your agent as a task. Only your own addresses can write to it, and Reset address retires a leaked one at once.
  • Answer your agent by replying to the morning email. Each question in the morning email has its own reply address; your reply goes on the task as Your answer and the task goes back to your agent’s queue. It shows on Today and can be undone there.
  • Voice memos. The microphone in Quick Capture records a memo and writes it out as a note (Safari and Chrome).
  • iPhone Shortcut. Settings → Capture has the steps for a Shortcut that saves shared text, links or a voice memo into CoachKeeper, using a capture token that can only save (and list note titles to pick where a highlight goes) — revoke it there any time.
  • Search with filters, and keep the searches you use. In the command palette (⌘K), add tag:work, notebook:Recipes, is:todo (note, todo, event, link, file), before:2026-10 / after:7d, has:file (link, todo), by:agent (or by:me) and status:open to any search — each shows as a chip you can remove, and an operator alone lists everything it matches. Save this search pins it to the left rail, where it opens as a list you can rename, re-query, unpin or delete (with Undo). Connected agents use the same filters in their search, and can list and run your saved searches.
  • Today is where everything an agent leaves you lands. A finished agent run now waits in the strip at the top of Today with its summary and Accept, Revise and Discard, next to its questions and receipts — and the count on the agent button, on Todos and on Today is the same number. Phones get the agent button too.
  • Hand a task to your agent from anywhere. Agent, tonight in the evening close sends an open task to your agent’s queue, so its work is waiting for review in the morning. Today’s task list has a hand-over button, Quick Capture has For the agent, and the command palette has New task for the agent and What your agents did (and Go to Library).
  • “Edited by Claude Code.” A note an agent changed since you last opened it says so at the top, with Compare and Undo.
  • Your first agent finds a task waiting. The first time you connect Claude, Cursor or another agent, one task is in its queue — map your workspace on one page — so the first thing you see is a real run to review. The first-run flow can hand the task you just wrote to your agent, a queued card without a connected agent offers Connect, and Today explains what lands there before any agent is connected.
  • Morning email (opt-in). Settings → Agent Settings → Morning email sends the morning’s agent lines — questions, runs to review, changes — once a day after 7:00 your time, with links, in the app’s own look and in your language (English or Spanish). Nothing is sent on a quiet morning.
  • A Today page in the guide, covering the day, the agent strip, undo and the evening close.
  • Undo really covers every change an agent makes. Tag renames, merges and deletes, notebooks an agent built, changed or dissolved, and page frames it designed now show on Today with Undo, next to tasks, notes and events. An undo puts back only what the agent changed: if you edited the same thing afterwards, it stops and tells you instead of throwing your edit away, and edits you made to anything else stay. A note an agent rewrote several times goes back to how it was before the first pass, and work done inside a run on a task points you to the run’s Discard. Connected agents can now look in the trash and restore what they deleted.
  • A save never overwrites a newer version of a note. If an agent or another tab changed the note you are editing and your editor did not hear about it in time, the save is held and the editor asks: reload theirs, or keep yours.
  • A tag’s folder can hold several repos. Point a tag at a project folder (no git of its own) that holds repositories: the agent works in the ones each task concerns — one branch each, asking if it can’t tell — and the card shows where each repo stands. Accept and Discard settle every repo; one that git refuses comes back for review on its own.
  • An agent’s code follows the card, and its work comes with proof. In a git folder the agent works in a throwaway copy — your checkout and unsaved work are never touched — and leaves one branch per task with one commit. Accept merges it and Discard removes it, the next time your agent runs on that computer; you never manage a branch, and the card says where the code stands. Every receipt now shows before → after proof (tests, the line that changed, or screenshots), and Compare on the task page shows a note before and after the agent. Settings → MCP has a Claude Code permissions snippet so the git steps don’t prompt each time.
  • The board has an Agent column — and your agent’s work comes back as a receipt. Drop a task on the Agent column (or write one straight into it) to hand it over, then start the work from the agent you already use: /coachkeeper in Claude Code, My agent tasks in Claude Desktop, or just ask any connected agent to show your CoachKeeper agent tasks. It lists what needs you, what’s queued, what’s running and what’s waiting for review, and works what you choose — in your own session, on your own subscription, with nothing to install. Each finished task returns to Pending with who did it, its summary and every change it made, linked; Accept, Revise with a note, or Discard to undo the run’s changes (anything you changed since is kept). Questions show up on the card with an answer box, and every run is listed on the task page.
  • Tags can name an agent folder. On a tag in the Library, set the folder agents with file access should work in for it — relative to where the agent is opened, never a full path. In a git repository the agent works on its own branch, never pushes, and the receipt lists the files, branch and test result.
  • A reworked Todos board. Lanes sum up what’s open, due and with the agent; a card with two tags shows once with a pointer in its other lane; a tag bar filters in one click; Done reads as a short log; Backlog folds like Archive; opening a task shows it beside the board; the whole board works from the keyboard (press ? for the keys) and several cards can be moved at once; and lane order, folded columns and pins follow you to every device.
  • Plan by area on Today. The Tasks rail has a row of your tags: tap one to see only its tasks, then Plan #tag first to make its tasks lead the list and Plan my day. A small arrow marks the tags that go first.
  • Tags ask for one line. A tag’s description is what filing reads first, so the tag page and the tag picker now say so while it’s empty — and once a tag holds a few items, offer a draft from what’s in it for you to edit. A new tag opens with its description field ready, and busy tags without one say so on their Library card. Connected agents can nest tags (parent_id) and are told to save what you say a tag is for as its description.
  • Quick Capture keeps long writing as a note. Paste meeting notes or a draft and it lands as a note with its paragraphs, lists and headings intact, titled from its own first line — a “friday” somewhere in the text no longer turns it into a task. Where filing is judged by the calibrated model, the type, title and tag come from one quick decision, and the tag is only filled in when it is sure; take it off and it won’t be suggested for that item again.
  • The gardener suggests where new things belong — right next to the thing. Add a note, task or link without a tag — yourself, or through a connected agent — and a dashed chip appears where its tag would go: on its row in the Untagged group of your lists, on its board card, in the Library’s Untagged rail, beside Add tag when it is open. One click files it (with Undo), × dismisses it for good, and File n suggested accepts a whole Untagged group. Notes also get in notebook … and for task … suggestions. Tags with a one-line description get the best suggestions; a new, empty, undescribed tag is never guessed at. Nothing moves until you say so. Settings → Agent Settings → Gardener has the off switch and a button that looks through your older untagged items.
  • Your agent can work its queue on a schedule — and hands back one-pagers. Settings → AI Tools (MCP) has a new Put the queue on a schedule card: instructions to copy or download, plus the steps for a Claude Desktop routine on your own computer (and one line each for Claude Code, Claude in the cloud and ChatGPT). A scheduled run stops at once when nothing is queued, takes a few tasks at a time, turns anything it can’t decide into Agent needs input on the card instead of guessing, and never asks a question nobody is there to answer. Every finished task — scheduled or not — now comes back the same way: a one-page note linked to the task and filed under its tag, with the answer first, one diagram or table only when the content calls for it, next steps and sources, waiting in your Pending column.
  • Tidying tags is easy now — for you and for your assistant. The Library’s summary line counts your empty tags; click it to see them all ticked in one list, untick any you want to keep, and delete the rest in one go. Rename on a tag card’s ⋯ menu now renames right there instead of sending you into the tag, and if the name is already taken it offers to merge the two. The ⋯ itself is faintly visible at rest rather than hidden until you hover. A connected AI assistant can finally do the same housekeeping — rename, recolor or describe a tag, merge one tag into another, and delete tags. Deleting a tag never deletes what’s filed under it, and an assistant is refused until it confirms when the tag still has items, so it has to ask you first.
  • The tag map says what changed, and the reading beside it is yours. Beside the sketch, Where this stands now names itself and leads with Lately — the last few items that actually moved, stamped added, edited or happened, straight from your items’ own timestamps with no AI in the loop. Below it, the AI’s reading is now editable: write straight on a line to rewrite it, × to drop it, + Add a line for one of your own. Once you’ve touched a line the reading is yours — a redraw redraws the map and leaves your sentences alone, clearing every line hands it back, and a connected AI assistant is told which lines you wrote so it quotes them instead of second-guessing them. The drawing itself stays the model’s: Redraw is the only thing that changes it, and it now carries a count of what has moved and greys out when nothing has.
  • Tags draw their own map. A tag with three or more items now carries a Map: its items grouped under concepts the AI names from their content, in two views — an Outline you scan and a Sketch you can download as a framed PNG or vector SVG. Once a tag holds enough material it also gets up to three “state of this topic” notes (open loops, overlaps, what moved last), every node and note pointing at a real, clickable item. Drawn from titles, headings and stored previews — never full note bodies — cached, and redrawn only when the tag’s items actually change. Connected agents see the same map through get_tag_dossier.

Changed

  • The Library speaks one language, from the chart of all tags to a single tag. The botanical tree drawings are gone — from the tag page and from the cards. A tag’s page now opens with its crest: the same star you clicked on the chart, drawn larger, with its nested tags as moons; opening a tag from the chart grows the star into it. Below is one list of everything in the tag, by branch, each row marked like the chart (dot = note, ring = task, diamond = event, link or file, gold moon = nested tag); point at a section and its arm of the crest lights up. Tag cards now show the tag’s star, when it last changed, and its three newest items by name; nested tags are chips on their parent’s card instead of cards hanging off it; a tag quiet for a month folds to one short line at the end; tags that hold nothing are names on one line with Tidy up. The chart itself is calmer: a star shows its figure of newest items only while you point at it, and its preview lists those items.

Removed

  • The tag map diagram, and the gallery and list views of a tag’s page. The tree does that job now. The map’s Where this stands lines moved above the tree’s list, and the map’s themes became the tree’s branches.
  • Note templates and meeting notes from events are gone. Save as template, New from template, the templates in the / menu, Settings → Note templates and the Meeting note button on events are removed; meeting notes you already made stay as ordinary notes. Today’s daily note stays, as the sun button next to New note, with its fixed layout (Focus, Notes).

Fixed

  • The calendar and Today no longer lose tasks on big boards. Past 200 tasks, the oldest ones were cut off without a word, done or not. The app now loads up to 500 and drops old finished cards first, never an open one.
  • The in-app assistant answers sooner. Its final answer was written twice behind the scenes; now the first words arrive as soon as the model has them.
  • Failures say so. Export, image and attachment problems, and a plan or hours that could not be saved on Today, now show a notice in your language instead of a browser pop-up or nothing at all.
  • Big PDFs upload again — and a file is never called unreadable when it isn’t. Uploading a long document used to make you wait while CoachKeeper read every page of it, and past a certain size the upload gave up and marked the file Not searchable even though the file was perfectly fine. Now the upload finishes straight away and the reading happens in the background: the card shows Indexing… and clears itself when the file is ready to search. The file is viewable, downloadable and attachable the whole time.
  • summarize_note / rewrite_note (chat + MCP) spent tokens without a usage-ledger row; they are metered now.

Added

  • CoachKeeper feels like a phone app now — the desktop tab strip and its row of icons are gone from phones. The header names the screen you’re on (tap it to switch between open tabs), the back chevron lives in the header instead of floating over your note’s first line, and search and your account stay one tap away. Writing gets 16px gutters and a bigger title; table tools ride the bottom bar while your cursor is in a table instead of hovering over the paragraph above. The Library leads with search and three pills — Untagged, sort, New tag — each opening a sheet. The task board shows one pill per column with its count so you always know what’s to the left and right, and a card opens on one tap. The calendar puts a week of day chips under the toolbar and labels the list Agenda. You can also pinch-zoom again.
  • See how much file storage you’re using — the Usage panel (avatar menu → Usage) now shows your file storage next to your AI usage: how much of your 1 GB you’ve used, with a meter that turns amber as you get close. Uploads and images you paste into notes count towards it; your notes, tasks and events don’t — they live in the database, not in file storage. The limit is written down now too, in the FAQ and the Sources guide.
  • Hand a task to your agent, and see when it needs you — every task card has a sparkle button that puts it on the agent track (Queued for agent → Agent working → Agent done, or Agent needs input when it stops to ask). The roll-up pill above the board (2 queued · 1 needs input) is now clickable — tap a segment to see only those cards — and an amber count on the Todos icon tells you an agent is waiting on your answer from anywhere in the app. Documented in the guide under Organize → Hand a task to your agent.
  • Your agent gets the house rules automatically — the CoachKeeper MCP server now serves the agent briefing (the same SKILL.md you can download in Settings → AI Tools) as the skill prompt and the coachkeeper://skill resource, so a connected client can load it in one click instead of pasting. The /work_queue prompt and how to run it on a schedule are now in the guide too.
  • A calmer message when the month’s AI budget is spent — instead of a generic error, the chat shows a notice with the date the assistant resumes and a one-click path to keep working through your own AI agent over MCP. Notes, tasks and calendar are never affected.
  • The Library, rebuilt around tag cards — the Library now opens on a grid of tag cards instead of a sidebar list. Each card shows its colour, what’s inside split by kind (4 notes · 7 todos · 2 events), and a glimpse of the actual items, so you recognise a topic by its contents. Search tags by name and sort by name, most items, or recent.
  • Manage tags where you see them — rename, recolour, merge, and delete any tag from its card or its page. Renaming into a name that already exists offers to merge the two instead of failing. Deleting a tag never deletes your items: they simply lose the tag, and nested tags move up a level. The confirmation says exactly what will happen first.
  • Calendar events join your tags — events are now full members of the tag system. Tag an event and it counts towards the tag, shows up in the Library grouped under Events, and can carry several tags like notes and todos already could. Existing event tags were brought across automatically.
  • A tag’s page, grouped — items on a tag page are grouped into Notes, Todos, Events and Files, each with its own count, and you can switch between gallery and list layouts (the choice is remembered per tag). Todo cards now show due dates and priority; event cards show when they happen. Open in board jumps to the Kanban filtered to that tag.
  • ⌥5 opens the Library from anywhere.
  • Google Calendar, two-way — connect a Google account from Settings and CoachKeeper creates its own dedicated “CoachKeeper” calendar there. Events you create, edit, or delete in CoachKeeper (including via chat, MCP, or ICS import) show up on that calendar within about a minute, and changes made on the Google side sync back automatically. Settings shows when it last synced.
  • Calendar redesigned — a persistent mini-month sidebar shows a dot under any day with events plus an upcoming-events list; the day/week grid now always shows the full 24-hour timeline and auto-zooms to where your events actually are; the old “List” view is now a rolling 30-day Agenda instead of snapping to calendar weeks; and the view switcher reads Day / N days / Month / Agenda with a day-count picker and a desktop ”+ New” button.
  • Notebooks — drag one note onto another in the notes list to bind them into an ordered, readable/editable book. Pages stay individually editable; read one page at a time or as continuous scroll; export the whole book as one markdown file. The Library gets a notebook shelf, and notebooks can now carry a tag of their own so they show up on tag shelves too. The AI assistant and connected agents can list, read, create, and reorder notebooks.
  • Split-view tabs can be bound and unbound by dragging one tab onto another in the tab strip, and dragging a paired tab back onto empty space unbinds it.
  • Library: untagged inbox — a rail of recent notes, todos, and events that haven’t been filed under any tag yet, with drag-and-drop or tap-to-file onto a shelf. Shelves with no activity for 30+ days are marked dormant. Dragging one todo onto another now merges their checklists and context, with an undo toast.
  • Chat and connected-agent edits write themselves in — only the part of a note that actually changed animates when the assistant or an MCP client edits an open note, instead of the whole document flashing to the new version. Notes now get the same brief “agent updated” highlight todos already had.
  • External AI agents can navigate your workspace properly — a workspace overview, meaning-based semantic search, and a tag list with live counts are now available over MCP, and every agent list tool (notes, todos, sources) is paginated with real filters instead of a silent 200-item cap. Notes can now be tagged by chat and connected agents too.
  • See your connected AI agent — a top-bar indicator and a Settings section show whether your MCP agent (e.g. Claude) is connected, with a dismissible hint card in chat and a guided-tour step introducing it. Todos an agent creates land at the top of the board, and cards it adds or updates briefly pulse with an “Agent added/updated” badge.
  • Quick Capture has a home in the sidebar — a Capture entry (⌥I) makes it discoverable without knowing the shortcut, and a low-confidence guess now asks you to confirm the type instead of filing itself silently.
  • Event times read left to right — Start and End are [date | time] fields joined by a line carrying the duration, with one-tap duration presets and plain-language day labels (Today / Fri, 7 Aug). Editing an event now feels like editing a todo: it autosaves, shows the linked todo’s progress, and opens that todo already expanded.
  • Routines fade into the background — recurring events (a daily standup, a lunch break) render with softer colour and a repeat glyph, so the one-off events on a busy day actually stand out. A toolbar toggle hides routines entirely.
  • A calmer mobile editor — the note editor’s toolbar chrome moves into a bottom action sheet on phones, freeing up roughly 100px of writing space.
  • One floating bar for formatting and inserting — select text to format or send it to AI edit, or type ”/” for block inserts; both now live in the same bar instead of two competing menus.

Changed

  • Note history thins instead of stopping at 30. Recent versions are all kept; older ones keep one per hour, then one per day, then one per week — so a note you edit daily keeps months of history instead of one.
  • Notes and todos have a new layout — the list is now a resizable sidebar next to the editor (instead of a separate list screen); collapse it to write full-width, or keep both visible side by side. Opening Chat from the sidebar now opens it as its own tab.
  • Quick Capture redesigned — a wider popup, an input that grows and wraps instead of scrolling sideways, rotating example prompts, and a clearer “thinking” indicator while it classifies your capture.
  • Onboarding tour redesigned — a dimmed spotlight, smoother motion between steps, and an icon for each step.
  • Pricing simplified to one $9/month plan; the model picker in Settings now points at your connected agent instead of choosing between tiers.
  • Inter is now the default editor typeface, so a note looks the same on every device instead of following the OS.
  • The sidebar show/hide toggle moved next to the sidebar it controls, so it no longer looks like a selected tab.
  • Refreshed the coachkeeper.com landing page with a new hero animation and motion throughout.

Fixed

  • Typed approval actually works now — replying “yes” (or “sí”, “go ahead”, etc.) to a bulk action the assistant proposes now approves it the same as clicking the checkmark; previously only the button worked, and a typed reply just re-presented the same plan.
  • Your “yes” only ever approves the plan you were shown — if the assistant comes back with a different or larger plan than the one on the table, it has to ask again instead of treating your earlier approval as covering it.
  • Notes created by chat or a connected agent always open with a proper title heading, so the sidebar can no longer show a truncated sentence as the note’s name.
  • Notes and todo context written by chat or a connected agent now render nested lists, checklists, tables, blockquotes, and code blocks correctly instead of degrading to plain text, and horizontal rule dividers (---) no longer silently disappear.
  • Selecting text in the note editor on mobile no longer pops the floating bubble menu on top of the bottom formatting bar and the phone’s own selection menu.
  • A light-theme bug that could render some calendar headings invisible is fixed.
  • Landscape phones no longer risk the page scrolling out from under the app shell — the scroll lock that already protected portrait mode now covers landscape too.
  • Kanban board columns are full-width with swipe-to-page paging on phones, instead of a cramped fixed width.
  • Notebook page controls (remove/edit) that used to need a hover now stay visible on touch devices, and Library cards/inputs/touch targets were resized to stop long titles from panning the page and to prevent iOS’s input focus-zoom.
  • Fixed the AI assistant and connected agents (Claude, Cursor, and other MCP clients) being completely broken — every tool call had been failing.
  • Empty notes no longer linger: clearing a note’s content removes it once you navigate away (with an “Undo” toast), and a blank draft never gets saved as a note in the first place.
  • AI actions in the editor (the sparkles/extract button and AI edit) used to fail silently — they now show what went wrong with a way to retry, and correctly count toward your monthly usage.
  • Closing the chat panel mid-response no longer erases the reply you’d already read.
  • Fixed the Settings page showing Google Calendar and billing status as unavailable when they were actually configured correctly.
  • The free-time label on the calendar no longer overlaps and garbles the event titles it sits beside.
  • Fixed real-time updates occasionally losing their connection and being slow to reconnect.
  • The app now recovers automatically from an occasional blank screen after a deploy, instead of getting stuck needing a hard refresh.
  • Login and register pages now scroll properly on phones — the invite code and Register button were previously unreachable on some screens.
  • Bottom navigation on mobile now switches tabs instantly, without occasional dropped taps.
  • Dropped a canvas-based text measurement in the tag list that Safari’s tracking protection flagged as fingerprinting; “clear my data” in Settings now reliably clears every stored preference.
  • Faster across the board — quicker page loads, a smoother AI chat during long conversations, and reduced backend latency on every request.

2026-07-31

Added

  • A new home — this site, with the guide, blog, and changelog, now lives at coachkeeper.com. The app itself moved next door to app.coachkeeper.com: old links and bookmarks take you there automatically, you’ll just be asked to sign in once.
  • Request an invite — CoachKeeper is in private beta, and you can now join the waitlist right from the homepage. We send invites as spots open up.
  • Help & Guide in the app’s account menu — the user guide is one click away.

2026-07-28

Added

  • Note mentions & backlinks — type [[ in any note to link another note, or create one on the spot. Mentions appear as chips that always show the note’s current title, and every note and todo now has a “Referenced by” panel showing what links to it — mentioning notes, related todos, and the calendar events that schedule them. Links stay correct no matter how a note is edited, including through the AI assistant.

Fixed

  • Split view: opening a note, todo, or event now always happens in the pane you clicked, and unsaved edits are safely stored before the view changes — no more jumping back to the previous item.
  • Tags always keep a color — a colorless tag could previously break list views.
  • Calendar import: large .ics files import faster, and importing the same file twice no longer creates duplicate events.

2026-07-13

Added

  • Multiple tags per note and todo, with one primary tag — add, reorder, and remove tags right from the tag picker.
  • Library — a new view that turns your tags into collections: browse everything carrying a tag as a gallery of notes, todos, links, and videos. Paste a bare URL in Quick Capture and it becomes a link card with title and preview.
  • Kanban lanes for every tag — a todo with several tags appears in each of its lanes, and lanes fold away with a click.
  • Reading pane — lists now open items in a resizable side pane instead of a separate rail.
  • Calendar in color — events take their tag’s color, and you can now export your calendar, import .ics files, and subscribe from Google or Apple Calendar.
  • Mention an uploaded file by name in chat and the AI reads and searches inside it.

Fixed

  • Deleting your account now removes all of your data, completely. You can also export everything yourself from Settings.

2026-07-12

Added

  • Accounts — sign up with email (with verification) or continue with Google or GitHub. CoachKeeper opens as an invite-only beta.
  • Planning preferences in Settings, including your preferred break length between blocks.
  • A new brand mark — the pennant.

Fixed

  • PDF export now works reliably in Safari.