Knowmarks Changelog

What changed in Knowmarks.

New features, improvements, and fixes from the private alpha. Short on ceremony, long enough to know what is worth trying next.

Fixed

  • Reddit posts and comments with special characters read cleanly again. A post or comment that contained an ampersand, an angle bracket, or an apostrophe used to show the raw code for it — "&" instead of "&", for example — when you opened the thread in the reader. Those characters now display exactly as written.
  • Search suggestions, filters, and the revoke-token button no longer break on an apostrophe. A suggested topic or filter whose name included an apostrophe (think "O'Reilly"), or an access token you'd named with one, would quietly do nothing when clicked. They now work whatever characters are in the name.
  • Saving some store and catalog pages no longer pulls in the site's menu instead of the actual content. On a handful of layouts — mostly storefronts and product catalogs — a save would grab the page's navigation bar (think "Open Menu Close Menu Home Shop") as the body, so opening it to read showed menu junk and nothing else. Now a stray "Skip to content" link at the very start is trimmed away, and a page that comes through as nothing but navigation is flagged as a poor capture so you can re-fetch it instead of it landing silently as menu text.
  • Creating a space with a name you already use now points you to the existing one instead of quietly making a duplicate. When you typed the name of a space you already had — even a suggested one or one you'd set aside, which the picker couldn't always see — it would make a second space with the same name. Now it recognizes the match (ignoring capitalization, accent spelling, and extra spaces) and selects the space you already have, so you don't end up with two spaces that look identical.
  • Links between your notes and spaces now work while you’re reading a note, not just while editing it. A [[link]] you write in a note used to come alive only in the editor — when you opened the note to read it, the link sat there dead. Now those links resolve as you read: a link that points to a real note or space lights up and takes you there on click, and a link that doesn’t match anything stays quietly inert instead of doing anything unexpected.
  • Asking your AI for a quick orientation no longer errors out. When a connected AI requested the compact overview of your collection, the request could fail and come back empty. It now returns the same orientation as the full view, including a clear duplicates count.
  • Recent saves on Home show the right icon for each kind. In the “New on the shelf” shelf, an uploaded reference or a note you wrote used to share a generic plate; now a reference leads with a book icon and a note with its note icon, while saved repositories keep their source logo.
  • A collection you create no longer disappears from your Spaces list. When a new collection looked similar to ones the system had suggested, it could get folded out of view. Collections you make by hand now always show as their own entry; only the system’s own near-duplicate suggestions get grouped.
  • Code repository READMEs read cleanly — no more stray <!-- --> markers or <br> tags. Some project pages tuck layout notes and line breaks into their README as raw markup, and they used to show through as literal <!-- LOGO --> or <br> text in the reader. Those are now cleared away, so the README reads as intended.
  • The hover actions in the Spaces list line up with each row. When you switch Spaces to the list view and hover a row, the pin / keep / dismiss buttons now sit centered in the row instead of riding high near the top edge.
  • Source images now appear for saves whose image address leaves off the "https" part. Many shopping and CDN pages give their cover image as a shortcut address that starts with // instead of the full https://. Those saves used to show no image at all, even with images turned on — now the cover picture shows up the way it does for every other source.
  • The note reader no longer shows misleading "Open original" and "Read the live page" links. A note you wrote has no external source, so those links pointed nowhere useful. They're now hidden when you open a note, while real saved web pages keep them.
  • Wide tables stay readable in the reader. A saved page or note with a table wider than the reading column used to get clipped at the edge — now it scrolls sideways within the column, so you can reach every cell on both desktop and your phone.
  • Hacker News, recipe, product, and video text renders cleanly. Some sources tucked raw formatting tags into their text, and they used to show through as literal <p> or <br> clutter. Comment threads, recipe ingredients and steps, product descriptions, and video descriptions now render as proper paragraphs, links, and lists.
  • PDFs now read cleanly — special characters like < and & no longer show up as raw codes. Some saved PDFs and documents were showing things like &lt; and &amp; in the middle of sentences instead of the real < and &. The reader now displays the actual characters, so passages like "kernel width k < n" read the way they were written.
  • Notes-list previews read as plain text. The short preview under each note title no longer shows raw markdown, link brackets, or [[wikilink]] syntax — it's a clean one-line excerpt. (Opening the note still shows it fully formatted, as before.)
  • Ask answers format correctly. Answers from Ask now show real bold text and proper line breaks instead of leaking literal asterisks, and a proactive note from your companion renders cleanly rather than showing stray formatting.
  • The reader's "share" link copies reliably. Copying a link from a thread or conversation page now works even when the source address contains an apostrophe.
  • Uploaded PDFs no longer show <!-- image --> clutter. When the extractor couldn't pull in a picture from a PDF, it left a placeholder that showed up as raw <!-- image --> text scattered through the page. Those placeholders are now removed, so the document reads cleanly start to finish.
  • Long document filenames no longer overflow the details panel. An uploaded file with a long, opaque name used to spill its filename across the labels next to it in the reader's details panel — the name now wraps neatly in its own column.
  • Re-pulling a page from its source gives an honest status. The action used to flash a contradictory "Re-fetch complete — pending"; it now says the re-pull has started and updates in the background, which is what actually happens.
  • Code repos land in the "repository" filter, not "products" or "tools". A GitHub or GitLab repo whose README reads like a product or app was sometimes filed under products or tools. Saved repos now consistently classify as repositories, and the ones already mis-filed have been corrected.

Added

  • Create a new space right from “Add to Space.” When you’re adding an item to a space and the one you want doesn’t exist yet, type its name and pick “Create …” — it makes the space, checks it, and adds your item when you hit Done, without leaving the picker.
  • Filter your Library down to documents. A new "documents" filter joins the kind filters above your Library, so one click narrows the view to everything you've uploaded — PDFs, Word docs, slide decks, and the like.
  • Browse a space or collection as cards, not just a list. Open any space or collection and switch between the dense list and a card grid with the toggle next to the sort control — handy when a collection of products, recipes, or repos is worth seeing by its images. Your choice is remembered.

Improved

  • You can create a new space from every "Add to Space" picker. Whether you're adding a saved item, choosing spaces for a note you're still writing, bulk-adding from a search, or importing links from a collection, typing a name that doesn't exist yet now offers to create it on the spot — no detour to the Spaces screen first. If a space by that name already exists, it's selected for you instead of erroring out.
  • Keep and Dismiss lead the way on a suggested space. When you open a space the system suggested, Keep and Dismiss now sit right in the header as buttons instead of hiding in the “⋯” menu — the decision a suggested space is asking for is one click away. Once you keep it, it drops out of your suggested list.
  • The “Add items” search is clearer. Searching to add items to a space now shows a “Searching…” cue while it works, hides items already in the space so every result is something you can actually add, and surfaces more matches.
  • Creating a collection drops you into it. After you name a new collection, it opens right away instead of leaving you on the previous screen.
  • Notes and uploaded files are easier to spot in your Library. A note you wrote now carries a distinct note icon and a clear "KM Note" label, and an uploaded file reads as "USER DOCUMENT" instead of the vague word "upload" — so a quick scan of a list tells you what each item is.
  • The document reader's header is cleaner. An uploaded document now shows its title at the same size as every other reader page, and the page count and format moved out of the top bar — they already sit in the details panel beside it — so the header no longer feels crowded.
  • Saved AI chats are clearer. A saved ChatGPT or Claude conversation now reads as "AI chat" (with its own chat icon) everywhere it appears — in your Library list, on cards, and as a one-click filter — instead of the vaguer "conversation".
  • Saved AI chats read like the original chat. When you open a saved AI chat, your messages now sit in bubbles on the right and the assistant's replies run down the left, the way the conversation looked where you had it — so it's easy to follow who said what.
  • File uploads show a progress bar. When you drop a document to save it, its card now fills a progress bar as the file uploads — so a large PDF on a slow connection shows real movement and a percentage instead of sitting silently on "Uploading…".

Added

  • Spaces pick a fitting icon on their own. When you create a Space — or tap "Suggest icon" on one — Knowmarks reads its name and topic and chooses a matching icon for you (a finance Space gets coins, a travel Space gets a ticket, a design Space gets a palette). It also offers a handful of close alternatives right there, so you can swap to a different one in a single click. You can still pick any icon by hand whenever you like.

Improved

  • The icon picker searches by meaning, and every icon shows up. Search now matches what an icon is *for*, not just its name — type "delete" and the trash icon appears, "buy" finds the cart. And any icon you choose now renders correctly everywhere it's shown; a few used to come up blank once picked.
  • Your Profile speaks to more than engineers. The example prompts under Professional Focus, Expertise Areas, and Learning Goals now span research, writing, analysis, and product work instead of assuming you write software.

Fixed

  • "Auto-Generate from Collection" now fills in your profile, or tells you why it can't. When you tap it, Knowmarks reads your collection and writes a draft straight into the Professional Focus, Expertise, Learning, and About fields — it no longer claims success while leaving everything blank. If it can't run, you get a clear reason instead of one vague message: when you have too few saves it tells you how many more you need, when your profile already has content it asks you to clear a field first, and when your LLM is unreachable it points you to Settings.
  • Hacker News discussions now read cleanly in the reader. Comments and posts that came in from older Hacker News saves used to show stray markup like <p> and <i> mixed into the text. They now render as proper prose — paragraphs break where they should, links and emphasis come through, and the tags are gone.
  • Search now reliably surfaces items that match your query strongly. When a result was the best match by meaning but didn't share the exact keywords — or the other way around — a flood of near-miss keyword hits could push it out of your results entirely. The strongest match in either direction now always shows up, so the most relevant item no longer goes missing.

Added

  • Save your private AI chats — not just shared links. The browser extension can now capture a ChatGPT or Claude conversation you're signed into and save the *actual* back-and-forth, laid out as a clean threaded chat in the reader and tagged with the model that wrote it. Until now only public share links worked; saving a private chat captured just the sign-in wall. Keep talking and save again — it updates the same item in place, appending the new turns instead of piling up duplicates. The personal-context layer a chat carries — your custom instructions, the system setup — is never captured.

Improved

  • Saves from the extension carry more of what a page knows about itself. Saving from the extension now reads the fully-rendered page — picking up the lead image, author, and date, and the page's own type — so a save from a signed-in or app-style site lands with the right look and a cover image even where a plain fetch would have come back thin.
  • The reader feels like part of the app, not a separate room. The reading view used to stand apart as its own warm-toned panel; now it shares the same surface tone as the sidebar and the rest of the dashboard, keeping just a faint warmth so it still reads as a calm place to read. Links inside an article now pick up the same accent color you see everywhere else. Works in both light and dark.

Added

  • Your saves now show the picture the page already advertises about itself. Most pages carry an image meant for link previews — an article's lead photo, a video's poster frame, a product shot. Knowmarks now keeps that image and shows it: as a thumbnail on cards and list rows, on the recent shelf, and as a full hero across the top of the reader. Pages without a usable image simply stay text-only, the way they were. Older saves get their image filled in over the next little while; everything you save from here on picks one up automatically.
  • Saved AI chats now read as the conversation, not a sign-in wall. When you save a shared ChatGPT conversation, Knowmarks pulls in the actual back-and-forth — your prompts and the assistant's answers — and lays it out as a clean threaded chat in the reader, tagged with the model that wrote it. Until now a shared chat link saved only the "Log in to see this" placeholder the page shows a logged-out visitor; now you get the exchange you actually had. The behind-the-scenes parts the share page itself hides — system instructions, tool steps, raw reasoning — stay hidden here too, so it reads the way it did when you had it.

Improved

  • The reader opens like a feature spread now — for every kind of save. A hero image sits across the top whether you're reading an article, a repo, a PDF, a video, or a thread.
  • Videos play right where you're reading. Click the poster and the video plays inline instead of bouncing you out to YouTube. Transcript and chapter timestamps jump the inline player to that moment rather than reopening the source in a new tab — and if a player ever can't load, the timestamp still opens the video at the right spot as before.
  • Small editorial flourishes in your Brief. The section ornaments now carry the house dusty-purple accent.

Fixed

  • Search no longer gets thrown off by a misfiring query helper. Before running a search, Knowmarks quietly expands your query with a few related terms to widen recall. On a meaningful slice of searches that step was silently producing empty or half-finished output and feeding it into the results — nudging the right item down the list or out of view. It now uses a steadier model with enough room to finish, and any expansion that comes back empty or cut off is discarded so your original search runs cleanly instead. You should notice expected items holding their place near the top more often.

Improved

  • Search finds more of what you meant. Three fixes to how queries are run: searches with punctuation in them — C++, C#, Node.js, anything with quotes or parentheses — used to quietly return nothing because of a query-syntax error; they now return real results. Multi-word searches no longer come up empty just because one of the words is rare. Short queries and acronyms like Go, AI, and ML are no longer dropped on the floor. And when an item's title is exactly what you typed, it now ranks at the top where you'd expect it. (The underlying ranking weights are unchanged — these are recall and precision fixes, not a re-tuning.)
  • km doctor tells worker-idle from worker-stuck at a glance. The Enrichment Health breakdown used to lump everything still being processed into one "awaiting flush" number. It now separates items waiting in the queue from items actively in flight (2 awaiting flush · 5 in flight), so when something's backed up you can see whether the worker is idle or stuck without dropping into the raw details.
  • Saved-product prices now read as money. When you open a saved product in the reader, the price shows with its currency symbol — $9.32 instead of the raw usd 9.32 some sites publish. Common currencies (USD, EUR, GBP, JPY) render as their symbol; anything else shows the currency code in capitals.
  • Library cards are cleaner and easier to read at a glance. Each card in the grid used to wear a raw "markdown" tag that competed with the title and meant nothing to a reader, a loud freshness badge, and several clusters of small print fighting for the footer. The bottom line is now a quiet pair of bookends: the source's little site mark leads on the left, the kind of thing it is shows as a small icon on the right (a repository, an article, a note, a document), and between them sits just the source and a plain "saved 3d ago" — no shouting word for the kind, no green badge. A small note appears only when a source is actually going stale, so a healthy card stays calm; the exact save date is on hover if you want it. Hovering a card shows its actions in a small panel anchored to the corner — they no longer overlap the title, spill onto the card next to it, or make the card feel like it jumps.
  • "Freshness" now reads in plain words instead of a mystery percentage. Saved items used to wear a bare "73% vitality" tag — a number with no explanation of what it measured or whether you should do anything about it. You now see a word that tells you the state of the source at a glance: Fresh ("still looks alive and current"), Aging ("still here, but it's been a while — worth a fresh look"), Likely stale ("may have moved on since you saved it"), or Looks gone ("we couldn't reach it the last time we checked"). The reader, your Library rows, the item detail panel, the Issues list, and km stale all read the same way, with the meaning spelled out right there. The raw number is still available on hover if you want it.
  • Saved pages now read their own structured data more reliably — author, date, and what the page actually is. Most modern sites publish a machine-readable description of themselves, but they wrap it in a structure Knowmarks wasn't unwrapping, so it often missed the author, publish date, and the page's real type and fell back to coarser guesses. It now unwraps that structure, and when a page describes itself as a recipe, a product, a video, an article, and so on, Knowmarks reads the *content* type instead of getting distracted by the site's navigation breadcrumbs. You'll see more accurate details on saved items, and it's the groundwork for showing each kind of thing the way it deserves.
  • Forum posts and videos now open in the right reader. A discussion or social post you saved from somewhere off the beaten path used to open as a plain article — no threaded comments, no conversation. Saved videos hosted outside the usual places had the same problem. Knowmarks now reads the structure a page publishes about itself, so those items open in the threaded reader or the video reader as you'd expect, without anyone having to teach it about each site one at a time. Posts and videos that already opened correctly are unchanged.
  • The reader stays quiet when a source loaded fine. A saved item used to wear a green "✓ verified source" badge just for having loaded successfully — which was nearly every item, so the badge told you nothing, and "verified" claimed more than it meant. The reader now only marks a source when there's something to know: a partial extract still flags when we couldn't capture the whole page, and a source that's drifted or gone is still surfaced the same way as everywhere else. When everything's fine, the header just shows the source, type, and date — no badge. ("Verified" now stays reserved for a citation that has actually been re-checked against its source.)
  • The marginalia in Notes & Queries now mixes its voice. The leading notes prefer different kinds of observation rather than stacking two of the same flavour, so the box reads as a varied margin rather than one note repeated.
  • "New on the Shelf" now leads with variety. After a burst of saves from one source — a bulk import, or a run of stars from a single site — the shelf used to open with a stack of near-identical cards. Now it caps any single site to two cards at the top and brings whatever other sources you saved up front, so the first thing you see is the span of what you've collected. The section still fills out: once the variety leads, the remaining slots fill with your next-most-recent saves, even when they're from the same site, so the shelf never looks half-empty on a one-source week. "Receipts" gets a stricter version of the same treatment: each highlight comes from a different source, so the picks always span your reading instead of stacking on whichever site you saved most.

Fixed

  • Asking Ask to do something open-ended no longer throws a raw error. When you asked the Ask tab to generate something from scratch — turn a transcript into a tutorial, draft a summary in your own words — the answer came back fine, but the "Save as note" button beneath it could fail with a cryptic error code because there were no saved items behind that kind of answer. The answer now renders cleanly and the Save-as-note button works regardless of whether the reply points at items in your collection. And if anything else goes wrong while answering, you now get a plain "Something went wrong answering that — try again, or for open-ended generation ask in your connected AI" instead of a developer error message.
  • PDFs you open now show a real title and read as properly formatted text. A saved PDF used to open under the wrong heading — often a date line lifted from the top of the page, or the raw file name — and its body arrived as one unbroken wall of text with the title, byline, and every paragraph run together. The reader now picks the document's actual title (and falls back to a tidied-up file name only when there genuinely isn't one), drops the running headers and page-number footers that were leaking into the body, and keeps the headings and paragraph breaks so the document reads the way it was written. A mangled opening word from a decorative drop-cap letter is repaired too. Saved items now carry the meaningful title in your Library and search, and PDFs you saved earlier pick up the same treatment the next time their content is refreshed.
  • The Brief's links now apply to the Brief you're already looking at, and stay correct over time. The link fix below used to only take effect the next time a Brief was written from scratch — your current Brief stayed as it was. Links are now worked out fresh each time the Brief is shown, so the improvement reaches the Brief on your screen right away, and a link keeps pointing at the right place even after you rename or remove the item it mentions.
  • The Brief now links the saved items it mentions, not just some of them. When the Brief named one of your saves, the name often wasn't clickable — especially repos and titles with hyphens. The write-up was quietly retyping those hyphens as a slightly different dash character, so the link-matcher no longer recognised the title and left it as plain text. Titles are now matched forgivingly (dash and spacing variants count as the same), so the references in the Brief reliably become links straight into the reader. On a recent Brief this took it from 2 working links to 6.
  • The open questions in Notes & Queries now read as complete thoughts instead of trailing off mid-sentence. A longer open question used to get cut off partway through, with no way to read the rest. Now each one is kept to a single, complete sentence when it's written, and the front page gives it enough room to land whole — so the question states itself and stops, rather than fading out behind an ellipsis.
  • Notes & Queries on the front page no longer repeats the same open question three times. When the system had several near-identical takes on one topic, all of them used to crowd into the box and read as broken. Now near-duplicate open questions collapse to a single representative before the box is filled, so you see distinct topics rather than the same thing reworded. The duplicates also stop re-accumulating at the source: a second open question in an area you're already tracking is recognised as a repeat and skipped.
  • Old, stale open questions now retire on their own. Open questions that sit untouched for over a month — nothing you saved ever spoke to them — used to linger on the front page indefinitely, so the marginalia could show questions raised six weeks ago. They now expire quietly once they go a month without a match, and the retirement runs on every refresh rather than waiting on background work that could stall — so the front page stays current on its own.
  • Background upkeep that quietly stalled now recovers on its own. If one of the routines that keeps your collection current — refreshing stale items, retiring old open questions, generating the Companion's notes — ever crashed partway through, it could get stuck and silently stop running, with nothing to tell you it had gone quiet. Knowmarks now notices a routine that's been stuck too long, clears it, and lets it start again on the next pass, so the front page and your governance signals keep moving without needing a restart.

Added

  • Code blocks in the reader now read like code. Open a README or a paper with embedded code and each fenced block gets proper treatment: the language is highlighted in the warm reading palette (it stays right in both light and dark), the language name sits quietly in the block's top corner, and a Copy button appears when you hover so you can lift a snippet in one click. Long lines scroll sideways inside the block on desktop so the reading column never stretches, and wrap on a phone where there's no room to scroll.
  • Receipts on the front page now show their verification state. When a source in the Brief's Receipts footer is backed by your saved citations, the entry carries a quiet mark beneath the domain: a filled green dot with VERIFIED when the cited passages still anchor cleanly, a yellow dot with DRIFTED when the source has changed under a citation. The marks only appear when real citations exist against the source — nothing is invented — and they reflect the current verification state each time you open Home, not the state when the Brief was written.

Improved

  • Issues, Trash, and Conversations now match the rest of the app. These three pages were the last still wearing the old card shapes. Now they read like Library and Search: the title leads, a quiet line explains what you're looking at, and the contents are the same dense rows you see everywhere else.
  • On Issues, each thing needing a decision — a failed extraction, a detected list, stale content, a near-duplicate — is now a single calm row with its status and a short why/what-next, instead of a heavy card. Each section keeps its own quiet Acknowledge / Retry / Delete actions, and the page still disappears from the sidebar entirely when nothing needs you.
  • Trash now opens like a filtered view of your Library, with a link back to it up top. Dead links are listed as rows showing why each failed; hover one to Restore it (queued for a fresh fetch) or delete it for good. Select several to restore or remove them together, or empty the whole trash from the top.
  • Conversations is now one clean list of your past Companion threads — newest activity first, with a filter box and a New chat button. Click a thread to pick it back up; hover to delete one. The old cards/table toggle is gone, in favor of a single readable list.
  • Loading placeholders now match what loads. While a page fetches, you see a quiet preview of its real shape — the Library and Search show a screenful of the same dense rows that arrive, Spaces shows space cards, Settings shows its cards under the real tabs, and Home shimmers in its own front-page register (masthead rules, headline, columns). No more flash of one layout swapping into another when the data lands. Notes and space pages, which used to sit on stale content while loading, now show the same honest preview.

Improved

  • Search results got the design pass — the last page in the set. Your query now leads the page as the title, with an honest line underneath: how many results, searched how ("hybrid search across everything saved"), and what you've filtered to. While the quick keyword pass paints first, the line says so — "running the semantic pass…" — until full results land.
  • Results are the same dense rows as the Library: source mark, title, a snippet that opens with how the item matched ("Semantic · …", "Keyword · …"), and the type, domain, and saved date in a quiet column on the right. The filter pills above — All, semantic, keyword, plus your content types with counts — double as the legend.
  • Paging through results is gone. The footer now tells you the truth — "Showing 30 of 32" — and Load more appends to the same list, so your selection survives as you go deeper.
  • Selecting results works like the rest of the app now: hover a row to reveal its checkbox, shift-click to select a range. The selection bar floats above the page with one Add to space picker — every space in one list, with New space from selection on top — replacing the old separate Project and Collection buttons.
  • Searches with no matches say so plainly, with related topics from your collection one click away.

Fixed

  • Opening an item from the front page now fills in the reader's Context rail. Before, clicking an item link on Home or in the Brief took you to the reader with the right rail missing entirely — the item's source, spaces, and metadata only showed up if you'd arrived from the Library. The rail now appears with the item's details no matter how you got there: Home, Brief, Library, search, or pasting a link directly.
  • Saving a Reddit thread no longer stores junk when Reddit blocks the usual data feed. Before, a blocked save could silently come through as a list of collapsed comment headers — usernames and point counts with no actual post or comments. The fallback now reads the full post body and comment thread directly from the page, and if an extraction still comes back as comment-header chrome with no real text, the save is marked failed so a retry can pick it up instead of keeping the junk.
  • The reader now shows which spaces an item belongs to. Open anything in the reader and the Context rail lists the spaces it's a member of, alongside its source and details — it had a place for this all along but was never filling it in.
  • Items that finished saving but never got a summary now heal themselves. Occasionally something would save cleanly — a PDF you uploaded, an article that came through fine — and then sit in your Library with no one-line synopsis underneath it, usually because the summarizer was briefly unreachable or the save was interrupted at the wrong moment. A quiet background pass now notices these and fills in the missing summary from the text already saved, so it shows up on its own without you having to do anything. For an uploaded file, this works even after the original file is long gone — it summarizes from the copy already stored, rather than trying (and failing) to re-read a file that no longer exists.

Improved

  • Settings got the design pass, on both tabs. The page now opens like every other page — title first, a quiet line underneath about what lives here — with the General / Connections tabs right below. General's cards are calmer and more consistent: sentence-case card titles, one short hint per card, and matching fields and buttons throughout. Your MCP endpoint sits in its own copyable box with a Copy endpoint button.
  • The Connections tab is now one grid of small cards — services and RSS feeds together, each with its source logo, name, and a single line of sync status (when it last synced, how often, how many items). Paused or stale connections show their status in a warm tone so they stand out without shouting. Every card has a sync-now button; RSS feeds reveal edit / pause / unsubscribe on hover.
  • Adding sources is one row of buttons under "Add a connection" — including a new RSS feed button that opens the subscribe form only when you want it. One-time browser imports (Chrome, Safari, Firefox) moved into their own clearly-labeled row.
  • The Connections subtitle now tells you how the pipeline is doing at a glance: "Six connections feeding the library · all healthy" — or how many are paused or stale when they are.

Improved

  • Notes got the design pass. The page is now a proper list — your notes as full-width rows with a title, a preview line, and the review cadence on the right ("Review in 12d", warming to "Review due" when it's time) over the edited date. One New note button up top, sort by recently edited / created / title, honest "Showing X of Y" once you have more than a pageful. Opening a note now gives the editor the whole page — same back- and-forth as reading anything else in your library — instead of squeezing it next to a second notes list. Search your notes from ⌘K.

Added

  • The reader's ⋯ menu gained Delete from library — the same confirmed, permanent delete you have on Library rows, now available while you're reading the thing you've decided not to keep. It returns you to wherever you came from.
  • Space pages now make triage legible. Suggested items wear a small warm "suggested" mark in the right-hand column — kept items stay unmarked, so the marks read as your to-triage backlog at a glance. Next to the Items heading, counted filters (All · suggested · kept) turn the list into a worklist: filter to suggested, thumbs your way through, and the counts tick down as you go. The filters only appear when a space actually has both kinds.

Added

  • You can now add items to a space right from its page: the new Add items button opens a quick search over your library, and one click drops a result into the space — the list and count update immediately.
  • Space pages now reach everything: large spaces load 100 items at a time, the footer counts honestly ("Showing 100 of 312"), and Load more keeps going until the whole space is on screen. Before, anything past the first 50 items was silently unreachable.
  • Thumbs up / thumbs down are back on suggested items, and they do what they say: thumbs up keeps the item in the space, thumbs down removes it and stops it being re-suggested. Both quietly train the space's sense of what belongs — and three thumbs-up makes the space keep itself.

Improved

  • Space pages got the same design treatment as the Library. The space's name leads in the reading face with its icon and kind tag beside it (suggested spaces keep their warm tone), and a quiet line underneath carries the item count plus where a synced space comes from. The item list is now the same dense two-line rows as the Library — source logo, title, summary, type and date on the right — instead of a spreadsheet-style table, and hovering a row reveals its actions (keep, open original, remove). Management actions (edit, suggest icon, keep, dismiss, delete) tucked into a single ⋯ menu up top, next to pin. Selecting items for bulk actions still works — hover a row and tick the checkbox that appears.
  • Spaces marked as kept now wear a small green Kept tag wherever they appear, so lifecycle protection reads at a glance.
  • Item descriptions on space pages get two lines instead of one, sort menus show a proper dropdown carat again, and the item count no longer appears twice in a row on the page.

Improved

  • The Spaces page got the same design treatment as the Library. The title now leads the page, with one New space button up top (it offers both kinds — a Project anchored to a goal, or a keyword-seeded Collection). Filters became counted pills below the title — All, projects, collections, suggested, connections — and switching them is instant. Each space card leads with its icon and name, carries its item count large and light in the corner, and wears a small uppercase tag for its kind — suggested spaces get a distinct warm tone so you can tell at a glance what the system proposed versus what you made. Pinned spaces show their pin right on the card.
  • The "Filter spaces…" text box is gone from the Spaces page — ⌘K reaches any space by name faster, and the filter pills cover browsing by kind.

Added

  • A new Library page in the sidebar — everything you've saved, browsable and filterable in one place. The content-type pills and sort options scope it, and Trash now lives here as a filter (the button at the top right) rather than taking up its own spot in the sidebar.
  • The Library got its full design the same day: a dense list where every item is two tidy lines — source logo, title, a one-line summary, and the type icon · site · date on the right (the type icons match the filter pills above, so the pills double as the key) — a screenful shows about twice as many items as before. Hovering a row reveals quick actions: thumbs up or down ("more/less like this" — it tunes what the system surfaces for you), add to a space, and open the original. GitHub items now wear the real GitHub mark, and items without a site icon get a small lettered tile instead, so rows always line up.
  • The Library now reaches everything: the footer shows "Showing 100 of 7,698" honestly, and Load more keeps going until you've seen it all — filters included in the count.

Improved

  • Card view (the grid toggle in the Library) now uses the same clean typeface as the rest of the working views, and cards in a row line up at equal heights.
  • Items imported through Readwise, Raindrop, and the other connectors now show the website's own icon instead of the import service's logo — an article is identified by where it's from, not how it arrived.
  • The reader's back button now says where it will actually take you — "Back to Library", "Back to Spaces" — instead of always "Back to Pulse".
  • The assistant rail starts closed. Opening an item still reveals its Context panel while you read, but heading back to a list closes it again — the rail only stays open when you opened it yourself.
  • Row actions are honest verbs now: add to a space, open the original, or delete — the thumbs buttons are gone from the Library (preference feedback belongs on suggestions, where it actually steers something).

Improved

  • The sidebar now reads in five words: Home, Library, Spaces, Notes, Settings. Pulse is now Home — same front page, clearer name. Connections moved inside Settings (a tab at the top, next to General). Issues only appears when something actually needs your attention, and disappears when nothing does. Old links keep working — /trash and /connectors take you to the right place.
  • The sidebar sits closer to the page: the dividing line between the sidebar and your content is gone (the subtle color shift carries the boundary), and the item you're on now glows with a soft accent tint instead of a gray bar.
  • Keyboard navigation grew with the rename: press G then H for Home, G then L for Library (S and N still go to Spaces and Notes; G-P still works if your fingers learned it as Pulse).
  • Searching for an icon (when editing a space) now searches the full 1,600+ icon library from the first keystroke — no more "load full library" detour when the suggested set doesn't have what you need.
  • The sidebar's bottom corner is tidier. Theme switching is now its own "Theme" row above Issues (click it to flip between light and dark), with Settings below them. The little line at the very bottom is just the search hint and the version number now — no more icons squeezed between them.
  • Home is now a clean edition, edge to edge. The assistant rail no longer appears on the front page — everything it offered there already lives on the page itself (your Brief is the lead story, observations have their own department). To ask a question from Home, open the command palette (⌘K) and type your question. Reading views keep the rail exactly as before, with your conversation intact.

Added

  • Connect your AI. Knowmarks now has a personal MCP endpoint you can paste into ChatGPT, Claude.ai, Claude Code, or Cursor — ask about your knowledge from the AI you already use, and every answer draws on your collection. A new "Connect your AI" card at the top of Settings shows your endpoint URL, step-by-step setup for each client, and a connection indicator that lights up once your AI has called in. Your Access Token (the same kind the browser extension uses) is the key — create one in Settings and paste it where the steps say.

Fixed

  • The sidebar no longer grows a scrollbar when you have lots of pinned spaces. Your pinned list scrolls on its own now, so the main navigation and the bottom entries (Theme, Issues, Settings, Trash) always stay put and visible.
  • Clicking "Retry" on the Ledger's awaiting-enrichment entry now responds: the entry shows "Retrying…" the moment you click, then tells you how many items restarted (with a small confirmation message). Before, the click worked but gave you no sign anything happened.
  • Code blocks in the reader render cleanly again — commands sit on consecutive lines instead of being spread apart, and the stray underlines and bracket-shaped marks around each line are gone.
  • Italic captions in GitHub READMEs now render as italics instead of showing raw <em> tags around the text.
  • Author names with apostrophes or other special characters now display correctly in the reader byline (previously you might see codes like &#x27; instead of the apostrophe). New saves store the clean name, and items you've already saved render correctly too.

Improved

  • Home is now a front page. Your dashboard opens as today's edition — a masthead with the date and edition number, your Brief as the lead story with a drop cap and pull quotes, recent saves set as a "New on the shelf" department, observations under "Notes & Queries," and housekeeping condensed into a single quiet ledger line. No more cards and banners — the page reads top to bottom like something written for you.
  • Reading got a magazine treatment. Articles, repos, videos, PDFs, and threads open as a feature spread: a serif title, a wider warm reading column, and source marks (little favicons) wherever a source is named. The context panel beside your reading now shares the same warm palette, so the whole item view feels like one surface.
  • The top bar is gone on desktop. Search lives in ⌘K, and feedback, notifications, and your account moved to the bottom of the sidebar — your content starts at the top of the window. (Mobile keeps its header.)
  • Both themes were designed for this, not inverted: dark reads like lamplight, light reads like warm paper.

Added

  • You can now export your entire library as a single archive from Settings. One click on "Export Everything" packages every save, space, note, citation, and automation rule into a zip of plain markdown and JSON files — open it in any file browser and your stuff is right there, readable. Your original uploaded files (PDFs and documents) come along too.
  • The archive is round-trippable: bring it into any Knowmarks instance with km import knowmarks <archive> and everything is restored — already-present items are skipped, so importing twice is safe. km export <path> does the same export from the command line.

Fixed

  • Item titles mentioned in your Brief are links again, and they open the in-app reader. The Brief's narrative had stopped linking the saves it talks about entirely — titles rendered as plain text; they now link straight to the same reader page the rest of the dashboard uses, and you can middle-click or open them in a new tab.
  • Bold emphasis in the Brief narrative now renders properly instead of showing literal asterisks around item names.

Added

  • Press ⌘K (Ctrl+K on Windows and Linux) anywhere in the dashboard to open the new command palette — one box that does three things. Type a few characters to search your saves and hit Enter to open the best match. Type > to run a command: create a note, save a link, import bookmarks, ask the Companion something, or jump to any screen. Paste a link and the palette offers to save it, with a Space picker right there so the save lands where you want it. It works on every screen, and the "Search or run…" row at the top of the sidebar opens it with a click or a tap — no keyboard shortcut needed.
  • A few quiet accelerators came along with the palette: press / to open it, paste a copied link on any screen (⌘V) to save it without opening anything first, and use two-key jumps — G then P for Pulse, G then S for Spaces, G then N for Notes.
  • Opening a saved item now takes you to a full reader view instead of a small pop-over. You get a clean reading layout tuned to what the item is: articles read like articles, GitHub repos show their README with stars and activity, YouTube videos surface chapters and a timestamped transcript, documents get an outline, and Reddit threads read as a conversation. The original page is still one click away from the reader's toolbar.
  • The right side of the dashboard is now one rail with two tabs: Context and Companion. While you're reading an item, the Context tab shows what it is — its source, the spaces it belongs to, its structure, and its details — and the Companion is one tab flip away. On list and home views the rail stays Companion-only. The rail still collapses to a thin strip, still toggles with ], and still remembers your choice.
  • The Companion now knows what you're reading. Flip to its tab while an item is open and you'll see a quiet "About this page" line with the item's title — ask "what's the key claim here?" and it answers about that page directly, no pasting or explaining needed. It's still one ongoing conversation: move to another item and keep talking.

Fixed

  • Tables in saved pages render as actual tables now — header row, aligned columns, clean row lines — instead of a wall of pipe characters. You'll notice it most on GitHub READMEs with command or feature tables.
  • Some older saved GitHub repos showed their README as a wall of plain text with the links stripped out. Cause: repos saved during big imports could exhaust GitHub's anonymous API limit and fall back to a lossy text extraction. Saving now uses your GitHub connector's token (much higher limit), the fallback keeps links and formatting, and the affected saves were re-fetched with their formatting restored.
  • Saved pages render their formatting properly in the reader: italic captions no longer show stray underscores, section headings underlined with dashes display as real headings instead of literal dash runs, quoted passages render as proper quote blocks (GitHub-style NOTE and CAUTION callouts get a labeled treatment), divider lines display as rules, and bare web addresses in the text are now clickable.
  • The forks and open-issues icons on repo pages render now (they were silently missing from the icon set, along with nine others across the app — all restored, with a test that keeps the set complete).
  • GitHub READMEs that open with raw HTML taglines no longer leak code fragments like </a> into the reading view — the text stays, the markup goes.
  • The source card no longer claims an item is "103% vitality" — scores cap at 100% everywhere, and existing items were healed automatically.
  • Reddit posts whose body was removed on Reddit now show a quiet "post body removed" note instead of the raw [removed] token, and pages that publish placeholder author names (like "Fallback-author") no longer show them in the byline.

Improved

  • GitHub repos in the reader match the design frame: the owner sits in a small line above the title with the GitHub mark (instead of a plain "github.com" chip), the big title is just the repo name, and the rail's Source card shows the same mark + owner/repo identity. README images referenced by relative paths now load instead of showing a broken-image placeholder.
  • The empty strip across the top of the content area is gone on desktop — your content starts at the top of the window now. In the reader, the Back row is the top bar, lined up with the rail's tabs, and the Back button says where it's taking you ("Back to Pulse", "Back to Spaces"). On phones nothing changes: the top bar stays, since it holds the menu and search.
  • The light/dark theme switch moved from that strip to the bottom of the sidebar, next to the version number — and it's in the ⌘K palette too ("Toggle light/dark theme"). The old sparkles button is gone: it predated the rail's Context · Companion tabs, which (along with the ] shortcut) are how you open the Companion now.
  • Reddit threads in the reader now show more of what you'd see on Reddit itself: when the post went up, the real total comment count (not just the comments captured with your save), the "% upvoted" ratio, and — on each comment — when it was written plus the commenter's flair. New saves pick these up automatically; already-saved threads fill in the next time the metadata backfill sweep runs.
  • The search bar at the top of the screen is gone on desktop — the palette replaces it. Everything the bar did still works and is faster to reach: searching and saving live in ⌘K (or the sidebar's "Search or run…" row), and your reading area gets the vertical space back. The theme and Companion-rail buttons stay in the top corner where they were. On phones and small windows nothing changes: the visible search bar stays, since there's no ⌘ key to lean on there.
  • The reading column in the reader got wider: item details moved out of an inline side panel and into the rail's Context tab, so the content gets the full width of the screen while the details stay one glance away.
  • READMEs and other markdown-heavy saves render cleanly in the reader: badge rows and leftover HTML scaffolding are filtered out, and images embedded in the content display as real images instead of raw markup.
  • The previous quick-view panel still appears where it makes sense — in Companion chat, duplicate review, and other in-flow checks — so those workflows keep their action buttons close at hand.
  • Your existing library got the reader treatment too: saved YouTube videos picked up their duration, chapters, and timestamped transcripts, and saved Reddit threads now read as real conversations with authors and scores — not just for new saves.
  • When a page can't be extracted cleanly (heavy scripts, login walls), Knowmarks no longer quietly gives up. It retries with progressively stronger extraction, and when only a real browser will do, the home screen shows which saves need a quick browser visit to finish — the browser extension capture completes them.
  • Health checks in km doctor now also cover stored page snapshots and the extraction retry pipeline, so you can see at a glance whether anything is stuck.

Fixed

  • Opening an item now opens the rail's Context tab even if you'd collapsed the rail earlier — your item's details were invisible until you manually expanded it. Collapsing still works; the rail just reopens when you start reading something new.
  • Documents look the way they should in the reader: the file name and page count moved into the reader's slim top bar, and the content starts right below it instead of after a stretch of empty space.
  • The item controls are back while you read: a new "**" menu in the reader's top bar carries add to a space, save as note, ask Companion, re-fetch content, reclassify, and a quick-view escape hatch to the full legacy panel. (They had been reachable only through ⌘K or the old pop-over since the reader took over.)
  • Reddit threads in the reader now show who posted (u/name), the post score, an OP badge on the author's own comments, and a "Voices" list in the rail — the top contributors in the saved conversation. The Back button got its arrow back, too.

Added

  • The Settings → Diagnostics card now shows Envelope Conformance, Document Extraction, and Telemetry — the Response Envelope Contract guards, Docling readiness + model-cache state, and Sentry/PostHog wiring that were previously only visible via km doctor. The dashboard finally has the full set of integrity checks the CLI does.
  • km doctor gains a new Radar Rules section reporting the RSSHub discovery-rules cache (domain count, size, freshness). The cache file has lived on disk for cycles, but only the JSON diagnostics endpoint surfaced it — now km doctor does too.

Added

  • The Settings → Diagnostics card now shows Spaces Integrity, Citations Integrity, and Notes Integrity alongside the existing sections. These checks have been in km doctor for a while; the dashboard finally has them too, so you can spot a missing note file, a citation pointing at a removed passage, or a Space-substrate drift without dropping to the terminal.
  • The Settings → Diagnostics card also picks up Pipeline Integrity, Onboarding Integrity, and Companion Integrity — the reconciler / inference-queue snapshot, the welcome-flow wiring guard, and the Companion §2.0g surface check that were previously only visible via km doctor.

Improved

  • km doctor and the Settings → Diagnostics card now report cause-tagged reasons when an enrichment job fails — you can tell at a glance whether a stuck save is waiting on a different model, needs a fetch retry, or is hitting a configuration problem, instead of seeing a generic "error" row.
  • The Settings → Diagnostics card runs the embedding and LLM reachability probes in parallel and reuses a single connection across them, so the panel loads faster when a provider is slow to respond. Each probe now has an explicit connect / read timeout split, so a slow redirect chain can't block the whole card.
  • The "Review due" row in Notes Integrity now renders the overdue count in yellow in km doctor again (it had briefly been showing as literal [yellow]…[/yellow] debug text — a rendering escape introduced during the doctor refactor and caught in the chunk-3 review).
  • Citations with the durable retention class that have drifted or broken are now treated as workflow signal, not a problem — the Settings → Diagnostics card no longer paints the Citations Integrity card yellow just because a re-verify pass is overdue. External health checks polling the dashboard JSON for extras.citations_integrity.status no longer flap on naturally aging citations.

Fixed

  • Citations Integrity no longer reports fake-clean zero counts when the citations table is missing from the database — it now surfaces a single "Check skipped: citations table not present" row so the schema gap is obvious instead of hidden.
  • Notes Integrity stops false-flagging files like mynote.md.md as orphans. Backup tools that append .md to filenames, or a Finder hide-extension save-as mistake, no longer turn the section red.

Fixed

  • A misconfigured LLM_BASE_URL (empty, or pointing at an obviously wrong host) no longer takes down the entire Diagnostics card. Each section reports its own outcome independently, so one bad provider can't blank the rest of the panel.

Added

  • The Knowmarks iOS app now syncs your saved links in the background. Anything you share from your iPhone reaches Knowmarks on its own once your server is reachable — you no longer have to reopen the app to flush the queue. Background sync is best-effort by design (iOS decides when to grant background time), so opening the app still triggers an immediate sync if you don't want to wait.

Added

  • Notes now have an optional review cadence. Set a review: field in the note's .md frontmatter — 90d, 6mo, 1y, or never — and Knowmarks surfaces the note in stale items when it's overdue. New notes default to 90 days; existing notes start at no cadence so nothing in your library gets flagged retroactively. Use km note review <id-or-slug> to mark a note reviewed without touching its body (the lifecycle counterpart to km save for URLs).
  • Documents (PDFs, Office files, anything you uploaded) can now be re-uploaded in place. km ingest <path> --replace <knowmark-id> (or the optional replace_knowmark_id field on the upload form) keeps the Knowmark id, preserves Space membership, re-extracts content, and re-verifies every citation pointing at the document. The revision counter on the document ticks up so you can see how many times you've refreshed it.
  • PDF citations now show the page number when the source PDF reports one. The "Anchor" line on km cite open and the MCP cite_open response read · Page N after the surrounding context, and the stored selectors carry W3C PageSelector + BoundingBoxSelector alongside the existing TextQuoteSelector and TextPositionSelector.
  • The Companion gained two proactive observation kinds. Note review due surfaces your top two or three notes overdue against their cadence; Document aged surfaces your top two or three uploaded documents whose publication date is older than the aged-document threshold (3 years by default, configurable via KNOWMARKS_AGED_DOCUMENT_YEARS).

Improved

  • Stale items now treat notes, URLs, and documents on their own terms. Notes are governed by review cadence, URLs by HTTP vitality, and documents by publication date — a note isn't flagged stale just for being old, and a PDF isn't run through a URL-vitality probe.
  • Editing a note re-runs every citation against its body through the existing four-state model. Quote anchors that still resolve stay valid; ones that don't drift to drifted cleanly, so a citation you made yesterday doesn't go silently wrong after you fix a typo.
  • Every saved item — link, note, or document — now runs through the same post-create enrichment pipeline (auto-summary, auto-connections, cluster refresh, curated-collection refresh, project-inbox routing, knowledge-gap check, rules). Notes pick up the same enrichment URLs have always had; the rules engine gained a kind condition so you can target rules at links, notes, or documents specifically.
  • Deleting a note from the dashboard, the API, or the MCP now also removes its .md file from disk in lockstep — no orphaned files left behind.

Fixed

  • Brief refreshes now track narrative retry and failure states more clearly, so Pulse can keep showing the last good narrative while making temporary summary generation problems easier to understand.

Fixed

  • Pulse now keeps the last successful narrative visible when a Brief refresh hits a transient LLM/provider failure, while making clear that the structured signals are current and the narrative will catch up on a later pass.

Fixed

  • Setlist-synced Projects now keep their visible metadata and recommendation context current when Setlist changes, including older local Projects that match Setlist by path, while preserving fields that were edited directly in Knowmarks after the last import.
  • Suggested Spaces no longer duplicate when overlapping cluster rebuilds are triggered close together.

Fixed

  • Projects, Spaces, Collections, and pinned Space lists now sort names case-insensitively, so lowercase names appear in the main alphabetical order instead of being separated from uppercase names.

Added

  • Dashboard URL saves can now optionally route the saved link into multiple selected Spaces or Projects at save time.
  • Chrome extension saves now show the same optional multi-select Space routing control, so a browser-toolbar save can land in the right Project, Collection, Suggested Space, or Connection while saving.
  • Settings now includes hosted-alpha client setup links under Access Tokens, with downloadable Chrome extension and Claude Desktop extension packages that use the alpha API URL and the tester's own Access Token.

Fixed

  • What Knowmarks Noticed cards now use current Brief support signals instead of repeating evergreen filler or echoing the Brief headline.

Added

  • Chrome extension saves can now send browser-captured Selection or Article text as source content, keeping user notes separate while making Medium, Reddit, X/Twitter, paywalled, logged-in, verification-wall, and JavaScript-heavy pages more reliably searchable.
  • iPhone share-sheet saves can now include selected or shared page text as source content when iOS provides it, while keeping the user's own note separate from captured text.
  • Stale GitHub Stars and Reddit saves in Issues can now use Unfavorite + Delete to remove selected links from Knowmarks while also queuing source-side cleanup, such as unstarring GitHub repos or unsaving Reddit posts.

Improved

  • Browser-captured extension saves now skip slow server-side extraction when the extension already has readable page text, and the popup reports a timeout instead of staying on Saving... indefinitely.
  • Extraction issues now explain why Knowmarks may not have readable content and what to try next, with cards sized more like the Stale Content list.
  • Firecrawl extraction now uses longer browser-render timeouts, lighter scrape options, rendered-HTML fallback, and clearer failure reasons when browser extraction still cannot produce readable content.
  • Extraction Issues now recommend Chrome extension browser capture for sites that likely need the user's rendered browser session, such as blocked, paywalled, verification, or empty browser-extraction pages.
  • Bulk unfavorite cleanup now removes selected rows from Issues immediately, keeps source cleanup running in small background batches, and shows progress at the top of the Issues page instead of making rejected rows reappear.
  • Pulse Recently Added cards now use cleaner text-first titles without repeated bookmark icons.

Fixed

  • iPhone settings now allow local/private Knowmarks servers to pass connection testing without an access token when the local API is running without API-key auth, while hosted alpha still requires token validation.
  • iPhone sync now coalesces overlapping foreground, network-restore, and manual retry triggers so the same pending share is not sent to the server more than once.
  • Stale Content now filters cached issue rows against the live Knowmarks row state, so items hidden for pending source cleanup do not reappear while Huey keeps trying to unstar or unsave them.
  • Source cleanup status now tracks older scheduled cleanup jobs and surfaces specific provider reasons, such as GitHub token permission issues, instead of collapsing them into a generic connector-credentials message.
  • Browser extension saves with meaningful captured content now heal older partial extraction rows instead of leaving them in Extraction Issues with a stale browser-capture recommendation.
  • Pulse now keeps Sources, Worth Opening First, and What Knowmarks Noticed in sync with the latest Brief, avoiding duplicate source picks and stale noticed cards after a refresh.

Added

  • Search result multi-select can now create a new Collection from the selected items, not just add items to an existing Collection.
  • Search now supports pruning terms with NOT:term or -term, plus Keyword and Semantic filter chips for narrowing result types.

Improved

  • AI-generated item summaries now lead with the saved item’s specific value instead of generic openers like “This GitHub repository,” making search results easier to scan.
  • The search multi-select Collection/Project picker now behaves like a normal menu: pressing Escape or clicking outside closes it without clearing the current selection.
  • Search result selections now persist while moving to the next or previous result page, so bulk actions can span more than one visible page.
  • Added an in-app Search operators reference so testers can see the available query syntax without leaving the dashboard.
  • Search relevance now gives more weight to exact and adjacent multi-word phrases while discounting broad corpus-wide terms, reducing noise for queries like “AI writing skills.”
  • Removed the old “All clusters” toolbar menu so search filters are limited to controls that clearly affect the current search results.

Fixed

  • The detail panel's Add to Space picker now uses the current Spaces labels and includes Connection spaces, instead of showing older Project/Topical/ Curated-only options.

Added

  • Added selectable table-style rows for Space detail views, making it easier to scan and act on grouped items.
  • Added clearer search result match labels so semantic matches and keyword matches are easier to understand at a glance.
  • Added Gmail-style search operators such as type:, format:, source:, space:, site:, after:, and before: so searches can be narrowed directly from the search box.
  • Added keyboard-friendly operator menus for bounded fields like type, format, source, and Space.
  • Added a running changelog so new features, improvements, and fixes have one durable place to land.
  • Added a marketing-site changelog page that publishes the tester-facing entries from this markdown file.

Improved

  • Search results now use the compact selectable table pattern, with tighter match pills and less visual clutter.
  • Detail pages now separate AI summaries, your own notes, captured source text, and related items more clearly.
  • Related-item "why" explanations are tighter and easier to scan.
  • Pulse, curated Spaces, and MCP tools got a round of polish so assistant-facing views line up better with the app.
  • Marketing screenshots behave better across smaller screens.
  • Updated the alpha weekly email workflow to point at this changelog when preparing tester updates.
  • GitHub Stars sync is now lighter during scheduled checks: recent stars can be picked up frequently while existing repo vitality is refreshed separately.
  • Stale content review now understands GitHub repo maintenance signals such as archived repos and long gaps since the last push.

Fixed

  • Permanent deletes now ask for confirmation in the frontend before removing items.
  • Sidebar pinning is now limited to Spaces and Notes, so ordinary saves no longer expose misleading pin controls.
  • Search match labels and pills were cleaned up after the table migration.

Added

  • Added a hosted alpha app tour to help new testers understand the shape of the product before they start saving.
  • Refreshed the alpha marketing site with current screenshots and clearer alpha positioning.

Improved

  • Cleaned up hosted alpha onboarding so setup points testers toward the right hosted flow instead of local/self-hosted assumptions.
  • Updated alpha docs and marketing copy for more accurate setup, privacy, and deployment language.
  • Prepared the alpha API and Space icon behavior for the hosted tester environment.

Fixed

  • Fixed the alpha worker healthcheck so the hosted worker reports health more reliably.
  • Fixed a Huey dispatcher issue that could break Sentry reporting for queued jobs.

Added

  • Added Knowmarks MCP Apps views so assistant clients can open richer Pulse and app-style surfaces.
  • Added an embedding bakeoff workflow, including redacted search-log evaluation export and a synthetic smoke run.
  • Added a dedicated LLM lane for Space title generation.

Improved

  • Matched the MCP Pulse app to the current Pulse view and removed duplicated brief prose.
  • Polished alpha frontend interactions, including content action wording and view-mode consistency.
  • Clarified Space membership and pin behavior across the app and APIs.
  • Improved markdown extraction and repair tooling for backfilled content.

Fixed

  • Fixed MCP Apps hydration in Claude Desktop.
  • Suppressed typo-driven query-gap noise so the app is less likely to overreact to simple misspellings.
  • Handled duplicate passage chunks during content processing.

Improved

  • Scheduled connector and governance refreshes now move through the Huey worker path more consistently.
  • Local Huey queue runtime behavior is more resilient during development and alpha operations.
  • GitHub connector failures now report more safely when an upstream request fails.

Fixed

  • Reduced noisy retry behavior for scheduled connector jobs.
  • Fixed command output wrapping for Huey dry-run commands.

Added

  • Added the Huey-backed job queue foundation for background Brief, connector, and governance work.
  • Added a combined local command that starts both the web app and worker for normal local use.
  • Added the LLM lane bakeoff harness and OpenRouter presets used to compare Brief, Pulse, and structured-output models.

Improved

  • Hardened Pulse brief generation and tightened the editorial layout.
  • Normalized search match explanations so keyword matches read more consistently.
  • Improved local server database handling to avoid WAL checkpoint stalls.

Fixed

  • Fixed intermittent dashboard search latency.
  • Fixed project dropdown line height.
  • Fixed CI failures around WAL handling and voice-guide changes.