# dbx tools > Companion packages for Databricks developers building apps, agents, data workflows, and reusable UI. ## Docs - [Overview](/) - [Package Reference](/packages/) - [Brand Context](/brand.json) - [Brand Context JSON Schema](/brand.schema.json) ## Guides - [Build an AppKit application with dbx-tools](/guides/get-started-appkit): Use dbx-tools with Databricks AppKit when your application needs shared configuration, Mastra, Lakebox, model gateways, memory, search, communication tools, or reusable UI. - [Build agents and Genie experiences](/guides/agents-and-genie): Choose native AppKit Agents, Mastra, or direct Genie based on who owns the conversation and which runtime features the application needs. - [Run per-user Lakebox workloads](/guides/lakebox): Use the AppKit Lakebox plugin to give each authenticated application user a persistent Linux home, terminal, desktop, OCI image services, and machine metrics in one app-managed Databricks Lakebox. - [Connect model clients to Databricks](/guides/model-gateway): Use the model gateway when an OpenAI, Anthropic, embedding, or Codex client must call models available in a Databricks workspace. - [Add memory, search, and approved actions](/guides/memory-search-and-actions): Combine AppKit tool-provider plugins when an agent needs durable user facts, governed search, web access, or communication actions. - [Work with Databricks files and ingestion](/guides/data-and-files): Choose native AppKit Files, a portable Databricks filesystem, or Zerobus based on whether the application serves files, gives an agent a workspace, or ingests records. - [Use the dbx CLI and local services](/guides/cli-and-local-services): Use the dbx CLI for Databricks authentication, Lakebase proxying, Genie Code, model gateways, Graphiti, gated tunnels, AppKit environment export, and current-user services. ## Packages - [@dbx-tools/cli](/packages/cli): Use dbx to authenticate with Databricks, connect local PostgreSQL tools to Lakebase, expose workspace models to local clients, run graph memory, and share an application through an access-controlled public URL. - [@dbx-tools/cli-args](/packages/cli-args): Generate Commander flags, help text, parsed values, and argv from one Zod object schema without installing the full dbx package. - [@dbx-tools/cli-service](/packages/cli-service): Add current-user service installation, lifecycle commands, optional uv-managed Python dependencies, and a tray menu to a Commander CLI. The managed command continues after its terminal closes on macOS, Linux, and Windows. - [@dbx-tools/appkit](/packages/appkit): Configure Lakebase before Databricks AppKit plugin startup and use AppKit request context, typed plugin lookup, and Databricks SDK cancellation from backend code. - [@dbx-tools/appkit-generator](/packages/appkit-generator): Generate researched brand contexts or provision a governed Databricks demo environment from business questions. The package exposes every operation as an AppKit tool and composes them through a registered Mastra workflow. - [@dbx-tools/appkit-lakebox](/packages/appkit-lakebox): Give each authenticated Databricks App user a persistent Linux home, terminal, desktop, OCI image services, agent tools, and machine metrics in one shared Databricks Lakebox. - [@dbx-tools/appkit-mastra](/packages/appkit-mastra): Host Mastra agents in a Databricks App with AppKit authentication, streaming routes, Lakebase-backed memory, Genie tools, model selection, chart and table embeds, Genie or MLflow feedback, and MCP exposure. - [@dbx-tools/appkit-memory](/packages/appkit-memory): Add durable, actor-scoped memory tools to an AppKit application. The plugin checks Databricks Agent Memory first and starts its Graphiti sidecar only when the current actor cannot access the configured managed-memory store. - [@dbx-tools/appkit-model-gateway](/packages/appkit-model-gateway): Expose models in a Databricks workspace through OpenAI Responses, OpenAI Chat Completions, Anthropic Messages, embeddings, and Codex-compatible APIs. The gateway discovers the workspace catalogue and selects a compatible Databricks route for each request. - [@dbx-tools/appkit-web-search](/packages/appkit-web-search): Add web_search and web_fetch to an AppKit or Mastra backend. web_search runs on the Databricks Model Serving native web-search tool: the model searches the web server-side and returns a synthesized answer plus the sources it used without a third-party search API key. web_fetch reads a single page through got-scraping. - [@dbx-tools/auth](/packages/auth): Resolve Databricks profiles and produce tokens or authentication headers from Node.js and Bun. The package selects personal access token (PAT), machine-to-machine (M2M), CLI user-to-machine (U2M), Databricks App service-principal, or App on-behalf-of-user (OBO) authentication and coordinates token acquisition in process memory. - [@dbx-tools/auth-gate](/packages/auth-gate): Create a platform-neutral passwordless runtime with Better Auth, email one-time passwords, passkeys, caller-provided identity policy, and persistent storage. - [@dbx-tools/cache](/packages/cache): Cache Node.js and Bun values in bounded memory with optional project-scoped disk or Keyv-compatible persistence. Foreground writes don't wait for persistence, and shutdown can drain tracked writes. - [@dbx-tools/core](/packages/core): Use shared Node and Bun helpers for layered configuration, binary installation, process execution, locking, and project discovery. Browser-safe utilities live in @dbx-tools/shared-core. - [@dbx-tools/databricks](/packages/databricks): Resolve Databricks workspace identity, access workspace files, detect cloud and region, resolve DNS, and discover the caller's public IP. - [@dbx-tools/databricks-zerobus](/packages/databricks-zerobus): Create a Zerobus SDK client and open ingest streams without constructing the region-specific Databricks endpoint yourself. - [@dbx-tools/email](/packages/email): Add model-drafted email with human approval, sender policy, SMTP delivery, and a local development outbox to an AppKit or Mastra backend. Browser-safe message and result schemas live in @dbx-tools/shared-email, and the reusable React Email presentation lives in @dbx-tools/shared-email-template. - [@dbx-tools/fs](/packages/fs): Use the @dbx-tools/shared-fs contract against local disk from Node.js. This implementation adds host separator conversion, Node I/O, symlink containment, and errno mapping to BaseFileSystem. - [@dbx-tools/genie](/packages/genie): Run Databricks Genie turns from Node or AppKit code as raw message snapshots or a typed event stream. AppKit requests keep their on-behalf-of-user (OBO) identity, standalone callers use the Databricks SDK authentication chain, and both modes support cancellation. - [@dbx-tools/lakebase](/packages/lakebase): Resolve a Databricks Lakebase target into the host, database, and user a PostgreSQL client needs, then request a short-lived database credential. The package gives Node and Bun applications a profile-aware path from a project name or resource URL to connection-ready values. When the target is a Lakebase path or URL without a chosen database, discovery picks the branch default (status.default, then Lakebase's provisioned databricks_postgres) instead of PostgreSQL's generic postgres database. - [@dbx-tools/lakebox](/packages/lakebox): Connect to, provision, and run commands on Databricks Lakeboxes. - [@dbx-tools/model](/packages/model): Resolve a loose model request such as "claude sonnet" or "chat-fast" to a concrete Databricks Model Serving endpoint in the active workspace. The client lists /serving-endpoints, caches and enriches the catalogue, classifies endpoints by capability, fuzzy-matches names, and falls back to a small static floor when the live catalogue is unavailable. - [@dbx-tools/model-protocol](/packages/model-protocol): Construct Vercel AI SDK ProviderV4 models for Databricks endpoints and translate gateway traffic between supported model protocols. - [@dbx-tools/path](/packages/path): Discover, match, ignore, scan, and watch filesystem paths with the same rules used by the CLI, Projen, barrel generation, code generation, and documentation tooling. - [@dbx-tools/postgres](/packages/postgres): Use connection-correct PostgreSQL advisory locks and a structured LISTEN/NOTIFY topic bus from Node.js. The package also provides optional message persistence, sender identity, and connection helpers. - [@dbx-tools/search](/packages/search): Add agent tools, federated search, index lifecycle helpers, or a Lakebase-backed full-text provider to AppKit AI Search. Use native AppKit aiSearch for Databricks AI Search queries. Add this package when an agent needs search / universal_search, an app needs to create, sync, or seed indexes, or a deployment needs the same AppKit query contract backed by PostgreSQL full-text search instead of Vector Search. - [@dbx-tools/tunnel](/packages/tunnel): Expose an application through a public Portr or FRP tunnel with an in-process passwordless access gate from @dbx-tools/auth-gate. - [dbx-tools-graphiti](/packages/py-graphiti): Run Graphiti REST, MCP, model routing, and PostgreSQL-backed graph memory from one Python runtime. Use embedded PostgreSQL for local persistence or connect to an external PostgreSQL or Lakebase database. - [dbx-tools-node-runtime](/packages/py-node-runtime): Run dbx-tools Python packages that contain generated PythonMonkey bindings in managed Python environments without a system Node.js or npm installation. - [@dbx-tools/shared-auth](/packages/shared-auth): Validate passwordless sign-in, passkey, Databricks profile, and resolved-client data at browser and server boundaries. The package also provides browser helpers for the routes owned by @dbx-tools/auth-gate. - [@dbx-tools/shared-core](/packages/shared-core): Use browser-safe utilities shared by @dbx-tools/* packages in browsers, workers, Node, Bun, CLIs, and schema packages. The package includes logging, options, networking, JSON, hashing, predicates, and other dependency-light foundations. - [@dbx-tools/shared-email](/packages/shared-email): Validate browser, route, and agent-tool payloads for @dbx-tools/email without importing Node-only code. - [@dbx-tools/shared-email-template](/packages/shared-email-template): Render the same React Email presentation in server-delivered messages and browser previews. The package owns the branded document, card, body, and brand mapping without depending on Databricks AppKit, SMTP, or DOM APIs. - [@dbx-tools/shared-fs](/packages/shared-fs): Use one filesystem contract across memory, local disk, Unity Catalog volumes, and other rooted storage backends. This browser-safe package provides the portable FileSystem interface, BaseFileSystem, normalized errors, path helpers, caching, and an in-memory adapter. - [@dbx-tools/shared-generator](/packages/shared-generator): Use browser-safe contracts and streaming clients for @dbx-tools/appkit-generator. - [@dbx-tools/shared-genie](/packages/shared-genie): Validate AI/BI Genie wire payloads and derive UI events from raw message snapshots without importing the Databricks SDK. Use the browser-safe schemas, event vocabulary, and snapshot diff helpers in clients, routes, and tests. The Node driver that calls Genie is @dbx-tools/genie. - [@dbx-tools/shared-genie-code](/packages/shared-genie-code): Resolve and validate configuration shared by the managed Genie Code CLI and its local model gateway sidecar without loading either runtime. Use these schemas for option defaults, profile homes, and generated TOML. - [@dbx-tools/shared-graphiti](/packages/shared-graphiti): Validate Graphiti configuration consistently in Node, Databricks AppKit, browser tools, and shared JavaScript code. Use the browser-safe schemas, defaults, and environment parser without loading the Graphiti runtime. - [@dbx-tools/shared-lakebox](/packages/shared-lakebox): Browser-safe Zod contracts and route builders for the app Lakebox: lifecycle summaries, the current user's account, services, commands, logs, and metrics. - [@dbx-tools/shared-mastra](/packages/shared-mastra): Validate browser-facing data exchanged with @dbx-tools/appkit-mastra. It defines the shared route constants, headers, embed markers, feedback schemas, thread selection fields, published client configuration, and response schemas. - [@dbx-tools/shared-model](/packages/shared-model): Validate model lookups and ranked model responses in UIs, routes, tools, and tests without importing Databricks clients. Use the browser-safe model selection, capability, reasoning, and OpenAI Chat Completions contracts across client and server boundaries. Server-side normalization, classification, ranking, and fuzzy resolution live in @dbx-tools/model. - [@dbx-tools/shared-model-gateway](/packages/shared-model-gateway): Discover models exposed by a dbx-tools model gateway from browser, edge, or shared application code. The package validates success and error responses at the network boundary and provides model-picker contracts without importing Node or Databricks AppKit runtime code. - [@dbx-tools/shared-search](/packages/shared-search): Validate Databricks AI Search requests, results, index catalogs, and document writes in browser and server code. It defines the browser-safe extension contracts shared by @dbx-tools/search, Mastra tools, and @dbx-tools/ui/search. - [@dbx-tools/ui](/packages/ui): Use this React package for the shared Databricks AppKit UI foundation, branding, passwordless authentication, email surfaces, and Databricks AI Search controls. Import only the subpaths that your browser application uses. - [@dbx-tools/ui-lakebox](/packages/ui-lakebox): Render Lakebox lifecycle controls, user services, and live machine metrics in an AppKit React application. - [@dbx-tools/ui-mastra](/packages/ui-mastra): Add a React chat surface to @dbx-tools/appkit-mastra. The package supports streaming, model selection, AI/BI Genie progress, charts, tables, approvals, history, threads, export, and MLflow feedback. ## Release Notes - [v0.9.167](/releases/v09167): **Fixes** - @dbx-tools/appkit-mastra no longer installs isolated-vm or QuickJS automatically, avoiding unused native-runtime installation failures when Code Mode is disabled. - [v0.9.166](/releases/v09166): **Fixes And Improvements** - Prevents hidden direct Genie context from leaking into conversation titles. - Recovers truncated polluted titles from the first persisted visible question while preserving application context for Genie execution. - [v0.9.165](/releases/v09165): **Fixes** - Staged npm publication now retries registry errors, request timeouts, and temporarily missing tarballs instead of failing immediately. - Registry lookups now have a configurable request timeout, defaulting to 10 seconds. - Publication wait failures retain the last registry error for diagnosis. - [v0.9.164](/releases/v09164): **v0.9.164 — Changes Since v0.9.163** - Brand generation now extracts website hints from free-form briefs. The demo replaces separate name and website fields with one brand-info field. - Generated brands are saved per user, retaining the latest 12, and can be reapplied from the demo’s brand picker. - Fixes missing MLflow feedback controls when Databricks Apps strips the trace-ID response header by also transmitting the ID through the chat stream. - Release publication verification now limits individual registry requests to 10 seconds and lists unresolved packages as availability changes. - [v0.9.163](/releases/v09163): **Fixes** - Release installs and version-bump synthesis now skip ONNX Runtime’s native-binary download. The same setting applies to GitHub Actions release builds. - [v0.9.162](/releases/v09162): **Breaking Changes** - Removed destroyAfterStartupFailureSeconds and DBX_TOOLS_LAKEBOX_DESTROY_AFTER_STARTUP_FAILURE_SECONDS. Remove these settings from application configuration. SSH startup failures no longer automatically delete and replace the Lakebox. - [v0.9.161](/releases/v09161): **Features And Fixes** - AppKit deployments bundle transitive runtime workspace dependencies, avoiding waits for matching public package releases. - Lakebox adds opt-in destructive startup recovery through destroyAfterStartupFailureSeconds (5–600 seconds). Replacement is coordinated across replicas; recovery is disabled by default and enabled at 30 seconds in the demo. - npm publishing recovers from previously staged-version conflicts by waiting for matching public metadata and tarball content instead of republishing. Publication verification now allows 20 minutes. - Canceled release workflows no longer continue downstream publishing, verification, or documentation deployment. - Generated lint configuration includes custom AppKit application roots; Prettier correctly excludes generated files in nested projects. - [v0.9.160](/releases/v09160): **v0.9.160** Changes since v0.9.159, including HEAD and the working tree; generated churn and test-only changes excluded. - [v0.9.159](/releases/v09159): **v0.9.159** Changes since v0.9.158, including HEAD and the working tree. - [v0.9.158](/releases/v09158): **Fixes And Improvements** - Adds the web Request global required by bundled authentication clients in the PythonMonkey runtime. - Covers request metadata and credentials behavior in the portable runtime tests. - [v0.9.157](/releases/v09157): **Fixes And Improvements** - Repairs documentation tooling imports after the package barrel simplification. - Updates package-export and configuration tests to import APIs from their owning modules. - [v0.9.156](/releases/v09156): **Fixes And Improvements** - Makes workspace lock logging tests deterministic without depending on build-machine timing. - Includes tw-animate-css in generated AppKit application dependencies so clean CI and Databricks builds resolve AppKit UI styles. - [v0.9.155](/releases/v09155): **Breaking Changes** - Individual TypeScript module subpaths are removed. Import from package roots or published folder subpaths; namespaces follow source filenames. Projen project classes move from project to projectJs / projectPy. - Generated AppKit workspaces replace split app/server packages with one private application containing client/ and server/. Configure its location with appRoot; Vite overrides belong in client/vite.config.override.ts. - [v0.9.154](/releases/v09154): **Breaking Changes** - Graphiti Lakebase startup rejects schemas not owned by POSTGRES_ROLE, or by the login when no role is configured. The new prepare_lakebase_schema() helper can recreate a login-owned schema under a distinct shared role; this deletes existing schema objects. - syncThreadTabs() replaces its numeric fourth argument with an options object: use { seedMax: n }. - [v0.9.153](/releases/v09153): **Breaking Changes** - AppKit workspaces now generate read-only vite.config.ts files. Move custom settings to vite.config.override.ts. - Package discovery defaults change: JavaScript prefers packages/js when present; Python automatically includes direct children containing src/. Set packageRoots or discoverPackages: false to retain explicit selection. - [v0.9.152](/releases/v09152): **Features** - Projen automatically configures AppKit dependencies, TypeScript inputs, and development/deployment tasks for paired app and server packages. - Adds packageDefaults for shared options across discovered packages. - [v0.9.151](/releases/v09151): - **Fixes:** @dbx-tools/cache uses its own Keyv runtime for both memory and persistent cache levels, avoiding constructor mismatches. Consumers no longer need to install or pin Keyv to align constructors. - **Breaking changes:** None identified. - **Validation:** The configured release validation phase completed, as reported. Detailed results and counts were not provided; no tests or validation commands were rerun. - [v0.9.150](/releases/v09150): - **Fixes:** Release monitoring prints the initial GitHub Actions job and step states, then appends only status changes, avoiding repeated checklist output and annotations. - **Logging:** Successful workflows no longer dump full logs; unsuccessful workflows show failed-step logs only. Stopping the watcher still leaves the remote workflow running. - **Breaking changes:** None identified. - **Validation:** The configured release validation phase completed before this review, as reported. Detailed results and counts were not provided. No validation commands were rerun. - [v0.9.149](/releases/v09149): - **Fixes:** Local npm and Python publishing now stops and awaits still-running sibling publishers when either publisher fails, preventing background publication from continuing after the release command returns an error. Both publishers remain concurrent and use supervised process handles for termination cleanup. - **Breaking changes:** None identified. - **Validation:** The configured release validation phase completed before this review, as reported. No tests or other validation commands were rerun; detailed results and counts were not provided. - [Release 0.9.147](/releases/v09147): dbx-tools 0.9.147 since v0.9.146. - [v0.9.146](/releases/v09146): - **Release workflow:** bun run release now waits for the matching GitHub Actions release run, displays live progress, and prints its logs. Use --no-watch-github-actions to opt out. - **Watcher safeguards:** Local-only releases and unresolved GitHub accounts skip watching. Stopping the watcher does not cancel the remote workflow. - **Fixes:** Release option descriptions clarify dependency installation, existing version bumps, release-note generation, and local-only demo deployment. - **Breaking changes:** No API removals identified. Release commands now wait for remote CI by default. - **Validation:** The configured release validation phase completed before this review, as supplied. Detailed outcomes and counts were not provided; no tests or validation commands were rerun. - [v0.9.145](/releases/v09145): **Breaking Changes** - Removed @dbx-tools/teams, @dbx-tools/shared-teams, and @dbx-tools/ui-teams, including the Teams AppKit plugin, agent tool, messaging routes, and Adaptive Card UI. Remove these dependencies and integrations before upgrading. - [v0.9.144](/releases/v09144): **Fixes** - Fix AppKit Mastra follow-up suggestion failures when tool calls or results use flat records instead of nested payloads. - Preserve tool context across supported field formats, tolerate missing tool-activity arrays, and skip malformed entries. - [v0.9.143](/releases/v09143): **Fixes** - AppKit Mastra follow-up suggestions use recent tool inputs and results to ask more relevant questions about chart values, table data, and analysis results. - Suggestions favor questions written in the user’s voice and filter out assistant-style prompts such as “Would you like…?” - Custom suggestion generators receive the same filtering, deduplication, and question-limit enforcement before suggestions are saved. - [v0.9.142](/releases/v09142): **Features** - Add opt-in follow-up questions from Genie, model generation, or both. Suggestions are deduplicated, persist with assistant messages, and appear after completed turns. Default limit: three; maximum: ten. Generation failures leave answers unchanged. - [v0.9.141](/releases/v09141): **v0.9.141 — Changes Since v0.9.140** - [v0.9.140](/releases/v09140): **v0.9.140** Changes since v0.9.139, including HEAD and working-tree changes. - [v0.9.139](/releases/v09139): **v0.9.139** Changes since v0.9.138. - [v0.9.138](/releases/v09138): **v0.9.138** Changes since v0.9.137, including HEAD and the working tree. - [v0.9.137](/releases/v09137): Compared HEAD and the working tree with v0.9.136. - [v0.9.136](/releases/v09136): **Breaking Changes** - Removed MastraRequestContextSnapshot. Low-level chat and approval clients now accept native RequestContext from @mastra/client-js; useMastraChat still accepts plain context objects. - [v0.9.135](/releases/v09135): **Features** - Add dbx brand to export brand.yaml, research provenance, and downloaded iOS/Android visual references, with profile selection and overwrite protection. - Support freeform brand briefs and use mobile app icons and screenshots during brand synthesis. - [v0.9.133](/releases/v09133): **Improvements** - Unified demo chat with a “Genie only” setting and separate agent/Genie conversation histories. - Added a contextual demo guide with use cases and documentation links; refreshed search with suggested queries and result cards. - [Release 0.9.132](/releases/v09132): dbx-tools 0.9.132 since v0.9.131. - [v0.9.131](/releases/v09131): **Breaking Changes** - Lakebox toolkit names no longer include the default lakebox. prefix. Update tool references or set prefix: "lakebox." to preserve existing names. - [v0.9.129](/releases/v09129): Sandbox project routes now redirect exact mount requests to their trailing-slash URL by default, preserving relative browser asset resolution across active and wake routes. Projects can disable the redirect with redirectToSlash. - [v0.9.128](/releases/v09128): - Fixed built-in Sandbox service startup when persisted service metadata is current but runtime installation artifacts are missing. - Stopped services now rerun their idempotent mise postinstall before starting, and exhausted remote lifecycle attempts reset with the updated runner. - [v0.9.127](/releases/v09127): **Breaking Changes** - Sandbox projects replace postinstall with install for persistent preparation and start for workload launch. Move cleanup from config.tasks.uninstall to the first-class uninstall field. - Project lifecycle failures return state: "error" with saved diagnostics instead of failing machine startup; callers must inspect project state. - [v0.9.126](/releases/v09126): **Breaking Changes** - Sandbox project config.hooks.postinstall must now be a string; other value types are rejected. - [v0.9.124](/releases/v09124): **Fixes And Improvements** - Sandbox project hooks now default to Bash with exit-on-error, preventing failed setup commands from being masked by later successes. Explicit mise shell settings remain unchanged. - Sandbox service and project install logs support text selection and a copy button with copied-state feedback. - [v0.9.123](/releases/v09123): **Breaking Changes** - Generated install tasks now require Bun 1.4.2 or newer. Use bun run bun to select the pinned workspace-local binary. - SshRuntime.disconnect() now returns Promise; await it before relying on completed session and route cleanup. - [v0.9.122](/releases/v09122): **Breaking Changes** - Remove AppKitChildProcess; use exec.spawn() and the child handle’s shutdown(). createGraphitiChildProcess() now returns { child } after readiness succeeds. - Replace AppKit and configUtils runtime-detection helpers with environmentUtils.isDatabricksAppEnv() from @dbx-tools/shared-core. - Sandbox execution returns a live SshCommand: awaiting it yields the exit code; await .result for the serialized result. - Sandbox workloads run as non-sudo sandbox-user, with home /home/sandbox-user, and cannot inherit Databricks credentials. Each machine has one owner; duplicate-assignment migration retains the earliest owner and removes losing owners’ project records. - Move project startup and readiness checks into postinstall, and teardown into uninstall; removal/reset no longer automatically invokes stop. - [v0.9.121](/releases/v09121): **Breaking Changes** - Sandbox project openUrl is now optional. Consumers must handle projects created with route: false. - SshRouteRegistry.handleUpgrade() is now asynchronous; callers must await it. - Removed desktop.desktopScript(). Use the built-in desktop service lifecycle instead. - [v0.9.120](/releases/v09120): **Breaking Changes** - Sandbox persistence now requires AppKit’s Lakebase plugin. Disk ownership storage, assignment seeds, and defaultRemotePort configuration are removed. - Replace add_ssh_route / remove_ssh_route with persisted Project operations: add_ssh_project / remove_ssh_project. - findFiles() now returns an async generator; use findFilesSync() for synchronous discovery. watchFiles() now requires await. - Replace SERVER_WATCH_DISABLED / --server-watch-disabled with DEV_WATCH_DISABLE / --watch-disable (-d). - [v0.9.119](/releases/v09119): **Breaking Changes** - Removed DatabricksSandbox and related exports from @dbx-tools/appkit-mastra. Use @dbx-tools/appkit-sandbox and its sshWorkspaceSandbox(runtime) integration instead. - Mastra no longer accepts sandbox: "databricks" or the former Databricks options object. Pass a native Mastra sandbox or resolver; sandbox: true now selects Monty. - [v0.9.118](/releases/v09118): **v0.9.118** Changes since v0.9.117, including HEAD and the working tree. - [v0.9.116](/releases/v09116): - Fix npm release archive validation for wildcard compiled exports, restoring package publication after 0.9.112. - Improve Mastra image attachment previews with the shared input-group layout and larger thumbnails. - Breaking changes: none. - [v0.9.115](/releases/v09115): **v0.9.115** Changes since v0.9.114, including HEAD and the working tree: - **Image attachments:** Mastra chat supports up to four images per message, with previews, removal, and image-only submissions. Images over 4 MiB are automatically resized and compressed before sending. - **Fixes:** Chat displays attached images and preserves them through queued messages and “send now.” Image-only messages use filenames for provisional thread titles. - **UI:** Export and clear-history controls use compact icon buttons with tooltips. - **Breaking changes:** ChatViewProps.sendMessage accepts ChatInputMessage, whose text is optional and whose files contain AI SDK file parts. Custom handlers and QueuedSteer consumers must handle missing text and image-only messages. - **Validation:** The configured release validation phase completed, as reported. Detailed results and counts were not supplied; no tests or validation commands were rerun. - [v0.9.114](/releases/v09114): - **Record previews:** Preserve field order in a unified table, expand JSON objects and arrays stored as strings, and improve deeply nested layouts with capped indentation. - **SQL display:** Add syntax highlighting for SQL text in record previews. Genie query sections now reveal SQL directly, removing the extra nested toggle. - **Chat fix:** Hide the transcript-level waiting indicator once assistant content or tool events appear, avoiding redundant “Working…” and “Composing response…” labels. - **Breaking changes:** None identified. - **Validation:** The configured release validation phase completed, as reported. Detailed results and counts were not supplied; no tests or validation commands were rerun. - [v0.9.113](/releases/v09113): - **Nested imports:** Add directory-level package imports at multiple depths while preserving existing root exports and hand-authored entrypoints. - **Record previews:** Display nested objects and arrays in compact, labeled groups, with scalar fields in a separate table. - **UI fixes:** Remove height caps from Mastra tool and approval previews; keep the table/JSON toggle visible while scrolling. - **API documentation:** Resolve wildcard package exports so nested import paths appear in generated API references. - **Breaking changes:** None identified. - **Validation:** The configured release validation phase completed, as reported. Detailed results and counts were not supplied. No tests or additional validation commands were run; no files were modified. - [v0.9.112](/releases/v09112): - **Breaking changes:** JsonBlock and supportShikiPlugin are removed from @dbx-tools/ui-mastra. Import JsonBlock, createShikiPlugin, and highlightToHtml from @dbx-tools/ui/react. - **Tool previews:** Mastra tool requests, responses, and JSON outputs now show structured record previews with a table/JSON toggle, including objects and arrays encoded as JSON strings. - **UI fixes:** Record previews improve nested-data layout, long-text wrapping, and scrolling; render empty records instead of blank tables; and syntax-highlight raw JSON. Approval previews now have bounded height. - **Shared highlighting:** AppKit exposes reusable code-highlighting utilities. Demo search results and bus payloads use highlighted JSON. - **Validation:** The configured release validation phase completed, as reported. Detailed results and counts were not supplied. No tests or additional validation commands were run; no files were modified. - [v0.9.111](/releases/v09111): - **Breaking behavior:** Mastra’s auto-created workspaces now enable Monty Python command execution by default. Set sandbox: false to retain disabled execution. Monty has no host filesystem, network, shell, environment variables, or third-party packages; explicitly supplied workspaces remain unchanged. - **Tool routing:** Code Mode instructions now favor direct calls for ordinary tool use, reserving execute_typescript for explicit requests or code-based processing. - **UI fixes:** Single-tool sessions show details without a nested expansion. Code Mode calls display as “Run Workflow.” - **Validation:** The configured release validation phase completed, as reported. Detailed results and counts were not supplied. No tests or additional validation commands were run; no files were modified. - [Release 0.9.110](/releases/v09110): dbx-tools 0.9.110 since v0.9.108. - [v0.9.108](/releases/v09108): **v0.9.108** Compared HEAD and the working tree with v0.9.107; generated-file churn and test-only changes are excluded. - [v0.9.105](/releases/v09105): **v0.9.105 Release Notes** Compared HEAD and the working tree against v0.9.104, excluding generated-file churn and test-only changes. - [v0.9.104](/releases/v09104): **v0.9.104 Release Notes** Compared HEAD and the working tree with v0.9.103. - [v0.9.103](/releases/v09103): Compared HEAD and the working tree with v0.9.102, excluding generated-file churn and test-only changes. - [v0.9.102](/releases/v09102): **Breaking Changes** - No breaking changes identified. - [v0.9.101](/releases/v09101): **Breaking Changes** - No breaking changes identified. - [v0.9.100](/releases/v09100): **Breaking Changes** - Move imports from @dbx-tools/model/serving-wire and @dbx-tools/appkit-mastra/serving-sanitize to @dbx-tools/model-protocol/serving-wire. - Mastra’s default providerId changes from databricks to openai; update provider-specific options accordingly. Shared AI SDK dependencies move to version 7. - Workspace tools no longer require approval by default. Configure tools.requireApproval explicitly where approval gates are needed. - [Release 0.9.99](/releases/v0999): - Release CI now rebuilds selected artifacts without a redundant generated-source fingerprint gate. - Python-Node binding fingerprints are limited to generator, shim, version, configuration, and binding source inputs; CI always regenerates bindings. - Releases can use --release-notes-text or --release-notes-file to bypass Genie-generated notes. - [v0.9.98](/releases/v0998): **v0.9.98** Changes since v0.9.97, including HEAD and the working tree. - [v0.9.97](/releases/v0997): **v0.9.97** Changes since v0.9.96, including HEAD and the working tree. - [v0.9.96](/releases/v0996): **Breaking Changes** - Replace workspaces.createWorkspace() with databricksWorkspace() or databricksWorkspaceConfig(). Replace assistantSkills/skillFolders with assistantPaths/paths; pass custom filesystems through native Mastra mounts. - Replace filesystem cache readFilePaths with explicit operations and an operation/path filter. - Graphiti’s agent tool surface is now curated. Agent add_memory waits for persistence; direct HTTP/MCP writes retain queued behavior. - [v0.9.95](/releases/v0995): **v0.9.95 — Changes Since v0.9.94** - **Breaking changes:** None identified in public APIs. - **Fix:** Resolve the AppKit record-preview module naming collision that affected builds; existing component and helper exports remain available. - **Fix:** Forward arguments through bun run demo:deploy, allowing the deployment script to receive its required --profile . - **Build stability:** Pin p-map to 7.0.8 in workspace dependency overrides. - **Validation:** The configured release validation phase completed, as supplied. Detailed results were not provided; no validation commands were rerun. - [v0.9.94](/releases/v0994): **v0.9.94 — Changes Since v0.9.93** Includes HEAD and working-tree changes; excludes generated churn and test-only changes. - [v0.9.93](/releases/v0993): **Breaking Changes** - Removed @dbx-tools/appkit-mastra/monty-native, its namespace, helpers, and installer types. Use MontySandbox; runtime native-package installation is no longer performed. - [v0.9.79](/releases/v0979): **Breaking Changes** - Auto-created Mastra workspaces now default to Monty. Set sandbox: true or "databricks" to retain Databricks Sandbox execution. - workspaceSkillSearch: false now disables skill tools instead of enabling eager catalogue injection. - Removed AppKitCachedFileSystem and cachedWorkspaceSkillMount; use WorkspaceSkillCatalogue and workspaceSkillCatalogue. workspaceSkillRefreshTtlMs now controls catalogue refreshes, not individual file caching. - [v0.9.74](/releases/v0974): **v0.9.74** Compared HEAD and the working tree against v0.9.73; generated-file churn and test-only changes are excluded. - [v0.9.73](/releases/v0973): **Fixes** - Fix local OpenAPI file loading by treating only explicit HTTP(S) URLs as remote sources. - Mount startup-provisioned local skills read-only so Mastra agents can discover and search them. - Activate the configured sandbox fallback when the Databricks command-execution API is unavailable, including after successful startup. Concurrent failures share one fallback initialization. - Add the workspace API scope to the server demo’s user authorization configuration for workspace skill access. - [v0.9.72](/releases/v0972): **Fixes** - Fix CLI service package discovery and dependency-version lookup for packages that do not export package.json, avoiding ERR_PACKAGE_PATH_NOT_EXPORTED failures during service installation. - [v0.9.71](/releases/v0971): **v0.9.71 — Changes Since v0.9.70** - [v0.9.70](/releases/v0970): **v0.9.70** Changes since v0.9.69, including HEAD and the working tree; generated churn and test-only changes excluded. - [v0.9.69](/releases/v0969): **Fixes** - Detect deployed Databricks Apps from /app/python/source_code and its subdirectories when environment markers are missing. - Require a loopback connection and matching public host before assigning Portr/FRP trace tags, preventing non-loopback requests from impersonating tunnel traffic. - Create annotated release tags through the GitHub API when gh is available, verifying that the remote release branch matches HEAD. Retain Git-push fallback otherwise. - [v0.9.68](/releases/v0968): **Features And Fixes** - Persist Mastra chat-turn tags, user identity, timing, status, and request/response previews as MLflow V4 trace info in deployed Databricks Apps, without re-exporting OTLP spans. - Enable trace-info persistence when an experiment and OTLP endpoint are configured. Requires a UC-linked experiment or MLFLOW_UC_TRACE_PREFIX; initialization and persistence failures log warnings. - Fix deployed-App detection when DATABRICKS_HOST and DATABRICKS_APP_NAME are present without DATABRICKS_APP_PORT, preventing incorrect local trace tagging and routing. - Export isDatabricksAppEnv from @dbx-tools/appkit. - [v0.9.67](/releases/v0967): **Features And Fixes** - Add request-scoped tags through @dbx-tools/appkit/request-tags, allowing plugins to share tags with Mastra chat-turn telemetry. - Include tunnel=portr|frp and tunnel_subdomain in MLflow traces when the request host matches the configured tunnel. Non-tunnel requests remain untagged. - Add ChatTurnTelemetryOptions.tags for initial trace tags supplied directly or derived from the request; explicit options override plugin-provided tags. - [v0.9.66](/releases/v0966): **Features And Fixes** - Add direct local Mastra tracing to UC-linked MLflow experiments, with profile-based authentication, automatic trace-location discovery, and shutdown flushing. Requires optional @mlflow/core; deployed Databricks Apps retain platform-managed export. - Correct MLflow trace-tag persistence and user attribution. Record agent, Genie, model, local execution, and authentication tags, preserving both modes on mixed-auth turns. - Expose helpers for custom trace tags. Filter unrelated HTTP/cache spans from local exports and disable request-level tracing in the demo. - [v0.9.65](/releases/v0965): **v0.9.65** Compared HEAD and the working tree against v0.9.64; generated churn and test-only changes excluded. - [v0.9.64](/releases/v0964): **Release Notes — Since v0.9.61** Includes HEAD and working-tree changes. Generated churn and test-only changes excluded. - [v0.9.63](/releases/v0963): **Release Notes — Since v0.9.61** Includes HEAD and working-tree changes; generated churn and test-only changes excluded. - [v0.9.62](/releases/v0962): **dbx-tools 0.9.62 — Unreleased** Compared HEAD and the working tree against the latest local tag, v0.9.61. Generated-file churn and test-only changes excluded. - [v0.9.61](/releases/v0961): **dbx-tools 0.9.61 - Unreleased** Compared HEAD and the working tree against v0.9.60; generated churn and test-only changes excluded.