v0.2.8
May 10, 2026
What's Changed
- Publish
elmohq/elmo-db-migrateimages instead of always attempting to build as part of the CLI. by @jrhizor
/ CHANGELOG
Latest releases, completed work, and improvements shipped to Elmo.
May 10, 2026
elmohq/elmo-db-migrate images instead of always attempting to build as part of the CLI. by @jrhizorMay 10, 2026
elmohq/elmo-web and elmohq/elmo-worker. by @jrhizorog:image is now an absolute URL and renders the current page's title/description. Adds og:url, og:site_name, og:locale, and og:logo to the document head. by @jrhizorMay 6, 2026
/api/v1/brands endpoints (POST, GET, PATCH) now accept and return a single domains list instead of website + additionalDomains. This future-proofs against a future db model change. by @jrhizorMay 6, 2026
elmo init adds a recommended setup path — pick a scraper (BrightData or Olostep), pick a direct LLM API (OpenRouter, Anthropic, OpenAI, or Mistral), four prompts total. The custom path now requires at least one direct LLM API so onboarding analysis works out of the box. by @jrhizorelmo init and new elmo telemetry status|enable|disable subcommand. See Telemetry for what's collected. by @jrhizorMISTRAL_API_KEY and target via mistral:mistral-api:<model>[:online]. by @jrhizoranswer_text_markdown over answer_text when extracting response text, so prompt responses render with markdown formatting in the UI. by @jrhizorApril 24, 2026
/auth/register submission in local mode now atomically creates the default org + admin membership, so register → brand onboarding works in one pass; any subsequent signup is rejected. Demo mode narrows writable /api/auth/** endpoints to a whitelist of just sign-in and sign-out. Drops the unused DEFAULT_ORG_ID and DEFAULT_ORG_NAME env vars. by @jrhizorbrand.enabledModels, and move the visibility-bar rollup into a single SQL query — cuts load time from ~10s to under 1s on large brands. Also fixes the "unbranded" tag filter and a search clear-X flicker. by @jrhizorApril 23, 2026
DEFAULT_DELAY_HOURS env var. brand.delayOverrideHours still takes precedence. The default changed from the hard-coded 72h to 24h. by @jrhizoruser.image field so avatars actually render. by @jrhizorApril 22, 2026
DATABASE_URL prompt and note that it must be an IPv4-compatible direct connection or pooler. by @jrhizorREAD_ONLY=true) now enable supportsMultiOrg, so the /app brand switcher renders when the demo user is seeded into multiple organizations. Pure local deployments continue to auto-redirect to the default org. by @jrhizor@tailwindcss/vite emitting different CSS hashes in the client and SSR passes. by @jrhizorSCRAPE_TARGETS end-to-end via the provider registry. Deployments that configure non-default providers no longer hit AI_LoadAPIKeyError for providers they never set up, the worker fails fast at startup on misconfigured SCRAPE_TARGETS, and brand.enabledModels filters per brand. by @jrhizorApril 21, 2026
elmo init now walks through each provider one at a time. by @jrhizor