Changelog
Every release, documented. 162 versions and counting.
Last generated: July 17, 2026
v0.9.1082026-07-17
- Update spectral version in nix package
v0.9.972026-07-15
- MAINTAINER global role + bump to 0.9.97
v0.9.902026-07-14
- v0.9.90: billing attribution canonical team, dedicated client invites, project origin team, billing test fixes, changelog update
v0.9.882026-07-13
- Credit usage event ledger, team usage charts, version bump 0.9.88
- Bump spectral
v0.9.862026-07-10
- Add Steps MDX component and remove nextra import from tutorial.mdx
v0.9.852026-07-10
- Derive LanguageTag from ResolverInputTypes to resolve Zeus enum mismatch
- Add missing languageTags to PresetFormValues in agent-chat
v0.9.822026-07-07
- few more changes
- few more changes
v0.9.812026-07-06
- OnCheckedChange → onChange in Switch, add missing imageOnly dep
v0.9.792026-07-06
- Add desktop entry for spectral nix package
- Bump spectral
v0.9.782026-07-05
- Add missing mode arg to openDialog in EditorFTUX, bump to 0.9.78
v0.9.752026-07-04
- Add jpeg files to files tracked by lfs
- Add aac and mp3 to lfs tracked files
- Bump nix version
- Add lfs pull to ci
- Migrate to lfs
v0.9.742026-07-03
- Ignore spectral-bin files
- Update nix hash
v0.9.732026-07-03
- Add missing plannedCommands to InferenceProgress, bump v0.9.73
v0.9.722026-07-03
- Bump spectral
- Bump npm deps sha
- Expose all DCP/observational-memory config in settings API and landing UI
- added presets
- Machine team assignment via relay + landing Machine Settings dialog
- Use authenticated user's name when accepting invitation
- Add nix flake for spectral
- **seo:** 4-phase expansion — 12 new tools + bugfix, bump to 0.9.44
- Windows improvements
- Add windows build
- **desktop:** Built-in sign-in window for first-launch auth (0.9.38)
- **agent:** Refactor tool-call display into per-tool renderers with diff, ANSI terminal, grouping, and status animations
- **electron:** Launch bundled spectral serve with home cwd, splash + CI smoke test
- **agent:** Live mid-session toggles for primary agent and subagents
- Teams resolver enhancements, prompt quality updates, schema regeneration
- Upload latest.json after uploading the binaries
- Use ubuntu image for electron build as base and add exec on 7zip
- add task fix
- **cli-node:** Add browser video recording tools + fix close resource leak
- Staple release
- Run macos desktop build on macos
- Add memory observations to prompt quality evaluation
- **memory:** Unify compaction into single LLM call with deterministic pruner
- **cli-node:** Inter-agent observation sharing, observer broadcasts and self-delivery fix; bump to 0.9.16
- Add admin vision support toggle for built-in models
- **backend:** Fake-model short-circuit for spectral provider
- **backend:** Add seed:fake-model for e2e testing
- **cli-node:** Add compaction e2e tests (pure + mock + live LLM smoke)
- Add @std/fs to backend import map for Docker build
- Add Google sign-in for team invites
- Download page GraphQL resolver + ProjectUsage panel + type fixes
- **backend:** /api/releases/publish-url endpoint for presigned S3 uploads
- Electron desktop app + landing download page; bump 0.8.12
- v0.8.4: Add contextWindow override to Built-in UserModels admin form
- **cli-node:** Tighten system prompt — agent owns all coding work, never delegates implementation to people
- Store extracted text for binary cloud documents, pass to AI generation
- **landing:** Markdown rendering + large scroll in memory details dialog
- **cli-node,landing:** Memory details dialog with observations & reflections preview
- **cli-node,landing:** Loop dropdown with max iterations and goal
- **cli-node:** Memory compaction persistence + UI dropdown + loop mode compat
- **cli-node:** Integrate observational memory extension, bump to 0.3.8
- Fork & Compact polish — auto-title, disabled composer, amber icon
- Fork & Compact frontend — compaction indicator + special send button
- Fork & Compact — fork session + auto-compact after first turn
- **agent:** Switch usage display to credits and bump cli to 0.3.3
- Interactive login + session usage bar below status
- **cli-node:** Support custom redirectUri in OAuth MCP config
- **landing:** Add FTUX guide for agent setup when no machine connected
- Path autocomplete in New Project form
- **landing:** Add AuthGuard to /agent page and fix login redirect param
- Machine owner info + CLI OAuth login
- **landing:** Split token display into input/output/cache read/cache write in agent header and turn footer
- **agent:** Show context window fill bar alongside session tokens
- add count-tokens task with frozen [email protected]
- **agent:** Display total session token count in status bar
- **agent:** Add mobile sidebar toggle button in composer
- **agent:** Taller composer textarea on desktop and mobile
- **agent:** Mobile UI improvements
- **studio:** Mobile-responsive layout — bottom-sheet RefinePanel, compact header, dvh-safe panel heights
- **agent:** Mobile-responsive drawer with single-column navigation
- Cache token tracking + expanded credit rates
- Credit visibility in team usage analytics
- Add AgentSession tracking for agent token billing
- Yellow pulsating dot for active sessions/projects in sidebar
- new agent version with mcp integration
- new version
- devops: rewrite CI pipeline, add cli-node coverage, clean up scripts
- **admin:** Polish admin panel UX and fix models backend
- Add developer avatar row to stats section
- **landing:** Add animated InferenceLoopSVG background to how-it-works section
- **landing:** Redesign how-it-works section + distillery badges
- **landing:** Refresh hero sections
- Landing page updates
- Together AI Dedicated Endpoints — full implementation
- Harden fine-tuning flow and add AI Distillery landing
- Implement batch tool in tool-executor (parallel sub-tool fan-out)
- Add runAnthropicToolLoop + fix tool_use bypass in messages.ts useAexol path
- Make Aexol self-eval tool-aware — run tool loop before evaluating text response
- Add Aexol self-eval to /v1/messages handler with Anthropic format I/O
- Add /v1/messages proxy for Anthropic Messages API (OpenCode Claude via Zen)
- Chat-native self-eval loop in runAexolChat
- Add /v1/responses endpoint — OpenRouter Responses API proxy with native tool calling
- Handle XML tool calls from Zen/Claude in addition to JSON tool_calls
- Implement server-side tool execution loop for OpenCode tools
- Resolve @path mentions server-side before forwarding to LLM
- **studio:** UX improvements — save status, output log, shortcuts, inference progress
- Admin users panel — lastLoginAt tracking, DAU/MAU stats, user search/sort UI
- P0 service readiness — golden paths E2E, provider failure tests, AI lifecycle & UI cleanup
- E2e tests restructure, backend auth updates, remove .ouro cache files
- Add built-in models, proxy route, viz page and refactor provider architecture
- Add video support to WebGL hero backgrounds and update video sources
- **studio:** Add loading indicator to collapsed RefinePanel bar
- new landing
- new version
- **landing:** Implement comprehensive Google Analytics 4 tracking
- **landing:** Implement comprehensive SEO optimization
- **landing:** Enhance hero WebGL with dynamic light sweeps and hidden navbar
- Complete landing page redesign - AAA+ enterprise startup style
- Add AuthGuard component for protected routes
- new gpts
- new
- Add file-based guidance system and new AI agent types
- Add hybrid AI-powered generation to play command
- Add multi-step workflow implementation with dependency-aware execution
- implement
- implementors
- features
- **vision:** Handle stream errors and empty responses in spectral-vision-fallback
- Fix base-models test for restrictedToTeams filter, bump cli-node and electron to v0.9.68
- landing fix
- front fix
- fixes
- fix codex
- fix test
- remove apply patch and fix confilcits
- sub+toolcalls, need to fix apply_patch
- **landing:** Fix TypeScript build errors in subscription-models page
- Resolve all Deno and cli-node test failures
- v0.9.57: connected accounts, team model connections, subscription-based models, lint fixes
- **kanban:** Resolve auth & backend URL for local dev
- **electron:** Restore native window dragging
- **electron:** Stop inert backdrop from defeating drag header
- **electron:** Use frameless shell-level drag region
- **electron:** Force movable window and stronger drag fallback
- **electron:** Use native title bar dragging per platform
- **presets:** Relax query access checks, return team+project presets together
- **electron:** Add JS fallback to ensure window drag region always exists
- Add missing fromTaskDetailSelector import in use-refinement.ts
- Close Playwright browser on relay shutdown
- v0.9.45: crawler dedup fix, SEO extension tools fix, landing SEO improvements
- **auth:** Validate JWT expiration in CLI/Electron OAuth flow
- **cli-node:** Avoid duplicate credit usage after refresh
- **desktop:** Augment PATH for MCP npx/npm and bump to 0.9.37
- **cli-node:** Add ext.on() to extension test mocks so lifecycle subscriptions don't crash
- **cli-node:** Resolve Studio binding and MCP config against project cwd in desktop
- **cli-node:** Make MCP adapter work in Electron/standalone binaries
- **electron:** Make fixed overlays no-drag so modals close over drag header
- fix
- **electron:** Make app window draggable with hidden title bar
- **download:** Match desktop assets by file suffix, CLI by prefix
- **ci:** Replace bash += with POSIX string concat in upload:s3 manifest
- **ci:** Correct mac binary path for x64 in build:electron:mac
- **standalone:** Guard top-level package.json read in coding-agent config
- **ci:** Install xauth for xvfb-run in test:electron-smoke
- **ci:** Make test:electron-smoke self-contained, remove needs dependency
- **ci:** Quote ERROR: entries in test:electron-smoke so YAML parses as strings
- fix
- Scope inter-agent observations to current project in memory popover
- Landing TeamNotificationSound createdAt type + build-test extension exit-code detection
- Landing TeamNotificationSound createdAt type + build-test extension exit-code detection
- 0.9.19: fix TypeScript build error — missing match.query reference in dispatcher
- fix
- fix
- Fix type-checking and build errors after lint cleanup
- Fix usage analytics and pass quality checks
- Fix unauthenticated invite acceptance
- Fix invite acceptance auth token
- Fix team invite accept URL
- **releases:** Serve private S3 artifacts via signed download route
- **releases:** Use configured S3 endpoint for uploads
- **ci:** Use ZIP for macOS Electron on Linux runners
- **ci:** Build Electron app before packaging
- Add Secure flag to Google OAuth state cookie for HTTPS production
- **ci:** Lazy-load dmg-license for Linux DMG builds
- **ci:** Install dmg-license for Electron DMG builds
- **ci:** Let electron-builder produce DMG natively on Linux (remove --dir + manual zip)
- **ci:** Revert to ZIP for macOS Electron (DMG impossible on Linux CI)
- **ci:** Use DMG instead of ZIP for macOS Electron release artifacts
- **electron:** Move dmg-license to optionalDeps, use --force on Linux CI; bump 0.9.3
- **ci:** Make build:electron optional in release:spectral-standalone needs; bump 0.9.1
- **electron:** Add dmg-license dependency, disable auto-publish in CI; bump 0.8.13
- **ci:** Switch release:spectral-standalone to curl API calls (release-cli --no-update conflicts with existing release); bump 0.8.11
- **ci:** Bun install --ignore-scripts to skip native module compilation; bump 0.8.10
- **ci:** Exclude browser tests in CI (vi.mock incompatible with createRequire)
- **ci:** Add missing tag_name to release:spectral-standalone
- Built-in model drag-and-drop sort order with migration
- Pre-render /docs pages at build time via generateStaticParams
- v0.8.3: Fix built-in model contextWindow always null causing per-turn compaction
- Deno tests + landing build — wrap billing calls in try/catch, add PROJECT_PLAN to ArtifactConfig
- Correct OpenRouter X-Title to Aexol.ai, bump cli to 0.7.7
- **cli-node:** Prevent data loss on SCHEMA_VERSION mismatch
- landing: admin pages, agent-chat, and scalars fixes
- Add supportsReasoning to test assertions, change CI reporter to list
- Add missing Long scalar to Models type in axolotl
- **cli-node:** Add missing SDK deps, fix type errors, bump to 0.7.3
- landing fixed
- **landing:** Add missing next-mdx-remote dependency, complete CtaLink→CtaButton migration
- **cli-node:** Add missing vendored pi dependencies to package.json
- **tests:** Fix setInterval mock type mismatch in mcp_e2e test
- **cli-node:** Replace ES2024 target with ESNext to fix esbuild warnings in vitest
- v0.7.0: relay dispatcher, studio binding, landing agent improvements
- **mcp:** Prevent binary data from leaking into LLM context
- **landing:** Subtle memory indicators + session-scoped activity popup
- **cli-node:** Stronger loop self-evaluation prompt + stricter LOOP_DONE detection
- **cli-node:** Make dispatcher tests async after handleRestRequest became async
- Loop mode proactively compacts via bridge.compact() instead of polling
- Loop mode waits for observational memory compaction before next iteration (v0.4.10)
- Observer deadlock on large sessions — cap chunk size, advance bound on empty results (#0.4.9)
- Cli-node tests — guard against SPECTRAL_MCP_URL env var, fix relay timing
- Landing build (zeus types + usePromptQuality sig), bump cli-node to 0.4.6
- Left-align system messages, remove spinners
- Render system segments in standalone system turns
- Memory extension path resolution and serve-mode registration; inline compaction UI in landing
- **mcp:** Guard ui.theme.fg call in updateStatusBar against missing Theme method (bump 0.4.2)
- **agent:** Restore context window usage for old sessions after refresh; bump CLI to 0.3.9
- Guard compaction state to fork-compact sessions only
- **agent:** Fallback historical usage credits to legacy cost when creditsUsed is missing
- **agent:** Avoid tiny-credit rounding to zero in live usage UI; bump cli to 0.3.5
- Add missing items schema to array types in MCP tool definitions
- Build errors - unescaped quotes in machines route and landing picker
- Add upstream error logging & fix vendor-prefixed model ID handling
- Add GPT-5.x pricing and reasoning support for OpenRouter models
- Try-catch around onAssistantMessageSkipped and deleteMessage
- Compute defaultModelId from top available model
- Skip zero-token usage events to prevent 0% context window on reconnect
- Context-window tracking after cancel/refresh, bump v0.2.19
- Update e2e test assertion to match new auth error message
- **cli-node:** Point oauth landing URL to aexol.ai instead of studio.aexol.ai
- **cli-node:** Oauth login never opens browser — await was before browser-open
- Path autocomplete shows full dir contents, not just one match
- **cli-node:** Remove !state.ui guard from autoAuth so OAuth works via serve
- **cli-node:** Catch UnauthorizedError from createHttpTransport in OAuth flow
- fix
- Context window bar hidden on default model, composer flex, session reconnect streaming
- **mcp:** Convert images to text + truncate large tool results + rehydrate tool history
- **serve:** Pi-bridge resolve MCP adapter from bundled dist/mcp/index.js instead of node_modules/pi-mcp-adapter
- **cli-node:** Bundle MCP adapter into cli-node source tree (v0.2.6)
- **landing:** Wrap useSearchParams in Suspense boundary for cli-auth and login pages
- Single vitest worker to avoid EAGAIN on CI
- fixes
- **landing:** Context window progress bar now shows even without explicit model selection — falls back to first agent-enabled model
- **backend:** Update test expectations for contextWindow in availableBaseModels
- **backend:** Add contextWindow: null to built-in user models in availableBaseModels
- **agent:** Fix composer bottom padding being overwritten by pb-safe
- **agent:** Align mobile hamburger + hide image button when unfocused on mobile
- **agent:** Reduce composer vertical padding on mobile
- **agent:** Prevent horizontal overflow on mobile
- **landing:** Mobile viewport, safe-area insets, and dvh support across landing, studio, and agent
- Agent synthetic user missing isAdmin, emailVerified, createdAt
- fixed release process
- Remove COPY src from landing Dockerfile
- Use global ~/.npmrc for npm auth — matching working CI pattern
- Use NPM_TOKEN env var — built-in npm auth
- Use npm config set for auth — .npmrc echo not expanding
- Remove YAML escape from npm auth token — \$ breaks GitLab expansion
- Use .npmrc for npm auth, npm config set -- was broken
- Cliffy v1 no longer has default export, use named Confirm
- Re-login buildah before push to prevent intermittent auth failures
- Remove userModelId from FineTuneJob selector (not in GraphQL schema); use userModel.id instead
- Add missing @aexol/relay-protocol import map and Docker COPY
- Repair test suite — missing mocks (userModel, getAvailable, refactor provider)
- Resolve TypeScript errors in zeus client and mcp route DI refactor
- Add override modifier to toString() in zeus client
- Improve cli validation, dry-run and task commands
- Enforce unique visitor identities
- **prompts:** Merge technical-docs into single file to prevent truncation
- debug: log tool args, results, and final content extraction in AnthropicToolLoop
- debug: add minimal self-eval progress logs to runAexolChat
- Skip Aexol self-eval when request contains tools (fall through to tool loop)
- Bypass Aexol self-eval on tool_use stop_reason in /v1/messages
- Use x-api-key header for OpenCode Zen /v1/messages (Anthropic API format)
- Accept x-api-key header in /v1/messages handler (@ai-sdk/anthropic compat)
- Route responses API to correct upstream provider (opencode → zen, dynamic URL)
- Always return 500 for upstream provider errors, not upstream status
- Intercept tool calls in streaming path by forcing non-stream to upstream
- debug: log target baseUrl and raw upstream response body
- debug: log request tools and response finish_reason/tool_calls in proxy
- Resolve @mention paths relative to cwd basename and parent dir
- Replace file-based aexol loop with chat-native iterative refinement
- Strip provider prefix in aexol callProviderViaProxy
- Strip provider prefix from model name before proxying to upstream
- Fix opencode zen URL and add built-in model registry
- Fix test suite: parser keyword-as-identifier + test ignore guards
- Update Stripe apiVersion to 2026-02-25.clover
- afix
- frontend command fixes, team visibility fixes
- team fix
- Replace pdfjs-dist with @hyzyla/pdfium for PDF text extraction
- Resolve boolean | null | undefined type error for visibleInStudio and aexolEnabled
- Resolve AuthGuard infinite token verification loop
- **landing:** Add Suspense boundaries for useSearchParams
- AuthGuard correctly checks user in store after fetchUser
- AuthGuard now verifies token validity via API call
- Redirect to login page on auth errors
- fixes
- fix
- fix
- docker fix
- some DRY and fixing and technical docs artifact
- idk how to fix it...
- idk how to fix it...
- idk how to fix it...
- idk how to fix it...
- Copy node_modules to production stage for Prisma runtime
- Copy node_modules to production stage for Prisma runtime
- Copy node_modules to production stage for Prisma runtime
- play fix
- zeus fix
- prisma fix
- landing fix
- Use correct Deno cache path for Deno 2.x Docker image
- prisma fix
- Resolve race condition in TUI parallel artifact generation
- landing fix
- Resolve TypeScript error in webgl-fire component
- fix?;
- DRY up isDark theme ternaries across landing components and studio nodes
- Use OpenRouter automatic Anthropic prompt caching
- Improve OpenRouter Anthropic prompt caching
- wizard for spectral
- before optimizer
- project bonding v2
- Tighten type safety: typed stubs, honest UI, narrower message types
- Revert 'optional: true' — release:spectral-standalone requires build:electron; bump 0.9.2
- **backend:** Simplify releases publish-url — use AWS SDK credential chain, existing S3 env names
- v0.8.8: standalone binary support, native extension browser, team invites, user models
- **billing:** Fully dynamic DB-backed credit-only pricing model
- **studio:** Move sidebar into route group layout
- session rename works finally
- reflections for projects
- **landing:** Pulse existing memory button instead of separate icon
- **landing:** Replace MemoryActivityIndicator with pulsing header icon
- DRY refactor: extract 14 reusable components, consolidate 6 utility functions
- cli-node: bump version to 0.4.4
- cli-node: log observational memory notifications in PiBridge
- refactorings
- some initial setup with notifications
- some initial setup with notifications
- some initial setup with notifications
- ci update, stop button, loop
- internal pi adapter and session continuation
- full mcp adapter support
- jiti mcp loading
- agentic working and forgot password
- Move model management to admin panel
- Remove server-side @mention resolution
- Modularize core inference/mcp/tui flows and cleanup dead code
- frontend pass and teams
- frontend pass and teams
- frontend command
- **landing:** Optimize visualizations with lazy loading and remove expensive blur
- agentic improvements
- more work on self-eval
- gemini flash potwor
- billing and owner
- aisdk and not database_url
- aisdk and not database_url
- aisdk and not database_url
- aisdk and not database_url
- missed migration, idk how it happen?
- projectid as param
- tourjs, stylings, to be continued
- better project opts
- correct pg config
- inference generation plan
- Modernize todo playground with enhanced UI and modular architecture
- multi step fences
- streaming fences
- genration done, codegen works
- improved chat - moving towards plan tree gen
- almost copilot for spectral
- ✨ Update landing page with Phase 1 & 2 achievements
- ✨ Phase 2 Complete: Execution Planner with Dependency Management
v0.9.692026-07-02
- **vision:** Handle stream errors and empty responses in spectral-vision-fallback
v0.9.682026-07-02
- Fix base-models test for restrictedToTeams filter, bump cli-node and electron to v0.9.68
- landing fix
- front fix
v0.9.662026-07-02
- DRY up isDark theme ternaries across landing components and studio nodes
v0.9.632026-07-01
- Use OpenRouter automatic Anthropic prompt caching
v0.9.622026-07-01
- fixes
- fix codex
- fix test
- remove apply patch and fix confilcits
- sub+toolcalls, need to fix apply_patch
- Improve OpenRouter Anthropic prompt caching
- wizard for spectral
v0.9.592026-06-30
- Expose all DCP/observational-memory config in settings API and landing UI
- **landing:** Fix TypeScript build errors in subscription-models page
v0.9.582026-06-29
- Resolve all Deno and cli-node test failures
- v0.9.57: connected accounts, team model connections, subscription-based models, lint fixes
- **kanban:** Resolve auth & backend URL for local dev
v0.9.552026-06-28
- **electron:** Restore native window dragging
v0.9.542026-06-28
- **electron:** Stop inert backdrop from defeating drag header
v0.9.532026-06-28
- **electron:** Use frameless shell-level drag region
v0.9.522026-06-28
- **electron:** Force movable window and stronger drag fallback
v0.9.512026-06-28
- **electron:** Use native title bar dragging per platform
v0.9.502026-06-28
- **presets:** Relax query access checks, return team+project presets together
v0.9.492026-06-28
- **electron:** Add JS fallback to ensure window drag region always exists
- Add missing fromTaskDetailSelector import in use-refinement.ts