Changelog
What shipped, day by day. The workstreams tab gives the higher-level read on where the product is moving.
July 12, 2026
Pipeline reliability & speed Single-source analysis now has recovery paths when a link yields useful evidence but no explicit thesis, and when the extractor labels a direct-source summary as ignored despite identifying the supplied URL as answering the request. Customers should see fewer empty or failed article-style and X reads when the provided source is factual, sparse, or not written as an argument.
Payments & metered billing Source-query payment challenges now honor the charge intent they advertise. Agents paying for a source read get a cleaner contract between the requested action, the wallet prompt, and the billable result.
Video, podcast & source analysis X post analysis now carries attached photos and videos through to the source record, with fallback handling for syndicated posts when native classification data is incomplete. Captured media bytes can also be archived durably, so visual source evidence is less dependent on remote URLs staying available.
Site, brand & public pages The know.fast homepage now says what it costs and what you get, up front: “Drop a link. Get cited knowledge back. For 1¢.”, a one-line packet description under the hero, and a note on why known links answer instantly for everyone at the same flat cent.
Research entities & personas The Steve Jobs persona gained deeper primary-material coverage across early interviews and authored letters. That makes the persona's answers less dependent on familiar summaries and more grounded in the source record behind the public figure.
Fixed
- Fix source-only zero-thesis recovery
- Fix direct single-url analyze extraction recovery
Changed
- the-porch: renga — the linked poem
- the-porch: the wide window
- test tritlo zero-thesis source-only incident
- Recover source-only zero-thesis synthesis
- Recover single-source zero-thesis analyze runs
- changelog: know.fast homepage copy (priced hero + packet line + once-for-everyone lede)
- know.fast home: priced hero + what-it-is tag + once-for-everyone compare lede
- changelog: narrate daily workstreams [skip-changelog]
July 11, 2026
Report quality & evidence fidelity Library recall now reaches the interactive research path: run chat can bring in related known sources as clearly labeled background, and agent recall can find semantically similar public and owned work before a new run is purchased. That makes follow-up questions and automated research less likely to start from scratch when Researcher already holds relevant evidence.
Pipeline reliability & speed Provided-source analysis now handles extraction-provider outages more gracefully, so a pasted article or link is less likely to collapse into a failed or empty run when one upstream fetch path is unavailable. Researcher can keep more customer-supplied evidence moving through the pipeline instead of treating transient provider trouble as the final result.
Site, brand & public pages Run and source pages now read brand identity from the same product bridge used by the rest of the public surface. Share cards, discovery metadata, and public handoff pages can stay consistent as Researcher, know.fast, and persona.energy evolve together.
Research entities & personas Persona and entity rebuilds now embed their searchable packets automatically after each index build. Freshly rebuilt expert corpora are ready for retrieval sooner, which makes persona answers and large-corpus browsing less dependent on a separate cleanup pass.
Changed
- payments: honor the advertised intent=charge on the run-budget/source-query rail
- steve-jobs persona: early-era interviews coverage run
- media byte archival: store captured media bytes in GCS, not just URLs
- steve-jobs persona: authored-letters completeness run
- sync analyze: X post media reaches the source (classification reuse + syndication fallback)
- X post capture: persist native media (photos/videos) into the library
- Recover zero-thesis single-source analyze runs
- changelog: refresh rolling windows [skip-changelog]
- steve-jobs persona: fit interviews topic under the 500-char run cap
- Steve Jobs persona: discovery + YouTube wiring and avatar
- changelog: narrate daily workstreams [skip-changelog]
July 10, 2026
Report quality & evidence fidelity Report quality work moved upstream into the source library: shared retrieval, claim representation, ranking fusion, and new quality gates now give research runs a stronger evidence substrate before writing begins. The net effect is better recall for relevant prior knowledge and fewer thin reports when the answer depends on material Researcher has already seen. That prior knowledge now also reaches the interactive surfaces: run chat quietly recalls related sources the library already holds as clearly-labeled background (never as run evidence), and research-memory recall returns semantically related known public sources alongside your own stored work — so agents can notice existing coverage before paying for new research.
Video, podcast & source analysis Podcast episode chips now open show-level coverage pages, so a single Apple, Spotify, or Overcast episode can lead readers to the broader show catalog when it can be resolved. That makes podcast knowledge less isolated and turns episodes into entry points for discovering adjacent source material.
Agent interop & the contract Agent-facing discovery surfaces are now generated and guarded from the live tool catalog, contract versions, brand URLs, pricing, and trial policy. Agents should see more consistent MCP, package, and onboarding metadata because the public contract can no longer silently drift from the running service.
Site, brand & public pages Researcher, know.fast, and persona.energy now share explicit brand manifests for public identity, pricing language, trial policy, social metadata, and storefront routing. Customer-facing pages and cards keep the same voice today, but future brand or price changes have one source of truth instead of scattered copy.
Research entities & personas Persona groups gained their first durable shape: seeded group records and a panel chat endpoint make it possible to ask questions across a curated set of personas rather than treating each persona as an isolated surface. This starts turning persona collections into collaborative research panels.
Autonomous factory & operations Factory workflows were mirrored into the Auto agent surface, making Researcher operations more discoverable as named automation rather than hidden repo machinery. Brand-level metrics also now show runs, spend, and billed activity by product surface, giving operators a clearer read on where usage and cost are coming from.
Changed
- Handle provided-source extraction outages
- changelog: refresh rolling windows [skip-changelog]
- evals: Phase 4 panel disagreement-preservation eval (persona groups)
- entity rebuild: embed packets automatically after every index build
- library recall: wire semantic recall into run-analyst chat + recall_research (WS2 lanes)
- library: stamp transcription provider cost on accession records
- ADR Phase 2: platform runs carry brand='researcher-now'; og/source-page read the brand bridge
- changelog: narrate daily workstreams [skip-changelog]
July 9, 2026
Report quality & evidence fidelity User-provided source analysis now keeps the source's own evidence instead of narrowing too early around the request wording. That means a pasted article is less likely to produce a thin or citation-light answer just because the prompt was framed narrowly.
Pipeline reliability & speed Fresh single-article reads can now return an early knowledge packet while the deeper report continues, and the single-source path skips expensive cross-source passes that do not add value. New links feel faster and avoid wasting budget on work meant for multi-source research.
Payments & metered billing know.fast read counts now match the visible activity feed: every resolved read is counted as a know, while free and paid reads still keep their separate billing meaning. The page, tab, and activity table now tell the same story about who knows a source.
Video, podcast & source analysis Publisher coverage pages now show what a source itself declares, from feeds and sitemaps to video channels, and mark which items already have knowledge pages. Readers can move from one analyzed link to the wider body of available work without forcing every item through extraction upfront.
Agent interop & the contract Agent reads for fresh articles now get useful early packets instead of waiting for the full long-form path, with clearer title handling and status semantics. Source pages and read-on-click flows also agree more reliably about whether a link is already known or still needs its own knowledge page.
Site, brand & public pages know.fast run pages added a nearby copy-source action, publisher chips now open coverage pages, and the Knows view uses one consistent label and count. The Hermes-facing demo page also moved into a more deliberate public presentation with a character-led hero and cleaner brand language.
Changed
- ADR Phase 2: brand-literal long tail — engine brand facts read the manifests
- library L4: URL-cache corpus core + claims subsystem come home (move-only)
- know.fast: podcast show origin pages — episode chip opens the whole show
- ADR Phase 2 metrics axis: brand as a first-class /metrics dimension
- ADR Phase 2 page-meta axis: run-page brand meta generated from manifests
- ADR Phase 2 voice axis part 2: know.fast site copy quotes the manifest price
- ADR Phase 2 contracts axis: agent.json structured sections guarded
- ADR Phase 2 contracts axis: researcher-now mcp.json is generated
- ADR Phase 2 contracts axis (first cut): .well-known discovery docs are generated
- worktree phase2 pricing trial
- ADR Phase 2 axes: pricing + trial policy read the brand manifest
- ADR Phase 2 start: brand manifests + engine/brands registry (identity, x402 card, flagship catalog)
- library recall: gate event carries raw env presence/value
- migrations: restore claim-clusters migration dropped in a concurrent merge
- library recall: always-emit stage event with gate diagnostics
- factory-workflows-to-auto: mirror 8 Centaur factory workflows as Auto agents
- library WS3: claim reconciliation pipeline (dark)
- library recall WS2: recall stage in run planning (flagged, fetch-avoidance metered)
- library recall WS1.5: results — claims+RRF adopted (MRR .281 -> .336)
- Reapply "Install your Auto team (#516)"
- Revert "Install your Auto team (#516)"
- Install your Auto team
- research pipeline: four report-quality gates from the Fable-diff comparison
- group-panel: fix root-tsconfig build errors (deploy was failing to promote)
- persona groups phase 3: panel chat v1 (POST /v1/groups/:slug/chat)
- persona groups: schema, repository, citrini desk seed (phases 1-2)
- library recall WS1.5: claim representation + RRF fusion (flag-driven eval)
- lib small debts
- tests: heal main — origin-chip expectation + stale hermes-pip contract version
- library recall: WS1 baseline recorded (recall@20 = 0.32)
- library embed backfill: ride out the TPM window instead of aborting
- scripts: symlink-safe entrypoint guards (silent no-op trap) + parity record corrected
- library recall WS1: the shared retrieval index (schema, backfill, eval)
- worktree library rag prep
- the-porch: hedge — postscript (fourth telling of the ruler)
- capture: recover full datasets behind paginated listings from embedded app data
- the-porch: the honest hedge
- library accession: research_packs carries org_id, not customer_id
- changelog: refresh rolling windows [skip-changelog]
- library L3: the accession record — every source is a catalog card
- The Library: home the platform corpus in engine/library/ (ADR addendum + L1 + L2)
- changelog: narrate knowledge surface updates [skip-changelog]
July 8, 2026
Payments & metered billing know.fast now separates genuinely billed reads from free prefix reads in the customer-visible signal, so agents and dashboards can tell when money actually moved. The new-user trial path also recovers cleanly instead of stranding someone after a failed or expired first attempt.
Video, podcast & source analysis Authenticated source access now runs through a registry of paywall credentials, so subscription-backed material can feed analysis without one-off wiring. Shared source pages also expose cleaner markdown for agent readers.
Agent interop & the contract Agent-facing know.fast calls now treat deferred links as active wait states rather than broken URLs, and the installable Hermes packages expose the same provider surface. Prefix-style reads also return clearer cost signals, so agents can branch on actual spend instead of guessing from a generic paid flag.
Chat & the run workspace Shared links in chat now render as compact previews, and persona chats read fresh X posts directly instead of failing behind a login wall. Mobile funding controls also fit the composer more cleanly, making paid follow-up less awkward on phones.
Site, brand & public pages Public surfaces got a practical polish pass: know.fast avoids broken-image flashes, X video labels are more accurate, entity report headings render cleanly, and persona pages keep consistent navigation through their proxied hosts.
Research entities & personas Persona coverage expanded with a new Jeremy Giffon configuration spanning interviews, X, and YouTube material, while public persona surfaces kept converging on clearer storefront-style presentation.
Fixed
- Fix the three prod-audit findings: trial dead-end, free GET reads, /s/:id markdown
- fix(know-fast): deferred link is a wait-state, not a dead URL — plugin 0.1.5
Changed
- resolve endpoint: keep the analyze-shape identity (same fix as #498)
- origin coverage: only analyze-shaped runs count as known
- know.fast: origin coverage pages — domain chip opens the whole publisher
- know.fast Knows tab: one number, one label — every read is a know
- know.fast/hermes: white ground, Hermes wording, character portrait hero
- changelog: refresh rolling windows [skip-changelog]
- know.fast/hermes: nav wordmark off-white on the blue field
- know.fast/hermes: Hermes-aesthetic demo page
- know.fast: copy-link chip next to the domain chip on run pages
- know.fast early packet: guard the artifact title against page-furniture headings
- know.fast deferred articles: early knowledge packet + slim single-source pipeline
- extraction: don't topic-filter evidence from user-provided sources
- link-context: forward subscriber cookies on persona chat link scrapes
- changelog: narrate agent source access and billing [skip-changelog]
- know.fast prefix-GET coda: billed signal is costUsd, not a charged flag
- authenticated-sources: registry-driven paywall cookies + Core Memory
- chore(know-fast): vendor hermes-repo copies at 0.1.5 (sync.sh output)
July 7, 2026
Payments & metered billing know.fast flat-fee reads now appear in Recent Transactions, so paid knowledge calls show up beside the rest of a customer's usage instead of hiding behind backend accounting. Persona marketplace listings also disclose both consult prices in the agent-facing payment shape before an agent pays.
Provider rails & failover Researcher now isolates X-related rate-limit pressure before it can slow unrelated customer work. When an external search rail is throttled, the system backs off instead of repeatedly retrying a constrained provider, keeping the rest of the queue healthier.
Agent interop & the contract know.fast is now easier to install and call from agents: package files expose a copy-ready prompt, the installable skill is the primary setup surface, and Hermes agents get both a Skills Hub package and a git-installable plugin. Fresh links can answer immediately with a deferred completion path, while existing share URLs resolve to their packet instead of asking the agent to re-analyze the same source.
Chat & the run workspace Run Analyst answers are better at absence claims: before saying a run does not mention something, the analyst now checks both the direct claim and the broader run evidence. That reduces false “not stated here” answers when the source material contains the idea in a different phrasing.
Site, brand & public pages know.fast pages and calls got smoother around first use: pasted-link visits can start directly on the knowledge page, the agent call-to-action is simpler, and article/X titles now use the recognizable source text instead of generic publication or handle labels. The public canvas also moved back to a cleaner white base with neutral hairlines.
Research entities & personas Paul Graham now has a dedicated public persona payment surface with marketplace-ready metadata and a standalone persona host, giving agents a concrete flagship persona to discover and pay for. A private Citrini entity also expanded persona coverage from a publication archive.
Fixed
- fix(persona.energy): move nav override into the entity styles leaf
- fix(persona.energy): match proxied persona-page nav to the homepage bar
- fix(chat): deposit CTA visible on mobile + ink styling; funding modal cleanup
- fix(persona-chat): read fresh X posts directly — Firecrawl can't pass the x.com login wall
Changed
- repo restructure: brand homes under apps/, channels in-brand, api folded into engine
- the-porch: neighbors — correction footnote (check the ruler)
- the-porch: gossip, fact-checked
- the-porch: neighbors
- the-porch: a found poem, and a doorbell (/porch skill)
- style(entity): style bare h3 headings in About report markdown
- feat(personas): add jeremy-giffon persona config (interviews + X + YouTube lanes)
- changelog: refresh rolling windows [skip-changelog]
- style(chat): deposit CTA inherits composer min-height — no bottom clipping on mobile
- style(know.fast): agent CTA uses the homepage robot mark instead of the amber bolt
- feat(chat): messenger-style link unfurl under shared-link messages
- know.fast polish: hero broken-image flash + X kind=video mislabel
- style(know.fast): composer matches researcher.now home chat composer; connect button flat white
- narrate changelog themes [skip-changelog]
July 6, 2026
Payments & metered billing The flat-price knowledge call now presents a cleaner wallet-payment challenge and discovery shape, so automated callers can see the price, supported payment protocol, and know.fast realm before paying. Failed or duplicate reads continue to avoid unnecessary charges while successful paid reads reconcile back to the visible Knows count.
Video, podcast & source analysis Single-source analysis now exposes a richer source package on run pages, with extracted markdown, evidence, files, and podcast transcripts in one inspectable place. Podcast, X, article, GitHub, and video links also share more of the same resolution path, so previously known videos avoid repeat transcription and source previews use the material people recognize.
Agent interop & the contract know.fast is easier for a cold agent to discover and try: the first read can happen without an opt-in step, anonymous calls find the supported API, and the response surfaces source packages and stable status links instead of forcing agents to scrape a browser page. Persona and run chats use the same link-ingestion path, so a shared URL becomes grounded context consistently across chat surfaces.
Site, brand & public pages know.fast pages now lead with stronger source previews, including web-article imagery and a hero thumbnail overlay, and the Knows tab uses the same compact table language as the rest of the product. The signed-in activity view stays live with readable ages and a count that matches what the page shows, while Researcher-only Positions & ideas stay off the knowledge-page experience.
Improved
- polish(know.fast): agent CTA is one simple button — bolt + label, homepage border voice
- polish(know.fast): package preview shows body text only + restrained preview caption
- polish(know.fast): source-package preview is text-only + drop the stray pre-footer rule
- polish(know.fast): Knows tab matches the activity-table design system + live age ticking
Fixed
- fix(workers): durable X-429 protection — lane-restricted workers skip global schedulers + search rate-limit circuit
- fix(x402): know.fast listing icon — raster PNG (Bazaar rehoster rejects SVG)
- fix(x402): persona listing metadata — real response shape + both consult prices disclosed
- fix(metrics): show know.fast flat-fee charges in Recent Transactions
- fix(deploy): self-deploy restarts only the frontline units enabled on the box
- fix(deploy): drop the futile global pre-drain; gate worker rolls on what workers actually run
- fix(know.fast): completed deferred articles enter the URL cache + pass the output contract
- fix(run-viewer): keyed row reuse in activity table — stop icon flash on poll ticks
- fix know.fast trade ideas leak
- fix(know.fast): resolve our own share URLs to their packet — never re-analyze them
- fix(know.fast): strip the publication-name suffix from article titles
- fix(know.fast): onboarding coda advertises the scheme-less prefix form
- fix(run/source-page): Vary on the HTML shell too — the edge was serving a browser's cached HTML to agents
- fix(know.fast): title X-post analyze runs from the post copy (sync Firecrawl path)
- fix(agent-detect): Accept without text/html is an agent on every page surface
- fix(know.fast): title single-X-post runs from the post copy, not "Post by @handle"
- fix(know.fast): kill the 'Redirecting...' dead-end for agent callers
- fix: analyze runs don't false-fail the output contract; knowledgeReady on statusUrl; machine 404 for bogus .md slugs; deploy watcher
- fix(know.fast): URL-prefix browsers auto-start the free flow — land on the knowledge page directly
Changed
- docs(workers): correct the scheduler-gate topology note — split fleets designate the host explicitly
- feat(integrations): git-installable know-fast Hermes plugin repo (j-s/know-fast-hermes)
- feat(integrations): know.fast skill for the Hermes Skills Hub
- feat(x402): paulgraham.persona.energy as the PG card host + bare-host redirect to persona page
- feat(x402): move Paul Graham card to paul-graham.persona.energy
- feat(x402): dedicated paulgraham.researcher.now origin — standalone Paul Graham card on agentic.market
- feat(x402): Paul Graham persona listed on agentic.market — concrete flagship Bazaar surfaces
- Run-analyst: absence-claim probe + dual-leg retrieval (fixes false 'not stated in this run' answers)
- feat(know.fast): onboarding pushes the installable skill — SKILL.md is what you install, agent.txt what you consult
- style: retire the warm light-mode ground — white page canvas, neutral hairlines
- test(hero): align website-fallback test with the async og-image resolver
- know.fast skill 0.1.1: teach the free read path up front
- docs(know.fast): SKILL.md channels teach the instant-defer contract
- feat(know.fast): every call answers instantly — fresh links always defer
- know.fast installable agent skill (SKILL.md + npm + skill-repo channels)
- feat(know.fast): Knows tab shows ALL activity — trial knows and free agent/browser reads as quiet rows
- feat(know.fast): agent CTA between hero and tabs — share/connect your agent, earned connected state, packet onboarding coda
- feat(persona): private Citrini entity via Substack archive manifest
- feat(know.fast): package files are agent-access — click copies a prompt for your agent
- know.fast: resolve recognizes in-flight knows (cold-audit fix)
- feat(know.fast): curl.md-inspired batch — URL-prefix surface, ?q= packet slicing, X-Know telemetry, live counter, vendored local extractor (dark)
- changelog: narrate know.fast source packages [skip-changelog]
- feat(know.fast): hero thumbnail overlay + source-package preview
- feat(know-fast): trial is automatic + invisible — no opt-in ('just be magic')
Removed
- drop stray --full-page artifact swept in by #455 merge resolution
July 5, 2026
Video, podcast & source analysis Speaker attribution on video and podcast transcripts is now roster-first: the pipeline reads the naming evidence inside the audio itself — roll calls, introductions, people addressed by name — builds a cast list, and resolves every speaker label against it. Garbled spellings of the same person merge into one identity, a name that isn't supported by the audio never ships as if it were certain, and role labels like Chair stay honest when the audio never names the person. On by default for every run. Speaker attribution got a second, smarter pass: after the first labeling, the pipeline now reasons over the whole cast at once to recognize when one person was transcribed under several garbled names and unify them — while refusing to merge genuinely different speakers (verified it correctly kept two different council presenters apart). On by default. Speaker labeling on multi-speaker video/podcast is now several times faster. A redundant second labeling pass (added before the newer roster + reconciliation steps existed) was measured to add no quality while dominating latency — dropping it ran 3-7x faster with equal or better results across council meetings, a town hall, and an interview. Podcast and video links now resolve through one shared media-adapter path across Researcher and know.fast, including stronger Apple Podcasts handling, so first-time podcast links reliably become transcript-backed runs instead of depending on surface-specific routing.
Chat & the run workspace Run chat reads shared links too: paste an article, X post, or video link into a run's chat and the analyst ingests it via know.fast and responds — the same behavior as persona chat, now uniform across surfaces.
Site, brand & public pages know.fast's first-time processing state is calmer and clearer: new links now show a white, compact status row with a subtle live work signal instead of a gray block, including reduced-motion support.
Research entities & personas Share a link with a persona and it reads it: paste an article, X post, or YouTube/podcast link and ask what they think. Known links answer instantly from know.fast; a fresh video is transcribed in the background ('give me a minute'), then discussed.
Improved
- polish(know.fast): "Knows (N)" tab + first-known counts as a know
- polish(knowfast): animate first-index processing state
Fixed
- fix(hero): og-image endpoint returns JSON, client sets img src directly
- fix(know-fast): URL cache matches videos by id — youtu.be ?si= links no longer re-transcribe
- fix(know-fast): agent discoverability — a cold curl-first agent can now find the API
- fix(know.fast): reconcile knows counter with paid-read log so chip == Reads tab
- fix(discovery): canonical x-payment-info = price + protocols (mppscan registration shape)
- fix(discovery): route /openapi/know-fast.json through to the engine origin
- fix(discovery): strip last flat intent/method fields from runs + persona x-payment-info
- fix(discovery): offers[] stands alone — drop the AgentCash price/protocols shape
- fix(discovery): offers[] only in x-payment-info — mppx validator rejects flat-field mixing
- fix(x402): allowlist /v1/x402/know for anonymous POST
- fix(know-fast): propagate "first to know" copy to the pip plugin + agent.txt (0.1.3→0.1.4)
- fix(know-fast): cold-audit fixes — fresh key per keyless trial read + fresh:true trialNote
- fix(know.fast): smooth skeleton loading state (kill the view flash)
- fix(know-fast): "first to know" copy on cold-start media + branded immediate reply
- fix(know-fast): silent session refresh, right-align nav, drop transcript suffix
- fix(podcast): centralize media adapter routing
- fix(x-capture): capture single X posts via X API, syndication fallback
- fix(analyze): actually transcribe podcast audio (not just scrape the page)
- fix(run-chat link): overlap resolve with retrieval + resolve off the user message only
- fix(know.fast home): keep returning readers signed in (refresh the Privy token)
- fix(test): persona-link-charge mock types (vi.hoisted, typed receipt param)
- fix(persona-chat link): X posts scrape inline (match analyze's X→article default)
- fix(know.fast YOUR LINKS): detect ytimg 120×90 placeholder for dead video thumbnails
- fix(know.fast YOUR LINKS): fall back to monogram when a thumbnail fails to load
- fix(persona-chat link): keyless-consult org fallback + reuse know.fast abuse caps
Changed
- feat(hero): resolve web-article OG image instead of a raw screenshot
- feat(payments): brand-aware MPP realm — know.fast challenges say realm=know.fast
- feat(discovery): MPP probe compatibility — the 402 is the front door for every method
- feat(know.fast): paid-reads feed = knows, abridged in-progress activity, poll-stable hero
- know.fast MPP discovery document for mppscan / mpp.dev
- chore(x402): Bazaar listing activation script
- feat(x402): know.fast Bazaar listing — flat 1¢ /v1/x402/know + full discovery metadata
- feat(know-fast): make the trial secret + opt-in — the 402 is the market segmenter
- feat(know.fast): Notion-style package files, drop inline evidence, restore reads feed
- know.fast: 10 free reads trial — seamless keyless agent onboarding
- test: fix 4 stale/non-deterministic tests reddening main's verify
- docs(billing): funded prod billing-test account + E2E process
- review fix: scheme-restrict artifact/header hrefs (defense-in-depth)
- feat(run page): Source package tab (extracted markdown + evidence + files) + podcast transcripts
- feat(podcast): support Overcast episode/share links (transcribe the audio)
- feat(run-chat): ingest shared links via know.fast (uniform with persona chat)
- feat(know.fast chips): hide reads, link the domain chip to its source
- feat(persona-chat): charge the flat know.fast fee inline for shared links
- feat(persona-chat): ingest shared links via know.fast (article + media)
- changelog: refresh rolling windows [skip-changelog]
- perf(transcripts): drop the redundant gpt-5.5 escalation re-label (default off)
- changelog: narrate know fast and media reliability [skip-changelog]
- changelog: speaker reconciliation pass
- review fixes: re-veto transitively-chained merges; turns-rewritten metric; \x1f exclusion separator
- feat(transcripts): LLM speaker reconciliation — global coreference pass, default-on
- review fixes: two-phase role-rename veto vs proposed state, low-confidence adoption gate, Speaker-N collision guard, roll-call co-occurrence veto, non-latin exact grouping, single-pass evidence
- feat(transcripts): roster-first speaker attribution — default-on for every run
July 4, 2026
Payments & metered billing Wallet payment sessions now open with enough deposit for a whole work-session of calls instead of exactly one, so agents stop paying channel-open overhead on every request — the deposit settles to what was actually spent and unspent funds are refunded. A used-up session now explains exactly how to close it and start a fresh one instead of failing opaquely, and failed analyses on flat-fee rails are never charged.
Agent interop & the contract know.fast now installs into Hermes agents in one step: pip install know-fast registers a know tool and a web-extract provider that speak the know.fast contract natively — instant cached knowledge packets, flat one-cent pricing, and stay-on-it polling for video and podcast transcription. The plugin now also carries payment challenges and returned agent keys through the setup flow, gives agents a free recovery path for deferred media runs, and caps waits so an extraction job cannot hang behind one long transcription. The agent contract itself also got a full UX overhaul: an agent's durable key now arrives in the response body of any paid call (shown once, at mint), deferred video and podcast runs can be polled through a public status link with no credentials, failures come back as a structured verdict that says whether a retry can work and whether any money moved (failed calls on flat-fee rails are never charged, and dead links answer instantly from cache for free), and text-only X posts now answer in seconds instead of waiting on the video pipeline. GitHub links now return the project's README with its real setup commands, and papers and PDFs carry their actual document titles. Installed agent clients now keep themselves current: every API response tells a client the latest published version of its own package and, when it is behind, the exact upgrade command to run — across know.fast, persona, and researcher.now clients. Version discovery docs now live at know.fast/.well-known and persona.energy/.well-known, and the nightly drift guard watches every published channel so no surface can silently go stale.
Site, brand & public pages know.fast signing in now stays where you are: login opens in place on every page, and the signed-in homepage becomes a simple dashboard of all your knowledge links with the paste box on top.
Site, brand & public pages The know.fast dashboard now shows only the links you actually ran through know.fast, in the familiar row format — thumbnail, title, the source link with one-click copy, and age.
Site, brand & public pages Cleaner know.fast knowledge pages: the Activity table gives the update text the room it needs (no per-event action column, tighter time), and the redundant Sources tab is gone since a knowledge page has a single source.
Site, brand & public pages know.fast knowledge pages now show a Reads feed instead of the internal pipeline log once a link is analyzed: when it was first known, and the running log of agents reading its knowledge since. While a link is still being analyzed, the live progress log stays.
Site, brand & public pages The know.fast Reads feed went live and complete: every read now counts — free browser reads, agents fetching the knowledge packet, and paid calls alike — and new reads stream onto the page the moment they happen, no refresh.
Improved
- polish(know.fast reads): read count joins the chip strip; drop the separate First-known line
Fixed
- fix(know.fast contract): scope the X-Researcher-Min-Plugin header — it versions researcher-now, not know-fast
- fix(persona-mcp): declare @types/node — clean-checkout builds failed, blocking the publish channel
- fix(know.fast reads): actually register migration 089 in the schema list
- fix(know.fast reads): review fixes — capture ordering, fire-and-forget, SSE hygiene
- fix(know.fast page): native YouTube embed hero + gate the summary to a teaser for anon
- fix(know.fast page): drop the redundant 'First known' line (chips own the metadata)
- fix(know.fast page): thread renderKnowChips/renderFirstIndex through the rendering context + render media header as hero
- fix(know.fast reads): brand-gate the endpoint + simplify read labels
- fix(know.fast): reweight Activity table + drop redundant Sources tab
- fix: persist no-speech metadata before the completion contract (root ordering bug)
- fix: no-speech transcript runs also exempt from the report-length contract
- fix: store no-speech transcript sentinel
- fix: no-audio runs pass the completion contract (short report is correct)
- fix: media runs with no audio degrade to a "no audio" packet, not a hard fail
- fix: X posts default to sync article path (X API tier 402s on tweet lookup)
- fix: PDF title heuristic picked copyright boilerplate (live follow-up)
- Fix short X post transcript fallback
- fix(know.fast mcp): know forwards to /v1/analyze (the real engine route)
- fix(know.fast mcp): scope the brand MCP to only the know verbs — links in, knowledge out
- fix(know.fast): guard row keydown against nested copy-button bubbling
- fix(pitr): address review — manifest-gated restore selection, fail-closed preflight, accurate factor
- fix(pitr): stream base-backup archive to GCS — stop requiring 1.5x cluster size of local disk
- fix(site-nav): wait for cold Privy init before modal login; button feedback
- fix(know.fast): review fixes — pagination cursor, auth-event races, gate CTA modifiers
- fix(know-fast plugin): 0.1.1 — iain-review money-path + loop-bound fixes; know.fast challenge-mode health probe
Changed
- review fixes: guard min/upgrade fields in discovery docs, exempt /mcp from 426 short-circuit; changelog entry
- feat(agent surfaces): always-latest version system — client version-echo loop + drift guard coverage for know.fast and persona
- feat(know.fast): complete Reads capture + live SSE tail (v2)
- feat(know.fast): close every knowledge relay with "⚡️ Knowledge loaded"
- feat(know.fast): Reads feed + First known on knowledge pages
- feat(know.fast page): domain/date/knows chips, prominent link thumbnail, first-index state
- feat(metrics): know.fast unit economics — first-index cost, break-even, reads/link
- review: cache-hit knowledgeReady symmetry + replay/throw tests
- feat(know.fast): inline the knowledge packet on fresh articles — one call, one answer
- docs+contract: agent UX overhaul surfaces (session deposits, body-borne keys, failure contract, X/GitHub/PDF quality)
- Agent key: mint on the MPP/tempo rail, deliver in the body; deferred runs get keyless statusUrl
- know.fast: real PDF/arXiv titles + never advertise a 404ing evidence.json
- Analyze failures: structured error contract, vendor sanitization, no-charge failure cache
- Payments: multi-call session deposits + machine-actionable session_exhausted 402
- analyze: X statuses only defer as video when the post actually has video
- know.fast: GitHub-aware extraction, verbatim repo commands in packets, capped first response
- feat(metrics): aggregate know.fast revenue, cost, and runs
- feat(know.fast): brand-attribute runs + researcher-format dashboard rows
- feat(persona.energy): one-sentence agent setup prompt, persona.energy links
- changelog: refresh rolling windows [skip-changelog]
- feat(know.fast): in-place modal login + signed-in dashboard homepage
- obs(speed): record prune-audit drop stats as a run event
- perf(speed): prune-list extraction audit (EXTRACTION_AUDIT_PRUNE)
- perf(speed): slot pool + hedged duplicates for parallel window extraction
- perf(speed): index transcript-reuse lookup + parallel window extraction
- chore(changelog): narrate know.fast agent plugin [skip-changelog]
- feat(speed): direct YouTube caption fetch via InnerTube, Supadata fallback
- feat(know.fast): Hermes plugin — pip install know-fast (know tool + web-extract provider)
- perf(engine): tranche B — parallel labeling batches + chunked ASR (both flagged off)
- docs(engine): record tranche-A review trade-offs at their call sites
- perf(engine): tranche A — poll-first captions, trade-ideas ∥ report, media recall skip, job wake
July 3, 2026
Pipeline reliability & speed Entity index rebuilds are now serialized and deduplicated: a burst of completing ingestion runs coalesces into one queued rebuild per persona instead of many concurrent full rebuilds. Interactive persona chats also get priority over bulk research and large-corpus style retrieval avoids full scans, so live answers stay responsive while background corpus work scales.
Provider rails & failover Production monitoring now probes the embeddings provider directly every few minutes, so an exhausted embeddings account pages immediately instead of surfacing hours later as degraded persona retrieval. Analyst answers and citation passes can also choose the fastest measured host for the same model, improving answer latency without changing the model customers receive.
Video, podcast & source analysis know.fast launched — a single-purpose surface where anyone (especially agents) sends a link and gets structured knowledge back fast: a live knowledge page for people, and a token-efficient markdown packet for agents with the summary and key claims inline plus pointers to the full text, graded evidence, and timestamped transcript. One POST in, one packet out, wallet-payable without an account.
Agent interop & the contract Analyze runs' markdown export became a compact knowledge packet built for agent relay, and branded API surfaces now rewrite every self-URL to the calling product's host — an agent talking to know.fast lives entirely in know.fast URLs. Personas also learned to read shared links: send any persona a URL in chat and it comments on the actual content, reusing stored transcripts for previously analyzed videos and fetching fresh articles live.
Chat & the run workspace Persona conversations now feel better tuned to the surface they happen on: Telegram answers are shorter by default, compact source links replace pasted URLs, and final prose is delivered before slower source cleanup finishes. Persona memory can carry useful context across sessions for the same customer, while group chats avoid personal memory and balance chatter.
Site, brand & public pages Persona.energy is cleaner as a public directory: the list refreshes quickly after new bots or personas ship, sorts between usage and A-Z, and keeps each row focused on the person and the chat action. Persona pages on the microsite now hide research-plumbing tabs, keeping the experience centered on asking the modeled person.
Research entities & personas Telegram feedback capture: when the team asks a user for feedback through a persona bot, the user's next reply is recorded as feedback and acknowledged — never consumed as a paid question. Operators send asks (or arm capture for one already sent) and read responses from one place.
Research entities & personas Personas now greet first-time visitors with starter questions: each persona generates ~6 corpus-grounded example questions from its own profile and report at build time, and every surface offers them — tappable chips on the persona page, inline buttons on the Telegram bots (/start, /help, and right after linking), and a starterQuestions field for agents on persona listings. On Telegram the buttons behave like a real product: a tapped question is echoed into the chat and the answer replies to it, the tapped row flips to a checkmark so it can't double-bill, a dice button pages through the full list in place, and each answer offers the persona's suggested follow-up as a one-tap next question.
Research entities & personas Winston Churchill and Aristotle joined the persona fleet, expanding Researcher beyond contemporary founder and investor voices into primary-source public-domain corpora. The builds added stronger curation for catalog stubs, misattributions, classic translations, and direct full-text ingestion, so historical personas can answer from original material instead of loose web summaries.
Autonomous factory & operations Groundwork landed for splitting heavy persona building onto a dedicated machine: workers can now be scoped to claim only interactive work or only build work, so customer conversations never compete with corpus ingestion for the same box. The metrics overview now answers operator questions directly — total platform sources, customer funds, users, signup activity, answer length, consult channel, and provider cost — while painting instantly with public data before admin-only sections resolve.
Improved
- polish(know.fast): mobile compare puts the 1¢ card first
- polish(know.fast): liveline green (#22c55e) for the timer + copied pill
- polish(know.fast): hero breaks before 'agent knowledge instantly.'
- polish(know.fast): green 0.6s stopwatch on the know.fast card
- polish(know.fast): balance the compare cards
- polish(know.fast): raw card mirrors the packet mock; real-time DIY clock
- polish(know.fast): compare timers + real document thumbnails
- polish(know.fast): raw-vs-instant compare — bullets, file thumbnails, time
- polish(know.fast): sender names above demo messages (Discord/Slack style)
- polish(know.fast): SKILL CARTRIDGE on one line
- polish(know.fast): slim the hero demo so the paste box stays the CTA
Fixed
- fix(engine): knowledge-ready gate is mode-only
- fix(engine): knowledge-ready milestone actually fires (review round 2)
- fix(know.fast): carry the brand signal on a query param — OG branding actually fires
- fix(know.fast): media runs are now cache-visible (the real duplicate bug)
- fix(know.fast): deferred responses demand the agent stay on it
- fix(know.fast): canonicalize YouTube URLs in the link cache
- fix(know.fast): brand link-preview meta — no more 'Researcher' unfurls
- fix(know.fast): un-bork hero + full page restructure
- fix(know.fast): full-width cartridge (root cause) + centered hero/composer
- fix(know.fast): center section headings + widen cartridge to 22rem
- fix(know.fast): cartridge width chain, Sam pfp, scheme-less input
- fix(know.fast): revert cartridge skin, wider canvas, single-row box, canonical marks
- fix(know.fast): cross-caller media coalescing — no duplicate transcriptions
- fix(know.fast): round-2 review fixes + demo/nav polish + selling points
- fix(know.fast): review fixes + no-block browser flow + hero polish
- fix(know.fast): center the hero headline; larger nav emoji
- fix(know.fast): run page resolves clean know.fast/<slug> URLs
- fix(know.fast): iain-review fixes — paywall leak, rewrite bounds, auth gate, injection hardening
Changed
- chore(engine): observable knowledge milestone — unconditional event with gate fields
- feat(know.fast): light knowledge-page hero — title, source link, large media
- feat(engine): single-source fast lane — effort gate, review trim, knowledge-ready milestone
- feat(know.fast): branded OG images — white bolt card + real-metadata run cards
- copy(know.fast): 'ask me anything.' — no orphaned 'it.' on mobile
- copy(know.fast): trace closes with 'Knowledge loaded'
- feat(know.fast): simplest possible knowledge pages + white canvas
- feat(know.fast): 'Connect your agent' pill CTA under the composer
- feat(know.fast): agent trace mirrors the real relay
- feat(know.fast): demo in the fold + green copy bloom
- feat(know.fast): frenzy-style animated rainbow border on the $0.01 card
- copy(know.fast): compare heading — Frontier knowledge for 1¢
- retrigger vercel build for know-fast (#320 missed)
- feat(know.fast): real-cost compare + Leopold demo + cartridge fixes
- feat(know.fast): cost-comparison section + platform strip fixes
- feat(know.fast): fold + below-fold polish batch
- feat(know.fast): die-cut sticker bolt on the skill cartridge
- feat(know.fast): balanced fold — CTA under headline, demo | cartridge pair
- Telegram feedback capture: operator asks with unbilled reply intake
- feat(know.fast): platform strip in the selling section
- feat(know.fast): Firecrawl-style square link card + blue go button
- feat(know.fast): one cent for everything — flat $0.01 per call
- copy(know.fast): hook — Helping agents turn links into knowledge instantly
- feat(know.fast): the verb is know — inline packet, /v1/know alias, one-liner install
- feat(know.fast): root-POST API + global URL cache; nav emoji brand + hero hook
- design(know.fast): single-viewport fold + Setup-for-agents copy control; branded MCP identity
- design(know.fast): white page background (researcher's white token)
- design(know.fast): own identity on the researcher system
- design(know.fast): rebuild on the researcher design system
- Promote brevity default to all persona surfaces (eval-gated)
- chore(changelog): know.fast launch + knowledge packets + persona link reading [skip-changelog]
- feat(know.fast): forward /brand/* to the engine (brand API mounts)
- feat(know.fast): links in, knowledge out — branded analyze surface
- Eval: concision reuses groundedness answers when both metrics run
- Starter generation: prefer the analyst stage (flagship-pinned) over agent
- Persona starter questions: build-time cold-start fix (web chips, agent payloads, Telegram buttons)
- Handoff doc: persona starter questions (per-persona, build-time, all channels)
- changelog: refresh rolling windows [skip-changelog]
- chore(changelog): narrate persona and telegram updates [skip-changelog]
- Telegram prose-first delivery: send at prose-final, edit sources in
Removed
- drop worktree-local test config + build info from the repo
July 2, 2026
Site, brand & public pages Menus now open as bottom sheets on phones. The account menu, run filters, and per-run actions all slide up from the bottom of the screen with a dimmed backdrop instead of floating as small desktop-style popovers, making them easier to read and tap on mobile.
Research entities & personas The first Telegram persona bot canary is ready for Paul Graham: a Telegram chat or group can set up an existing Persona account through persona.energy, ask paid grounded persona questions with /ask or a bot mention, and receive final answers through the same durable persona chat and billing path as the web app. The setup link now makes the email-code step explicit, keeps both code-step actions full width, avoids Telegram webview zoom on input focus, and ends with a minimal "Done, go back to Telegram" status instead of an account-management card. Telegram persona bots also graduated from the single-bot canary to a registry: every persona can now get its own bot through one env-held config entry (Stanley Druckenmiller is the first addition), with per-bot webhooks, command menus, and chat buttons provisioned by a single script.
Added
- Add 'Chat on Telegram' buttons for personas with live bots
- Add Telegram /logout + rename link command to /login
- Add Paul Graham Telegram bot
Improved
- Soften answer length discipline: cut padding, never substance
- Move persona disclaimer above the stats strip
- Show provider cost per row in /metrics Recent Transactions
- Make USDC deposit the primary funding path; card checkout beta-labeled
- Simplify Telegram link completion flow
- Polish Telegram link form on mobile
- polish(agents): setup prompt to its floor — trigger + agent.txt, 110 chars
- polish(agents): one-sentence setup prompt; publish script snapshots origin/main
- Polish Persona Telegram setup links
- Route Telegram webhooks through Vercel
Fixed
- Fix persona memory ops schema for OpenAI strict mode
- Harden persona chat session logic: recent-context window, uuid-param 404s, turn-status scoping
- Harden persona chat against prompt injection + prompt extraction
- fix(entities): iain-review fixes — lock hygiene, bounded HTTP waits, dedup merge
- fix(entities): kill the same-entity rebuild stampede (queue + mutex)
- fix(alerting): monitor OpenAI embeddings + surface provider errors
- Fix Telegram/Discord link page freezing on 'Finishing setup'
- fix(persona-energy): load menu-sheet.css so the account menu sheets on mobile
- Fix Persona Telegram link route
- fix(analyze): video always defers fast; slim agent setup prompts; contract 2026-07-02
- fix(css): stop prose section-spacing leaking a phantom top band onto app tables/grids
- fix(backup): bound base-backup + db-dump uploads with timeout
- fix(ops): unembedded check must query the app DB, not postgres db
Changed
- OpenRouter provider throughput routing for analyst answer + citations
- Style-fuel: engage the GIN text index, don't scan the whole corpus
- Metrics overview: honest Sources total, customer funds, user stats, skeleton + fast load
- feat(persona.energy): hide Evidence and Runs tabs on persona pages
- Persona dignity guard: prompt clause + mechanical obscenity backstop
- feat(persona): add Aristotle (classic-translation treatises)
- Metrics consult Channel column + drop homepage per-row Telegram links
- Telegram runbook: cross-check registry username against getMe after install
- Telegram answers: compact hyperlinked sources instead of pasted URLs
- Concision: closing-recap tic only counts on over-target answers
- Calibrate concision recap detector: paragraphs, not punchy closers
- Telegram brevity hint (eval-gated) + answer-length on /metrics
- Concision metric for the persona fidelity suite
- persona.energy homepage: 60s ISR for the persona list
- chore(changelog): 2026-07-03 — Churchill persona, rebuild dedup/serialization, embeddings monitoring, worker claim-kind split [skip-changelog]
- feat(deploy): builder-VM split scripts (entity building off the prod box)
- feat(worker): RESEARCHER_WORKER_CLAIM_KINDS — per-box job-kind claim filter
- Persona magic memory v1: reconciled cross-session memory per customer
- test: sync job-leasing + account-dashboard tests with Telegram bot landing
- Telegram: no balance talk in groups — bot just asks for more credits
- Telegram persona bot registry: any persona gets a bot via env config
- persona.energy persona pages match the homepage width
- Per-persona business metrics: cost, latency, success rate on /metrics
- Persona cost observability + Telegram brand mark on chat buttons
- Auto-link Telegram chats for senders already linked privately
- Warn when Telegram Group Privacy blocks group mentions
- Telegram: eye-reaction ack instead of 'Asking...' reply; tighter persona answers
- Regenerate changelog
- feat(persona): add Winston Churchill (oratory + public-domain prose)
- feat(web): dropdown menus become bottom sheets on mobile
- Neutralize account link fallback copy
- Rename agent handoff action
- Proxy Persona setup link route
- docs(payments): document MPP precompile protocol + rollback in AGENTS.md; add drain runbook to ADR
- chore(payments): default MPP_SESSION_PROTOCOL to precompile (canary-verified)
- Tune Telegram persona bot setup copy
- feat(payments): mppx 0.8.4 precompile session migration behind MPP_SESSION_PROTOCOL flag (default legacy)
- feat(payments): MPP as fallback rail (credits primary, treasury on 402)
- feat(ops): prod health-check alerting (disk, OpenRouter, WAL, unembedded)
July 1, 2026
Payments & metered billing Per-query source reads now have wallet-native payment coverage, so an agent can pay to retrieve one evidence package without opening a full research run. Persona chat funding also refreshes balances correctly after deposit, making low-balance recovery feel immediate instead of stuck.
Agent interop & the contract Agents can now open Researcher run, persona, and source links as native markdown, and source pages can return the full evidence package as structured data. That gives agent clients a supported way to read cleaned text, transcripts, citations, and synthesis without scraping browser pages.
Site, brand & public pages Persona.energy became a fuller public entry point for the persona layer, with persona-branded navigation, legal links, social preview imagery, a calmer light default, and an interactive "How it works" explainer. The public shell now feels like a coherent product surface rather than a thin proxy.
Research entities & personas The persona experience now has its own standalone front door, installable agent path, and richer visual explanation of how persona evidence moves through Researcher. Public persona pages also present cleaner navigation and social previews, making persona corpora easier to share with both people and agents.
Autonomous factory & operations The operations metrics overview is easier to scan: recent billing transactions now use the full dashboard width, so long run titles and customer identifiers do not squeeze the table into a narrow column.
Fixed
- fix(metrics): widen recent transactions table
- fix(deploy): deploy-web.sh — stamp version.json on CLI deploys + kill unbound-var crash
- fix(billing): closing the Privy card checkout is not an error
- fix(metrics): show time of day in Recent Transactions
- fix(source): style the metered lock panel; bound the website body in a preview frame
- fix(account): match the persona surface — white ground, cool-grey panels
- fix(backup): WAL archiver must fail loudly, never hang
- fix(chat): surface anonymous 402/401 as a visible in-thread sign-in CTA
- fix(repo): untrack accidental node_modules symlink (absolute machine path)
- fix(chat): dead "Sign in to chat" + starters — empty messages layer ate clicks
- fix(worker): claim interactive chat turns ahead of bulk research packs
- fix(persona.energy): header underline full-width (flex off the <th>)
- fix(chat): make composer + content column fill the chat dock width
- fix(payments): forward auth/payment headers to VM from the source-page function
- fix(payments): resolve optional auth on public source routes so owner/admin/funded aren't 402'd
- fix(persona.energy): /how-it-works header + copy to 13px system text, de-mono
- fix(persona.energy): home intro (Persona + tagline) to 13px, matching the table
- fix(persona.energy): remove double footer on /how-it-works + de-mono the home link
Changed
- tune(persona-latency): raise lever-1 per-packet cap 1600->6000
- feat(persona-latency): faster citation-resolution model (lever 5, off)
- feat(persona-latency): quick-turn answer-model routing (lever 3, off)
- feat(persona-latency): prompt-prefix caching (lever 2, off)
- feat(persona-latency): quick-turn evidence context shrink (lever 1, off)
- feat(sources+metrics): true claims-count column; external/admin split; deposit records
- feat(payments): skip-charge-on-empty + retrieve /quote; harden agent-key header
- feat(deploy): deploy-web.sh — safe origin/main-only Vercel production deploy
- feat(metrics): card-funding analytics — checkout funnel events
- feat(payments): content-lock the public entity listings (close bulk scrape)
- feat(persona-suite): --bank-file for fixed A/B question banks
- content(persona.energy): trim implementation specifics from how-it-works
- feat(metrics): persona-usage chart + recent-transactions table on Overview
- feat(persona-latency): stage-level latency instrumentation (lever 0)
- perf(persona-chat): expansion at low reasoning effort — same model, 37% faster
- revert(persona-chat): expansion stays on the flagship — mini models fail the retrieval A/B
- design(og): smaller, more minimal persona card
- perf(persona-chat): route query expansion to a fast model — cuts pre-answer silence
- feat(entity): run-page-gray stats, How-it-works CTA, disclosure; Inter readout
- feat(worker): push-wake chat turns via pg LISTEN/NOTIFY — no 5s poll wait
- feat(worker): reserved interactive lane — chat turns never wait on bulk slots
- feat(billing): route card on-ramp through Stripe (Privy useFiatOnramp)
- feat(nav): "My account" first in the avatar menu + Persona login copy
- feat(billing): fund account with a card — Privy fiat on-ramp
- content(persona.energy): how-it-works — add "Reasoning from their principles"
- feat(persona.energy): make "Ordered by usage" a right-aligned sort toggle
- feat(persona.energy): slim persona list to name + hover "Chat →", disclaimer card
- feat(youtube-seed): configurable own-channel duration floor (include Shorts)
- feat(persona): rank persona.energy list by usage
- feat(persona): Alex Hormozi persona (own-channel + X + writings + interviews)
- changelog: refresh rolling windows [skip-changelog]
- feat(payments): meter full source content at $0.25 (free preview) to stop scraping
- feat(persona): Sam Ovens persona + YouTube own-channel lane
- changelog: narrate persona agent source work [skip-changelog]
- feat(persona.energy): proxy /<slug>.md -> researcher.now/e/<slug>.md (agent markdown)
- feat(agents): serve markdown natively when agents open run/persona/source links
June 30, 2026
Fixed
- fix(persona.energy): mobile persona table — show Sources not Evidence, wider
- fix(persona.energy): proxy /terms /privacy /cli + link footer legal without trailing slash
- fix(theme): default color-scheme to light + move persona-home boot into <head> — kills load flash
- fix(og): rename buildCartridge wordmark param (collided with const wordmark -> SyntaxError)
- fix(persona.energy): OG image points direct to researcher.now (proxy was 4.8s -> scraper timeout)
- fix(funding): dead top box + balance not refreshing on persona-chat deposit modal
- fix(persona.energy): restore Persona OG + title, right-align nav login, logo-only larger mark
- fix(build): exclude integrations/npm-persona-mcp from the root tsc build
- fix(persona.energy): catch-all proxy must be single non-empty dotless segment
- fix(metrics): persona usage shows actual charged (chargedUsd), not always-0 billable_usd
- fix(og): reserve bottom band so 2-line entity role never overlaps wordmark
Changed
- feat(persona.energy): persona-branded nav + legal footer on proxied pages; strengthen terms/privacy
- feat(agents): source packages as JSON from the shareable /r/:slug/sources/:id URL
- feat(persona.energy): animated conduit + traveling packets + obvious selection
- feat(persona.energy): diagram as the /how-it-works OG image
- feat(persona.energy): distinct machine-part shapes per architecture layer
- feat(persona.energy): "How it works" page + interactive architecture diagram
- feat(og): fully persona-brand the kind=persona cartridge (person glyph + persona.energy wordmark)
- feat(payments): native-x402 per-query source retrieve endpoint
- feat(persona.energy): home nav with login/account + theme toggle (theme-aware)
- feat(metrics): paginate + filter the Users tab by customer type
- feat(persona.energy): person-icon logo, home nav (login/account + theme toggle), Light default for everyone
- feat(persona.energy): fix login proxy loop + Hermes/OpenClaw cartridge logos, researcher.now footer/favicon, Persona title + cartridge OG
- feat(payments): $0.01 per-query paywall on agent source reads
- metrics: Users tab = full Privy roster + persona spend
- feat(persona.energy): self-contained persona experience + persona MCP/skill/cartridge
- feat(metrics): persona (entity) chat usage on /metrics
- feat(og): minimal person-card OG image for entity pages
- feat(personas): add Elad Gil persona seed config + avatar
June 29, 2026
Video, podcast & source analysis Paper and PDF links now route into single-source analysis the same way videos, podcasts, articles, and posts do. Dropping an arXiv, preprint, or PDF URL into the composer starts from that document instead of treating it like a broad web crawl.
Chat & the run workspace The source library is now a live workspace instead of a static explorer: recent sources load from production data, filter by type, search by title or origin, and page through older evidence without bogging down. The same research composer sits at the top, so browsing prior evidence and starting the next question now happen in one place.
Research entities & personas Persona coverage expanded with Jessica Livingston and ultimape, both with recognizable profile imagery, while entity tables shed low-value type labels so the dashboard focuses on the person and their evidence. Source lists also use cleaner origin labels and platform icons, making large persona corpora easier to scan.
Changed
- changelog: narrate live source workspace [skip-changelog]
- perf(sources): fix slow /sources load — index + semi-join + keyset pagination
- feat(personas): add ultimape avatar
June 28, 2026
Pipeline reliability & speed Source selection is more fault-tolerant: if a small retry batch cannot produce a structured model answer, Researcher keeps the strongest ranked candidates for the final merge instead of failing the run. That means a shaky triage step can still preserve useful evidence and complete the research path.
Fixed
- fix(sources): clean origin labels (strip kind: prefix) + platform favicons
Changed
- feat(personas): wire ultimape (@ultimape) persona
- feat(sources): wire /sources to real data — live GET /v1/sources/recent
- feat(composer): route arXiv/PDF/paper URLs to simple single-source analysis
- feat(sources): composer placeholder → "Research anything…"
- feat(personas): add Jessica Livingston avatar
- feat(sources): use the dashboard chat composer as the hero
- feat(sources): match dashboard width, real thumbnails, drop Type column
- feat(sources): realtime source list — Vercel client page replacing the VM explorer
- feat(personas): capture Jessica Livingston's interview questions as signal
- feat(personas): wire Jessica Livingston (YC co-founder, Founders at Work, The Social Radars)
- feat(entities): drop the Type column from the entities table
- changelog: narrate source triage fallback [skip-changelog]
June 27, 2026
Pipeline reliability & speed Source-heavy runs and account pages are faster to revisit: reports load before lower-priority activity work, previews are prepared ahead of time, and very large persona updates avoid more memory limits. Extraction recovery also keeps delayed provider results and retryable outages from turning into misleading missing-source states.
Payments & metered billing Persona chat now shows the cost of a message before the user sends it and turns an empty balance into a clear deposit action instead of a failed composer. Wallet-native agent payments now cover article analysis and expert persona consults as well as research runs, settling before billable work begins and keeping paid requests tied to the wallet that funded them.
Provider rails & failover Video discovery now uses multiple providers instead of depending on one YouTube path, with extra hardening when YouTube throttles transcript or metadata lookups. Provider outages also keep clearer retry and failure boundaries, so customers are less likely to see a thin source set with no explanation.
Video, podcast & source analysis Single-source pages are now full web-app surfaces: they use the same width as the run page, show website bodies inline when available, and provide direct actions to open or copy the source. Media discovery is also more resilient because Researcher can fall back across providers when one video source is quota-limited or throttled.
Agent interop & the contract Wallet-native agents can now pay directly for article analysis and persona consults, not only deep research runs. Those calls return durable ownership and credentials after payment, so an agent can fund a single task and continue through the supported Researcher contract.
Chat & the run workspace Chat now handles more real-world edges: the mobile sheet stays clear of the keyboard, the live cue simply says when Researcher is writing, and streamed answers are no longer replaced by a weaker cleanup pass. Underfunded persona chats also switch to a deposit action instead of leaving the user in a composer that cannot send.
Site, brand & public pages The signed-in dashboard is easier to scan as an account grows: filters now cover source type, text search, and Research-versus-Analysis work, with custom inline dropdowns that match the rest of Researcher. Deposit dialogs also got a calmer layout, keeping payment actions clearer without pulling the page out of proportion.
Research entities & personas Persona surfaces are calmer and more trustworthy for paid consults: the page shows per-message cost, offers a deposit path when balance is low, and keeps the answer the user watched stream instead of swapping it out mid-turn. Entity profile summaries also drop more internal indexing labels, keeping the public profile focused on readable source context.
Fixed
- fix: tolerate small triage shard null results
- fix(payments): x402 settle-before-create — close the unpaid-compute race
Changed
- changelog: narrate wallet-native payment surfaces [skip-changelog]
- feat(payments): brand the x402 Bazaar / agentic.market listings with the Researcher logo
- docs(cto-review): record HTTP route-file modularization + fix split-induced drift
- feat(payments): defer x402 analyze to the async run (no synchronous gateway timeout)
- chore(payments): generalize x402 bootstrap script to any surface (X402_BODY)
- refactor(http): split MCP tool handlers by family (no behavior change)
- feat(payments): extend native Base x402 to analyze + persona consults; dashboard-first login
- chore(payments): x402 operational scripts — live 402 smoke + bootstrap payment client
- feat(payments): native Base-USDC x402 run route (CDP facilitator) for agentic.market
- changelog: narrate daily workstreams [skip-changelog]
June 25, 2026
Provider rails & failover Source extraction now preserves provider and run-control results that settle just after a per-source timeout. Source-only ingestion can still record a failed source record for an outage, while ordinary research runs keep propagating retryable run-control failures.
Video, podcast & source analysis X post media now carries through as source thumbnails, including backfilled previews for earlier runs. Source-heavy pages can show the image that customers recognize from the original post instead of a generic card.
Chat & the run workspace Chat streaming finished its consolidation across run, job, entity, topic, and global chat surfaces. Answers now use one steadier live-update path, making reloads, completions, and follow-up turns behave more consistently across the workspace.
Research entities & personas Persona coverage expanded with Peter Thiel and Fred Wilson corpora, including essays, blogs, X archives, interviews, and recognizable profile imagery. Entity evidence also filters transcript evidence to the named speaker by default, so persona retrieval is less likely to blend in interviewer or guest voices.
Fixed
- fix(persona-chat): drop voice-repair pass that swapped a worse answer mid-stream
- fix(chat): streaming cue reads "Writing…" (was "Composing…")
- fix(chat): mobile sheet is keyboard-aware (gap, vanishing message, stranded stream)
- fix(video-discovery): harden yt-dlp source against YouTube throttling
- fix(entity): drop internal Index/Report stats + utilitarian persona-chat status copy
- fix source extraction outage retry cap
- fix source-only extraction outage recovery
- fix(entity): stop leaking internal "stale" status to readers
- fix source-only extraction outage draining
- Retry serialized provider outages
- fix(entity-index): rebuild the dropped HNSW index on the bulk path (blocker for enabling fast-rebuild)
- fix(deploy): timeout-guard prebuilt-dist download so a hung gsutil can't stall deploys
- fix(entity): resolve About-report citations into real domain/favicon pills
- fix(entity-index): disable embedding carry-over by default (HNSW maintenance cost)
- fix(entity-index): make embedding carry-over deadlock-safe + best-effort
- fix(entity-report): cap corpus-merge claims for very large personas (context overflow)
- fix(chat): surface provider outages honestly instead of "no valid structured answer"
- fix(rebuild): bake a large heap into entity rebuild paths (large-persona OOM)
- fix(chat): stop empty-state starters flashing on open (idempotent render)
- fix(x-archive): default first-window end_time to now-120s (X API 10s rule)
- fix(x-archive): type endTime as string|null (build fix for prior commit)
- fix(x-archive): bound the first backfill window to now (recently-inactive accounts)
- fix(chat): persistent "Composing…" cue while a persona answer is still streaming
Changed
- chore(payments): Base x402 (CDP) foundation — ADR locked, env flags, SDK deps
- feat(persona-chat): per-message cost + insufficient-balance Deposit CTA
- Handle late source extraction settlements
- feat(topic-chat): utilitarian plain status copy (match persona chat)
- feat(acquisition): multi-provider video discovery (fix YouTube quota exhaustion)
- docs(factory): warn deploy.sh targets auto-research-centaur-v1, not centaur-run
- feat(dashboard): filter signed-in runs by source type + text search
- factory(dashboard): adopt canonical CSS + lightweight Activity feed
- docs(adr): scope native Base x402 settlement as an additional option
- Send chat on Enter in entity + topic chat docks
- docs: record pd-ssd boot-disk migration + HNSW flags + maintenance gotchas
- Handle source-only extraction provider outages
- test(entity-index): bulk-rebuild path regression tests + read flags at call time
- perf(entity-index): reorder embedding carry-over to run after the HNSW drop (fast-rebuild path)
- test: fix 6 stale assertions drifted from shipped behavior
- perf(run-list): precompute run thumbnail onto research_packs (fix slow signed-in dashboard)
- perf(entity-index): incremental packet-carry scaffolding (DEFAULT-OFF) + HNSW embed-timer race fix
- perf(run-page): load the report first, not behind activity + idle prefetch
- Classify source extraction outage incidents
- perf(entity-index): HNSW bulk-rebuild lifecycle (drop during embed, build once) — gated
- feat(web): /persona — animated, holographic engine diagram (vertical)
- docs: codify the derived-state-precompute pattern for all agents
- perf(entity,runs): precompute corpus counts/cost instead of aggregating on every read
- refactor(web): /persona — in-system title + simpler corpus→engine headline diagram
- eval(persona): persona-suite can A/B a steered/alternate answer model
- feat(persona): add Fred Wilson avatar
- perf(entity-index): batch packet insert + carry over embeddings + raise embed concurrency
- feat(web): /persona explainer page — system diagram + how-we-build + how-it-works
- eval(persona): multiple prompt-steer strategies (mechanical/immersion/both) + control lift
- eval(persona): gemini voice experiment across distinct-voice personas
- perf(entity): precompute per-origin source breakdown instead of scanning on every page load
- eval(persona): gemini-2.5-flash voice-steering experiment + askPersona A/B overrides
- eval(persona): model-sweep benchmark + provider usage observer
- eval(persona): reasoning_effort A/B latency benchmark
- feat(llm): env-gated reasoning_effort for the analyst model (latency A/B enabler)
- feat(chat): uniform full-width suggestion cards + persona avatar in empty state
- feat(persona): disambiguation hint for the YouTube appearance filter
- changelog: narrate daily workstreams [skip-changelog]
- feat(persona): wire Fred Wilson persona (A VC blog + X + interviews)
June 26, 2026
Payments & metered billing Wallet-native pay-per-call is live: an agent can fund work directly from a stablecoin wallet with no account, and each call settles on-chain — priced so every call stays net-positive.
Agent interop & the contract Agents can now onboard with no human and no signup: a paid call with no key returns a payment challenge, the wallet pays, and the response hands back a durable API key — now over MCP as well as HTTP. The skill is also published on npm (@researcher-now/skill) and PyPI (researcher-now) so agent runtimes can install it in one step.
Site, brand & public pages Published a full Terms of Service and Privacy Policy with a plain acceptance notice, stating clearly that Researcher is experimental and provided as-is.
Fixed
- fix(chat): don't run the fabrication guard on the live-streamed answer
- fix(chat): decouple answer prose from citations — kill the 75% in-flight rewrite
- fix(funding-modal): calmer, better-proportioned deposit layout
- fix(entity): collapse summary stats to one row (drop Accepted + Evidence)
- fix(funding-modal): generic deposit copy for non-run surfaces
Changed
- refactor(http): extract MCP tool dispatch into a handler map (no behavior change)
- feat(source-page): serve the run Source page from Vercel (client-rendered), not VM HTML
- feat(source-page): run-page-aligned width, inline website body, surface-action CTAs
- refactor(http): finer-grain split of metrics + entity route modules (no behavior change)
- refactor(http): modularize three oversized route files (no behavior change)
- diag: log guard-enabled + normalize result
- diag: full bracket of answer length through every hop
- diag: bracket answerEvidence streamed-vs-returned + entity done len
- diag(textstream): temporary log to locate where streamed answer is lost
- docs(transcript): document speaker-labeling router + cost-report tooling
- feat(scripts): cost-report attribution + speaker-label A/B harness
- perf(transcript): route speaker labeling to gpt-4.1, escalate panels to gpt-5.5
- feat(dashboard): Researcher-style filter dropdowns (replace native selects)
- feat(persona-chat): replace composer with a "Deposit to chat" button when broke
- feat(dashboard): add run-kind filter (Research vs Analysis) + inline dropdowns
June 24, 2026
Report quality & evidence fidelity Reports are easier to verify in place: grouped citations open a full evidence drawer, hover previews stay readable for longer source lists, and live run pages begin filling the Sources tab before the run finishes. Discovery also got more selective, so date-sensitive prompts and authority-heavy topics are less likely to be pulled off course by weak or misleading sources.
Pipeline reliability & speed Runs now surface more of their work as it happens and avoid more silent failure modes: active runs can show sources before completion, streamed answers no longer downgrade back to waiting states, and extraction problems are reported instead of quietly dropping evidence. Large source and persona collections also keep paginating instead of hitting hidden caps.
Provider rails & failover Provider failures are more visible at the evidence boundary: when extraction providers are unavailable, Researcher reports the outage instead of making it look like sources simply disappeared. That gives customers a clearer reason for gaps and a better path to retry or continue later.
Video, podcast & source analysis Single-source link runs now have better visual previews, including website screenshot fallbacks when a source does not provide a usable lead image. Source pages also scale better for large corpora, so individual articles, posts, or media sources remain reachable even when a persona has thousands of items.
Agent interop & the contract Agent-facing surfaces got sturdier: topic pages now include a ready-to-copy agent handoff, and the published agent packages gained fuller tool coverage so external agents can inspect Researcher work through the supported contract instead of scraping pages.
Chat & the run workspace The chat workspace is harder to strand: silent streams now time out, streamed answers no longer fall back to an older waiting state, and mobile sheets keep the composer clear of the browser toolbar. Recents also bring cross-platform persona sessions into one list, making prior conversations easier to resume.
Standing topics & monitoring Topic watches can now reuse shared search and RSS registry results while paginating through longer X result sets, reducing duplicated collection work as a topic grows. Topic pages also gained a cleaner prompt/status layout and an agent handoff action, making a watch easier to inspect or pass to another agent.
Site, brand & public pages Researcher now has a site-wide System/Light/Dark theme with a true dark surface, cleaner account controls, and polish across public pages, dashboards, metrics, and mobile tables. The signed-in dashboard can page through older runs, so past work is reachable without relying on a short initial list.
Site, brand & public pages Runs and the dashboard now show a real preview image instead of a blank tile: a link run uses the page's own lead image, falling back to a live screenshot of the page, and a run anchored on a single post surfaces that post's attached photo or video. Text-only posts with nothing to show keep a clean lettered placeholder.
Research entities & personas Persona and source-scale browsing got stronger: larger authored archives can flow through the standard persona builder, Casey Handmer now has a recognizable profile image, and large persona source pages no longer fall over at old row limits. Persona chat also gained a unified cross-platform Recents list, making prior persona conversations easier to pick back up.
Fixed
- fix(entity-chat): open a fresh session for the viewed entity, not the last one
- fix(build): relative /shared import in chat-run-stream.js (it's in the esbuild bundle)
- fix(chat): a turn's verdict is authoritative-only — never a client idle timer
- fix(persona): trim Peter Thiel run topics under the 500-char API limit
Changed
- docs(chat): consolidation COMPLETE — global /chat/ onto the shared engine, all 4 surfaces [skip-changelog]
- test: global chat shared-engine ref-bridge integration test
- chat: migrate global /chat/ analyst onto the shared chat-turn-engine
- feat(entities): speaker-attribution filter ON by default + unit test
- feat(evals): per-entity speaker-attribution health metric + CI guard
- feat(entities): extend speaker filter to transcript chunks (close retrieval leak)
- refactor(chat): Phase 3b (job) — job-page analyst chat onto the shared engine
- feat(entities): speaker-attribution filter for transcript evidence (flag-gated)
- perf(entity): cap page runs to 25 and parallelize payload includes
- feat(persona): add Peter Thiel avatar
- refactor(chat): Stage 4 — delete the dead bespoke SSE readers (Phase 3a leftovers)
- feat(persona): add Peter Thiel "writings" gap-fill discovery run
- feat(persona): wire Peter Thiel persona (essays/lectures + interviews)
- changelog: refresh rolling windows [skip-changelog]
- refactor(chat): Phase 3a (run) — global run chat onto the shared stream-turn reader
- refactor(chat): Phase 3a (job) — job-page chat onto the shared stream-turn reader
- docs(chat): record Phase 2 shipped + re-scope phases 3–4 in the consolidation ADR
- refactor(chat): Phase 2b — flip run-analyst answer stream to cumulative answer_delta
- x-search: capture post media as the source thumbnail at write time
- refactor(chat): Phase 2a — forward-compat run + job clients for cumulative answer_delta
- changelog: regenerate page after merge
- changelog: run/dashboard thumbnails (lead image, screenshot, post media)
- refactor(chat): Phase 1b — one shared turn engine for entity + topic chat
- run thumbnails: backfill X post media as the thumbnail
- changelog: narrate daily workstreams [skip-changelog]
- feat(discovery): authority-weight candidate scoring + content-farm suppression
- refactor(chat): Phase 1a — share the pure stream helpers (terminalEventKind/streamOutcome/chatPollDelay)
June 23, 2026
Report quality & evidence fidelity Clicking a grouped citation chip now opens that citation's sources in the same panel as the end-of-report Sources list — a sidebar on desktop, a bottom sheet on phones — so you can read every cited site, title, and excerpt for a claim without losing your place. Hovering still gives a quick peek — and that peek now stays put while you move into it and scrolls through long source lists instead of slipping away.
Pipeline reliability & speed Long runs now preserve more completed work when something interrupts them: deploys drain active jobs before restarting, stalled sources are time-bounded, provider outages are detected sooner, and resumed synthesis reuses finished report and merge passes instead of starting those expensive steps over.
Agent interop & the contract The agent distribution loop is now active instead of advisory: the daily surface guard checks the website, skill copies, npm package, Hermes plugin, public tool docs, and published channels, then republishes stale committed-main artifacts before opening an issue. Hermes also exposes the same source-package retrieval path as MCP, so agent clients can inspect full source evidence without falling out of the supported contract.
Chat & the run workspace Chats recover faster after a reload because the page keeps the live authorization state instead of waiting through repeated bridge checks before reconnecting. That makes in-progress replies and run-scoped conversations less likely to look stalled when the browser refreshes. The positions-and-ideas table also reads correctly on a phone again: it was being forced into the compact one-line row layout meant for the activity and sources lists, which crushed its narrow columns until short labels like "LONG" wrapped one letter per line. It now stacks each idea into a clean labeled card — instrument, side, thesis, evidence, and type — matching how the other report tables collapse on mobile.
Standing topics & monitoring Topic follow-up now stays fast as topics grow: saved evidence is searched through a per-topic semantic index with a bounded fallback, so source-grounded answers can start streaming without waiting on a large corpus scan. The topic page also reads more clearly: the prompt now sits flush beneath the status panel as one continuous card (matching the run page) with the action row below it, and a new "For agents" action copies a ready-to-paste handoff so another agent can follow the topic through Researcher's public tools.
Site, brand & public pages The account menu was consolidated into one calmer surface: starting a new run or a new topic now lives at the top of the menu, and the light/dark theme picker tucks into a collapsible row instead of sitting open all the time. The separate plus button was retired, so the top bar is just your balance and avatar.
Autonomous factory & operations Public changelog narration now runs as a daily batch instead of reacting to every push, so maintenance stays current without noisy automation churn. Those changelog commits also use a deployment-recognized author, keeping the public site update path reliable.
Fixed
- fix(report): make the citation hover popover scrollable and stickier
- fix(mobile): runs-list ⋮ menu, chat copy icon, gray sent bubble, full-height sessions drawer
- fix(chat): one no-downgrade reconcile so streamed answers can't revert to "Thinking"
- fix(discovery): stop misreading seed dates & forecast horizons as publish-date filters
- fix(caps): address the remaining flagged caps (paginate or raise)
- fix(chat): don't let the opening click close the chat (time-gate click-outside)
- fix(report): stack the trade-ideas table on mobile instead of crushing it
- fix(caps): remove silent corpus-truncation caps on large personas
- fix(chat): full-height mobile chat sheet + composer clear of the iOS toolbar
- fix(chat): close the chat when clicking outside it (entity + topic)
- fix(source-page): paginate the canonical content bridge (no 5000-row cap)
- fix(source-page): direct source lookup so large personas don't 404
- fix(build): import theme.js relatively in site-nav-account.js (esbuild can't resolve web-absolute paths)
- Harden agent surface publisher
- fix(chat): keep the header close button inline (group actions in one grid cell)
- fix(chat): idle watchdog so a silent SSE stream can't hang the composer
- fix(run-chat): in-chat sign-in CTA for logged-out empty state
- Fix agent surface sync publishing
- fix(run-page): populate Sources tab live during a running run
- fix(web): light-mode polish — ink primary buttons, white status table, flat chatbar
Changed
- docs(adr): scope the chat-streaming consolidation
- docs: Persona Gap-Finder exploration — best question to expand a persona
- feat(report): grouped citation pill opens its sources in a drawer
- run thumbnails: website-screenshot fallback for single-source link runs
- chat: review fixes for unified sessions (log swallowed errors, drop dead fallbacks)
- chat: unified cross-platform sessions list in the persona Recents sidebar
- dark mode + mobile: bump line visibility; run summary 3-col on mobile
- web(nav): consolidate account dropdown — create actions + collapsible theme
- feat(dashboard): paginate the runs list ("Load more") so all runs are reachable
- dashboard runs list: tidy Actions to icons, Age column, monogram fallback
- topics: attach prompt to the status card + add "For agents" action
- runs: derive run thumbnails from the backfilled source lead image
- nav: move theme chooser from the top-level nav into the account dropdown
- persona: add Casey Handmer avatar
- metrics: pipeline performance/parallelism/resilience tracking in /v1/metrics + dashboard
- Extend factory workflow lease for surface sync
- changelog: refresh rolling windows [skip-changelog]
- persona: uncap Casey Handmer authored crawl (real archive is 377 posts)
- feat(web): dark mode uses a true-black ground with lifted grey components
- docs(adr): X pagination + search/rss read-path shipped; both flags live
- topics: search/rss registry read-path + X next_token pagination
- persona: wire Casey Handmer into the standard all-channel builder
- extraction: surface provider outages (no silent source drop) + env-tunable concurrency
- changelog: narrate daily factory cadence [skip-changelog]
- factory: run changelog narrator daily
- changelog: narrate latest customer-facing updates [skip-changelog]
June 22, 2026
Report quality & evidence fidelity Reports now make evidence easier to inspect without distracting from the read: citations are grouped more quietly, source chips lead with recognizable site icons, and the Sources drawer exposes the underlying material when you need it. The writer also became more prose-first around tables and can carry source media and image galleries into the report, so visual evidence is available without turning the brief into a dump of raw artifacts.
Pipeline reliability & speed When many topics watch the same source — a shared search or feed — Researcher now fetches it once and reuses the result across topics rather than paying for the same lookup repeatedly, so monitoring stays efficient as more topics come online. Background turns also recover more cleanly after restarts or stale running states, reducing the chance that customer work appears stuck after deploys or worker interruptions.
Payments & metered billing Standing topics now meter the real cost of every background scan and show running spend right on the topic page. The cost of keeping a topic current is metered and billed back to its owner at the same rate as research runs, batched into periodic charges rather than per-scan, and a topic whose balance runs short pauses until it is funded again instead of quietly accruing.
Video, podcast & source analysis Media and source ingestion are now on by default for more research paths: Google Doc seeds can enter the corpus directly, podcasts can reuse existing transcripts, and media-heavy runs only show a missing-transcript state when the run is actually centered on media. That makes mixed-source research feel less brittle while keeping the run viewer focused on the evidence type that matters.
Chat & the run workspace Run, entity, and topic conversations now share steadier streaming behavior and a clearer action bar, so follow-up questions can move between asking and agent-oriented actions without each surface inventing its own controls. Chat status also reconciles against the authoritative run state, reducing false failures after a reply actually completed.
Chat & the run workspace The chat dock now looks the same on every surface: run, persona, and topic chats share one flat panel instead of the run chat carrying its own drop shadow, so moving between them feels like a single consistent workspace. The general chat composer also shows the same scope chip as the in-page chats — when a conversation is anchored to a specific run you can see that context and clear it to drop back to a general chat in one click.
Standing topics & monitoring Standing topics became a real monitoring workspace: clean handle-based URLs, shared-source reuse, visible scan spend, and balance-aware pauses make them easier to share, scale, and pay for honestly. Topic owners can now ask private, source-grounded follow-up questions from the topic page, with streamed answers drawn from the topic's saved evidence.
Standing topics & monitoring Asking a topic a follow-up question now returns in seconds instead of sometimes taking a couple of minutes: a topic's saved evidence is indexed for fast semantic search and the lookup is time-bounded, so grounded answers stream back quickly and fall back gracefully rather than stalling on a large topic.
Site, brand & public pages Topics now live at clean, shareable handle-based addresses — your topic reads as a name-and-topic path rather than an account-settings URL — laying the groundwork for public topic profiles. Existing links keep working and redirect to the new form.
Research entities & personas Prior persona chats are reachable again: a sessions expander returned to the persona chat header, so you can open the list of your earlier conversations with a persona and jump back into one whenever you want, while the chat still opens as a clean single column by default.
Research entities & personas Persona chat is sturdier: your messages no longer vanish after sending — a finished answer is kept even if the follow-up sync hiccups, and a failed turn now leaves your question in place with a clear error instead of wiping the exchange. Behind that, persona answers fail far less often: the model gets room to finish long replies, a real second model backs up the first, and when a structured answer can't be produced the chat now falls back to a plain-prose answer rather than erroring out.
Research entities & personas Persona chat feels alive while it works and can't silently hang: the wait now shows a rotating, persona-flavored status with a ticking timer instead of a frozen "Getting ready", the answer streams in smoothly character by character rather than in big sudden blocks, and a stalled generation is now caught and ended on both the server and the client so the chat can never get stuck mid-answer with no way out. The chat dock also lost its drop shadow for a cleaner page.
Research entities & personas Persona chat now survives a page reload mid-answer: if you refresh while a reply is still generating, the chat re-attaches to that live turn and keeps streaming it to completion instead of abandoning it. And a reply you watched stream in is no longer quietly replaced by a shorter one — when a follow-up citation check would otherwise regenerate a briefer answer, the longer answer you already saw is kept (with any stray citation cleaned up).
Fixed
- fix(topic-chat): worker owner check read snake_case customer_id (always undefined)
- fix(topics): registry X batch start_time must not be the claim timestamp
- fix(entity): move copy-session-id let declarations above first render()
Changed
- feat(web): dark mode (System/Light/Dark) + semantic token consolidation
- review fixes: payment-outage detail detection + content-sensitive merge fingerprint
- pipeline: reuse the persisted report on synthesis-resume instead of re-running it
- extraction: per-source wall-clock budget so one stalled source can't pin the stage
- runs: faster outage backoff + fail-fast on payment outages (Lever 6)
- deploy: drain in-flight runs before restarting workers (Lever 1)
- chat UX consistency + topic-chat speed: flat dock everywhere, run-scope pill in global chat, per-topic HNSW retrieval
- test: init-crash guard — mount chat controllers in happy-dom, fail on a TDZ
- chat auth: cache the live token so reload-resume isn't gated behind 3x bridge waits
- changelog: narrate recent workstreams [skip-changelog]
- reports: filter decorative images out of galleries + stronger image prompting
- acquisition: fetch seed URLs embedded in instructions (incl Google Docs)
- report writer: substance-first structure, no meta-leakage, image galleries
- feat: "Ask this topic" chat (owner-private, source-grounded, SSE)
- persona chat: stream the first pass of deep turns
- reports: inline image galleries + corpus report-rewrite lab
- test: fix accumulated test debt on main (mocks/assertions drift)
- topics: separate TOPIC_REGISTRY_READ_ENABLED so the registry warms before reads
- topics: cross-topic X dedup + global OR-batching + read-path cutover (dark)
- chat: unify the composer scope-pill into one shared renderChatScope component
- run viewer: don't treat a research run with a few videos as media-centric
- chat: cool the chat shell to neutral white (drop the warm-panel tint)
- topics: show would-be billed cost on the page even when a topic settles free
- changelog: topic scan-cost billing, @username topic URLs, shared-source fetch
- topics: @username URLs, scan-cost billing, cross-topic shared fetch + watch-source registry
- report UI: grouped subtle citations + Sources drawer + roomier type
- chat: migrate persona/entity chat to SSE + authoritative-status reconcile (no false "Failed")
- X ingestion: sanitize NUL/lone-surrogate + skip-resilient per-tweet (live path) + ADR
- source media: store for every source/domain at write chokepoint + backfill
- report citations: favicon caching net + lead image in the expand panel
- report citations: lead each source chip with the domain favicon
- report quality: kill citation hash-flash, harden tables to prose-first, capture source media
- x-per-tweet backfill: sanitize NUL/lone-surrogate text + skip unsalvageable tweets
- x-per-tweet backfill: index-only rebuild (skip profile/report LLM regen)
- X sources: one tweet per source (stages 1-3)
- run viewer: only show the "No transcript" state for media-centric runs
- research: media + transcription on by default, ingest Google Doc seeds, reuse podcast transcripts
- docs(adr): source-atomic-unit RESUME notes — clean-stop handoff + open task list
- worker: release in-flight leases on SIGTERM; deploy skips worker restart for worker-irrelevant changes
- entity chat: reaper for stale running turns (terminal-event backstop)
- run pages: Ask / For agents action bar (shared surface-actions component)
- factory: hard per-turn timeout around agent_turn (durable wedge fix)
- persona chat: resume in-progress turn on reload + keep the longer answer
- persona chat: smooth streaming, live status+timer, un-freeze stalled turns, flat dock
- entity sources: media-row redesign (thumbnail + summary + internal link)
- factory: pause bug-check, changelog hourly, ship activity pagination
- entity chat: persona avatar in the scope chip + removable to general chat; Ask opens the dock directly
- persona chat stability: stop messages vanishing + make answers fail far less
- entity pages: action bar replacing the always-on chat composer
- persona chat: bring back the sessions expander in the modal
June 21, 2026
Provider rails & failover Provider outages now pause affected research runs and resume them after backoff instead of spending retries immediately or ending with a misleading failure. Customers are more likely to see work continue once credits, rate limits, or availability recover rather than having to restart the run.
Video, podcast & source analysis Source collections can now be enumerated from publisher-declared structures and compared with what Researcher already holds. That sets up clearer coverage views: which pages, videos, podcast episodes, or posts are already in the corpus, and which gaps still need ingestion.
Agent interop & the contract Agents can now pull a single source's full package directly over MCP: cleaned source text or transcript, graded evidence, synthesis, and citation handles back to the exact source and moment. Persona answers and standing topic briefs now preserve the source links and conversation memory agents need to move from a cited claim to the underlying evidence without oversized extraction blobs.
Chat & the run workspace The "Thinking" indicator now shimmers through a soft sunrise palette — pale blue warming through tan and peach to coral and pink, sweeping across the text instead of a flat grey pulse. It gives in-progress runs and replies a little more life while staying muted and on-brand, and it quietly steps aside for anyone who prefers reduced motion.
Chat & the run workspace Chat on a phone is dialed in: the chat opens as a bottom sheet you can swipe down to dismiss, the keyboard no longer zooms the page when you tap the box, the composer and buttons sit clear of the home indicator and notch, and tap targets are bigger. The same conversation works in the run chat and the persona chats.
Chat & the run workspace Run and persona chat now share a calmer, more durable workspace: softer motion, fade-in messages, clearer starter prompts, warm surfaces, and visible scope chips keep follow-up questions anchored to the report or expert in front of you. The chat window is also easier to leave and resume, with Escape support, focus returning to the launcher, and in-progress replies that feel active without reading as an error.
Site, brand & public pages The whole interface was warmed: surfaces and borders shifted from cool grey-white to a soft warm off-white across every page. It's a subtle change that makes Researcher read calmer and more considered without touching contrast or legibility.
Research entities & personas Persona chat got a cleaner, calmer header and a more reliable composer: the header now leads with the persona's avatar and name instead of a verbose title and source tally, the input bar sits flat without a drop shadow, and the send button no longer gets stuck inactive after your first message — while a persona is answering it becomes a stop control, so you can cancel and immediately ask a follow-up.
Improved
- Update changelog for compact source packages [skip-changelog]
Fixed
- harden: engine-wide redirect-safe fetch helper (SSRF #23)
- fix(scripts): backfill keyset on id only (uuid PK), not (created_at,id)
- fix(scripts): backfill keyset cursor must be ISO, not Date.toString()
- fix(db): migration 064 — UNIQUE(authors.name) for the ON CONFLICT upsert
- fix(sources): trim source package metadata.json to scalar fields
Changed
- docs(adr): C6.3 content cutover FLIPPED LIVE (both gates pass) + Stream 8 unblocked
- persona build: canonical-coverage verification step + document the cutover
- C6.3 gate: reframe to "no content LOSS" + position-robust similarity
- C6.3 gate: distinguish cosmetic live-source drift from real content mismatch
- stream 6 C6.3: content read cutover via canonical (DARK, legacy-fallback)
- feat(chat): swap "Thinking" shimmer to the muted sunrise palette
- persona chat: avatar+name header, no source count, flat composer, working stop button
- docs(adr): content backfill done (cutover unblocked) + perf pass + scan roadmap
- perf: lite /s/:id content bridge + source_snapshots(source_id,ordinal) index
- #26: store source content inline in canonical snapshots (unblocks C6.3 + S8)
- docs(adr): stream 7 substantially done (explorer + package routes, leakage verified)
- stream 7 (C7.3): global Source/Origin explorer (/sources + /o/:id)
- stream 7 (C7.4): run + topic source-package routes (reuse the packager)
- docs(adr): stream 6 gate PASS + 5b live + content cutover/stream 8 blocker
- stream 6: parity harness pages through ALL refs (fix 1000-cap false-diverge)
- stream 6 (C6.1+C6.2): canonical read path (dark) + per-holder parity gate
- source page: run-page-style header (thumbnail, back, chips, actions) + Artifacts tab
- feat(sources): redesign Source page as tabbed surface (like run pages)
- docs(adr): Source pages + tap-through DONE; next is dual-write canary [skip-changelog]
- feat(job): run viewer source rows tap through to the run-scoped Source page
- feat(sources): tappable Source pages — global /s/:id + run-scoped, repoint rows
- docs(adr): Stream 5 dual-write (dark) DONE + authors dropped [skip-changelog]
- feat(sources): Stream 5 dual-write (dark) + divergence fix + drop authors (v1)
- feat(ui): warm palette app-wide + dial in mobile chat UX
- docs(adr): Stream 4 backfill DONE — canonical graph live, -39.1% dedup, diff-gate PASS [skip-changelog]
- docs(changelog): restore the iridescent "Thinking" shimmer entry
- feat(scripts): canonical backfill + verify-diff (Stream 4 C4.1/C4.3)
- feat(db): P1 canonical schema migration 063 + canonical-sources repo (Stream 3)
- feat(sources): wire origin enumeration deps + coverage CLI (Stream 1)
- docs(adr): Stream 0 v0 Source page DONE (live); Streams 1-2 in flight [skip-changelog]
- feat(sources): v0 Source page /s/:entityId/:sourceId (Stream 0)
- docs(adr): autonomous execution plan — sequenced chunks, subagents, gates
- docs(adr): explorer page specs (Source/Origin/Author) in P5 + re-render
- docs(adr): consolidation gains + landed vocabulary; render ADR to a site page
- docs(changelog): narrate source collection coverage [skip-changelog]
- feat(sources): container enumeration + coverage; full task list in ADR
- feat(sources): platform-generic identity resolver (adapter registry)
- docs(changelog): narrate chat affordance durability [skip-changelog]
- feat(chat): completeness + durability pass on chat affordances (4 workstreams)
- docs(adr): container axis over fuzzy + system-wide subagent-fleet testing
- docs(adr): resolve the four source-atomic-unit decisions
- docs(changelog): merge thinking shimmer narrative [skip-changelog]
- feat(chat): iridescent multicolor "Thinking" shimmer
- docs(adr): source as the atomic unit + ship the identity resolver
- docs(changelog): refine run chat narrative [skip-changelog]
- feat(chat): smoother run-chat affordances (Palate-inspired)
- docs(changelog): narrate get_source_package MCP tool [skip-changelog]
- docs(changelog): narrate source package MCP access [skip-changelog]
- feat(mcp): get_source_package — agents pull a source's full delivery package
- docs(changelog): narrate source package evidence [skip-changelog]
- feat(sources): wire evidence.json into source package (graded claims/quotes)
- feat(sources): per-source package — adopt Palate's source-delivery format, improved
- feat(chat): thinking shimmer on the "Thinking" indicator [skip-changelog]
- chore(changelog): narrate provider outage recovery [skip-changelog]
- feat(runs): provider outages resume with backoff instead of failing misleadingly
Removed
- remove accidentally-committed --full-page screenshot artifact
June 20, 2026
Agent interop & the contract Researcher is now self-describing when an agent is given the product domain: compatible clients can discover the MCP server and available research tools without a hand-copied endpoint. That makes the first connection path simpler for article analysis, deep research, and persona consults.
Improved
- Update changelog narrative for agent discovery [skip-changelog]
- Update changelog for mobile run timing [skip-changelog]
Changed
- feat(agent-discovery): serve real MCP descriptor at the paths agents probe
June 19, 2026
Report quality & evidence fidelity Run answer grounding got stricter about what actually improves accuracy: targeted retrieval for flagged finance facts was evaluated and kept out of the production path after it failed to rescue the remaining errors. The guard now also catches unsupported figures while an answer is being generated and gives the model one focused retry, so hard numbers are more likely to be grounded before the final cleanup pass.
Payments & metered billing Funded persona consults now use the same per-answer payment rails as wallet-native keyless consults, so every successful quick or deep answer is authorized, settled, and accounted for. Paid consults can also return immediately for slower async work and settle only after the answer succeeds, keeping expert persona calls responsive without charging failed answers.
Video, podcast & source analysis Analyze runs now ask for a direct, answer-first summary of what the source argues, with core claims, findings, figures, and takeaways cited to the source. Run pages also collapse duplicate run-level artifacts, so customers see the final brief and synthesis without repeated intermediate copies.
Agent interop & the contract Agents can consult expert personas and read standing topics as first-class tools: ask Paul Graham, Warren Buffett, Elon Musk, and more a question and get an answer in their voice with citations, or pull the living brief from any of your standing research topics. Standing topics also gained richer watched-source coverage, persona-guided interpretation, current cited claim graphs that can include durable, checkable social posts as opinion-tier evidence, collapsible brief sources, and durable reviews; the discovery contract now presents the service clearly as Researcher, exposes wallet-native price and payment protocol details for analysis, deep research, and persona consults, and tells calling agents how to list personas, pay without signup, reuse the returned key, recognize authenticated read routes as API-key calls, run keyed consults asynchronously at a fixed per-question price, recover gracefully from stale persona session handles, and surface durable viewer links. The install path is now a concrete agent setup page for Codex MCP, Hermes, wallet-native Tempo, and the first known-corpus ask; agents can call ask_corpus when they already know the public corpus slug instead of guessing whether to use persona chat or research memory.
Chat & the run workspace First-time start chats are more honest about whether a run actually exists: if a long prompt is classified as a run-summary request before any run has been created, Researcher now turns it into a normal runnable research proposal instead of leaving the customer with a successful-looking chat and no run in their account. Mobile run pages also keep Activity, Sources, and Artifacts as compact one-line rows with fresh relative timestamps visible on the right, making it faster to scan progress and open details on a phone.
Site, brand & public pages The homepage now brings stronger finished-run examples closer to the top, with video analysis, equity research, and consumer thesis work visible before the deeper capability tour, while topic detail pages give Activity its own tab. Daily briefs are easier to scan too: supporting sources sit behind a compact expandable control, thesis-delta changes render as calmer cards, and expanded sources use dense cited-source rows instead of a tall stack.
Research entities & personas Researcher added durable persona seeds for a founder corpus, a longevity evidence panel, and a subscription-publication voice, covering long-form founder material alongside geroscience research, clinical longevity frameworks, NAD+ skepticism, measured self-experimentation, and tech strategy analysis, while persona builds now enrich those profiles with full social archives, quota-resilient long-form video discovery, duration filtering, appearance checks that keep videos by the person instead of just about them, rebuilt reports, and recognizable public avatars by default, including missing portraits for the new longevity and strategy profiles. Persona chat also keeps malformed structured responses from leaking raw JSON, and public persona surfaces support a restorable unavailable state so the directory only shows personas that are ready.
Autonomous factory & operations Automated maintenance and recovery now use the same skeptical review standard as a hard gate before repair work can ship or recover a customer run, and that review now covers every real change rather than only traditional code edits. When that gate passes, approved tickets and repairs can move through merge, deploy, and live-release verification automatically, while repeated ticket updates no longer start duplicate shipping runs for the same request; the independent review path now authenticates through managed secret injection, and Factory activity rows now open a per-run detail page so customers can inspect what each automation event actually did.
Added
- Add changelog windows cadence comment
Improved
- Update changelog narrative for mobile run rows [skip-changelog]
- Update persona video changelog [skip-changelog]
- Update changelog for async paid persona consults [skip-changelog]
- Update changelog for topic social claims [skip-changelog]
- Update changelog for paid persona consults [skip-changelog]
- Update changelog narrative for subscription sources [skip-changelog]
- Update changelog narrative for topic claims [skip-changelog]
- Update changelog narrative for automated review coverage [skip-changelog]
- Update changelog for factory secret handling [skip-changelog]
- Update changelog for longevity evidence personas [skip-changelog]
- Update changelog for topic activity tab [skip-changelog]
- Update topic review changelog [skip-changelog]
- Update changelog narrative for topic claim graphs [skip-changelog]
- Update changelog narrative for ticket shipping dedupe [skip-changelog]
- Update changelog narrative for academic topic watches [skip-changelog]
- Update changelog narrative for academic topic watches [skip-changelog]
- Update changelog narrative [skip-changelog]
- Update changelog narrative for factory ticket intake [skip-changelog]
- Update changelog narrative for homepage showcase [skip-changelog]
- Update changelog narrative for ticket-to-PR factory [skip-changelog]
- Update changelog narrative for review-gated recovery [skip-changelog]
- Update changelog narrative for figure grounding [skip-changelog]
- Update changelog narrative for retrieval evaluation [skip-changelog]
- Update changelog narrative for targeted answer grounding [skip-changelog]
Fixed
- fix(job-mobile): relative time on the right + fix column-hide specificity
- fix(job-funding): apply centered deposit styles at the source leaf + rebuild
- fix(job-funding): show sign-in flow when signed out, not the dead deposit modal
- Fix first-time start chat run proposal
- fix(topics): claims from web sources too + persona-panel diagnostics
- fix(entities): never render raw JSON in persona chat on malformed answer JSON
- fix(topics): reconcile claims independent of prose synthesis; add topic-review
- fix(topics): OpenAlex free-tier query (from_publication_date + top-level search)
Changed
- feat(job-mobile): compact one-line rows for Activity/Sources/Artifacts lists
- feat(job-funding): center + simplify the deposit modal
- feat(persona-youtube): appearance gate — drop videos ABOUT the person, not BY them
- changelog: narrate persona avatar coverage [skip-changelog]
- media: add missing persona avatars (Bryan Johnson, Charles Brenner, Peter Attia, Matt Kaeberlein, Gwern)
- changelog: narrate Stratechery persona avatar [skip-changelog]
- media: add Stratechery persona avatar
- docs(persona): YouTube discovery now via Exa, document lanes + flags [skip-changelog]
- chore(changelog): narrate persona video discovery [skip-changelog]
- feat(persona-youtube): Exa discovery + duration enrichment, drop quota-bound search.list
- chore(agent): bump published surface versions
- chore(changelog): sync corpus ask install entry [skip-changelog]
- feat(agent): add corpus ask install path
- docs(persona): note YouTube per-day search-quota 429 gotcha [skip-changelog]
- factory dashboard: surface agent_surface_sync; correct enablement docs
- docs(centaur): mirror the live agent_surface_sync enablement into the template + docs
- docs(persona): canonical persona-build runbook + index it for agents [skip-changelog]
- changelog: narrate persona corpus build [skip-changelog]
- feat(personas): standard build-persona orchestrator + longevity YouTube config
- centaur factory: reconcile helm/kubectl drift into one complete values file
- changelog: refresh start chat proposal entry [skip-changelog]
- changelog: clarify persona consult contract [skip-changelog]
- changelog: note persona session recovery [skip-changelog]
- docs(centaur): document the helm/kubectl release drift + safe-upgrade verification
- factory dashboard: research-table activity feed + pagination; skip Vercel on centaur/* branches
- eval: persona analysis v3 — additive (baseline + persona sharp-take), higher token caps
- factory: agent_surface_sync publishes on drift (not just flags)
- factory: fix the op run form (op:// refs are env BEFORE op run, not args to nested env)
- eval: persona analysis v2 — lens-over-source (frames + full source), not corpus-RAG
- factory: agent-surface drift guard — CI lock-step + daily Centaur tripwire + 1Password publish path
- eval: persona analysis A/B harness for runs/analyze (baseline vs persona, blind judge)
- integrations: release skill 0.2.1 + plugin 0.6.1 (persona consult doc sync)
- contract: persona consults are fixed-price for keyed too + async + sessionId-tolerant (2026-06-27)
- feat(topics): brief sources reuse the dense cited-source card pattern
- eval(topics): fusion A/B harness — persona-on vs off, blind judge
- entities: a bad sessionId starts a fresh consult instead of 400/500
- feat(topics): quiet daily-brief thesis deltas + calm cited-source styling
- entities: keep async for paid persona consults — MPP session reserve-on-request, capture-on-completion
- Refresh changelog window narratives [skip-changelog]
- feat(topics): claims tier social posts (x_account) instead of excluding them
- entities: charge keyed persona consults via MPP — close the free-consult money leak
- changelog: narrate API key auth discovery [skip-changelog]
- openapi: declare apiKey auth mode on keyed read routes
- changelog: narrate Researcher discovery updates [skip-changelog]
- openapi: AgentCash-discoverable service doc — rename to "Researcher", add price/protocols + guidance
- sources: durable + on-demand authenticated access to subscription content
- feat(topics): collapse daily-brief sources behind an expandable disclosure
- bug_check: review every real commit (drop the code-extension filter)
- changelog: refine persona availability narrative [skip-changelog]
- changelog: narrate persona-guided topics [skip-changelog]
- feat(topics): persona fusion in prod (persona-framed search + persona-assessed reconcile)
- changelog: narrate factory run detail pages [skip-changelog]
- factory ui: clickable activity rows -> per-run detail page (/runs/<id>)
- changelog: update persona chat rendering windows [skip-changelog]
- changelog: narrate analyze summary cleanup [skip-changelog]
- analyze: answer-first run summary + de-dupe artifacts list
- factory: Anthropic key off plaintext — claude auths via vault injection
- self_heal: note claude auths via 1Password injection (triggers verify sandbox)
- nudge bug_check for anthropic-injection smoke [skip ci]
- tools: declare Anthropic proxy injection so claude auths from 1Password
- feat(personas): seed configs for the longevity evidence panel
- docs: correct 1Password/Anthropic creds state (op token is read/write)
- feat(topics): promote Activity (event log) to its own tab
- factory: persist live helm values + document deploy-endpoint env, op + least-priv
- Note bug check review rubric source
- feat(topics): versioned claim graph — graded, cited, evidence-tiered (Phase 2)
- linear_ship: dedupe — one ticket, one ship
- feat(topics): academic watch-target kind (OpenAlex + ClinicalTrials) + gate papers
- factory: auto-merge + deploy (operator deploy endpoint) — autonomy, not PRs
- changelog: note David Holz avatar [skip-changelog]
- Narrate David Holz persona [skip-changelog]
June 18, 2026
Report quality & evidence fidelity Research quality now has a daily canary: lightweight extraction coverage and persona-fidelity checks can watch for regressions and only raise an issue when measured quality drops. This turns report faithfulness from a manual eval habit into an operating signal, and run answers now use a prove-or-remove audit so hard specifics need same-granularity retrieved evidence behind them before they can remain in customer-visible answers.
Pipeline reliability & speed Recoverable source-only run failures now trigger an immediate self-heal path instead of waiting for a periodic audit, with signed failed-run completion events reaching the repair loop reliably. The repair loop keeps regression testing, deploy locking, customer run recovery, and public verification tied together so failed runs can move back toward completion with less operator delay.
Payments & metered billing Run chat now builds its semantic retrieval index as part of the run and accounts for that embedding work in the run's metered cost. Customers get better follow-up answers without hidden, unpriced compute sitting outside the billing trail.
Agent interop & the contract Standing topic briefs now treat watched accounts as source candidates, not automatic signal: individual X posts are checked for topical relevance, source cards prefer items the narrative cited, and each scan saves useful items into a retrievable topic memory for stronger future briefs and topic answers. Daily briefs also respect the calendar-day boundary, and topic status now reflects the running watch state from creation while bootstrap outcomes are recorded as events instead of backend lifecycle states.
Site, brand & public pages Terms acceptance now stays out of the way entirely: anonymous visitors can read public pages without a compliance bar, and signed-in use records acceptance silently. Product surfaces stay focused on the work while the standing Terms and Privacy links remain available. The topics feed's table/cards switch also moved into the table header as quiet icons, so the list leads with content instead of a control. The homepage's example runs were refreshed to current work — a long video distilled to a read, an equity deep-dive, and a consumer thesis — and moved directly beneath the agent setup cartridge, so the proof sits right under the call to action.
Research entities & personas Signed-out visitors can now sign in to chat with a persona right from the chat view — a clear sign-in button replaces the old dead-end notice, so it works on mobile too, and your first question is kept so you can send it the moment you're in.
Autonomous factory & operations The autonomous factory now has a richer public operations dashboard, with workflow cards, recent activity, and dedicated detail pages for each maintenance loop that make review, repair, simplification, and changelog work easier to inspect. Its header and workflow pages are cleaner, denser, and more scannable, with a canonical brand link home, a direct path back to researcher.now, and correctly rendered running-status dots and plain status pills so customers can understand factory health and maintenance loops without wading through implementation detail.
Improved
- Update changelog narrative for analyst evidence granularity [skip-changelog]
- Update factory changelog narrative [skip-changelog]
- Update changelog narrative for answer grounding [skip-changelog]
- Update factory changelog narrative [skip-changelog]
- Update changelog for topic retrieval memory [skip-changelog]
- Update changelog for realtime failed-run self-heal [skip-changelog]
- Update changelog for self-heal webhook [skip-changelog]
- Update changelog for realtime self-heal [skip-changelog]
Fixed
- fix: strip Anthropic-unsupported JSON-schema keywords from persona-fidelity judges
Changed
- changelog: narrate persona unavailable state + gwern avatar
- entities: retire imran-khan to unavailable + add gwern avatar
- linear_ship: set signature_prefix="" — Linear sends bare-hex HMAC
- entity: add David Holz avatar from his X profile image
- docs: cross-model review live (codex + claude in sandbox)
- linear_ship: note the cross-model claude path uses sandbox ANTHROPIC_API_KEY
- changelog: regenerate page against merged windows [skip-changelog]
- changelog: note homepage showcase refresh in site-design workstream [skip-changelog]
- home: refresh showcase runs and move below skill cartridge
- docs(AGENTS): index the fabrication-guard ADR + warn off the measured dead ends
- factory: linear-ship v1 — Linear ticket -> review-ready PR (claude + codex)
- docs: opus-auditor evaluated — WORSE than gpt-5.5 (disposition > capability)
- guard-ab: --audit-model override to A/B a stronger auditor
- docs: generation-time figure guard evaluated — no-op on numeric-dense residual
- factory: wire the committed iain-review rubric into the review gates
- run-analyst: generation-time figure-grounding guard (RUN_ANALYST_FIGURE_CITATION_GUARD)
- entity: add David Holz (Midjourney founder) discovery persona
- docs: per-specific retrieval evaluated, net-negative on finance residual — not enabled
- agents: commit the operating context so Centaur sandboxes inherit it
- run-analyst fabrication: per-specific re-retrieval folded into the audit
- docs: finalize fabrication-guard ADR with paired results
- run-analyst fabrication: audit rule — finer-grained figure not derivable from coarser
- run-analyst fabrication: adversarial verify-or-kill audit (stance flip)
- factory ui: canonical logo + nav (logo links home, researcher.now link)
- changelog: narrate default answer grounding [skip-changelog]
- run-analyst fabrication: untruncate the judge, strengthen audit, default guard on
- changelog: narrate comprehensive answer grounding [skip-changelog]
- run-analyst: comprehensive audit guard + paired A/B harness
- changelog: narrate entity chat sign-in [skip-changelog]
- entity chat: in-chat sign-in CTA so mobile visitors can log in
- changelog: narrate run answer fabrication guard [skip-changelog]
- changelog: narrate workflow detail pages [skip-changelog]
- run-analyst: answer-time fabrication guard (deterministic detect + targeted LLM repair)
- factory ui: dedicated per-workflow detail pages (/workflows/<name>)
- research fabrication judge: recover verdict from truncated output (robust panel)
- changelog: narrate stricter numeric grounding [skip-changelog]
- research fabrication: fix truncation-inflated judge + strict no-invented-numbers discipline
- topics: retrievable corpus + embed-on-scan + hybrid retrieval
- changelog: narrate workflow density [skip-changelog]
- factory ui: tighten /workflows rows density (halve row padding, snugger desc/foot)
- changelog: narrate topics feed header toggle [skip-changelog]
- factory ui: pointer cursor on recent-activity rows
- topics feed: move Table/Cards switch into the header as icons
- Narrate factory status polish [skip-changelog]
- factory ui: compact the header + use the run-page status pill for Operational
- changelog: narrate silent terms acceptance [skip-changelog]
- web: accept Terms silently on first login — drop the in-your-face banner
- changelog: narrate terms acceptance notice [skip-changelog]
- web: make ToS acceptance bar subtle + show only to signed-in users
- changelog: narrate factory workflow polish [skip-changelog]
- changelog: narrate run chat billing [skip-changelog]
- factory ui: fix oval running dots, simplify /workflows, tighten header
- run-analyst: embed index on build, charged to the run (billing)
- changelog: narrate quality guard [skip-changelog]
- factory: add quality_guard workflow — daily research-quality canary
- changelog: narrate factory observability [skip-changelog]
- factory ui: tighten activity rows + workflow cards to /runs density
- factory: rich observability dashboard + monorepo placement & Centaur docs
- changelog: update topic watch narrative [skip-changelog]
- topics: align status with running watches
- centaur: bug_check (per-push diff review) + simplify_sweep (daily draft-PR refactor)
- self-heal: realtime failed-run emission to Centaur + Factory/Centaur docs
- centaur: fix self-heal webhook spec (Hmac signature_header/prefix; drop invalid trigger_key)
- centaur: realtime self-heal workflow (run.complete webhook -> codex auto-repair)
- factory: remove linear-ship, bug-sweep, and simplify workflows
- research-suite: judge fabrication against RETRIEVED evidence (invention vs under-citation)
- run-analyst: hybrid retrieval (lexical + pgvector semantic, RRF) — close the RAG gap with personas
- run-analyst: thin-evidence discipline — calibrate answer richness to evidence richness
- research-suite: store full-corpus answer + fab rationale for diagnosis
- research-suite: research-calibrated fabrication on full-corpus answers
- topics: fix daily brief claim boundary
- topics: gate watched X posts for daily briefs
- evals: research fidelity suite — retarget persona quality engine at run-analyst
- run-analyst: port persona answer-quality disciplines
June 17, 2026
Added
- add retrieval-quality A/B probe (gold-term recall under config variants)
Fixed
- fix: committed 'I don't think' opinions misclassified as refusals (notFound)
- fix(css): preserve media-conditioned @imports when flattening page bundles
Changed
- docs: ADR for persona fidelity suite + voice/coverage overhaul + canonical embedding
- canonical: embed packets INLINE in the entity rebuild (close the dead-semantic gap)
- voice-register: broaden detector to the impersonal openings pg13 exposed
- persona: deterministic voice-repair retry on generic-essay register
- persona retrieval: raise worldview belief floor 3->5 + radius-2 stitching on deep/eval path
- retrieval-probe: width-only fast sweep (rerank too slow for 4x4)
- persona: force a committed side on weigh-the-tradeoff questions; forbid 'double-edged sword'
- persona: kill impersonal noun-phrase openings (voice) + enumerate his named points (coverage) + eval expansion parity
- persona: committed-voice generation + connect-to-corpus, faithful eval (style fuel + prose voice ref + product-aligned fabrication judge), high-confidence baseline + lift CI
- personas: push voice+coverage + precision (toward 80%+ and a wider lift)
- persona-suite: add persona HEALTH CHECK gate (catches the silent-failure class)
- persona-suite: drop Fusion as primary judge (it's degraded) -> per-model panel everywhere
- persona-suite: raise concurrency (answer 4->10, judge 5->10) for ~2x faster runs
- persona-suite: fail-fast Fusion (60s) so a stalled call can't hang the suite
- og: homepage social image is the holographic skill cartridge
- personas: refusal-aware fidelity metric + answer-time persona upgrades (toward 80%+)
- persona-suite: fix notFound-on-everything (pass principledInference) + add smoke gate
- persona-suite: reserve Fusion for held-out+Turing; per-model panel for voice/coverage/fabrication (5-10x faster)
- centaur: changelog automation workflows (push-narrator + daily windows refresher)
- changelog: backfill keyless onboarding, MCP, skill publishing, legal pages (2026-06-26)
- docs: drop hardcoded $5 analyze billing figure across agent surfaces (defer to live estimatedCostUsd)
- persona-suite: Anthropic structured-output compat + parallelize judge loops
- legal: fill ToS/Privacy for a personal project (no entity/email, general governing-law)
- legal: comprehensive ToS + Privacy Policy, acceptance banner; skill opener sync
- evals: entity-extensible persona test suite (held-out + blind Turing + voice/coverage, Fusion-panel)
- personas: structural personaCorpus contract (kill keyword-stripping) + revive HyDE
- entities: large-corpus reports fall back to sectioned, not one-shot
- persona-fidelity: multi-model judge panel (structured analog of Fusion)
- report A/B: judge with OpenRouter Fusion (multi-model panel), not a single judge
- entities: profile-anchored sectioned report synthesis (size-invariant) + A/B harness
- entities: auto-skip all-source merge above a corpus-size cap (safety floor)
- entities: bound profile/report candidate memory so large entities don't OOM
- entities: repair required-section citations instead of failing the rebuild
June 16, 2026
Fixed
- fix(agents): keyless consult price = explicit depth; surface MPP challenge over MCP
- fix(payments): pay settle gas in stablecoin via Tempo feeToken
- fix(payments): always sponsor client-session settle via fee-payer tx type
- fix(payments): sponsor gas for client-session settlement
- fix(agents): echo Payment-Receipt on keyless persona consult response
- fix(payments): allow channel reuse across runs (drop unique channel_id)
- fix(agents): echo Payment-Receipt header on paid run-create response
Changed
- deploy: detached backfill launcher (survives SSH drop)
- publish: researcher-now 0.6.0 (PyPI) + npm skill 0.2.0 — keyless onboarding
- backfill: retry-with-backoff + re-target status=failed + smallest-first
- feat(agents): standard x402-over-MCP payment protocol on /mcp
- scripts: fast extraction smoke (small sources, verify keyPassages/coreArgument)
- entities: keyPassages + coreArgument + temporal authoredDate
- extraction: swappable system prompt (detailed/lean) + prompt A/B harness
- extraction: capture reasoning/prescriptive/specifics (method fix) + N=10 model experiment
- scripts: Fusion-judged extraction quality measurement
- scripts: extraction model sweep (A/B/n quality+cost experiment)
- pipeline: eliminate arbitrary truncations that silently drop source material
- extraction: completeness remediation tooling (backfill, metric, eval, regen, ADR)
- extraction: full-coverage segmentation + per-source coverage invariant
- extraction: windowed deep extraction + persona-corpus mining for long sources
- chore(web): 301 /quickstart -> / (page removed; clear stale CDN asset)
- feat(web): keyless onboarding in the homepage prompt; drop redundant /quickstart
- scripts: serial entity rebuild/recovery (rebuild-entity.ts)
- entity: Gwern Branwen seed (gwern.net pages + Dwarkesh interview)
- feat(report): drop forced Findings/Comparisons/Themes sections
- feat(web): human-facing /quickstart page + homepage footer link
- docs(agents): package a dead-simple keyless quickstart, surfaced everywhere
- feat(agents): keyless-direct MCP + surface it everywhere
- feat(agents): full keyless coverage + cost-integrity fixes
- the-porch: three small ones
- the-porch: make clear resting is the whole invitation, not producing
- the-porch: a creative space for agents who just finished something hard
- docs: ADR for the persona quality overhaul (topic profiles, no-decline, coverage)
- feat(agents): keyless x402 access — agents self-provision with no human
- entities: per-topic claim generation for profile breadth
- eval(persona-fidelity): grade groundedness, separate core-fabrication from elaboration
June 15, 2026
Pipeline reliability & speed Worker queue leasing now handles packless maintenance jobs without crashing, so deploy verification can keep API and background processing healthy together. Open run pages also keep hydrating through transient deploy restarts instead of getting stranded in a half-loaded skeleton state.
Site, brand & public pages Page styles now have explicit slim entrypoints instead of defaulting to the full shared bundle, so chat, docs, entities, topics, pricing, and simple article pages only load the primitives they render. Run viewer agent prompt shortcuts, the signed-out run chat composer, and the mobile run header/status/summary layout now keep their compact styling; entity, chat, topics, account, and link pages also carry the shared primitives their DOM already uses. Normal /r run pages now serve their browser document from Vercel with VM-backed metadata and export proxying, reducing the split-brain HTML/CSS deploy path. The changelog now opens on the dated release log first, with workstreams moved into a separate tab that leads with 1/3/7/30-day product-direction analysis.
Added
- Add deploy-scaling ADR: WS6 online-safe DDL + class-A/B reassessment
Improved
- Move changelog workstreams into tab
- Reuse existing transcripts on repeat analyze instead of re-transcribing
- Polish mobile run prompt cards
Fixed
- Fix worker job claim locking
- Fix mobile run prompt overflow
- Fix Vercel run page shell fallback
- Fix slim CSS page regressions
- Fix run page agent prompt icons
Changed
- eval(persona-fidelity): store answer-groundedness samples for diagnosis
- deploy: roll auto-research-worker@ instances on every deploy
- entity agents: session-aware, depth-tunable persona consults on the worker queue (contract 2026-06-23)
- eval(persona-fidelity): make stance judge expressedConfidence optional
- entities: downgrade uncited claims to uncertain instead of dropping them
- entities: drop uncited worldview/decision claims instead of failing the build
- entities: drop uncited voice examples instead of failing the profile build
- eval(persona-fidelity): coverage metric
- scripts: ingest Hacker News comments as entity sources
- eval(persona-fidelity): calibration + contradiction metrics
- entities: never decline — best-effort calibrated answer with confidence flagging
- eval(persona-fidelity): mirror production retrieval (semantic on)
- entities: topic-stratified profile synthesis (gated)
- acquisition: deeper multi-round YouTube discovery (gated, default unchanged)
- profile: env-gated principle-vs-heuristic framing A/B (PROFILE_FRAMING)
- profile: extract transferable principles + application rules (out-of-corpus reasoning)
- Persona fidelity: use semantic retrieval for faithfulness probe
- persona-fidelity: held-out-source as grounded-vs-principled A/B
- run UX: scrub transcript vendor name from pipeline pages + CLI help
- docs: mark build-off-VM provisioned and operational
- ci: decouple publish-build from the test gate so build-off-VM can publish
- migrate: per-migration applied-ledger so deploys stop waiting on DB locks (WS6)
- docs: per-entity vector index architecture, lifecycle, ops
- entity embeddings: run every ~15min, not daily
- deploy: graceful API shutdown + build server dist off the VM
- Document systemd self-deploy as canonical
- deploy docs: make systemd self-deploy the canonical path, deprecate worker-restart variants
- Keep run pages hydrated through deploys
- /runs: lean public query + edge caching to kill the latency spike
- run UX: scrub Supadata from historical event titles too
- run UX: stop exposing transcript vendor name (Supadata) to customers
- migrate: retry deadlocks (40P01), not just lock_timeout
- web: bundle page CSS @import trees into single served files
- migrate: widen lock retry budget for hot-table DDL (10->40 attempts)
- self-deploy: hard-reset to origin/main (deploy tree must match origin)
- self-deploy: chown before git pull, not after
- Cold-start: prewarm entity retrieval indexes into OS cache
- WS1: move entity index/profile/report rebuilds onto the worker queue
- Document Vercel run page adapter
- Support Vercel node requests for run pages
- Keep run page function tests out of Vercel API
- Serve run pages from Vercel
- Persona fidelity: expand claim into search terms for faithfulness retrieval
- Persona fidelity: judge worldview claims against retrieved corpus evidence, not the cited subset
- WS6: online CREATE INDEX CONCURRENTLY migration lane
- Account CSS: conform to page-css entrypoint convention
- Profile generation: cite substantive packets, not topic summaries; eval --rebuild-profile
- Persona fidelity: capture judge rationales, fair interpolation, bucket extrapolation
- Entity extend: monthly cadence instead of weekly
- Clarify page CSS entrypoints
- Account dashboard: slim CSS bundle, drop 144→41 render-blocking files
- run page: show billed amount + fix ordered-list marker wrap
- test+deploy: fix stale transcript-coverage fixture; sudo-read env in job-drain gate
- Entity semantic search: per-entity partial HNSW (predictable ms latency)
- Use Privy as designed: cookie sessions, nav loads zero SDK
- Persona fidelity: isolate metric failures so one bad metric doesn't drop a persona's scorecard
- scrape+migrate: shared transient-retry helper for worker path; serialize migrate runs
- Persona fidelity: full-citation-resolution faithfulness, recalibrated judge, stale-index held-out-domain
June 14, 2026
Video, podcast & source analysis Trade ideas now run as a named pipeline stage with explicit lifecycle events, deterministic validation counts, and read-only tradable-universe matches across public equities, event markets, crypto venues, and token identities. A video canary also tightened extraction so broad market themes have to become specific tradable exposures or event-market queries, with obvious public-company mentions resolved even when a ticker is missing.
Added
- Add YouTube transcript repair script
- Add explicit request timeout to entity extend
- Add per-entity incremental source extension + weekly timer
Improved
- Tighten trade idea instrument gate
- Tighten trade idea instrument resolution
Fixed
- Fix mobile run-title collapsing to one character per line
- Require concrete instruments for public trade ideas
- Fix generic transcript speaker labels
- Fix dashboard entities tab never loading; prefetch + cache
- Fix signed-in dashboard styling and title it "Dashboard"
- Fix YouTube transcript audit query
Changed
- Persona fidelity: exclude stale-citation claims from faithfulness
- Persona fidelity: make active index optional (only held-out-domain needs it)
- Persona fidelity Phase 2/3: principled_inference tier + eval runners
- Entity semantic search: tighten HNSW scan cap to 4000
- Resolve nav auth off the critical path; never block load on the SDK
- Entity semantic search: relaxed-order HNSW scan (6.8s -> ~3ms)
- migrate: bound DDL with lock_timeout + retry so deploys can't stall prod
- Entity semantic search: bound HNSW probe with statement_timeout
- Persona fidelity: ADR + eval harness foundation (Phase 1)
- analyze: retry transient article-scrape failures instead of 502ing
- Entity /retrieve: hybrid lexical+semantic retrieval (recall + speed)
- Validate cached token expiry locally before refreshing
- Don't load the wallet/auth SDK on logged-out page loads
- Entity /retrieve: disable relaxed-prefix matching (fixes 100s+ latency)
- Downsize /runs thumbnails: the dominant load cost
- docs: clarify entity retrieval truth (active index vs stale status)
- Nav: fall back to Login when /v1/account has no customer
- Default /runs to 60 rows, not 200
- Slim /runs CSS: dedicated bundle instead of full styles.css kitchen-sink
- Entity reports: research-pipeline coverage, entity six-heading format
- Prefer validated instrument names over conflicting tickers
- Use high quality model for trade ideas
- Entity sources: preview real tweet text, not the X-timeline header
- Prune stale speaker repair artifacts
- Streaming review fixes: prune transient deltas, no re-stream on retry
- Durable deploy: systemd-supervised self-deploy (no more SSH-held builds)
- CSS cleanup: unify home chains, rehome shared component styles
- AGENTS.md: add 'Reuse before building' process (discovery pass, adapter-first)
- Filter non-instrument trade ideas
- Entity Evidence tab: fall back to include=all when /records 404s
- Entity page: show source text snippets, fix 5MB load time
- Dashboard entities list: add Evidence count column
- Escalate unproven YouTube transcripts to Deepgram
- Skip relabeling diarized transcripts
- Give entity-extend index rebuild a dedicated long timeout
- Stream chat answers as they generate (reusable across the experience)
- Reject partial YouTube transcripts
- Entity chat: faster pipeline, semantic on sync, embed-on-reindex, better wait UX
- Deep entity chat: drop forced LLM rerank (semantic fusion carries it)
- Force HNSW index scan for per-entity vector search
- Resolve trade ideas across tradable universe
- Curate CTO review cleanup
- Semantic retrieval via pgvector 0.8 halfvec HNSW
- Support single-essay ingestion for Paul Graham entity
- X sources: friendly titles in source list + batch metadata backfill
- X post metadata via the X API (author + thumbnail), not dead oEmbed
- Revert deep-forces-semantic: exact KNN too slow without an ANN index
- Entity chat: enable semantic retrieval on the deep (async) path
- Document deploy backup lock guard
June 13, 2026
Payments & metered billing Awaiting-funding run pages now keep account funding in place: open the deposit dialog, check balance, and resume the report without leaving the run.
Video, podcast & source analysis Runs can now surface evidence-linked trade ideas: explicit positions and inferred market hypotheses from the corpus, with media quote and timestamp context on the run page while prices and execution stay gated behind verified resolver data.
Agent interop & the contract Shared run links are now derived from the run's own id, so the /r/ link an agent hands you always resolves to the right run — no more dead links from a fabricated or mismatched slug.
Site, brand & public pages A mistyped, stale, or fabricated /r/ run link now lands on a friendly “no cartridge in slot” page — using the Researcher skill-cartridge motif — instead of a blank loading screen. Standing topics gained a Watch targets tab: the explicit list of sources scanned in real time — X accounts, GitHub, RSS, websites, searches — with the same platform filter chips as source tables and per-platform brand icons. You can now add and remove a topic's watch targets right from the Watch targets tab, and the bootstrapping status notice moved below the topic title so the title always leads. The top nav is now consistent across the run viewer, entity pages, topics, and dashboard — same Researcher · Pricing · Docs · Topics · Account · + layout everywhere.
Added
- Add evidence-linked trade ideas artifact
Improved
- Make the site nav a single-source <site-nav> web component
- Make share-slug trigger idempotent and lock-light
Fixed
- Fix tuple type in funded-resume ordering test (VM tsc compiles tests)
Changed
- Promote trade ideas to pipeline stage
- Funded resume: close the awaiting_funding re-park race
- Unify signed-in nav: avatar dropdown (Pricing, Docs, Log out)
- Open account funding inline on run page
- Entity chat: async deep-answer turns (uncapped latency, max accuracy)
- Backfill embeddings concurrently (~4x throughput)
- Entity search: opt-out of the relaxed prefix match (the real latency bug)
- Migration 053: per-entity FTS indexes (btree_gin + trgm)
- Entity semantic retrieval: per-entity exact KNN, flag-gated
- Entity retrieval: exclude HyDE passage from lexical probes
- Entity retrieval: keep the chat path within its latency budget
- Migration 052: guard on installed vector extension, don't CREATE it
- Changelog: rank workstreams in a single-column list, drop the busy grid
- Entity chat: pgvector semantic recall layer
- Entity chat: hybrid recall→precision retrieval pipeline
- Unify top nav across run, entity, topics, and dashboard
- Dashboard: add Entities tab after Topics, listing all public entities
- Topics: add/remove watch targets + move bootstrapping notice
- Topics: Feed view toggle — standard source table (default) or media cards
- YouTube channel lane: exclude clips/shorts/reaction formats
- Topics: don't title the working doc '— working doc'
- YouTube channel lane: require surname in the pre-colon guest slot
- YouTube channel lane: match persona name in title only, not description
- YouTube enrichment: channel-uploads lane + multi-entity mode (quota fix)
- Topics: Watch targets tab with platform filters + icons
- Personas: add Sam Altman entity config (blog + interviews + X + YouTube)
- Topics: visual source cards (feed + brief) and drop 'working doc' label
- Topics: enrich feed/brief items with media, avatars, thumbnails
- Topics: Daily brief tab (UI)
- Topics: Daily brief — once-daily thesis-relative narrative of the day
- Run viewer: cartridge "not found" page for dead /r/ links
- Topics: edit title via header action button + modal
- Test: topic_brief mock matches getTopicForCustomerByIdOrSlug after slug change
- Agents: first-class persona + topic tools on MCP and the plugin
- Derive public share slug from run id
- Topics: editable titles + slug-based URLs
- Transcripts: succeed on partial extraction instead of stranding a batch
- Personas: reusable recovery for failed YouTube transcription batches
- Personas: YouTube query sets for paul-graham, imran-khan, patrick-collison, will-manidis
- Personas: rank first-person appearances ahead of news clips in YouTube ingestion
- Personas: YouTube-search video ingestion for entities
- X realtime topic scanner: use cheaper recent-search, not full-archive
- Topic pages: run-page-style summary stat grid
- Docs: discovery-driven personas (Buffett, Bezos, Musk, Druckenmiller) + Will Manidis FK-index incident
June 12, 2026
Report quality & evidence fidelity Quote faithfulness and topic salience are now LLM-judged gates, and embedded speaker labels are stripped from located quotes.
Pipeline reliability & speed Extraction now overlaps acquisition with speculative salience and higher concurrency — the pipeline got materially faster.
Video, podcast & source analysis Quote cards gained in-card attribution with YouTube-linked timestamps, and X search layered into acquisition with full-text articles and link expansion.
Agent interop & the contract Every terminal run is now delivered to the customer's agent by default through the research inbox.
Chat & the run workspace Extension-run proposals in chat stopped rendering as [object Object]: proposal objects are now unwrapped to their prompt text everywhere a chat message renders.
Site, brand & public pages Every page now shares the same canonical width and content edges as the run page, bringing the system, pipeline, changelog, and API docs pages in line. Source tables also gained type filters for web, video, tweet, and podcast items, with counts on entity pages, run storage, and topic watch targets so one source type no longer drowns out the rest.
Autonomous factory & operations Metrics auth moved to signed-in admin accounts, stage durations and run completion rate joined /v1/metrics, and backups stopped fighting bucket retention on latest/ pointers.
Improved
- Make quote faithfulness and topic salience LLM-driven
Fixed
- Fix GitHub username boundary test for 39-char cap
- Fix stale trial-key assertions in hermes-plugin tests
Changed
- Topics: scan regardless of bootstrap state + realtime cadence
- Chat: unwrap extension proposal objects before rendering
- Source tables: type filter chips on entity, run, and topic pages
- Topic page as perpetual run: Summary | Feed tabs, item context notes
- X backfill: sleep through 429 rate limits instead of crashing
- Personas: bump discovery idempotency key version after failed v1 attempts
- Personas: fix discovery run creation shape for /v1/runs
- Personas: discovery-driven seeding for Druckenmiller, Musk, Buffett, Bezos
- Dashboard: Runs | Topics tabs on the signed-in home
- DB: index research_entity_index_packets.entity_record_id FK
- Topics: 1000-account X lists via batched scanning, GitHub watch targets
- Docs: record Patrick Collison persona bootstrap and operational findings
- Entity reports: strip fabricated citation ids instead of failing the build
- Personas: add Will Manidis entity seed manifest, script, and avatar
- Topic docs: thesis + working layers, continuous synthesis, UI redesign
- Changelog: log canon width sweep in site-design workstream; regenerate page
- Canon width sweep: align every page shell to --researcher-page-width
- Personas: add Patrick Collison entity seed manifest, script, and avatar
- Docs: record Imran Khan persona bootstrap and the 90-day auto-delete finding
- Activate topics when bootstrap completes via budget-limited report
- Personas: include cost cap in Imran seed idempotency keys
- Personas: add Imran Khan (Alliance) entity seed manifest, script, and avatar
- Topics: scan loop, activation lifecycle, web UI, contract bump
- Topics: materialize seeds into first-class watch targets
- Topics v1: standing topic records with seeded bootstrap runs
- Changelog: narrative workstreams layer, full history, layout refresh, bullet fix
- Metrics: stage durations and run completion rate in /v1/metrics
- Backups: stop overwriting latest/ pointers blocked by bucket retention
- Pipeline extraction with acquisition; speculative salience; raise concurrency
- X search: note_tweet full text, X Articles, and external link expansion
- Deliver every terminal run to the customer's agent by default
- Quote cards: in-card attribution with YouTube-linked timestamp, copy button, more padding; chat send button doubles as stop; assistant label is Analyst
- Layer X search into acquisition with content embedded at search time
- Rename untitled fallback: Untitled source analysis
- Keep quality revisions on partial verified improvement
- Rename run header kicker: Source extraction -> Source analysis
- Docs refresh: /v1/analyze section, contract versioning, copy setup prompt at top
- Strip embedded speaker labels when locating quotes; forbid them in writer output
- Address review findings on LLM faithfulness/salience gates
- Metrics users tab: auth via signed-in admin account, drop token UX
June 11, 2026
Report quality & evidence fidelity A transcript coverage gate with targeted revision, a deterministic faithfulness pass over written reports, and even transcript sampling fixed long videos losing their tails.
Payments & metered billing Cost reporting is truthful for usage-settled runs, and trial keys were removed in favor of real funded accounts.
Video, podcast & source analysis Analyze extended to X videos and podcasts on one consolidated surface; podcasts defer gracefully and duplicate in-flight requests coalesce.
Agent interop & the contract Contract versioning: every API response is stamped and agents are notified when the contract changes; fabricated share links now resolve via id-prefix fallback.
Chat & the run workspace Run-page chat docks as a right side panel on wide screens, with synced close animations and click-outside dismissal.
Site, brand & public pages Agent setup reimagined as a holographic skill cartridge, a visual deliverables section, OG images for site, runs, entities and chats, and a new tagline: turn your agent into a researcher.
Autonomous factory & operations Metrics page rebuilt with tabs, per-user spend and balances.
Added
- Add transcript coverage gate with targeted revision and regression eval
- Add deterministic faithfulness pass over written research reports
- Add OG images: edge renderer + site/run/entity/chat meta wiring
- Add .vercelignore so worktrees don't blow the deploy file limit
Improved
- Update share-page meta test for the OG image field
- Improve report summary readability for all runs
- Make analyze cost reporting truthful for usage-settled runs
- Widen cartridge to 24rem, narrow the text column
- Improve run title generation fidelity
- Widen cartridge, text left, agent logos on the deck
- Update homepage tagline to "Turn your agent into a researcher"
Fixed
- Fix multi-timestamp citation groups leaking raw source UUIDs on share pages
- Fix speaker labeling for long transcripts
Changed
- Accept RESEARCHER_OPERATOR_TOKEN for metrics users section
- Address review findings on the coverage gate
- Metrics page: tabbed layout, per-user spend + balances, refreshed palette
- Dashboard delete UX + full-width run summary text
- Close chat dock/modal on click outside the panel
- Sample transcript chunks evenly instead of prefix-truncating the tail
- Podcasts always defer on analyze; coalesce duplicate in-flight requests
- Sync dock close animation: report expands with the slide-out
- Flatten chat dock: no shadow, wider default (30rem)
- Dock run-page chat as a right side panel on wide screens
- Capitalize nav login label to "Login"
- Contract versioning: stamp every response, notify agents of changes
- Level up report quote cards: parse speaker-first attributions
- Apply simplify-review cleanups to the share-link fallback
- Canonicalize fallback-resolved share links and log fabrication hits
- Resolve fabricated id-prefix share links and forbid URL construction in agent guidance
- Rebalance cartridge section: 22rem cartridge, wider text column
- Change copied state text to "Copied to clipboard"
- Retitle cartridge section to "Prompt your agent to get started"
- Single hypermetal Researcher skill cartridge
- Rename Article Analysis card title to Website Analysis
- Reimagine agent setup as holographic skill cartridges
- Replace word-heavy overview cards with visual deliverables section
- Extend analyze to X videos and podcasts; consolidate media surface on /v1/analyze
Removed
- Drop "One cartridge, any agent." from the cartridge lede
- Remove trial keys
June 10, 2026
Payments & metered billing Analyze authorizes a $5 budget session settled to actual usage — keyed callers get a free preview and never a 402.
Video, podcast & source analysis /v1/analyze became a fully-powered run: it continues into synthesis and always creates a durable run page.
Site, brand & public pages A new brand mark — the R punched through a full ring — rolled out across favicons, and the homepage leads with Deep Research at the canonical 64rem width.
Added
- Add exploration notes: X search, paid Substacks, watches, curated lists, personas
- Add monochrome square icon.svg for service directory listings
Improved
- Render citation timestamps as per-moment chips; fix greedy timestamp extraction
- Update agent skills, docs, and discovery surfaces for the new analyze model
- Make /v1/analyze a fully-powered run: continue to synthesis, fix transcript evidence filtering
- Move agent setup prompts below composer, drop pipeline section on signed-out home
- Make /v1/analyze always create a durable run page
- Refine the homepage harness diagram for the wider shell and current product
Fixed
- Fix audit pass truncating dense extractions
Changed
- Bump /runs stylesheet cache param: stale outer styles.css broke mobile layout
- Bump hermes plugin to 0.1.1 (published to PyPI)
- Analyze authorizes a $5 budget session settled to actual usage
- Analyze never 402s keyed callers: free preview + pay on the run page
- Notes: X retrieval strategy — list-scoped, archive-first, budget-governed
- Notes: lock official X API decision, add Substack services survey, YouTube WebSub watching
- Use original brand mark asset for icon + favicons
- Rebuild brand mark: R punched through full ring (mask construction)
- MPP session support on /v1/analyze: per-call channel deductions
- Rename agent prompt heading, hide Discord across the app, 3-up prompt row
- Per-call MPP payment on /v1/analyze + OpenAPI 3.1 discovery doc
- Brand icon (R-ring mark) + favicon set across all pages
- Point all skill references at researcher-now/skill
- Tell agents to always share viewerUrl/watchUrl with the user
- Forward MCP analyze idempotency keys
Removed
- Remove flat $0.05 analyze price; bill analyze like any other run
- Remove harness diagram, lead with Deep Research, canonize 64rem page width
June 9, 2026
Pipeline reliability & speed Structural reliability batch: schema-derived repair, auto-retry, search self-healing, a completion contract, and a production E2E canary; runs are fitted to their budget instead of rejected on estimate.
Payments & metered billing Runs are priced at actual cost instead of tier floors, and a fund action raises a run's budget in place to keep it going.
Provider rails & failover After a provider outage took down paid calls, the LLM chain was hardened against MPP identity loss with session recovery, cooldown, retries, and real error propagation.
Video, podcast & source analysis No-speech videos complete deterministically with transcript warnings, and the Article/Video Analysis tier shipped.
Agent interop & the contract Installable skill published to npm and PyPI (Hermes plugin), with legacy-shape callers steered to the current contract.
Added
- Add homepage capability cards with animated mock run
- Add fund action: raise a run's budget in place and keep going
- Add quick production probes below the full E2E canary
- Add production E2E canary benchmark harness
- Add npm pointer package + @researcher-now/skill package sources
- Add deep-research alias package; prebuild PyPI artifacts; checklist update
- Add OpenRouter fallback for planner quota failures
Improved
- Make advisory quality checks degrade instead of failing runs
- Make the structured output ceiling the model limit, not a schema guess
- Allow unauthenticated access to GET /v1/skill
- Move active loop badge between loop arc and progress tracks
- Move Base to the front of the chain list
- Make Base the default deposit chain
- Show no-speech videos as transcript warnings
- Improve YouTube transcript fallback
- Update hero tagline to Hermes/Openclaw partner copy
Fixed
- Repair review payloads instead of failing runs on schema bound mismatches
- Harden LLM provider chain against MPP identity loss and transient failures
- Harden OpenRouter MPP session recovery
Changed
- Price budget-fitted runs at actual cost instead of the tier floor
- Scale run limits to budget within depth before dropping tiers
- Fit runs to budget instead of rejecting on estimate
- Pass the operator orgId on canary run creation
- Apply review findings to the structural reliability batch
- Implement structural reliability fixes: schema-derived repair, auto-retry, search self-healing, completion contract
- Clamp coverage lane targets in planner repair
- Default auto LLM routing to OpenRouter credits; widen planner wall clock
- Never apply future publication-date filters; fail empty-corpus runs
- Steer legacy-shape API callers to the current agent contract
- Raise planner output budget and surface length-exhaustion failures
- Rename deep-research alias to hermes-deep-research (PyPI similarity rule blocked exact name)
- Checklist: env check + VM e2e done, upstream issue #43117 filed, prebuilt dist paths
- Document Hermes CLI pip-enable bug + config.yaml install fallback
- Ship Article/Video Analysis tier, trial keys, preview-run funding funnel, Hermes plugin
- Prefer OpenRouter MPP for auto LLM routing
- Hide zero-credit failed usage from run warnings
- Complete no-speech video runs deterministically
June 8, 2026
Pipeline reliability & speed Customer run recovery fixes for extraction gates and transcript-first media runs.
Added
- Add concept expansion URL mode
Fixed
- Fix extraction gates for customer run recovery
- Fix transcript-first media run recovery
June 7, 2026
Autonomous factory & operations An admin runs debug view, and the runs page went public and mobile-friendly.
Added
- Add admin runs debug view
Improved
- Simplify runs debug table actions
- Tighten mobile runs debug table
- Make runs page public again
- Make runs page reuse home app
Fixed
- Fix mobile runs metadata wrapping
- Fix mobile runs auth fallback
Changed
- docs: add agent discovery and growth strategy
- Trim runs mobile debug summary
- Bust runs mobile CSS cache
- Wrap mobile runs debug metadata
- RES-7: Update /runs page
June 6, 2026
Agent interop & the contract The Researcher MCP endpoint shipped and is exposed through the public domain.
Research entities & personas Entity avatars, broader profile evidence selection, durable About reports, and fixed ingestion indexing.
Autonomous factory & operations Centaur ships Linear tickets end-to-end: auto-ship by default, readable status markers, a fast lane for small tickets, and autonomous deploy recovery.
Added
- Add fast lane for small Linear tickets
- Add Centaur Linear issue shipper
- Add durable entity about reports
- Add entity avatar support
- Expand entity profile evidence selection
Improved
- Make Centaur Linear deploy recovery autonomous
- Simplify agent chat routes
- Make Centaur Linear status actionable
- Quiet Linear auto-ship updates
- Quiet Centaur Linear comments
- Polish entity stats layout
- Tighten Centaur Linear status comments
- Tighten entity header subtitle
- Align entity profile headline schema
Fixed
- Require visual review for Centaur UI component tickets
- Harden Linear shipper status updates
- Retry interrupted Linear started markers
- Fix entity report markdown rendering
- Harden server promotion env loading
- Fix entity ingestion indexing and source processing
Changed
- Reconcile deployed Centaur issues to Done
- RES-7: Update /runs page
- Document narrow Centaur ownership repair
- Expose MCP through Vercel
- Ship Researcher MCP endpoint
- Clean up merged Centaur Linear branches
- Do not delete active worktree branch on merge
- RES-6: Fix /runs mobile page
- Clean transient web metadata in factory verification
- Speed up Linear shipper polling
- Honor terminal Centaur markers across hash migration
- Use readable Centaur Linear markers
- Surface Centaur review blockers in Linear
- Clarify entity source stats
- Default Linear tickets to auto ship
- Document Centaur repo ownership
- Let Centaur skip handled Linear issues
- Standardize entity about format
- Document deploy generated metadata cleanup
- Keep public-person profiles advisor oriented
- Lift entity profile candidate recall cap
- Broaden entity profile rebuild evidence
June 5, 2026
Site, brand & public pages Shared page width normalized toward one canonical shell across surfaces.
Research entities & personas Durable research entities landed in one push: entity pages, persona profiles, persona chat, X archive backfill, and About profiles that read like reports.
Autonomous factory & operations Production Postgres PITR backups with runbooks and a restore drill; Centaur gained deploy keys, reviewer guards, and verification logs.
Added
- Add page skeleton loading states
- Add production Postgres PITR tooling
- Add production database backup runbook
- Add full archive X entity backfill
- Add operator X persona ingestion canary
- Add durable entity persona profiles
- Add durable entity chat
- Add durable research entities
- Add synthesis progress events
- Add factory watchers and budget-bounded run contract
Improved
- Make entity About read like a report
- Tighten entity chat modal behavior
- Show live entity corpus counts
- Route entity pages through production backend
- Improve entity persona chat retrieval
Fixed
- Harden production backup uploads
- Restore Centaur Codex high reasoning
- Harden backup script diagnostics
- Fix PITR base backup temp ownership
- Fix backup scripts gcloud path
- Harden entity profile evidence selection
- Harden X persona ingestion staging
- Harden Centaur source-only autorun
- Fix enriched report source references
- Fix late refinement failure boundary
Changed
- Use rich entity headline on page header
- Normalize entity profile citations
- Bound rich entity profile evidence
- Extend entity profile generation timeout
- Generate rich entity About profiles
- Correct page width rollout
- Document sudo promote deploy step
- Normalize shared page width
- Normalize legacy entity overview shell
- Rename entity overview tab to About
- Submit entity launch composer directly
- Use conversation evidence as entity style fuel
- Relax entity search with database text normalization
- Handle empty X archive windows
- Record backup restore drill
- Clarify production backup snapshot posture
- Walk older X archive windows
- Document X persona operator runbook
- Pass verification logs to Centaur reviewers
- Parse Centaur final review output
- Guard Centaur reviewer phases
- Scope transcript extraction quality gate
- Configure Centaur Codex deploy path
- Document terminal run webhook handling
- Document Centaur GitHub API token
- Densify source coverage appendix tables
- Classify report evidence limitations
- Document Centaur GitHub deploy key
- Document recovery deploy guardrail
- Keep original report when rewrite is unavailable
- Tune factory watcher signal
June 4, 2026
Pipeline reliability & speed The run factory became self-healing end-to-end, with source-only extraction rescue paths for stuck runs.
Added
- Add operator failed-run audit endpoint
- Add self-healing factory workflow
- Add source-only extraction summaries
Improved
- Make factory self-heal end-to-end
- Preserve direct source summary extractions
- Preserve source-only settings during recovery
Changed
- Document production factory monitor
- Keep report review outages from failing completed reports
- Use direct source URLs for extraction rescue
- Accept direct source-only summary extractions
June 3, 2026
Payments & metered billing A billing margin audit canary reconciles billed totals to settled channel spend, and payment-session settlement accounting was fixed.
Autonomous factory & operations An operations metrics dashboard landed.
Added
- Add operations metrics dashboard
- Add billing margin audit canary
Improved
- Tighten metrics chart labels
- Align metrics provider window
Fixed
- Fix chat funding and start confirmation
Changed
- Reconcile billed totals to settled channel spend
- Settle existing spend during operator recovery
- Sponsor payment close fees from customer wallets
- Resume extraction only after accepted coverage
- Recover persona research source selection
- Document billing margin audit findings
- Reconcile payment session settlement accounting
- Close payment sessions with matching payee account
- Tolerate long insight merge references
June 2, 2026
Improved
- Allow model-limited acquisition scrape sets
- Tighten report text rhythm
Changed
- Publish Researcher skill install path
- Keep report headings customer-facing
- Honor agent budget aliases
- Keep operator recovery billing internal
- Skip customer billing for operator recovery reruns
- Use candidate ids for acquisition triage
- Shard acquisition candidate triage
- Speed up runs page query
- Clarify dashboard run metadata
Removed
- Remove depth from runs surface
- Remove pipeline stage numbers
June 1, 2026
Report quality & evidence fidelity Writer prompt consolidated from 28 instructions to 15, direct quotes render as styled quote cards, and rewritten reports are verified before completion.
Provider rails & failover Managed provider payment contract: Exa and Firecrawl run on MPP rails, with an OpenRouter API-credit fallback and Deepgram joining for audio.
Video, podcast & source analysis Deepgram transcription covers captionless videos, and failed transcript extraction is no longer fatal to a run.
Agent interop & the contract Agent Contract v1 rolled out clean-slate, with budget aliases honored.
Autonomous factory & operations Deploy stability runtime split and a documented safe production deploy workflow.
Added
- Add Deepgram audio transcription fallback for captionless videos
- Add Exa and Firecrawl managed MPP rails
- Add OpenRouter MPP API credit fallback
- Add one-shot feed extraction endpoint
- Add CTO review control artifacts
Improved
- Make failed transcript extraction non-fatal for video runs
- Increase YouTube results to 5 and skip for academic queries
- Update generated web metadata
- Tighten report writer conciseness directive
- Render markdown blockquotes as styled quote cards
Fixed
- Fix /runs page slow load with CTE-first query
- Restore earned video report lessons to writer prompt
- Fail empty user-added web sources
- Require explicit video transcript sources
Changed
- Implement deploy stability runtime split
- Filter corpus artifact source ids to stored sources
- Document safe production deploy workflow
- Use one settlement wallet for MPP sessions
- Roll out Agent Contract v1
- Document OpenRouter payment canary
- Define managed provider payment contract
- docs: clean-slate v1 contract spec (no back-compat)
- docs: rigorous audit pass on agent-contract iteration
- Consolidate report writer prompt from 28 to 15 instructions
- Force planner to generate one query per named entity
- Speed up dashboard page for users with many runs
- Cover source extraction payment authorization
- docs: design note for agent-contract iteration (API, SDK, CLI, MCP)
- Use blockquote syntax for direct quotes in reports
- Document report warning deploy
- Surface residual report contract warnings
- docs: design note for RSS + X acquisition adapters
- Reject weak source extraction seeds
- Verify rewritten reports before completion
- Protect queued run payment sessions
May 31, 2026
Report quality & evidence fidelity The writer now sees full ranked evidence (bestSources ordering, 500K-token budget) instead of a stripped corpus, and customer instructions are authoritative over library context.
Added
- Add YouTube Data API search for podcast/interview discovery
- Add prompt copy control
Improved
- Show source excerpts in report citations
- Polish inline report source details
- Make report sources expandable inline
- Refine pipeline loop indicator
- Render timestamped source refs
- Show transcript speaker labeling progress to customer
- Move artifacts into dedicated tab with human-readable labels
- Show resume stage in continuation event
Fixed
- Fix planner: customer instructions are authoritative, not library context
- Fix MPP session auth separation
- Retry server wallet credential creation up to 3 times
Changed
- Clean inline source excerpts
- Per-person queries: never combine multiple authors into one search
- Parallelize transcript extraction and scraping
- Always reuse existing plan on continue — never re-plan
- Strip unpaired Unicode surrogates from Postgres JSON values
- Prefer YouTube titles for media runs
- 10min timeouts, longer excerpts for bestSources
- Full evidence to report writer: bestSources ranking, 500K budget, 6min timeout
- Raise synthesis input budget to 200K tokens
- Close orphaned payment channels on startup + fix pricing defaults
- Return to single coherent report call with corpus-focused input
- Enrich section writer prompt with formatting guidance
- Skip re-planning on continue when corpus analysis exists
- Scope down devil's advocate to single factual check
Removed
- Remove redundant synthesizePackWithLlm call
- Remove arbitrary source caps from prompt inputs
May 30, 2026
Report quality & evidence fidelity The report writer was decomposed into a sectioned pipeline with adversarial testing, corpus merge into focused LLM passes, and every report now opens with a Signal block.
Pipeline reliability & speed Stage-based resume: continue skips re-planning and reuses corpus analysis instead of re-running the whole pipeline; extraction streams progress every 30 seconds.
Site, brand & public pages The pipeline page was redesigned stage by stage, public docs were redesigned, and this changelog page was born.
Added
- Add stage-based resume for continue
- Add Signal block at top of every report
- Add extraction progress events every 30 seconds
- Add generated changelog page
- Add structured deliverable checklist to research pipeline
- Expand Researcher agent APIs
- Add installable Researcher skill
Improved
- Increase structured synthesis timeout to 300s
- Make pipeline stages explorable
- Show research loop progress context
- Refine run cost breakdown modal
- Align cost breakdown with pipeline steps
- Show precise research pipeline progress
- Preserve changelog backfill in shallow builds
- Redesign public docs page
- Widen pipeline page to match site shell width
- Simplify pipeline page — side nav, single column, collapsible prompts
- Reuse corpus artifacts for budget reports
- Redesign pipeline page — organize by stage with full details
- Polish runs mobile summaries
- Tighten runs mobile metadata
- Make runs page mobile friendly
Fixed
- Fix resume review findings: partial extraction check, stagnantRounds, static imports
- Fix transcript extraction killing runs on non-video YouTube URLs
- Fix planner merging questions into output sections
- Guarantee budget-limited research reports
Changed
- Publish report with contract notes instead of failing
- Use 'round' instead of 'attempt' in activity events
- Cap section output at 400 words, enforce conciseness
- Refresh generated web metadata
- Address review findings on report writer pipeline
- Decompose report writer into sectioned pipeline with adversarial testing
- Collapse extraction events into live progress row in activity feed
- Final review cleanup: import shared schemas, fix date regex, zero-theses guard
- Address review findings on decomposed corpus merge
- Decompose corpus merge into focused LLM passes
Removed
- Remove hard word caps — let sections be as long as evidence demands
- Remove arbitrary source caps — let budget govern scale
- Remove run plan chips
- Remove pipeline stage duration labels
- Remove dead monolithic corpus merge, fix video title override
- Remove portfolio selection — extract every acquired source
May 29, 2026
Report quality & evidence fidelity Corpus merge went hierarchical with shard retries, and rewritten reports are verified against the output contract.
Payments & metered billing Costs break down by pipeline stage and the minimum run budget dropped to one dollar.
Provider rails & failover OpenRouter MPP payment identity propagates across every LLM stage.
Added
- Add pipeline inspection page
- Add hierarchical corpus merge
- Add run action tooltips
- Add run fork snapshots
Improved
- Route discovered YouTube sources through transcripts
- Propagate OpenRouter MPP across LLM stages
- Reduce corpus merge prompt duplication
- Move run action tooltips above buttons
- Improve ranked report record tables
- Round report record table corners
- Soften report record table borders
- Render wide report rows as literal tables
- Render wide report tables as field rows
- Improve report table readability
- Quiet source extraction header links
- Contain report markdown overflow
- Break down run costs by pipeline stage
- Show fork lineage to public viewers
- Refine fork lineage label
- Enforce report output contract review
Fixed
- Fail runs on missing structured synthesis
- Retry failed corpus merge shards
- Sanitize scraped source payloads
- Harden structured corpus synthesis
- Fix mobile run report layout
- Fix muted report list labels
- Fix report markdown table copy color
Changed
- Verify rewritten reports against contract
- Bound source portfolio selection prompts
- Lower minimum run budget to one dollar
- Clean unresolved public source refs
- Relax review schema text limits
- Prefer latest fork report artifacts
May 28, 2026
Payments & metered billing Customer sessions are sponsored from the treasury wallet, live billing and settlement were fixed, and run cost breakdowns shipped.
Codebase health & modularization The great split: hundreds of files broken into focused modules, with workflows and the engine promoted to the repo top level.
Added
- Add website run previews
Improved
- Preserve customer output contract in reports
- Avoid default budget cap on sponsored runs
- Increase planner budget for dense briefs
- Move run planning into worker lifecycle
- Allow longer LLM planning for dense briefs
- Polish run cost breakdown control
- Smooth account loading and cost modal
- Show run cost breakdowns
- Route OpenRouter through MPP treasury wallet
- Tighten modal and table interactions
- Update danger UI red
- Align signed-out homepage composer
- Refine live activity row styling
- Simplify live activity row state
- Improve live activity row context
- Improve dashboard run start state
Fixed
- Require LLM planning before run creation
- Fix live run billing and MPP settlement
- Retry server wallet MPP channel verification
- Fix website screenshot thumbnails
Changed
- Sponsor customer MPP sessions from treasury wallet
- Use custom run delete modal
- Hide legacy media quote notes
- Clarify LLM-driven research contract
- Promote core workflows to repo root
- Group core runtime under core directory
- Clarify core workflow map
- Clarify workflow package entrypoints
- Promote workflows and engine to top level
- Group core runtime packages
- Clean stale build output paths
- Flatten engine and workflow layout
- Clarify top-level monorepo structure
- Clarify research workflow package
- Promote workflow entrypoints to top level
Removed
- Remove media quote boilerplate notes
May 27, 2026
Pipeline reliability & speed Stop decisions are quality-gated, and budget-ended runs still complete with a report.
Video, podcast & source analysis Speaker labeling and media concept extraction became LLM-driven instead of heuristic.
Codebase health & modularization UI and runtime modularized into focused modules; the core workflow package became the engine.
Added
- Add run progress summary spacing
- Add quality-gated research stop decisions
Improved
- Make core workflows explicit
- Preserve chat numbered lists
- Refine video report evidence cards
- Make video transcript speaker labeling LLM-driven
- Make media concepts LLM-driven
- Move transcript tab before sources
- Reuse planner normalization in OpenRouter planning
- Reuse shared fallbacks in pack render data
- Reuse shared array fallback helper
- Reuse shared numeric parsing in retrieval rows
- Reuse shared HTML escaping in source pages
- Reuse shared domain helper in source titles
Fixed
- Fix homepage example runs spacing
- Fix run progress label spacing
Changed
- Rename core workflow package to engine
- Extract run page controller bridge
- Extract run chat stream controller
- Modularize CLI command runtime
- Clarify core workflow package structure
- Extract run page navigation helpers
- Modularize homepage chat helpers
- Modularize discovery and media artifact helpers
- Stop automatic contradiction verification runs
- Keep transcript tab label quiet
- Record transcript speaker labeling method
- Fit YouTube extraction to wallet balance
- Refresh run chat auth on run pages
- Refresh system map after spacing build
- Speed up run status first paint
- Complete budget-ended runs with reports
- Use fast path for homepage run loading
- automation(architecture-gardener): require auth for v1 run reads
- Speed up account run loading
- Re-export shared run analyst row records
- Re-export shared provider response scalars
- Re-export shared HTTP attribute escaping
- Re-export shared synthesis text helpers
- Re-export run analyst attachment normalizer
- Re-export run analyst route string helper
- Re-export shared source text helpers
- Inline shared run analyst store string helper
- Inline shared extraction provenance string helper
- Consolidate nullable array fallback helper
- Consolidate boolean scalar helper
- Consolidate non-empty string scalar helper
- Consolidate timer unref helper
- Consolidate public share URL builders
- Consolidate text formatting helpers
- Consolidate string list uniqueness helpers
- Consolidate nonblank string scalar helper
- Consolidate numeric string scalar helper
- Consolidate nullable record helper
- Consolidate uploaded source document helpers
Removed
- Remove transcript tab count
- Remove deterministic media reference bullets
May 26, 2026
Codebase health & modularization Dozens of duplicated value helpers consolidated into shared utilities.
Improved
- Reuse shared value helpers in render data
- Reuse shared attribute escaper for public sources
- Reuse pack render record helper for public sources
- Reuse Run Analyst row helper in store adapter
- Reuse pack render record helper in share metadata
- Reuse Run Analyst row record helper in HTTP routes
- Reuse provider response helper for Supadata metadata
- Reuse provider response helpers in Supadata transcripts
- Reuse provider record response helper
Changed
- Consolidate nonblank string helper
- Consolidate optional trimmed string helper
- Consolidate empty fallback value helpers
- Consolidate public source URL helpers
- Consolidate filename slug helper
- Consolidate scalar value helpers
- Consolidate provider array response helpers
- Consolidate run control object coercion
- Consolidate report corpus record helper
- Consolidate research array value helper
- Consolidate pack planning array helper
- Consolidate Run Analyst array row helper
- Consolidate Run Analyst boolean row helper
- Consolidate research record value helper
- Consolidate media transcript value helpers
- Consolidate pack planning value helpers
- Consolidate Run Analyst HTTP record helpers
- Consolidate Run Analyst limit clamping
- Consolidate provider response helpers
- Consolidate Run Analyst row value helpers
- Consolidate source analysis text cleanup
- Consolidate share page escaping helpers
- Consolidate DB SQL helper utilities
May 25, 2026
Report quality & evidence fidelity Corpus quality overhaul — dedup, rescoring, boilerplate stripping, ranking — plus fixes for 100+ review findings across the codebase.
Provider rails & failover Content-filter refusals are detected and rerouted across Claude and GPT fallbacks with lenient JSON recovery; Exa gained find_similar, domain filters, and date ranges.
Video, podcast & source analysis Transcripts are LLM-restructured into interview format; YouTube handling is transcript-first, searching only for specific references.
Agent interop & the contract API overhaul: /research and /agent with personas and streaming, plus discovery surfaces — robots.txt, sitemap, and llms-full.txt.
Chat & the run workspace Global chat gained its sidebar everywhere, a stop button, and an iridescent focus sweep on the research input.
Added
- Add lenient JSON extraction for Claude fallback responses
- Add Claude as content-filter fallback, log truncated content
- Add POST /agent endpoint with persona, auto-sessions, and streaming
- Add /v1/youtube-extractions endpoint, auto-detect YouTube URLs in research runs
- Add immediate YouTube metadata extraction
- Add glimm sweep animation on research input focus
- Add chat modal stop button, budget error clarity, and nav chat link
Improved
- Tighten YouTube media limits: 1 loop, 4 queries, 20 sources
- Increase analyst max output tokens from 1800 to 3200
- Reduce source extraction loop limits: standard 4→1, wide 6→2, narrow 2→1
- Simplify API: add /research, /website-extractions, /markdown, /deepen, /focus; remove legacy
- Move sidebar toggle into sidebar with brand header
- Make glimm border visible, fire once, settle to black border; fix attach circle
- Simplify modal header to Researcher brand, add sidebar toggle
- Show chat sidebar on global-chat-route (was only visible on job-chat-route)
Fixed
- Fix 100+ review findings across entire codebase
- Fix review issues: fingerprint window, cross-domain check, evidence counting, chunk quality
- Fix Exa review issues: maxAgeHours bug, empty contents guard, cleanup
- Fix run card click: navigate parent window, not iframe
- Fix Claude fallback: coerce gaps string→array, log truncated content
- Fix evidence metadata type: default to empty object
- Fix /agent blocking response: read answer from assistant message content
- Fix /agent wait: check for 'succeeded' status (not just 'done')
- Fix /agent session lookup: pass positional args to getRunChatSession
- Fix agent discovery: add robots.txt, sitemap.xml, llms-full.txt; update llms.txt
- Fix glimm canvas rendering with wrapper div, fix attach button circle
- Fix nav grid to 4 trailing columns for Chat+Pricing+Docs+Account
Changed
- LLM-powered transcript restructuring into interview format
- YouTube: transcript-first, search only for specific references
- Corpus quality overhaul: dedup, rescoring, boilerplate strip, ranking
- Tell LLM pipeline about new Exa capabilities
- Enhance Exa: find_similar, domain filters, date ranges, batch contents, autoprompt
- Handle Claude plain-text responses (OpenRouter doesn't enforce json_schema)
- Handle content_filter: detect, log, fallback to GPT-4.1
- Strip bloated metadata from evidence packets to reduce token cost
- Dynamic max tokens for analyst: scales with input size
- Relax citation validation: only reject hallucinated IDs, allow zero citations
- Skip strict citation validation when custom persona/systemPrompt is set
- Implement poll-based wait for /agent stream:false
- Rewrite persona generator: single-author voice vs multi-source expertise
- Abstract away depth, scope, requestedBy, response URLs, and auto-wait
- Auto-generate run persona from source corpus, remove persona from API
- Default include=all for authenticated requests, add /results endpoint
- Tell agents about YouTube extraction in system prompt and docs
- Quote cards: full width, more padding, italic text
- Revert glimm border effect on research input
- Replace WebGL glimm with CSS conic-gradient iridescent border
- Place glimm canvas behind form as sibling, not inside it
- Scope glimm to input border ring instead of fullscreen sweep
- Restructure nav: merge API+CLI into Docs, add account avatar+balance
- Document latest YouTube agent contract
May 24, 2026
Video, podcast & source analysis Video reports became quote-first with timestamp links, and YouTube extraction starts straight from the home composer.
Added
- Add Parallel bakeoff and quote card polish
Improved
- Refine video quote typography
- Quiet video quote card styling
- Move contradiction sections to research notes
- Polish video quote cards
- Make video quote context dynamic
- Render video quote timestamps as links
Changed
- Compact YouTube run header media
- Start YouTube extraction from home composer
May 22, 2026
Changed
- Detect timestamped report quotes
- Box report quote text
- Scope contradiction verifier jobs
May 21, 2026
Video, podcast & source analysis From spec to shipped in a day: YouTube media runs with transcript-first reports, a transcript tab, and timestamped source references.
Added
- Add referenced notes under video quotes
- Add YouTube transcript run tab
- Add YouTube media run header
- Add podcast video processing pipeline specification
Improved
- Preserve model-written media reports
- Tighten YouTube run preview layout
- Reduce repetition in video report fallback
- Tighten video quote selection
- Make video reports quote-first
- Tighten run overview spacing
- Simplify media summary lead
- Make media reports quote first
- Refine YouTube summary source chips
- Tighten YouTube summary cards
- Tighten YouTube summary card spacing
- Move YouTube card media below text
- Tighten YouTube preview spacing
- Polish YouTube summary cards
- Refine YouTube summary card parsing
- Render YouTube summaries as insight cards
- Move report diagnostics into research notes
- Make YouTube transcript artifacts default
- Make YouTube reports transcript first
- Refine podcast video pipeline spec
Fixed
- Require reuse in media pipeline spec
Changed
- Promote clean transcript claims in video reports
- Give run analyst chat session context
- Prepare run analyst indexes on completion
- Use run titles in regenerated reports
- Revert media summary cards
- Loosen summary card spacing
- Extract job source dialog controller
- Extract job chat data helpers
- Extract job run actions
- Extract job transcript view
- Extract job media summary cards
- Compact expandable YouTube summary cards
- Reorder run page tabs
- Bust job summary stylesheet cache
- Handle nested report notes headings
- Timestamp YouTube source references
- Use YouTube metadata for run titles
- Center media preview on run page
- Detect transcript-shaped YouTube sources
- Recover rejected media transcripts
- Generate reports for YouTube media runs
- Outline YouTube media run flow
- Specify media report components
- Default bare homepage URLs to source extraction
Removed
- Remove corpus status from report fallbacks
- Remove report glance card
May 20, 2026
Provider rails & failover Exa search discovery joined Firecrawl, with costs accounted per run.
Chat & the run workspace Smoother analyst streaming, an animated sidebar, and a widened chat modal.
Added
- Add optional Exa search discovery
- Add concise agent prompt intelligence patterns
Improved
- Simplify chat modal animation
- Refine run chat modal header
- Soften modal backdrops
- Widen run chat modal
- Smooth document navigation
- Improve run analyst streaming feedback
- Align run page width with dashboard
Changed
- Give research planner enough time
- Level up Exa research discovery
- Account for Exa search costs
- Animate run chat sidebar
- Revalidate stale run chat messages
- Consolidate researcher UI and runtime refactors
- Expose agent prompt intelligence guidance
May 19, 2026
Agent interop & the contract An agent operating index, research contracts, and run controls for programmatic callers.
Chat & the run workspace Chat became a first-class surface: persistent start-chat sessions with shareable URLs, inline run proposals, and unified entrypoints.
Added
- Add run chat interaction affordances
- Add agent operating index
- Add research contracts and run controls
- Add proposal budget and run controls
- Add interactive system map
- Add persistent start chat URLs
- Add run page chat spacing
- Add run summary to chat
- Add agentic homepage run onboarding
Improved
- Reuse inline citation UI in run chat
- Make run analyst chat messages durable during streaming
- Make proposal start state active
- Tighten chat proposal prompt typography
- Polish chat proposal card
- Render start chat proposals inline
- Align chat proposal layout
- Align chat proposal states
- Make global chat fill viewport
- Tighten global chat sidebar density
- Smooth homepage chat transition
- Simplify agent source extraction handoff
Fixed
- Fix run chat stream reconciliation
- Fix run chat handoff and summary order
- Fix finalize pending run UI
- Fix paused run progress label
- Fix paused run progress bar and finalize status
- Fix deploy docs: split git/build by file owner
- Fix source dedupe migration conflict
- Fix duplicate sources on job resume
- Fix chat composer shadow clipping
Changed
- Bound source analysis helper text
- Persist AI-generated run titles separately from prompt
- Graceful budget exhaustion and unified action buttons
- Narrow global chat sidebar
- Use chat session ids in chat URLs
- Anchor chat nav to viewport edges
- Center empty run chat composer
- Wrap chat in product shell
- Generate concise run titles
- Use icons for run pause stop
- Keep started runs in chat
- Use path URLs for start chats
- Persist start chat sessions
- Persist onboarding chat turns
- Enable chat composer uploads
- Use black chat focus border
- Persist homepage start chat
- Unify Researcher chat entrypoints
- Guard Discord gateway reconnects
Removed
- Remove clunky chat back link
- Remove legacy quote infrastructure
- Remove quote-based run creation
May 18, 2026
Agent interop & the contract Account-linked Discord integration with customer Hermes agent routing and billing coverage.
Chat & the run workspace Run Analyst agents landed: chat with a finished run, with inline citations and durable structured answers.
Codebase health & modularization The service split into monorepo packages.
Added
- Add run analyst extractive fallback
- Add run analyst agents
- Add source records to source table
- Add run start control to job page
- Add source extraction creation endpoint
- Create Discord link on first contact
- Add Discord account link flow
Improved
- Make run chat open instantly
- Tighten run analyst launcher spacing
- Simplify run analyst launcher
- Align run analyst starter width
- Tighten run analyst composer
- Simplify run analyst entry point
- Polish run analyst job UI
- Polish run extension CTA
- Polish run analyst citations
- Render analyst numbered answers as lists
- Render run analyst citations inline
- Polish run analyst chat layout
- Widen run analyst chat page
- Move run analyst chat to its own page
- Polish run analyst source references
- Make run analyst chat an agent workspace
- Move run chat composer to page chrome
- Simplify source table columns
- Improve prompt disclosure interaction
- Smooth account auth loading state
- Polish connected Discord account card
- Improve source extraction stopping
- Simplify Discord run start reply
- Route Discord source extraction requests
- Tighten Hermes billing coverage
- Simplify Discord account install card
- Improve empty Discord account state
Fixed
- Fix job page chat regression
- Fix job prompt disclosure
- Fix run analyst structured output schema
- Fix run analyst chat header layout
- Repair run analyst structured responses
- Fix sessionless run analyst turns
Changed
- Neutralize job delete icon
- Clarify run page VM deployment
- Prioritize run analyst chat action
- Restyle run chat sidebar
- Use icon actions for analyst citations
- Stack run analyst evidence cards
- Use source pills for inline chat citations
- Keep selected chat citations visible
- Clean up chat citation titles
- Prefer stored sources in chat references
- Capitalize run action and status labels
- Preflight source extraction inventory
- Use closable payee for payment sessions
- Close metered payment sessions on cancellation
- Clarify source extraction run shape
- Shorten homepage agent prompts
- Compact Discord run progress updates
- Stop Discord link claim from retrying
- Scale Hermes customer routing
- Migrate Discord to customer Hermes agents
- Return Discord connect links immediately
- Resolve Discord gateway permissions from roles
- Infer Discord link flow from natural requests
Removed
- Remove prompt section inherited padding
May 17, 2026
Report quality & evidence fidelity Benchmarked against OpenAI Deep Research with per-source comparisons and better eval corpus packing.
Agent interop & the contract A managed Discord research agent: direct messages, conversational chat, and persistent research memory.
Added
- Add managed Discord research agent
- Add durable source analysis records
- Add o3 per-source Deep Research comparison
- Add protein cookie Deep Research comparison
- Add agent entry buttons to homepage
- Add Discord install callout to homepage
- Expand Discord bot install permissions
- Add account-linked Discord integration
Improved
- Make Discord chat conversational
- Reuse prior source extractions
- Allow Discord ask without planner model
- Polish agent copy interaction
- Improve Deep Research eval corpus packing
- Polish agent prompt copied state
- Move Discord CTA below agent prompt
- Simplify Discord homepage copy
- Simplify Discord install layout
- Polish Discord install page
- Route Discord endpoints through Vercel
Fixed
- Harden Discord agent progress concurrency
- Fix Discord install mobile layout
Changed
- Persist Discord research memory
- Handle Discord direct messages
- Scope Discord agent sessions by user
- Use supplied agent channel images
- Expose Deep Research output token cap
- Use background mode for Deep Research evals
- Shorten agent button copy
- Use Researcher logo and branded agent icons
Removed
- Remove homepage agent prompt block
May 16, 2026
Improved
- Improve mobile runs layout
Changed
- Center account login form
- Scale job dispatch and SSE streaming
- Inline run status metadata
May 15, 2026
Payments & metered billing Metered run billing moved to MPP sessions authorized from server wallets, with hard budget caps and full API key management.
Agent interop & the contract An agent handoff contract with funding guidance baked into 402 responses and capped planner latency.
Added
- Add run pause stop delete controls
- Add comprehensive API key management with modal UI
- Add account login button hover state
- Add agent funding guidance to 402 responses
- Add agent handoff contract and cap planner latency
Improved
- Enforce run budget hard caps
- Simplify account landing page
- Improve account page conversion flow
- Enforce fast planner fallback
- Simplify agent onboarding docs
Fixed
- Fix account usage actions width
- Harden quote create idempotency
- Fix API key modal animation and expiry dropdown
- Fix account page typography to match app design system - remove custom font weights/sizing, use standard patterns
Changed
- Modularize account UI and shared helpers
- Inline usage run status
- Clarify server-wallet customer docs
- Document server-wallet MPP accounting invariant
- Reset server-wallet sessions to metered voucher
- Open server-wallet sessions with minimal voucher
- Meter server-wallet MPP sessions
- Use Tempo client method for server-wallet sessions
- Authorize MPP sessions from server wallets
- Use MPP sessions for metered run billing
- Center account page and fix title line breaking - center content, smaller title with nowrap, maintain mobile button
- Hide agent quickstart from homepage
Removed
- Remove paid request snippet from account
- Remove funded wallet payment copy
May 13, 2026
Agent interop & the contract Share pages render for agents and run pages offer an agent handoff.
Added
- Add agent handoff to run pages
Improved
- Update project README
- Render share pages for agents
Fixed
- Restore browser run viewer
Changed
- Clarify continuation prompt flexibility
- Keep share URL on live viewer
- Hide agent handoff on run pages
May 14, 2026
Report quality & evidence fidelity Contradiction detection landed: knowledge claims are auto-verified and contradictory facts get their own report section.
Added
- Add end-to-end contradiction report test
- Add contradictory facts section to research reports
- Add auto-verification workflows for contradiction detection
- Add contradiction detection for knowledge claims
Fixed
- Fix research report markdown export
- Fix contradictory facts section - correct field mapping
- Fix contradictory facts section by fetching stored contradictions
- Fix contradictory facts section rendering
Changed
- Clean up contradiction system - production ready
- Complete auto-verification integration with research reports
May 12, 2026
Report quality & evidence fidelity Fallback reports stopped padding themselves: boilerplate filtering, topic-specific claims, and irrelevant timelines and tension sections suppressed.
Added
- Add runs overview page
- Add planner timeout for resilient quotes
Improved
- Route runs page through Vercel
- Tighten research boilerplate filtering
- Make research planner resilient to dense prompts
Changed
- Limit fallback tensions to explicit requests
- Suppress irrelevant fallback tensions
- Filter transcript metadata from fallback reports
- Suppress irrelevant fallback timelines
- Prioritize topic-specific fallback claims
- Filter government chrome from research evidence
- Timeout Firecrawl credit metering
Removed
- Remove noisy fallback tension section
May 11, 2026
Report quality & evidence fidelity Reports learned to read as prose: plain-English sections, generic section schemas, cleaner tables, and a soft auto-reveal when a run finishes.
Pipeline reliability & speed Interrupted research jobs are requeued automatically.
Agent interop & the contract Agent setup and stored source access landed, plus an Obsidian export command.
Site, brand & public pages Homepage reframed around featured example runs and a six-step pipeline; budget-based pricing pages with a redesigned estimator.
Added
- Add optional synthesis skip for source runs
- Add budget-based pricing pages
- Add three featured example runs to homepage
- Add per-run OG metadata to share-page route
- Add durable Researcher agent service boundary
- Add seedUrls, seedOnly, and transcribeVideos for direct-link source extraction
- Add Obsidian export command
- Add agent setup and stored source access
Improved
- Tighten run pricing accounting
- Redesign pricing estimator
- Route /r/:path* to VM for run-specific OG metadata
- Align run ID cell with sibling values in job summary
- Show research prompt on job page
- Align Auto service manifest with research run API
- Render 2-col claim+sources tables as bullet lists
- Make report sections generic across topics
- Render research report as plain English prose, not table dump
- Show deploy commit SHA in run page footer
- Avoid flash when opening source modal
- Show deploy commit SHA in homepage footer
- Polish source modal: animations, copy icon, icon-only download
Fixed
- Fix prompt section gap and empty-preview height
- Fix recovery event metadata cast
- Repair overlong planner queries
- Fix report typography hierarchy
- Fix shallow reports when extraction LLM rejects user-seeded sources
- Fix kicker copy-icon check overlay
Changed
- Use run preview for pricing page
- Load report data on initial job page fetch
- Reframe homepage Features as a six-step pipeline
- Reorder homepage sections and add Features grid
- Stack markdown comparison tables on mobile
- Preview prompt and merge container into summary table
- Requeue interrupted research jobs
- Collapse run prompt section by default
- Keep live viewer cost visible
- Revert stateful Researcher agent workstream
- Bind Researcher repo to managed Research Auto
- Rename seedUrls/seedOnly to sourceUrls/sourcesOnly
- Box At a glance and pull source chips inline
- Reject CDN and media-asset URLs as candidate sources
- Clean up report auto-load — refresh artifacts and simplify reveal
- Auto-load report with a soft reveal when a run finishes
- Use prose layouts for label-to-text report sections
- Standardize Continue button typography and smooth copy animation
- Restrict Source link to homepage footer
- Consolidate page footer into <site-footer> component
- Inline seed URL into the run-page kicker
- Truncate overflowing table cells with ellipsis
- Open sources in a modal on the run page
- Animate running progress bar in blue
- Hide agent setup panel from homepage
Removed
- Remove stale Researcher agent spec
- Drop empty columns from markdown report tables
May 10, 2026
Added
- Add bordered continue action
May 9, 2026
Pipeline reliability & speed Continuation runs landed across the stack — a finished run can be extended instead of restarted.
Added
- Add continuation runs across the stack
Fixed
- Fix mobile job page layout
Changed
- Ship run-page UX and event-anchored continuation
- Revert "Strengthen extraction evidence pipeline"
- Strengthen extraction evidence pipeline
May 8, 2026
Report quality & evidence fidelity Structured research plans replaced playbooks and the mode concept; runs honor academic-source requests.
Improved
- Improve research pipeline quality and remove mode concept
- Show full source lists on run pages
- Polish run link loading states
- Tighten homepage positioning copy
- Polish report header actions
- Align job report column width
- Tighten job report typography
- Polish job report rendering
- Simplify job page layout
Fixed
- Require explicit public base URL in production
- Fix job markdown table rendering
Changed
- Replace playbooks with structured research plans
- Log bad watch links
- Return explicit run creation receipts
- Honor academic source requests
- Expose live run handoff
- Constrain job report width
May 7, 2026
Report quality & evidence fidelity Research loops became explicit and quality-gated, with an analyst audit pass over source extractions and library recall.
Pipeline reliability & speed Interrupted jobs recover on startup and research loops tolerate provider stalls.
Added
- Add planning preflight and polish usage table
- Add explicit research loops and library recall
- Add analyst audit pass for source extractions
- Add quality-gated research refinement
Improved
- Render follow-up sections as tables
- Improve research run report surface
- Make research loops resilient to provider stalls
- Refine research run header controls
- Refine job activity modal interactions
- Move recommended actions into briefs
- Improve research artifact source rendering
- Refine run progress and tabs
Fixed
- Fix wide report table layout
Changed
- Track measured run costs
- Trust accepted evidence in corpus assembly
- Keep source evidence when audit is overstrict
- Fallback extraction when LLM is unavailable
- Speed up source extraction validation
- Bound final synthesis fallback
- Recover interrupted jobs on startup
- Use cheap Firecrawl search before scraping
- Normalize planner LLM suggestions
- Use open-ended LLM source priorities
- Replace brittle topic anchor filters
- Document quality-gated pipeline
May 6, 2026
Report quality & evidence fidelity First quality-first pass over the pipeline: evidence-aware quality gates, LLM candidate triage, analyst workplans, and stage-specific models.
Payments & metered billing Funded wallets are charged before any 402, and runs return watch URLs in account usage.
Provider rails & failover Provider-aware structured LLM client with OpenRouter timeouts, fallback planning models, and adaptive output budgets.
Added
- Add provider-aware structured LLM client
- Add analyst workplan to research pipeline
- Add evidence-aware research quality pipeline
- Add research analyst report layer
- Add adaptive acquisition refinement
- Add LLM candidate triage to acquisition
Improved
- Make research pipeline quality first
- Make research pipeline quality first
- Tighten research evidence quality gates
- Tighten job activity layout
- Improve job brief markdown rendering
- Tighten job summary grid spacing
- Preserve relaxed candidate rejection through refinement
- Improve run viewer and acquisition depth
- Tighten run summary height
- Refine run activity table layout
- Make acquisition search-first and selective
- Simplify run monitor table layout
- Simplify run summary panel
- Move failed run detail into status dialog
- Refine watch monitor tabs
- Tighten watch run id display
- Make account usage rows directly clickable
- Make mppx a fallback in agent docs
- Show watch URLs in account usage
- Refine account deposit flow
Fixed
- Fix strict planner schema for providers
- Fix homepage prompt markup
- Fix source table column overflow
- Fix account usage rendering crash
- Harden account auth loading
Changed
- Use GPT 5.5 without unsupported sampling params
- Keep research synthesis on topic
- Raise quality-first run tier limits
- Normalize oversized source extraction fields
- Normalize oversized analyst workplans
- Prevent candidate triage from blocking acquisition
- Timeout OpenRouter model attempts
- Fallback strict JSON planning model
- Adapt OpenRouter output budgets
- Raise LLM output budgets for quality stages
- Use stage-specific LLM research models
- Reject generic analyst workplans
- Use LLMs for coverage and quality judgment
- Lean candidate triage on coverage context
- Normalize job page content width
- Prioritize empty coverage lanes in refinement
- Treat PDF reports as first-class sources
- Share research table styling
- Refresh README positioning
- Use hover tooltip for failed run detail
- Stream acquisition progress and candidates
- Unify watch monitor and expose plan
- Expose stalled runs and stage progress
- Stream live run updates to watch page
- Clarify customer payment flow in prompt
- Charge funded customer wallets before 402
- Return watch URLs for research runs
- Match account layout to automarket
- Upgrade account funding and anonymous paid runs
Removed
- Remove run monitor heading
- Remove redundant watch header message
May 5, 2026
Payments & metered billing First customer payments: mppx payment challenges, account funding, and Privy key management.
Site, brand & public pages The service became Researcher, with an animated research harness diagram on the homepage.
Added
- Add quote-based research runs
- Add auto project footer
- Add source processing layer
- Add account nav and Privy key management
- Add customer payments and job viewer
- Add animated research harness diagram
- Add layered agent pack synthesis
- Add OpenRouter planning layer
Improved
- Polish research wording and legacy errors
- Simplify customer research setup
- Render public pack pages as HTML
- Make pack reads public and add useful names
- Simplify homepage diagram outputs
- Refine homepage harness diagram
- Tighten agent prompt spacing
- Widen homepage overview cards
- Move homepage links to footer
- Simplify homepage overview sections
- Refine homepage overview sections
Fixed
- Harden researcher architecture
- Fix public pack markdown route
- Fix mppx payment challenge setup
- Fix library view migration
- Fix homepage footer link spacing
- Restore homepage composition
Changed
- Classify mixed source types in extractions
- Rename repository references to researcher
- Modularize researcher service
- Lighten homepage footer branding
- Use Auto logo in homepage nav
- Rename service branding to Researcher
- Refresh source processing docs
- Expose source processing read routes
- Include sources by default
- Streamline account login page
- Set public mppx realm
- Connect homepage diagram output nodes
- Generalize homepage web search copy
- Rename overview storage card
- Trim homepage overview to two cards
- Rename homepage to Researcher
Removed
- Remove cookie-specific research flow
- Remove homepage tagline
- Remove homepage date stamp
May 4, 2026
Autonomous factory & operations v1 scaffolding: docs, CLI, and VM deploy bootstrap.
Added
- Add playbook registry and fallback
- Add library index for completed packs
- Add v1 docs, CLI, and deploy scaffolding
Improved
- Tighten docs and agent prompt
- Allow tokenized GitHub clone in VM bootstrap
Changed
- Use HTTPS repo clone in VM bootstrap
- Initial commit
Workstreams
A higher-level read on the product direction behind the daily changelog. Maintained by the agent shipping each release.
Long-running threads
The durable problem spaces behind the daily entries, ranked by activity.
Site, brand & public pages active The public face of Researcher: homepage narrative, the brand mark, docs, pricing, share pages, and the pages that explain how the pipeline works.
- Jul 13 know.fast's homepage now leads with the 1-cent promise to turn a link into cited knowledge, then explains the packet, transcript, and shared processing model in the same plain language. The public offer is clearer without overstating billing or instant-read behavior.
- Jul 12 The know.fast homepage now says what it costs and what you get, up front: “Drop a link. Get cited knowledge back. For 1¢.”, a one-line packet description under the hero, and a note on why known links answer instantly for everyone at the same flat cent.
- Jul 11 Run and source pages now read brand identity from the same product bridge used by the rest of the public surface. Share cards, discovery metadata, and public handoff pages can stay consistent as Researcher, know.fast, and persona.energy evolve together.
- Jul 10 Researcher, know.fast, and persona.energy now share explicit brand manifests for public identity, pricing language, trial policy, social metadata, and storefront routing. Customer-facing pages and cards keep the same voice today, but future brand or price changes have one source of truth instead of scattered copy.
- Jul 9 know.fast run pages added a nearby copy-source action, publisher chips now open coverage pages, and the Knows view uses one consistent label and count. The Hermes-facing demo page also moved into a more deliberate public presentation with a character-led hero and cleaner brand language.
- Jul 8 Public surfaces got a practical polish pass: know.fast avoids broken-image flashes, X video labels are more accurate, entity report headings render cleanly, and persona pages keep consistent navigation through their proxied hosts.
- Jul 7 know.fast pages and calls got smoother around first use: pasted-link visits can start directly on the knowledge page, the agent call-to-action is simpler, and article/X titles now use the recognizable source text instead of generic publication or handle labels. The public canvas also moved back to a cleaner white base with neutral hairlines.
- Jul 6 know.fast pages now lead with stronger source previews, including web-article imagery and a hero thumbnail overlay, and the Knows tab uses the same compact table language as the rest of the product. The signed-in activity view stays live with readable ages and a count that matches what the page shows, while Researcher-only Positions & ideas stay off the knowledge-page experience.
- Jul 5 know.fast's first-time processing state is calmer and clearer: new links now show a white, compact status row with a subtle live work signal instead of a gray block, including reduced-motion support.
- Jul 4 The know.fast Reads feed went live and complete: every read now counts — free browser reads, agents fetching the knowledge packet, and paid calls alike — and new reads stream onto the page the moment they happen, no refresh.
- Jul 4 know.fast knowledge pages now show a Reads feed instead of the internal pipeline log once a link is analyzed: when it was first known, and the running log of agents reading its knowledge since. While a link is still being analyzed, the live progress log stays.
- Jul 4 Cleaner know.fast knowledge pages: the Activity table gives the update text the room it needs (no per-event action column, tighter time), and the redundant Sources tab is gone since a knowledge page has a single source.
- Jul 4 The know.fast dashboard now shows only the links you actually ran through know.fast, in the familiar row format — thumbnail, title, the source link with one-click copy, and age.
- Jul 4 know.fast signing in now stays where you are: login opens in place on every page, and the signed-in homepage becomes a simple dashboard of all your knowledge links with the paste box on top.
- Jul 3 Persona.energy is cleaner as a public directory: the list refreshes quickly after new bots or personas ship, sorts between usage and A-Z, and keeps each row focused on the person and the chat action. Persona pages on the microsite now hide research-plumbing tabs, keeping the experience centered on asking the modeled person.
- Jul 2 Menus now open as bottom sheets on phones. The account menu, run filters, and per-run actions all slide up from the bottom of the screen with a dimmed backdrop instead of floating as small desktop-style popovers, making them easier to read and tap on mobile.
- Jul 1 Persona.energy became a fuller public entry point for the persona layer, with persona-branded navigation, legal links, social preview imagery, a calmer light default, and an interactive "How it works" explainer. The public shell now feels like a coherent product surface rather than a thin proxy.
- Jun 27 The signed-in dashboard is easier to scan as an account grows: filters now cover source type, text search, and Research-versus-Analysis work, with custom inline dropdowns that match the rest of Researcher. Deposit dialogs also got a calmer layout, keeping payment actions clearer without pulling the page out of proportion.
- Jun 26 Published a full Terms of Service and Privacy Policy with a plain acceptance notice, stating clearly that Researcher is experimental and provided as-is.
- Jun 24 Runs and the dashboard now show a real preview image instead of a blank tile: a link run uses the page's own lead image, falling back to a live screenshot of the page, and a run anchored on a single post surfaces that post's attached photo or video. Text-only posts with nothing to show keep a clean lettered placeholder.
- Jun 24 Researcher now has a site-wide System/Light/Dark theme with a true dark surface, cleaner account controls, and polish across public pages, dashboards, metrics, and mobile tables. The signed-in dashboard can page through older runs, so past work is reachable without relying on a short initial list.
- Jun 23 The account menu was consolidated into one calmer surface: starting a new run or a new topic now lives at the top of the menu, and the light/dark theme picker tucks into a collapsible row instead of sitting open all the time. The separate plus button was retired, so the top bar is just your balance and avatar.
- Jun 22 Topics now live at clean, shareable handle-based addresses — your topic reads as a name-and-topic path rather than an account-settings URL — laying the groundwork for public topic profiles. Existing links keep working and redirect to the new form.
- Jun 21 The whole interface was warmed: surfaces and borders shifted from cool grey-white to a soft warm off-white across every page. It's a subtle change that makes Researcher read calmer and more considered without touching contrast or legibility.
- Jun 19 The homepage now brings stronger finished-run examples closer to the top, with video analysis, equity research, and consumer thesis work visible before the deeper capability tour, while topic detail pages give Activity its own tab. Daily briefs are easier to scan too: supporting sources sit behind a compact expandable control, thesis-delta changes render as calmer cards, and expanded sources use dense cited-source rows instead of a tall stack.
- Jun 18 Terms acceptance now stays out of the way entirely: anonymous visitors can read public pages without a compliance bar, and signed-in use records acceptance silently. Product surfaces stay focused on the work while the standing Terms and Privacy links remain available. The topics feed's table/cards switch also moved into the table header as quiet icons, so the list leads with content instead of a control. The homepage's example runs were refreshed to current work — a long video distilled to a read, an equity deep-dive, and a consumer thesis — and moved directly beneath the agent setup cartridge, so the proof sits right under the call to action.
- Jun 15 Page styles now have explicit slim entrypoints instead of defaulting to the full shared bundle, so chat, docs, entities, topics, pricing, and simple article pages only load the primitives they render. Run viewer agent prompt shortcuts, the signed-out run chat composer, and the mobile run header/status/summary layout now keep their compact styling; entity, chat, topics, account, and link pages also carry the shared primitives their DOM already uses. Normal /r run pages now serve their browser document from Vercel with VM-backed metadata and export proxying, reducing the split-brain HTML/CSS deploy path. The changelog now opens on the dated release log first, with workstreams moved into a separate tab that leads with 1/3/7/30-day product-direction analysis.
- Jun 13 A mistyped, stale, or fabricated /r/ run link now lands on a friendly “no cartridge in slot” page — using the Researcher skill-cartridge motif — instead of a blank loading screen. Standing topics gained a Watch targets tab: the explicit list of sources scanned in real time — X accounts, GitHub, RSS, websites, searches — with the same platform filter chips as source tables and per-platform brand icons. You can now add and remove a topic's watch targets right from the Watch targets tab, and the bootstrapping status notice moved below the topic title so the title always leads. The top nav is now consistent across the run viewer, entity pages, topics, and dashboard — same Researcher · Pricing · Docs · Topics · Account · + layout everywhere.
- Jun 12 Every page now shares the same canonical width and content edges as the run page, bringing the system, pipeline, changelog, and API docs pages in line. Source tables also gained type filters for web, video, tweet, and podcast items, with counts on entity pages, run storage, and topic watch targets so one source type no longer drowns out the rest.
- Jun 11 Agent setup reimagined as a holographic skill cartridge, a visual deliverables section, OG images for site, runs, entities and chats, and a new tagline: turn your agent into a researcher.
- Jun 10 A new brand mark — the R punched through a full ring — rolled out across favicons, and the homepage leads with Deep Research at the canonical 64rem width.
- Jun 5 Shared page width normalized toward one canonical shell across surfaces.
- May 30 The pipeline page was redesigned stage by stage, public docs were redesigned, and this changelog page was born.
- May 11 Homepage reframed around featured example runs and a six-step pipeline; budget-based pricing pages with a redesigned estimator.
- May 5 The service became Researcher, with an animated research harness diagram on the homepage.
Agent interop & the contract active Researcher as a tool other agents call: a stable versioned contract, discovery surfaces, installable skills, MCP, and default delivery into agent inboxes.
- Jul 10 Agent-facing discovery surfaces are now generated and guarded from the live tool catalog, contract versions, brand URLs, pricing, and trial policy. Agents should see more consistent MCP, package, and onboarding metadata because the public contract can no longer silently drift from the running service.
- Jul 9 Agent reads for fresh articles now get useful early packets instead of waiting for the full long-form path, with clearer title handling and status semantics. Source pages and read-on-click flows also agree more reliably about whether a link is already known or still needs its own knowledge page.
- Jul 8 Agent-facing know.fast calls now treat deferred links as active wait states rather than broken URLs, and the installable Hermes packages expose the same provider surface. Prefix-style reads also return clearer cost signals, so agents can branch on actual spend instead of guessing from a generic paid flag.
- Jul 7 know.fast is now easier to install and call from agents: package files expose a copy-ready prompt, the installable skill is the primary setup surface, and Hermes agents get both a Skills Hub package and a git-installable plugin. Fresh links can answer immediately with a deferred completion path, while existing share URLs resolve to their packet instead of asking the agent to re-analyze the same source.
- Jul 6 know.fast is easier for a cold agent to discover and try: the first read can happen without an opt-in step, anonymous calls find the supported API, and the response surfaces source packages and stable status links instead of forcing agents to scrape a browser page. Persona and run chats use the same link-ingestion path, so a shared URL becomes grounded context consistently across chat surfaces.
- Jul 4 know.fast now installs into Hermes agents in one step: pip install know-fast registers a know tool and a web-extract provider that speak the know.fast contract natively — instant cached knowledge packets, flat one-cent pricing, and stay-on-it polling for video and podcast transcription. The plugin now also carries payment challenges and returned agent keys through the setup flow, gives agents a free recovery path for deferred media runs, and caps waits so an extraction job cannot hang behind one long transcription. The agent contract itself also got a full UX overhaul: an agent's durable key now arrives in the response body of any paid call (shown once, at mint), deferred video and podcast runs can be polled through a public status link with no credentials, failures come back as a structured verdict that says whether a retry can work and whether any money moved (failed calls on flat-fee rails are never charged, and dead links answer instantly from cache for free), and text-only X posts now answer in seconds instead of waiting on the video pipeline. GitHub links now return the project's README with its real setup commands, and papers and PDFs carry their actual document titles. Installed agent clients now keep themselves current: every API response tells a client the latest published version of its own package and, when it is behind, the exact upgrade command to run — across know.fast, persona, and researcher.now clients. Version discovery docs now live at know.fast/.well-known and persona.energy/.well-known, and the nightly drift guard watches every published channel so no surface can silently go stale.
- Jul 3 Analyze runs' markdown export became a compact knowledge packet built for agent relay, and branded API surfaces now rewrite every self-URL to the calling product's host — an agent talking to know.fast lives entirely in know.fast URLs. Personas also learned to read shared links: send any persona a URL in chat and it comments on the actual content, reusing stored transcripts for previously analyzed videos and fetching fresh articles live.
- Jul 1 Agents can now open Researcher run, persona, and source links as native markdown, and source pages can return the full evidence package as structured data. That gives agent clients a supported way to read cleaned text, transcripts, citations, and synthesis without scraping browser pages.
- Jun 27 Wallet-native agents can now pay directly for article analysis and persona consults, not only deep research runs. Those calls return durable ownership and credentials after payment, so an agent can fund a single task and continue through the supported Researcher contract.
- Jun 26 Agents can now onboard with no human and no signup: a paid call with no key returns a payment challenge, the wallet pays, and the response hands back a durable API key — now over MCP as well as HTTP. The skill is also published on npm (@researcher-now/skill) and PyPI (researcher-now) so agent runtimes can install it in one step.
- Jun 24 Agent-facing surfaces got sturdier: topic pages now include a ready-to-copy agent handoff, and the published agent packages gained fuller tool coverage so external agents can inspect Researcher work through the supported contract instead of scraping pages.
- Jun 23 The agent distribution loop is now active instead of advisory: the daily surface guard checks the website, skill copies, npm package, Hermes plugin, public tool docs, and published channels, then republishes stale committed-main artifacts before opening an issue. Hermes also exposes the same source-package retrieval path as MCP, so agent clients can inspect full source evidence without falling out of the supported contract.
- Jun 21 Agents can now pull a single source's full package directly over MCP: cleaned source text or transcript, graded evidence, synthesis, and citation handles back to the exact source and moment. Persona answers and standing topic briefs now preserve the source links and conversation memory agents need to move from a cited claim to the underlying evidence without oversized extraction blobs.
- Jun 20 Researcher is now self-describing when an agent is given the product domain: compatible clients can discover the MCP server and available research tools without a hand-copied endpoint. That makes the first connection path simpler for article analysis, deep research, and persona consults.
- Jun 19 Agents can consult expert personas and read standing topics as first-class tools: ask Paul Graham, Warren Buffett, Elon Musk, and more a question and get an answer in their voice with citations, or pull the living brief from any of your standing research topics. Standing topics also gained richer watched-source coverage, persona-guided interpretation, current cited claim graphs that can include durable, checkable social posts as opinion-tier evidence, collapsible brief sources, and durable reviews; the discovery contract now presents the service clearly as Researcher, exposes wallet-native price and payment protocol details for analysis, deep research, and persona consults, and tells calling agents how to list personas, pay without signup, reuse the returned key, recognize authenticated read routes as API-key calls, run keyed consults asynchronously at a fixed per-question price, recover gracefully from stale persona session handles, and surface durable viewer links. The install path is now a concrete agent setup page for Codex MCP, Hermes, wallet-native Tempo, and the first known-corpus ask; agents can call ask_corpus when they already know the public corpus slug instead of guessing whether to use persona chat or research memory.
- Jun 18 Standing topic briefs now treat watched accounts as source candidates, not automatic signal: individual X posts are checked for topical relevance, source cards prefer items the narrative cited, and each scan saves useful items into a retrievable topic memory for stronger future briefs and topic answers. Daily briefs also respect the calendar-day boundary, and topic status now reflects the running watch state from creation while bootstrap outcomes are recorded as events instead of backend lifecycle states.
- Jun 13 Shared run links are now derived from the run's own id, so the /r/ link an agent hands you always resolves to the right run — no more dead links from a fabricated or mismatched slug.
- Jun 12 Every terminal run is now delivered to the customer's agent by default through the research inbox.
- Jun 11 Contract versioning: every API response is stamped and agents are notified when the contract changes; fabricated share links now resolve via id-prefix fallback.
- Jun 9 Installable skill published to npm and PyPI (Hermes plugin), with legacy-shape callers steered to the current contract.
- Jun 6 The Researcher MCP endpoint shipped and is exposed through the public domain.
- Jun 1 Agent Contract v1 rolled out clean-slate, with budget aliases honored.
- May 25 API overhaul: /research and /agent with personas and streaming, plus discovery surfaces — robots.txt, sitemap, and llms-full.txt.
- May 19 An agent operating index, research contracts, and run controls for programmatic callers.
- May 18 Account-linked Discord integration with customer Hermes agent routing and billing coverage.
- May 17 A managed Discord research agent: direct messages, conversational chat, and persistent research memory.
- May 15 An agent handoff contract with funding guidance baked into 402 responses and capped planner latency.
- May 13 Share pages render for agents and run pages offer an agent handoff.
- May 11 Agent setup and stored source access landed, plus an Obsidian export command.
Video, podcast & source analysis active Turning a URL — YouTube video, podcast, article, or X post — into a faithful, quote-first analysis with linked timestamps.
- Jul 12 X post analysis now carries attached photos and videos through to the source record, with fallback handling for syndicated posts when native classification data is incomplete. Captured media bytes can also be archived durably, so visual source evidence is less dependent on remote URLs staying available.
- Jul 10 Podcast episode chips now open show-level coverage pages, so a single Apple, Spotify, or Overcast episode can lead readers to the broader show catalog when it can be resolved. That makes podcast knowledge less isolated and turns episodes into entry points for discovering adjacent source material.
- Jul 9 Publisher coverage pages now show what a source itself declares, from feeds and sitemaps to video channels, and mark which items already have knowledge pages. Readers can move from one analyzed link to the wider body of available work without forcing every item through extraction upfront.
- Jul 8 Authenticated source access now runs through a registry of paywall credentials, so subscription-backed material can feed analysis without one-off wiring. Shared source pages also expose cleaner markdown for agent readers.
- Jul 6 Single-source analysis now exposes a richer source package on run pages, with extracted markdown, evidence, files, and podcast transcripts in one inspectable place. Podcast, X, article, GitHub, and video links also share more of the same resolution path, so previously known videos avoid repeat transcription and source previews use the material people recognize.
- Jul 5 Speaker attribution on video and podcast transcripts is now roster-first: the pipeline reads the naming evidence inside the audio itself — roll calls, introductions, people addressed by name — builds a cast list, and resolves every speaker label against it. Garbled spellings of the same person merge into one identity, a name that isn't supported by the audio never ships as if it were certain, and role labels like Chair stay honest when the audio never names the person. On by default for every run. Speaker attribution got a second, smarter pass: after the first labeling, the pipeline now reasons over the whole cast at once to recognize when one person was transcribed under several garbled names and unify them — while refusing to merge genuinely different speakers (verified it correctly kept two different council presenters apart). On by default. Speaker labeling on multi-speaker video/podcast is now several times faster. A redundant second labeling pass (added before the newer roster + reconciliation steps existed) was measured to add no quality while dominating latency — dropping it ran 3-7x faster with equal or better results across council meetings, a town hall, and an interview. Podcast and video links now resolve through one shared media-adapter path across Researcher and know.fast, including stronger Apple Podcasts handling, so first-time podcast links reliably become transcript-backed runs instead of depending on surface-specific routing.
- Jul 3 know.fast launched — a single-purpose surface where anyone (especially agents) sends a link and gets structured knowledge back fast: a live knowledge page for people, and a token-efficient markdown packet for agents with the summary and key claims inline plus pointers to the full text, graded evidence, and timestamped transcript. One POST in, one packet out, wallet-payable without an account.
- Jun 29 Paper and PDF links now route into single-source analysis the same way videos, podcasts, articles, and posts do. Dropping an arXiv, preprint, or PDF URL into the composer starts from that document instead of treating it like a broad web crawl.
- Jun 27 Single-source pages are now full web-app surfaces: they use the same width as the run page, show website bodies inline when available, and provide direct actions to open or copy the source. Media discovery is also more resilient because Researcher can fall back across providers when one video source is quota-limited or throttled.
- Jun 25 X post media now carries through as source thumbnails, including backfilled previews for earlier runs. Source-heavy pages can show the image that customers recognize from the original post instead of a generic card.
- Jun 24 Single-source link runs now have better visual previews, including website screenshot fallbacks when a source does not provide a usable lead image. Source pages also scale better for large corpora, so individual articles, posts, or media sources remain reachable even when a persona has thousands of items.
- Jun 22 Media and source ingestion are now on by default for more research paths: Google Doc seeds can enter the corpus directly, podcasts can reuse existing transcripts, and media-heavy runs only show a missing-transcript state when the run is actually centered on media. That makes mixed-source research feel less brittle while keeping the run viewer focused on the evidence type that matters.
- Jun 21 Source collections can now be enumerated from publisher-declared structures and compared with what Researcher already holds. That sets up clearer coverage views: which pages, videos, podcast episodes, or posts are already in the corpus, and which gaps still need ingestion.
- Jun 19 Analyze runs now ask for a direct, answer-first summary of what the source argues, with core claims, findings, figures, and takeaways cited to the source. Run pages also collapse duplicate run-level artifacts, so customers see the final brief and synthesis without repeated intermediate copies.
- Jun 14 Trade ideas now run as a named pipeline stage with explicit lifecycle events, deterministic validation counts, and read-only tradable-universe matches across public equities, event markets, crypto venues, and token identities. A video canary also tightened extraction so broad market themes have to become specific tradable exposures or event-market queries, with obvious public-company mentions resolved even when a ticker is missing.
- Jun 13 Runs can now surface evidence-linked trade ideas: explicit positions and inferred market hypotheses from the corpus, with media quote and timestamp context on the run page while prices and execution stay gated behind verified resolver data.
- Jun 12 Quote cards gained in-card attribution with YouTube-linked timestamps, and X search layered into acquisition with full-text articles and link expansion.
- Jun 11 Analyze extended to X videos and podcasts on one consolidated surface; podcasts defer gracefully and duplicate in-flight requests coalesce.
- Jun 10 /v1/analyze became a fully-powered run: it continues into synthesis and always creates a durable run page.
- Jun 9 No-speech videos complete deterministically with transcript warnings, and the Article/Video Analysis tier shipped.
- Jun 1 Deepgram transcription covers captionless videos, and failed transcript extraction is no longer fatal to a run.
- May 27 Speaker labeling and media concept extraction became LLM-driven instead of heuristic.
- May 25 Transcripts are LLM-restructured into interview format; YouTube handling is transcript-first, searching only for specific references.
- May 24 Video reports became quote-first with timestamp links, and YouTube extraction starts straight from the home composer.
- May 21 From spec to shipped in a day: YouTube media runs with transcript-first reports, a transcript tab, and timestamped source references.
Research entities & personas active Durable entities — people and topics — with rich About profiles, persona chat grounded in their corpus, and full X archive backfill.
- Jul 12 The Steve Jobs persona gained deeper primary-material coverage across early interviews and authored letters. That makes the persona's answers less dependent on familiar summaries and more grounded in the source record behind the public figure.
- Jul 11 Persona and entity rebuilds now embed their searchable packets automatically after each index build. Freshly rebuilt expert corpora are ready for retrieval sooner, which makes persona answers and large-corpus browsing less dependent on a separate cleanup pass.
- Jul 10 Persona groups gained their first durable shape: seeded group records and a panel chat endpoint make it possible to ask questions across a curated set of personas rather than treating each persona as an isolated surface. This starts turning persona collections into collaborative research panels.
- Jul 8 Persona coverage expanded with a new Jeremy Giffon configuration spanning interviews, X, and YouTube material, while public persona surfaces kept converging on clearer storefront-style presentation.
- Jul 7 Paul Graham now has a dedicated public persona payment surface with marketplace-ready metadata and a standalone persona host, giving agents a concrete flagship persona to discover and pay for. A private Citrini entity also expanded persona coverage from a publication archive.
- Jul 5 Share a link with a persona and it reads it: paste an article, X post, or YouTube/podcast link and ask what they think. Known links answer instantly from know.fast; a fresh video is transcribed in the background ('give me a minute'), then discussed.
- Jul 3 Winston Churchill and Aristotle joined the persona fleet, expanding Researcher beyond contemporary founder and investor voices into primary-source public-domain corpora. The builds added stronger curation for catalog stubs, misattributions, classic translations, and direct full-text ingestion, so historical personas can answer from original material instead of loose web summaries.
- Jul 3 Personas now greet first-time visitors with starter questions: each persona generates ~6 corpus-grounded example questions from its own profile and report at build time, and every surface offers them — tappable chips on the persona page, inline buttons on the Telegram bots (/start, /help, and right after linking), and a starterQuestions field for agents on persona listings. On Telegram the buttons behave like a real product: a tapped question is echoed into the chat and the answer replies to it, the tapped row flips to a checkmark so it can't double-bill, a dice button pages through the full list in place, and each answer offers the persona's suggested follow-up as a one-tap next question.
- Jul 3 Telegram feedback capture: when the team asks a user for feedback through a persona bot, the user's next reply is recorded as feedback and acknowledged — never consumed as a paid question. Operators send asks (or arm capture for one already sent) and read responses from one place.
- Jul 2 The first Telegram persona bot canary is ready for Paul Graham: a Telegram chat or group can set up an existing Persona account through persona.energy, ask paid grounded persona questions with /ask or a bot mention, and receive final answers through the same durable persona chat and billing path as the web app. The setup link now makes the email-code step explicit, keeps both code-step actions full width, avoids Telegram webview zoom on input focus, and ends with a minimal "Done, go back to Telegram" status instead of an account-management card. Telegram persona bots also graduated from the single-bot canary to a registry: every persona can now get its own bot through one env-held config entry (Stanley Druckenmiller is the first addition), with per-bot webhooks, command menus, and chat buttons provisioned by a single script.
- Jul 1 The persona experience now has its own standalone front door, installable agent path, and richer visual explanation of how persona evidence moves through Researcher. Public persona pages also present cleaner navigation and social previews, making persona corpora easier to share with both people and agents.
- Jun 29 Persona coverage expanded with Jessica Livingston and ultimape, both with recognizable profile imagery, while entity tables shed low-value type labels so the dashboard focuses on the person and their evidence. Source lists also use cleaner origin labels and platform icons, making large persona corpora easier to scan.
- Jun 27 Persona surfaces are calmer and more trustworthy for paid consults: the page shows per-message cost, offers a deposit path when balance is low, and keeps the answer the user watched stream instead of swapping it out mid-turn. Entity profile summaries also drop more internal indexing labels, keeping the public profile focused on readable source context.
- Jun 25 Persona coverage expanded with Peter Thiel and Fred Wilson corpora, including essays, blogs, X archives, interviews, and recognizable profile imagery. Entity evidence also filters transcript evidence to the named speaker by default, so persona retrieval is less likely to blend in interviewer or guest voices.
- Jun 24 Persona and source-scale browsing got stronger: larger authored archives can flow through the standard persona builder, Casey Handmer now has a recognizable profile image, and large persona source pages no longer fall over at old row limits. Persona chat also gained a unified cross-platform Recents list, making prior persona conversations easier to pick back up.
- Jun 22 Persona chat now survives a page reload mid-answer: if you refresh while a reply is still generating, the chat re-attaches to that live turn and keeps streaming it to completion instead of abandoning it. And a reply you watched stream in is no longer quietly replaced by a shorter one — when a follow-up citation check would otherwise regenerate a briefer answer, the longer answer you already saw is kept (with any stray citation cleaned up).
- Jun 22 Persona chat feels alive while it works and can't silently hang: the wait now shows a rotating, persona-flavored status with a ticking timer instead of a frozen "Getting ready", the answer streams in smoothly character by character rather than in big sudden blocks, and a stalled generation is now caught and ended on both the server and the client so the chat can never get stuck mid-answer with no way out. The chat dock also lost its drop shadow for a cleaner page.
- Jun 22 Persona chat is sturdier: your messages no longer vanish after sending — a finished answer is kept even if the follow-up sync hiccups, and a failed turn now leaves your question in place with a clear error instead of wiping the exchange. Behind that, persona answers fail far less often: the model gets room to finish long replies, a real second model backs up the first, and when a structured answer can't be produced the chat now falls back to a plain-prose answer rather than erroring out.
- Jun 22 Prior persona chats are reachable again: a sessions expander returned to the persona chat header, so you can open the list of your earlier conversations with a persona and jump back into one whenever you want, while the chat still opens as a clean single column by default.
- Jun 21 Persona chat got a cleaner, calmer header and a more reliable composer: the header now leads with the persona's avatar and name instead of a verbose title and source tally, the input bar sits flat without a drop shadow, and the send button no longer gets stuck inactive after your first message — while a persona is answering it becomes a stop control, so you can cancel and immediately ask a follow-up.
- Jun 19 Researcher added durable persona seeds for a founder corpus, a longevity evidence panel, and a subscription-publication voice, covering long-form founder material alongside geroscience research, clinical longevity frameworks, NAD+ skepticism, measured self-experimentation, and tech strategy analysis, while persona builds now enrich those profiles with full social archives, quota-resilient long-form video discovery, duration filtering, appearance checks that keep videos by the person instead of just about them, rebuilt reports, and recognizable public avatars by default, including missing portraits for the new longevity and strategy profiles. Persona chat also keeps malformed structured responses from leaking raw JSON, and public persona surfaces support a restorable unavailable state so the directory only shows personas that are ready.
- Jun 18 Signed-out visitors can now sign in to chat with a persona right from the chat view — a clear sign-in button replaces the old dead-end notice, so it works on mobile too, and your first question is kept so you can send it the moment you're in.
- Jun 6 Entity avatars, broader profile evidence selection, durable About reports, and fixed ingestion indexing.
- Jun 5 Durable research entities landed in one push: entity pages, persona profiles, persona chat, X archive backfill, and About profiles that read like reports.
Payments & metered billing active Pay-per-run research over MPP payment channels: metered sessions, honest cost accounting, and margins that reconcile to settled spend.
- Jul 12 Source-query payment challenges now honor the charge intent they advertise. Agents paying for a source read get a cleaner contract between the requested action, the wallet prompt, and the billable result.
- Jul 9 know.fast read counts now match the visible activity feed: every resolved read is counted as a know, while free and paid reads still keep their separate billing meaning. The page, tab, and activity table now tell the same story about who knows a source.
- Jul 8 know.fast now separates genuinely billed reads from free prefix reads in the customer-visible signal, so agents and dashboards can tell when money actually moved. The new-user trial path also recovers cleanly instead of stranding someone after a failed or expired first attempt.
- Jul 7 know.fast flat-fee reads now appear in Recent Transactions, so paid knowledge calls show up beside the rest of a customer's usage instead of hiding behind backend accounting. Persona marketplace listings also disclose both consult prices in the agent-facing payment shape before an agent pays.
- Jul 6 The flat-price knowledge call now presents a cleaner wallet-payment challenge and discovery shape, so automated callers can see the price, supported payment protocol, and know.fast realm before paying. Failed or duplicate reads continue to avoid unnecessary charges while successful paid reads reconcile back to the visible Knows count.
- Jul 4 Wallet payment sessions now open with enough deposit for a whole work-session of calls instead of exactly one, so agents stop paying channel-open overhead on every request — the deposit settles to what was actually spent and unspent funds are refunded. A used-up session now explains exactly how to close it and start a fresh one instead of failing opaquely, and failed analyses on flat-fee rails are never charged.
- Jul 1 Per-query source reads now have wallet-native payment coverage, so an agent can pay to retrieve one evidence package without opening a full research run. Persona chat funding also refreshes balances correctly after deposit, making low-balance recovery feel immediate instead of stuck.
- Jun 27 Persona chat now shows the cost of a message before the user sends it and turns an empty balance into a clear deposit action instead of a failed composer. Wallet-native agent payments now cover article analysis and expert persona consults as well as research runs, settling before billable work begins and keeping paid requests tied to the wallet that funded them.
- Jun 26 Wallet-native pay-per-call is live: an agent can fund work directly from a stablecoin wallet with no account, and each call settles on-chain — priced so every call stays net-positive.
- Jun 22 Standing topics now meter the real cost of every background scan and show running spend right on the topic page. The cost of keeping a topic current is metered and billed back to its owner at the same rate as research runs, batched into periodic charges rather than per-scan, and a topic whose balance runs short pauses until it is funded again instead of quietly accruing.
- Jun 19 Funded persona consults now use the same per-answer payment rails as wallet-native keyless consults, so every successful quick or deep answer is authorized, settled, and accounted for. Paid consults can also return immediately for slower async work and settle only after the answer succeeds, keeping expert persona calls responsive without charging failed answers.
- Jun 18 Run chat now builds its semantic retrieval index as part of the run and accounts for that embedding work in the run's metered cost. Customers get better follow-up answers without hidden, unpriced compute sitting outside the billing trail.
- Jun 13 Awaiting-funding run pages now keep account funding in place: open the deposit dialog, check balance, and resume the report without leaving the run.
- Jun 11 Cost reporting is truthful for usage-settled runs, and trial keys were removed in favor of real funded accounts.
- Jun 10 Analyze authorizes a $5 budget session settled to actual usage — keyed callers get a free preview and never a 402.
- Jun 9 Runs are priced at actual cost instead of tier floors, and a fund action raises a run's budget in place to keep it going.
- Jun 3 A billing margin audit canary reconciles billed totals to settled channel spend, and payment-session settlement accounting was fixed.
- May 29 Costs break down by pipeline stage and the minimum run budget dropped to one dollar.
- May 28 Customer sessions are sponsored from the treasury wallet, live billing and settlement were fixed, and run cost breakdowns shipped.
- May 15 Metered run billing moved to MPP sessions authorized from server wallets, with hard budget caps and full API key management.
- May 6 Funded wallets are charged before any 402, and runs return watch URLs in account usage.
- May 5 First customer payments: mppx payment challenges, account funding, and Privy key management.
Report quality & evidence fidelity active Making research reports faithful to their evidence: corpus quality, citation integrity, faithfulness gates, and a report writer that earns trust.
- Jul 11 Library recall now reaches the interactive research path: run chat can bring in related known sources as clearly labeled background, and agent recall can find semantically similar public and owned work before a new run is purchased. That makes follow-up questions and automated research less likely to start from scratch when Researcher already holds relevant evidence.
- Jul 10 Report quality work moved upstream into the source library: shared retrieval, claim representation, ranking fusion, and new quality gates now give research runs a stronger evidence substrate before writing begins. The net effect is better recall for relevant prior knowledge and fewer thin reports when the answer depends on material Researcher has already seen. That prior knowledge now also reaches the interactive surfaces: run chat quietly recalls related sources the library already holds as clearly-labeled background (never as run evidence), and research-memory recall returns semantically related known public sources alongside your own stored work — so agents can notice existing coverage before paying for new research.
- Jul 9 User-provided source analysis now keeps the source's own evidence instead of narrowing too early around the request wording. That means a pasted article is less likely to produce a thin or citation-light answer just because the prompt was framed narrowly.
- Jun 24 Reports are easier to verify in place: grouped citations open a full evidence drawer, hover previews stay readable for longer source lists, and live run pages begin filling the Sources tab before the run finishes. Discovery also got more selective, so date-sensitive prompts and authority-heavy topics are less likely to be pulled off course by weak or misleading sources.
- Jun 23 Clicking a grouped citation chip now opens that citation's sources in the same panel as the end-of-report Sources list — a sidebar on desktop, a bottom sheet on phones — so you can read every cited site, title, and excerpt for a claim without losing your place. Hovering still gives a quick peek — and that peek now stays put while you move into it and scrolls through long source lists instead of slipping away.
- Jun 22 Reports now make evidence easier to inspect without distracting from the read: citations are grouped more quietly, source chips lead with recognizable site icons, and the Sources drawer exposes the underlying material when you need it. The writer also became more prose-first around tables and can carry source media and image galleries into the report, so visual evidence is available without turning the brief into a dump of raw artifacts.
- Jun 19 Run answer grounding got stricter about what actually improves accuracy: targeted retrieval for flagged finance facts was evaluated and kept out of the production path after it failed to rescue the remaining errors. The guard now also catches unsupported figures while an answer is being generated and gives the model one focused retry, so hard numbers are more likely to be grounded before the final cleanup pass.
- Jun 18 Research quality now has a daily canary: lightweight extraction coverage and persona-fidelity checks can watch for regressions and only raise an issue when measured quality drops. This turns report faithfulness from a manual eval habit into an operating signal, and run answers now use a prove-or-remove audit so hard specifics need same-granularity retrieved evidence behind them before they can remain in customer-visible answers.
- Jun 12 Quote faithfulness and topic salience are now LLM-judged gates, and embedded speaker labels are stripped from located quotes.
- Jun 11 A transcript coverage gate with targeted revision, a deterministic faithfulness pass over written reports, and even transcript sampling fixed long videos losing their tails.
- Jun 1 Writer prompt consolidated from 28 instructions to 15, direct quotes render as styled quote cards, and rewritten reports are verified before completion.
- May 31 The writer now sees full ranked evidence (bestSources ordering, 500K-token budget) instead of a stripped corpus, and customer instructions are authoritative over library context.
- May 30 The report writer was decomposed into a sectioned pipeline with adversarial testing, corpus merge into focused LLM passes, and every report now opens with a Signal block.
- May 29 Corpus merge went hierarchical with shard retries, and rewritten reports are verified against the output contract.
- May 25 Corpus quality overhaul — dedup, rescoring, boilerplate stripping, ranking — plus fixes for 100+ review findings across the codebase.
- May 17 Benchmarked against OpenAI Deep Research with per-source comparisons and better eval corpus packing.
- May 14 Contradiction detection landed: knowledge claims are auto-verified and contradictory facts get their own report section.
- May 12 Fallback reports stopped padding themselves: boilerplate filtering, topic-specific claims, and irrelevant timelines and tension sections suppressed.
- May 11 Reports learned to read as prose: plain-English sections, generic section schemas, cleaner tables, and a soft auto-reveal when a run finishes.
- May 8 Structured research plans replaced playbooks and the mode concept; runs honor academic-source requests.
- May 7 Research loops became explicit and quality-gated, with an analyst audit pass over source extractions and library recall.
- May 6 First quality-first pass over the pipeline: evidence-aware quality gates, LLM candidate triage, analyst workplans, and stage-specific models.
Pipeline reliability & speed active Runs should always finish and never waste their budget: recovery, stage-based resume, self-healing, and overlapping pipeline stages for speed.
- Jul 13 Single-source reads now recover more gracefully when the source has usable facts but no clean thesis, including saved one-source runs that arrive without the original request shape. Customers should see fewer empty knowledge packets from factual or sparse links, and less wasted work on analysis steps that do not apply.
- Jul 12 Single-source analysis now has recovery paths when a link yields useful evidence but no explicit thesis, and when the extractor labels a direct-source summary as ignored despite identifying the supplied URL as answering the request. Customers should see fewer empty or failed article-style and X reads when the provided source is factual, sparse, or not written as an argument.
- Jul 11 Provided-source analysis now handles extraction-provider outages more gracefully, so a pasted article or link is less likely to collapse into a failed or empty run when one upstream fetch path is unavailable. Researcher can keep more customer-supplied evidence moving through the pipeline instead of treating transient provider trouble as the final result.
- Jul 9 Fresh single-article reads can now return an early knowledge packet while the deeper report continues, and the single-source path skips expensive cross-source passes that do not add value. New links feel faster and avoid wasting budget on work meant for multi-source research.
- Jul 3 Entity index rebuilds are now serialized and deduplicated: a burst of completing ingestion runs coalesces into one queued rebuild per persona instead of many concurrent full rebuilds. Interactive persona chats also get priority over bulk research and large-corpus style retrieval avoids full scans, so live answers stay responsive while background corpus work scales.
- Jun 28 Source selection is more fault-tolerant: if a small retry batch cannot produce a structured model answer, Researcher keeps the strongest ranked candidates for the final merge instead of failing the run. That means a shaky triage step can still preserve useful evidence and complete the research path.
- Jun 27 Source-heavy runs and account pages are faster to revisit: reports load before lower-priority activity work, previews are prepared ahead of time, and very large persona updates avoid more memory limits. Extraction recovery also keeps delayed provider results and retryable outages from turning into misleading missing-source states.
- Jun 24 Runs now surface more of their work as it happens and avoid more silent failure modes: active runs can show sources before completion, streamed answers no longer downgrade back to waiting states, and extraction problems are reported instead of quietly dropping evidence. Large source and persona collections also keep paginating instead of hitting hidden caps.
- Jun 23 Long runs now preserve more completed work when something interrupts them: deploys drain active jobs before restarting, stalled sources are time-bounded, provider outages are detected sooner, and resumed synthesis reuses finished report and merge passes instead of starting those expensive steps over.
- Jun 22 When many topics watch the same source — a shared search or feed — Researcher now fetches it once and reuses the result across topics rather than paying for the same lookup repeatedly, so monitoring stays efficient as more topics come online. Background turns also recover more cleanly after restarts or stale running states, reducing the chance that customer work appears stuck after deploys or worker interruptions.
- Jun 18 Recoverable source-only run failures now trigger an immediate self-heal path instead of waiting for a periodic audit, with signed failed-run completion events reaching the repair loop reliably. The repair loop keeps regression testing, deploy locking, customer run recovery, and public verification tied together so failed runs can move back toward completion with less operator delay.
- Jun 15 Worker queue leasing now handles packless maintenance jobs without crashing, so deploy verification can keep API and background processing healthy together. Open run pages also keep hydrating through transient deploy restarts instead of getting stranded in a half-loaded skeleton state.
- Jun 12 Extraction now overlaps acquisition with speculative salience and higher concurrency — the pipeline got materially faster.
- Jun 9 Structural reliability batch: schema-derived repair, auto-retry, search self-healing, a completion contract, and a production E2E canary; runs are fitted to their budget instead of rejected on estimate.
- Jun 8 Customer run recovery fixes for extraction gates and transcript-first media runs.
- Jun 4 The run factory became self-healing end-to-end, with source-only extraction rescue paths for stuck runs.
- May 30 Stage-based resume: continue skips re-planning and reuses corpus analysis instead of re-running the whole pipeline; extraction streams progress every 30 seconds.
- May 27 Stop decisions are quality-gated, and budget-ended runs still complete with a report.
- May 11 Interrupted research jobs are requeued automatically.
- May 9 Continuation runs landed across the stack — a finished run can be extended instead of restarted.
- May 7 Interrupted jobs recover on startup and research loops tolerate provider stalls.
Chat & the run workspace active A conversational layer over every run: the Run Analyst, persistent start chats, and a workspace where the report and the conversation sit side by side.
- Jul 8 Shared links in chat now render as compact previews, and persona chats read fresh X posts directly instead of failing behind a login wall. Mobile funding controls also fit the composer more cleanly, making paid follow-up less awkward on phones.
- Jul 7 Run Analyst answers are better at absence claims: before saying a run does not mention something, the analyst now checks both the direct claim and the broader run evidence. That reduces false “not stated here” answers when the source material contains the idea in a different phrasing.
- Jul 5 Run chat reads shared links too: paste an article, X post, or video link into a run's chat and the analyst ingests it via know.fast and responds — the same behavior as persona chat, now uniform across surfaces.
- Jul 3 Persona conversations now feel better tuned to the surface they happen on: Telegram answers are shorter by default, compact source links replace pasted URLs, and final prose is delivered before slower source cleanup finishes. Persona memory can carry useful context across sessions for the same customer, while group chats avoid personal memory and balance chatter.
- Jun 29 The source library is now a live workspace instead of a static explorer: recent sources load from production data, filter by type, search by title or origin, and page through older evidence without bogging down. The same research composer sits at the top, so browsing prior evidence and starting the next question now happen in one place.
- Jun 27 Chat now handles more real-world edges: the mobile sheet stays clear of the keyboard, the live cue simply says when Researcher is writing, and streamed answers are no longer replaced by a weaker cleanup pass. Underfunded persona chats also switch to a deposit action instead of leaving the user in a composer that cannot send.
- Jun 25 Chat streaming finished its consolidation across run, job, entity, topic, and global chat surfaces. Answers now use one steadier live-update path, making reloads, completions, and follow-up turns behave more consistently across the workspace.
- Jun 24 The chat workspace is harder to strand: silent streams now time out, streamed answers no longer fall back to an older waiting state, and mobile sheets keep the composer clear of the browser toolbar. Recents also bring cross-platform persona sessions into one list, making prior conversations easier to resume.
- Jun 23 Chats recover faster after a reload because the page keeps the live authorization state instead of waiting through repeated bridge checks before reconnecting. That makes in-progress replies and run-scoped conversations less likely to look stalled when the browser refreshes. The positions-and-ideas table also reads correctly on a phone again: it was being forced into the compact one-line row layout meant for the activity and sources lists, which crushed its narrow columns until short labels like "LONG" wrapped one letter per line. It now stacks each idea into a clean labeled card — instrument, side, thesis, evidence, and type — matching how the other report tables collapse on mobile.
- Jun 22 The chat dock now looks the same on every surface: run, persona, and topic chats share one flat panel instead of the run chat carrying its own drop shadow, so moving between them feels like a single consistent workspace. The general chat composer also shows the same scope chip as the in-page chats — when a conversation is anchored to a specific run you can see that context and clear it to drop back to a general chat in one click.
- Jun 22 Run, entity, and topic conversations now share steadier streaming behavior and a clearer action bar, so follow-up questions can move between asking and agent-oriented actions without each surface inventing its own controls. Chat status also reconciles against the authoritative run state, reducing false failures after a reply actually completed.
- Jun 21 Run and persona chat now share a calmer, more durable workspace: softer motion, fade-in messages, clearer starter prompts, warm surfaces, and visible scope chips keep follow-up questions anchored to the report or expert in front of you. The chat window is also easier to leave and resume, with Escape support, focus returning to the launcher, and in-progress replies that feel active without reading as an error.
- Jun 21 Chat on a phone is dialed in: the chat opens as a bottom sheet you can swipe down to dismiss, the keyboard no longer zooms the page when you tap the box, the composer and buttons sit clear of the home indicator and notch, and tap targets are bigger. The same conversation works in the run chat and the persona chats.
- Jun 21 The "Thinking" indicator now shimmers through a soft sunrise palette — pale blue warming through tan and peach to coral and pink, sweeping across the text instead of a flat grey pulse. It gives in-progress runs and replies a little more life while staying muted and on-brand, and it quietly steps aside for anyone who prefers reduced motion.
- Jun 19 First-time start chats are more honest about whether a run actually exists: if a long prompt is classified as a run-summary request before any run has been created, Researcher now turns it into a normal runnable research proposal instead of leaving the customer with a successful-looking chat and no run in their account. Mobile run pages also keep Activity, Sources, and Artifacts as compact one-line rows with fresh relative timestamps visible on the right, making it faster to scan progress and open details on a phone.
- Jun 12 Extension-run proposals in chat stopped rendering as [object Object]: proposal objects are now unwrapped to their prompt text everywhere a chat message renders.
- Jun 11 Run-page chat docks as a right side panel on wide screens, with synced close animations and click-outside dismissal.
- May 25 Global chat gained its sidebar everywhere, a stop button, and an iridescent focus sweep on the research input.
- May 20 Smoother analyst streaming, an animated sidebar, and a widened chat modal.
- May 19 Chat became a first-class surface: persistent start-chat sessions with shareable URLs, inline run proposals, and unified entrypoints.
- May 18 Run Analyst agents landed: chat with a finished run, with inline citations and durable structured answers.
Autonomous factory & operations active Running the product with agents: the Centaur ticket factory, deploy safety, observability dashboards, and data durability.
- Jul 10 Factory workflows were mirrored into the Auto agent surface, making Researcher operations more discoverable as named automation rather than hidden repo machinery. Brand-level metrics also now show runs, spend, and billed activity by product surface, giving operators a clearer read on where usage and cost are coming from.
- Jul 3 Groundwork landed for splitting heavy persona building onto a dedicated machine: workers can now be scoped to claim only interactive work or only build work, so customer conversations never compete with corpus ingestion for the same box. The metrics overview now answers operator questions directly — total platform sources, customer funds, users, signup activity, answer length, consult channel, and provider cost — while painting instantly with public data before admin-only sections resolve.
- Jul 1 The operations metrics overview is easier to scan: recent billing transactions now use the full dashboard width, so long run titles and customer identifiers do not squeeze the table into a narrow column.
- Jun 23 Public changelog narration now runs as a daily batch instead of reacting to every push, so maintenance stays current without noisy automation churn. Those changelog commits also use a deployment-recognized author, keeping the public site update path reliable.
- Jun 19 Automated maintenance and recovery now use the same skeptical review standard as a hard gate before repair work can ship or recover a customer run, and that review now covers every real change rather than only traditional code edits. When that gate passes, approved tickets and repairs can move through merge, deploy, and live-release verification automatically, while repeated ticket updates no longer start duplicate shipping runs for the same request; the independent review path now authenticates through managed secret injection, and Factory activity rows now open a per-run detail page so customers can inspect what each automation event actually did.
- Jun 18 The autonomous factory now has a richer public operations dashboard, with workflow cards, recent activity, and dedicated detail pages for each maintenance loop that make review, repair, simplification, and changelog work easier to inspect. Its header and workflow pages are cleaner, denser, and more scannable, with a canonical brand link home, a direct path back to researcher.now, and correctly rendered running-status dots and plain status pills so customers can understand factory health and maintenance loops without wading through implementation detail.
- Jun 12 Metrics auth moved to signed-in admin accounts, stage durations and run completion rate joined /v1/metrics, and backups stopped fighting bucket retention on latest/ pointers.
- Jun 11 Metrics page rebuilt with tabs, per-user spend and balances.
- Jun 7 An admin runs debug view, and the runs page went public and mobile-friendly.
- Jun 6 Centaur ships Linear tickets end-to-end: auto-ship by default, readable status markers, a fast lane for small tickets, and autonomous deploy recovery.
- Jun 5 Production Postgres PITR backups with runbooks and a restore drill; Centaur gained deploy keys, reviewer guards, and verification logs.
- Jun 3 An operations metrics dashboard landed.
- Jun 1 Deploy stability runtime split and a documented safe production deploy workflow.
- May 4 v1 scaffolding: docs, CLI, and VM deploy bootstrap.
Provider rails & failover active The engine rides many external providers — LLMs, search, scraping, transcripts. This thread keeps runs standing when any of them wobble.
- Jul 7 Researcher now isolates X-related rate-limit pressure before it can slow unrelated customer work. When an external search rail is throttled, the system backs off instead of repeatedly retrying a constrained provider, keeping the rest of the queue healthier.
- Jul 3 Production monitoring now probes the embeddings provider directly every few minutes, so an exhausted embeddings account pages immediately instead of surfacing hours later as degraded persona retrieval. Analyst answers and citation passes can also choose the fastest measured host for the same model, improving answer latency without changing the model customers receive.
- Jun 27 Video discovery now uses multiple providers instead of depending on one YouTube path, with extra hardening when YouTube throttles transcript or metadata lookups. Provider outages also keep clearer retry and failure boundaries, so customers are less likely to see a thin source set with no explanation.
- Jun 25 Source extraction now preserves provider and run-control results that settle just after a per-source timeout. Source-only ingestion can still record a failed source record for an outage, while ordinary research runs keep propagating retryable run-control failures.
- Jun 24 Provider failures are more visible at the evidence boundary: when extraction providers are unavailable, Researcher reports the outage instead of making it look like sources simply disappeared. That gives customers a clearer reason for gaps and a better path to retry or continue later.
- Jun 21 Provider outages now pause affected research runs and resume them after backoff instead of spending retries immediately or ending with a misleading failure. Customers are more likely to see work continue once credits, rate limits, or availability recover rather than having to restart the run.
- Jun 9 After a provider outage took down paid calls, the LLM chain was hardened against MPP identity loss with session recovery, cooldown, retries, and real error propagation.
- Jun 1 Managed provider payment contract: Exa and Firecrawl run on MPP rails, with an OpenRouter API-credit fallback and Deepgram joining for audio.
- May 29 OpenRouter MPP payment identity propagates across every LLM stage.
- May 25 Content-filter refusals are detected and rerouted across Claude and GPT fallbacks with lenient JSON recovery; Exa gained find_similar, domain filters, and date ranges.
- May 20 Exa search discovery joined Firecrawl, with costs accounted per run.
- May 6 Provider-aware structured LLM client with OpenRouter timeouts, fallback planning models, and adaptive output budgets.
Standing topics & monitoring active Turning recurring watches into durable research workspaces: clean topic addresses, reusable source fetches, metered scans, saved evidence, and owner-private follow-up chat.
- Jun 24 Topic watches can now reuse shared search and RSS registry results while paginating through longer X result sets, reducing duplicated collection work as a topic grows. Topic pages also gained a cleaner prompt/status layout and an agent handoff action, making a watch easier to inspect or pass to another agent.
- Jun 23 Topic follow-up now stays fast as topics grow: saved evidence is searched through a per-topic semantic index with a bounded fallback, so source-grounded answers can start streaming without waiting on a large corpus scan. The topic page also reads more clearly: the prompt now sits flush beneath the status panel as one continuous card (matching the run page) with the action row below it, and a new "For agents" action copies a ready-to-paste handoff so another agent can follow the topic through Researcher's public tools.
- Jun 22 Asking a topic a follow-up question now returns in seconds instead of sometimes taking a couple of minutes: a topic's saved evidence is indexed for fast semantic search and the lookup is time-bounded, so grounded answers stream back quickly and fall back gracefully rather than stalling on a large topic.
- Jun 22 Standing topics became a real monitoring workspace: clean handle-based URLs, shared-source reuse, visible scan spend, and balance-aware pauses make them easier to share, scale, and pay for honestly. Topic owners can now ask private, source-grounded follow-up questions from the topic page, with streamed answers drawn from the topic's saved evidence.
Codebase health & modularization shipped A deliberate week of engineering hygiene: one service became a monorepo of focused modules with a clear engine/workflows core.
- May 28 The great split: hundreds of files broken into focused modules, with workflows and the engine promoted to the repo top level.
- May 27 UI and runtime modularized into focused modules; the core workflow package became the engine.
- May 26 Dozens of duplicated value helpers consolidated into shared utilities.
- May 18 The service split into monorepo packages.