Skip to content

Improving install.sh Experience #73

@batesr99

Description

@batesr99

Problem / Motivation

install.sh had several UX issues and silent bugs that caused configuration to be incomplete or confusing on first run:

  • MLflow experiment creation silently failed: the script called databricks experiments create-experiment, which doesn't exist in the Databricks
    CLI. The error was swallowed by 2>/dev/null, leaving MLFLOW_EXPERIMENT_ID empty and MLflow showing as disabled in the summary even when the user
    opted in.
  • No fallback when an experiment already exists: re-running the installer with the same experiment path would fail the create call with no
    recovery.
  • LLM "Other" path had a misleading default: when manually entering a custom endpoint, the input field defaulted to databricks-claude-sonnet-4-6
    — the model the user explicitly chose not to use.
  • APP_NAME_DEFAULT used before app name was collected: the auto-created MLflow experiment path was built from a hardcoded genie-workbench string,
    not the user's chosen app name (which is collected two steps later).
  • Inconsistent Y/N prompt formatting: some prompts showed [Y/n], others [y/N], with no visual consistency.
  • No Enter-to-accept for the recommended model: Step 5 required typing a number even to pick the clearly recommended option.

Proposed Solution

  • Replace databricks experiments create-experiment with POST /api/2.0/mlflow/experiments/create (the REST API pattern already used elsewhere in
    the script), with a search-by-name fallback so re-runs succeed when the experiment already exists.
  • Remove the databricks-claude-sonnet-4-6 default from the manual endpoint entry prompt.
  • Remove APP_NAME_DEFAULT and replace the hardcoded experiment path with a prompted input so users can match the path to their app name.
  • Standardize all Y/N hints to [Y/N].
  • Add default index support to _select_from so pressing Enter selects the recommended option in Step 5.
  • Change the MLflow enable prompt default to Y (recommended on).

Alternatives Considered

  • Keeping databricks experiments create-experiment and handling CLI version differences — rejected in favor of the REST API which is already the
    pattern in this script and more stable across CLI versions.

Additional Context

All changes are in scripts/install.sh. No deploy logic or backend code was modified.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions