Release notes

Changelog

Every notable change to Elyra, in reverse chronological order.

v0.9.11

Latest
Changed
  • Internal: removed all any types from the embeddable @elyracode/web-ui package (143 eliminated), adding precise discriminated-union types for the sandbox messaging protocol — no behavior change
  • Model registry data refresh

v0.9.10

Added
  • Stack detection now recognizes the SILT stack (Svelte 5 + Inertia + Laravel + Tailwind) and suggests @elyracode/stack-silt

v0.9.9

Added
  • Budget-aware smart routing: when a budgeted /goal is active, the router caps tiers as the budget depletes (balanced above 75% spent, fast above 90%) so the loop spends expensive turns early and rations later
  • /route: show what smart routing would do for the next turn — classified tier with reason, the model each tier would pick (pins marked), budget capping status, and image-modality constraints
  • /cost now shows a burn rate ($X.XX/hour at the current pace) once a session has more than a minute of activity
  • elyra doctor models: live-verify configured providers against the model registry from the CLI (credentials from auth.json or env), with --provider, --model, and --max filters; exits non-zero on failures or mismatches for CI use
  • smartRoutingModels setting: pin an explicit model per smart-routing tier ({"fast": "anthropic/claude-haiku-4-5", ...}) — the heuristic decides the tier, you decide the model; pins still respect the image-modality filter
  • Smart routing decisions are now visible in the chat as a dim status line ("smart routing: fast — read-only tools → Haiku") instead of switching models silently
Fixed
  • Smart routing no longer escalates permanently to the powerful tier after a few turns: conversation length is now measured in user turns instead of raw messages (tool results inflated the count immediately)
  • Smart routing now filters candidates by input modality, so conversations containing images can never be routed to a text-only model
  • Smart routing model selection within a tier now prefers same-provider, reasoning-capable, paid models by cost instead of blindly picking the largest context window (which could select a slow 1M-context flagship as the "fast" model)
  • Smart routing hysteresis now tracks the classified tier on every turn, including turns where the model did not change

v0.9.8

Added
  • /goal <cmd> --budget <usd>: cost-capped autonomy — the goal loop stops and reports once the spending cap is reached, keeping the work done so far
  • /replay <model>: replay the last turn on a new branch with a different model; the original branch is kept for comparison via /tree, and the replay cost is reported
  • /learn [topic]: extract a reusable skill from the current session — writes a draft SKILL.md to the user skills directory for review and /reload
Changed
  • elyra update now checks the npm registry first and reports "Elyra is up to date (version)" instead of reinstalling and claiming success when already on the latest version; use --force to reinstall anyway

v0.9.7

v0.9.6

v0.9.5

Added
  • MiniMax M3 on the direct minimax and minimax-cn providers (512k context, 128k max output, reasoning, text + image)
Changed
  • Upgraded the Anthropic SDK from 0.97.1 to 0.102.0

v0.9.4

Changed
  • Replaced the third-party native clipboard dependency with an in-repo fork, @elyracode/clipboard, so the project controls its development and maintenance. The runtime behavior (optional native module with graceful fallback) is unchanged.

v0.9.3

Added
  • Self-writing extensions: the agent can give itself a tool it doesn't have via the new extension_write tool, which scaffolds a TypeScript extension when a needed capability is missing. Approval-by-default with an "Auto-save extensions" setting in /settings.
  • /review: get an independent, second-opinion code review of your changes from the model with a clean reviewer prompt and no conversation context. Flags: --session (the agent's changes this session), or a path.
  • /bisect: binary-search the session's checkpoints to find which agent turn introduced a problem, like git bisect but over the agent's own turns. /bisect <command> runs automatically (exit 0 = good); without a command it asks you to mark each step. The working tree is always restored afterward.

v0.9.2

Added
  • /update now updates installed extensions too, not just Elyra itself. It checks for both an Elyra version update and out-of-date extensions, updates everything, and restarts once.
Fixed
  • A user's prompt is now flushed to disk when the agent starts a turn, so it survives a crash during a long initial LLM call (previously entries were deferred until the first assistant message arrived)

v0.9.1

Added
  • Scrollable in-TUI diff viewer: /diff now opens a full-height, syntax-highlighted viewer (scroll with arrows/PgUp/PgDn, g/G for top/bottom) instead of dumping a markdown block into the chat
  • /diff --editor (-e) and a "Diff in editor" setting: open the diff in $VISUAL/$EDITOR. Press e inside the viewer to open the same diff in your editor.
  • /diff --session: show only what the agent changed this session (diffed against the session's first checkpoint)
  • /diff --cached: show staged changes
  • /diff <path>: filter the diff to a file or directory
  • Plain /diff now also lists untracked files
Fixed
  • Replaced an inline import in the diff command with a top-level import; raised the diff buffer limit to 32MB

v0.9.0

Added
  • Self-writing skills: the agent can now save a hard-won solution as a reusable skill via the new skill_write tool, so future sessions never re-solve the same problem. Skills are saved to user (~/.elyra/agent/skills) or project (.elyra/skills) scope.
  • "Auto-save skills" setting in /settings (default off). When off, the agent shows a Save/Discard prompt before saving each skill. When on, it saves autonomously.

v0.8.2

Changed
  • Default Anthropic model updated from Claude Opus 4.7 to Claude Opus 4.8

v0.8.0

Fixed
  • Synchronous busy-wait spin locks in auth-storage and settings-manager replaced with Atomics.wait — no longer burns CPU at 100% during lock contention
  • Edit tool tsc check converted from blocking spawnSync (up to 15s) to async execFile — streaming, UI, and concurrent tools no longer freeze during type checking
  • exec.ts now preserves error messages from failed process spawns instead of discarding them
  • Checkpoint persistence uses atomic write (temp file + rename) to prevent corruption on crash
  • Memory generation errors are now logged instead of silently swallowed
  • Agent retry continue() errors are now logged instead of silently swallowed
  • Unbounded errors arrays in auth-storage and settings-manager capped at 100 entries

v0.7.15

Added
  • @elyracode/btw extension: parallel side conversations with /btw, /btw:inject, /btw:summarize, /btw:clear, and /btw:thread commands

v0.7.14

Fixed
  • @elyracode/laravel extension crashed on startup with getCwd is not defined — fixed variable reference in session_start handler

v0.7.13

Changed
  • Startup animation replaced with constellation design matching the favicon.svg — orange gradient with highlighted nodes
  • @elyracode/laravel skill updated with db-tools integration guidance for combined model-vs-schema analysis
  • @elyracode/laravel tools now register only in Laravel projects (no tool clutter in non-Laravel workspaces)

v0.7.12

Added
  • @elyracode/laravel extension: deep Laravel project understanding with laravel_models, laravel_routes, and laravel_analyze tools

v0.7.11

Added
  • /goal <command> command: set a completion condition and the agent keeps working until the command exits with code 0. Type /goal again to clear.
  • /update command: update Elyra to the latest version and restart without leaving the session
  • In-app update notification shows /update instead of requiring manual terminal commands

v0.7.10

Changed
  • edit tool now runs TypeScript diagnostics after each successful edit and reports new errors to the agent immediately
  • read tool returns a structural outline (function/class/interface signatures with line numbers) for files over 150 lines instead of truncated content
  • read tool annotates each line with a short content hash (#xxxx | ) for precise edit targeting
  • edit tool transparently strips hash annotations from oldText/newText so copy-paste from annotated reads works directly

v0.7.9

Added
  • @elyracode/workflows extension: code-orchestrated workflow pipelines defined in .elyra/workflows/. Supports prompt, run, if, and parallel step types with template interpolation between steps. Code handles control flow, the LLM handles judgment — no token tax from LLM-based orchestration.
  • /workflow command to list and execute workflows
  • elyra-workflows skill teaching the agent about workflow patterns

v0.7.8

Added
  • @elyracode/seo extension: SEO and LLM optimization with seo_audit, seo_generate_llms_txt, seo_generate_schema, and seo_generate_meta tools

v0.7.7

Added
  • @elyracode/lsp-typescript extension: TypeScript LSP integration with lsp_definitions, lsp_references, lsp_diagnostics, and lsp_hover tools for semantic code navigation
Changed
  • Pinned file contents are now placed before the date in context injection for improved prompt cache hit rates

v0.7.6

Added
  • /rewind command: roll back both conversation history and filesystem state to a previous point. Git checkpoints are automatically created before each agent turn and persisted alongside the session file.
  • app.session.rewind keybinding: trigger /rewind via configurable keyboard shortcut
  • rewind action in ExtensionCommandContextActions: extensions can programmatically trigger rewind operations

v0.7.4

Added
  • Version update notification on startup: checks npm registry and shows elyra update command when a newer version is available
  • @elyracode/design-lookup extension added to /ext package browser

v0.7.3

Added
  • /skills install <name> command: install skills from the community registry at github.com/kwhorne/elyra-skills. Supports multiple skills in one command.

v0.7.2

Added
  • @elyracode/design-lookup extension: extract design systems from any website (colors, typography, spacing, components, layout) via /lookup-design <url>

v0.7.1

Added
  • Full Anthropic Agent Skills spec compatibility: allowed-tools, compatibility, license, metadata frontmatter fields
  • Auto-discovery of scripts/ and references/ directories in skill folders, exposed to the agent via system prompt
  • /skills command: list all loaded skills with details, script/reference counts, and source info

v0.7.0

Changed
  • Major dependency upgrades: diff 9.0, marked 18.0, vitest 4.1, typescript 6.0
  • TypeScript target bumped from ES2022 to ES2024
  • Updated @typescript/native-preview (tsgo) to latest

v0.6.4

Changed
  • Upgraded @anthropic-ai/sdk to 0.97.1 and openai to 6.38.0

v0.6.3

Added
  • /snippet command: reusable instruction snippets from .elyra/snippets/ with selector and autocomplete
  • /init now creates .elyra/snippets/ directory

v0.6.2

Added
  • /init command: interactive project setup. Creates .elyra/AGENTS.md with stack detection, .elyra/blueprints/, and suggests extensions based on detected frameworks.

v0.6.1

Added
  • /memory command: view, clear, or locate project memory. Shows the knowledge Elyra has built across sessions.
  • First-run welcome message with example prompts for new projects (shown when no .elyra/ directory exists)
  • /help command: example prompts, useful commands, and link to elyracode.com
  • Onboarding text now references elyracode.com for docs and guides

v0.6.0

Added
  • /footer command: toggle between full and minimal footer. Minimal shows only cwd, git branch, and model name.
  • Norwegian Midnight built-in theme (Nord palette with deeper backgrounds)
  • @elyracode/swarm extension: multi-agent pipeline orchestration with build, review, and refactor pipelines
  • @elyracode/docker extension: container-aware development with exec routing, log tailing, compose operations, and environment sync
Changed
  • Compaction summarization prompts now preserve Architecture & Patterns, Error History, exact file paths, error messages, and stack traces
  • Tool result serialization limit increased from 2000 to 4000 characters for richer compaction context
  • Smart router expanded from 8 to 35 complex keywords covering debugging, architecture, and performance terms
  • Smart router adds hysteresis to prevent tier oscillation between turns
  • Smart router gates read-only de-escalation on conversation length (< 10 messages only)
  • Smart router escalates to powerful tier on large tool outputs (> 5000 chars)
  • Current date moved from system prompt to context injection for better LLM cache hit rates
  • Upgraded @anthropic-ai/sdk to 0.96.0, openai to 6.38.0, @biomejs/biome to 2.4.15
Fixed
  • Added @elyracode/swarm to /ext package browser list
  • Updated xAI test model references after grok-3 removal from API

v0.5.10

Fixed
  • Added @elyracode/swarm to the /ext package browser list
Added
  • @elyracode/docker package: Docker-aware development with container exec, log tailing, compose operations, and environment sync

v0.5.9

Added
  • Built-in theme: Norwegian Midnight (Nord palette with deeper backgrounds)
  • @elyracode/swarm package: multi-agent pipeline orchestration with /swarm build, /swarm review, and /swarm refactor commands. Pipelines chain focused agent stages (plan → code → test → review → fix) with visual progress tracking. Read-only stages cannot edit files; only implementation stages can write.

v0.5.8

Added
  • /cost command: displays session token usage, estimated cost, and context window utilization
  • /diff command: shows uncommitted git changes with syntax-highlighted diff output
  • /pin <path> and /unpin <path> commands: pin files to context so they survive compaction. Pinned file contents are injected into every LLM call.
  • /pins command: list currently pinned files
  • /blueprint [name] command: apply session blueprints from .elyra/blueprints/ or ~/.elyra/agent/blueprints/. Supports YAML frontmatter with pin directives.

v0.5.7

Added
  • /theme slash command: opens a theme selector with live preview, or switch directly with /theme <name>. Includes autocomplete for theme names.

v0.5.6

Added
  • Built-in themes: Palenight, Catppuccin Mocha, and One Dark Pro (available via /theme)

v0.5.5

Changed
  • estimateTokens now caches results per message in a WeakMap, avoiding redundant token recomputation for immutable messages across compaction checks
  • ExtensionRunner.emitContext skips structuredClone entirely when no extension has registered a context handler
  • Agent session uses agent.appendMessage() instead of mutating agent.state.messages directly

v0.5.4

Added
  • Anna.js extension (@elyracode/anna): generate, preview, and build Markdown presentations with terminal animations, live code playgrounds, Mermaid diagrams, and component layouts

v0.5.3

Added
  • Laravel Herd integration (@elyracode/herd): environment detection, service status, error logs, .env sync checks, PHP version management

v0.5.2

Added
  • Git intelligence (@elyracode/git-intel): session briefings, commit message generation, PR descriptions
  • Test generator (@elyracode/test-gen): intelligent test generation for Pest (Laravel) and Vitest (TypeScript)
  • Performance analyzer (@elyracode/perf-tools): N+1 query detection, slow queries, missing indexes, eager loading
  • Localization tools (@elyracode/i18n-tools): find hardcoded strings, compare translations across locales

v0.5.1

Added
  • /packages and /ext commands: interactive TUI browser for all @elyracode extensions with descriptions, install directly without leaving Elyra
  • SQLite support in @elyracode/db-tools with auto-detection from .env

v0.5.0

Added
  • SQLite support in @elyracode/db-tools: query_sqlite tool with auto-detection from .env (DB_CONNECTION=sqlite) and Laravel defaults
  • SQLite schema discovery via get_database_schema
Fixed
  • All package install/remove/update operations now suppress npm noise (warnings, funding, package counts)
  • Clean CLI output for install: shows only "Installing...", "Installed", and activation instructions

v0.4.9

Added
  • Subagent orchestrated workflows: /build-feature (scout -> planner -> oracle -> worker -> reviewer -> fix), /ui-review (adversarial UI testing with screenshots and accessibility checks), /deep-review (parallel correctness + tests + security review with synthesis)
  • Git integration: /git-review (review diff with go/no-go verdict), /setup-git-hook (install pre-push hook that blocks pushes with issues)

v0.4.8

Added
  • Design tools extension (@elyracode/design-tools): live browser preview with Tailwind CDN, screenshot capture for visual QA, Tailwind design system consistency checker
  • Subagents extension (@elyracode/subagents): delegate to focused child agents (scout, reviewer, planner, worker, oracle, researcher, delegate) with single and parallel execution

v0.4.7

Added
  • Design tools extension (@elyracode/design-tools): live browser preview with Tailwind CDN, screenshot capture for visual QA, and Tailwind design system consistency checker

v0.4.6

Added
  • HTTP tools extension (@elyracode/http-tools): API testing, live documentation fetching, and OpenAPI/Swagger spec parsing

v0.4.5

Added
  • @elyracode/doctor: Auto-heal mode (/doctor --heal) that instructs the agent to fix each issue step by step

v0.4.4

Added
  • Project health analysis (@elyracode/doctor): security audit, outdated deps, code debt scanner, large file detection, .env validation, git status, project essentials check

v0.4.3

Added
  • RILT stack extension (@elyracode/stack-rilt): React 19, Inertia.js 2, Laravel, Tailwind CSS 4, shadcn/ui
  • Stack detector now recognizes RILT projects
Fixed
  • elyra update now shows clean output (version info, progress) instead of raw npm noise

v0.4.2

Added
  • RILT stack extension (@elyracode/stack-rilt): React 19, Inertia.js 2, Laravel, Tailwind CSS 4, shadcn/ui
  • Stack detector now recognizes RILT projects (React + Inertia + Laravel + Tailwind)

v0.4.1

Added
  • Filament v5 extension (@elyracode/stack-filament): admin panels, resources, tables, forms, actions, widgets, multi-tenancy, testing
  • Stack detector now detects Filament and Laravel AI SDK in composer.json

v0.4.0

Added
  • Flux UI extension (@elyracode/flux-ui): live component index from GitHub, Blade-to-Flux converter, page generator with Livewire 4
  • Laravel AI SDK extension (@elyracode/stack-laravel-ai): complete reference for agents, sub-agents, tools, structured output, embeddings, vector stores, streaming, and testing

v0.3.7

Added
  • Flux UI extension (@elyracode/flux-ui): live component index from GitHub, Blade-to-Flux converter, and page generator

v0.3.6

Added
  • @elyracode/laravel-starters: GitHub file cache (~/.elyra/cache/github/) with 24h TTL for instant repeat fetches
  • @elyracode/laravel-starters: apply_starter_files tool to write kit files directly to disk with path filtering and excludes
Fixed
  • CI: resolved platform-specific native module issues (tsgo, lightningcss, parcel/watcher, tailwind oxide)
  • CI: fixed failing self-update tests after version-check removal

v0.3.5

Added
  • PrimeVue 4 extension (@elyracode/stack-primevue): 80+ UI component reference for Vue 3 with Laravel/Inertia patterns

v0.3.4

Added
  • Laravel starters package (@elyracode/laravel-starters): fetch and customize official Laravel 13.x starter kits from GitHub
  • fetch_laravel_starter tool: agent auto-fetches React, Vue, Svelte, or Livewire starter kits as reference
  • fetch_github_repo tool: fetch any public GitHub repo as context
  • /laravel:starter command: interactive TUI selector for starter kits
Fixed
  • Laravel starters updated to current Laravel 13.x kits (React/shadcn, Vue/shadcn-vue, Svelte/shadcn-svelte, Livewire/Flux UI)

v0.3.3

Added
  • Animated startup logo with sky-to-teal gradient, revealed line by line on first launch

v0.3.2

Fixed
  • @elyracode/db-tools: Auto-loads .env file from project root with Laravel/Docker key mapping (DB_HOST, DB_DATABASE, CLICKHOUSE_HOST, etc.)
  • @elyracode/db-tools: Explicit ELYRA_* env vars always take precedence over .env values

v0.3.1

Added
  • Database tools package (@elyracode/db-tools): query MySQL and ClickHouse with schema awareness
  • Read-only by default with ELYRA_DB_ALLOW_WRITES escape hatch
Fixed
  • ClickHouse config uses granular env vars (HOST, PORT, HTTPS, timeouts) instead of a single URL

v0.3.0

Added
  • Stack detection: automatically detects TALL and VILT stacks from composer.json/package.json
  • Stack info injected into system prompt so the agent always knows the project's technology stack
  • Auto-suggestion in interactive mode to install matching stack profile packages
  • Also detects: React, Svelte, TypeScript, Vite, Sanctum, Reverb

v0.2.0

Added
  • Smart model routing: automatically selects optimal model tier per turn based on task complexity
  • Codebase memory: persistent project knowledge across sessions via LLM-generated summaries
Changed
  • npm scope changed from @elyra to @elyracode

Want to stay up to date?