- (databases) Record why a fork was taken (#315)
- (tables) Send --key-determines as constant_per_key (#316)
- (deps) Bump hotdata SDK to 0.19.0 (#317)
- (skills) Sync with streamed results; gate releases on skill freshness (#311)
- (streaming) One --topic vocabulary for kafka and iggy (#312)
- (ingest) Name iggy wherever the family lists are spelled (#313)
- (client) Render the error envelope's sentence in inline warnings (#308)
- Describe attach as joining across instant databases (#309)
- (query) Results and listings now transfer gzip-compressed (#305)
- (query) Drain the result socket while rendering (#302)
- (query) Print wide decimals at full precision (#299)
- (query) [breaking] Stream results instead of buffering them (#300)
- README's query status exit codes omitted 3 (truncated preview)
- (databases) Load csv and json files, not just parquet β json in any shape: an array, a pretty-printed document, or one object per line (#293, #294)
- (databases) Keyed load modes β
--mode delete|update|upsertmatch existing rows by key (#293) - (databases)
databases tables add --keydeclares a table's key and layout before its first load (#293)
- (search) Vector search no longer returns the index's embedding column;
--select '*'asks for it back (#293) - (query)
--output csvno longer abbreviates long list values (#293)
- (skills) Improve the agent guidance around data loading (#296)
- (support) File support tickets from the CLI (#290)
- (databases) [breaking] Lineage walks the whole fork family (#288)
- (query) Render fetched results with arrow-json (#285)
- (deps) Arrow 55 -> 59, hotdata 0.16.0 (#286)
- (skills) Document databases lineage, forked_from, and retired job types (#287)
- (query) Render named-timezone timestamps (#283)
- (databases) Lineage command and forked_from provenance (#281): new
hotdata databases lineage [database]renders a database's fork tree (ancestor chain and direct forks, deleted generations marked,--forks-limitpaging), anddatabases show/forkdisplay a fork'sforked_fromrecord β source id, its label at fork time, the copied snapshot, and when β in the table views and as a nested object in-o json/yaml(omitted for non-forks, whose output is unchanged).
jobs list --typeno longer acceptsdata_refresh_table/data_refresh_connectionβ those job types were retired server-side with the connections removal (the engine is push-only), and the SDK (now 0.15.0) dropped them.
- (databases) Support append mode for table loads (#276)
- Rename the user-facing term "managed database" to "instant database" across help text, README, and skill docs. Command names, flags, and server wire-format values (such as the
managed_loadjob type) are intentionally unchanged.
- (errors) Never mask a 4xx server message with the re-auth hint (#273)
The top level went from 19 groups to 8 (auth, workspaces, databases, query, jobs, ingest, search, manage). Old command spellings are removed with no aliases β update scripts and muscle memory. All behavior and results are unchanged; only the command paths moved.
Re-parented groups
| Old | New |
|---|---|
hotdata tables β¦ |
hotdata databases tables β¦ |
hotdata queries β¦ |
hotdata databases queries β¦ |
hotdata results β¦ |
hotdata databases results β¦ |
hotdata context β¦ |
hotdata databases context β¦ |
hotdata datasource β¦ |
hotdata ingest sources β¦ |
hotdata indexes β¦ |
hotdata search β¦ (create / list / remove) |
hotdata embedding-providers β¦ |
hotdata search embeddings β¦ |
hotdata usage / completions / upgrade / skills β¦ |
hotdata manage β¦ |
hotdata connections β¦ |
removed β use hotdata ingest sources (external sources) + hotdata databases attach (join) |
Renamed verbs
| Old | New |
|---|---|
databases set / workspaces set |
β¦ use |
databases delete |
databases remove |
ingest cancel |
ingest pause |
ingest runs |
ingest logs |
ingest delete |
ingest remove |
datasource validate |
ingest sources test |
datasource create |
ingest sources add |
datasource delete |
ingest sources remove |
results show |
databases results get |
embedding-providers get / create / delete |
search embeddings show / add / remove |
Reshaped flags
- Search runs by index name:
search "<text>" --index <name>(create the index first withsearch create). The oldsearch --table β¦ --column β¦ --type β¦form is gone. indexes create --catalog β¦ --schema β¦ --table β¦ --name <n>βsearch create <n> --from <catalog.schema.table>;--embedding-provider-idβ--provider.- Context targeting:
--database-idβ--database/-d.
New in this release
hotdata query --dialect duckdb|postgres|snowflakeβ write SQL in another dialect; the server transpiles it to HotSQL (read-only).hotdata ingest create --streamβ shorthand for a continuous ingest.
- (query) Add --dialect to transpile DuckDB/Postgres/Snowflake SQL (#266)
- Remove dead code and clear all clippy warnings (#268)
- (cli) [breaking] Reorganize command surface (#263)
- Shorten README and drop the removed connections command (#267)
- (skills) Correct the --database claim for databases tables show (#269)
- (auth) [breaking] Stop minting jwts from api tokens
- (sdk) [breaking] Adopt hotdata 0.13.0 and restore the per-request bearer hook
- (databases) [breaking] Remove the run command
- (databases) Stop tables load misrouting into wrong database
- (sdk) Re-resolve bearer per call for CLI-owned request paths
- (sdk) Diagnose expired-session upload failures, fix blocking probe
- (sdk) Scope expired-session upload hint to real sessions
- (databases) Treat a 403 existence check as unverifiable in set
- (auth) Share the /workspaces fetch helper
- (databases) [breaking] Drop guessed database-token detection
- (ingest) Create starts no run β correct the causality (#260)
- (jwt) Correct stale JWT-exchange doc comments
- (credentials) Correct stale empty-ids semantics
- (sdk) Prove the bearer re-resolves per request, not once
- (sdk) Pin which mint answers which upload refresh
databases run is removed with no replacement. It was the only command that
minted a database session token, so the client side of that credential goes
with it β the HOTDATA_DATABASE_TOKEN auth path no longer exists.
HOTDATA_DATABASE and the hd_β¦ database API token are untouched.
An hd_β¦ API token is now sent verbatim as the bearer instead of being
exchanged for a JWT, and the credential is resolved once per request rather
than once per client. That fixes uploads large enough to outlive the credential
they started with, which used to 401 at finalize (#120).
Three consequences of losing the JWT claims the CLI used to read:
auth statusno longer shows an "API Key Source" row.tables loadno longer routes a database-scoped API token to the database-scoped endpoints β the claim it keyed off is gone and there is no replacement signal, so those tokens now surface the server'sACCESS_DENIED403.databases setstill works with them: its existence check is advisory, so a 403 there means "can't verify, proceed".- Workspace scope for an API key comes from a live
GET /workspacesinstead of a claim. An unrestricted key with no saved default used to have no discoverable scope and forced--workspace-id; it now resolves to whichever workspace the API lists first.
- (ingest) [breaking] Split ingest into datasource, ingest, and run (#256)
ingest had grown to mean four things β a stored connection, a one-time
import, a recurring sync, and the job you asked about β so ingest status <id>
took an id that could be any of them and answered differently depending which.
They are now three nouns with three command groups.
| Was | Now |
|---|---|
ingest new-datasource |
datasource create |
ingest list-datasources / show-datasource / delete-datasource |
datasource list / show / delete |
ingest new-import |
ingest create --type one-time |
ingest list-imports |
ingest list |
ingest status <id> |
ingest run <run_id> / ingest runs <ingest_id> |
ingest raw-sql "β¦" |
ingest create --raw-sql "β¦" |
ingest trigger-import |
removed, no replacement |
Every retired verb still runs and tells you what to use instead, so the change is discoverable rather than an unrecognised-subcommand error.
trigger-import is gone because a recurring load resumes from its last
committed position β re-running by hand is not the recovery it looks like. To
bring the next scheduled run forward: ingest schedule <id> --next now. For a
one-off, create another one-time ingest.
A run is addressed under its ingest β ingest runs <ingest_id> lists them,
ingest run <run_id> shows one. There is no top-level run command: that word
already belongs to databases run, jobs, and queries.
Two smaller changes worth knowing:
--sql "SELECT β¦ FROM a.b"now readsa.basschema.table. The datasource is named by--source(a display name or an id) or--datasource-id.- Loads no longer start the moment you create them; the scheduler dispatches
them.
--waitpolls rather than driving, so it watches instead of making anything happen sooner.
Requires the matching service release. These commands call endpoints that do not exist in earlier versions.
- (databases) Count databases in the workspace
- (ingest) --record-shape flag for new-datasource (#251)
- (ingest) --continuous flag on new-datasource (buckets) (#249)
- (skills) Bundle search/analytics/geospatial under hotdata + fix CLI drift (#244)
- Replace user-facing "connection" with "catalog" (keep wire contract) (#245)
- Retire stale connections scenario tests (command removed in #221) (#246)
- (databases) Drain cursor for paginated databases list (#239)
- (ingest) Add
hotdata ingest raw-sqlverb
- (deps) Bump open and quinn-proto for advisories
- (deps) Drop number_prefix, bump vuln crates
- Disable persisted credentials on CI checkouts
- (queries) Expose bytes_scanned and rows_scanned
- (query) Surface query_run_id and serialize result struct directly
- (query) Preserve query_run_id when following a truncated inline result
- Add default CODEOWNERS
- (util) Make human_bytes take u64 and clamp at call sites
- (errors) Never print a blank error for an empty response body (#232)
- (auth) Use the timeout-bounded HTTP client for workspace fetch and auth probe (#233)
- (auth) Serialize token refresh and make config/session writes atomic (#230)
- (skills) Document fork re-attach behavior and add fork-before-risky-changes workflow (#229)
- (databases) Add fork subcommand (#227)
- (ingest) cancel command exits 0 on success (#225)
- (ingest) Add cancel subcommand and handle cancelled status (#223)
- (tables) Scope
tables listto active database; honor--table,--limit,--cursorwithin that scope (#221) - (tables) New
tables show <schema.table>subcommand; acceptsschema.table(active DB) orcatalog.schema.table(#221) - (results) New
results show <id>subcommand; downloads and prints stored result (#221) - (indexes) Scope
indexes listto active database's connection; remove--connection-idflag (#221) - (indexes)
indexes deletenow uses--cataloginstead of--connection-id(#221) - (search)
--tablenow acceptsschema.table(active DB) orcatalog.schema.table(#221)
- (connections)
hotdata connectionscommand removed; usehotdata databasesfor managed databases (#221) - (indexes)
indexes list --connection-idremoved; scopes automatically to active database (#221) - (indexes)
indexes delete --connection-idremoved; use--cataloginstead (#221)
- (databases) Show created_at in list and show commands (#217)
- (ingest) Rename the catalog verb connectors -> datasources (#216)
- (cli) Loading indicators for indexes list and usage (#215)
- (databases) Title the active-database star column DEFAULT (#214)
- (ingest) [breaking] Datasources rename + stop leaking service internals (#211)
- (ingest) [breaking] Remove the pre-rename verb aliases (#209)
- (databases) Load a query result via --result-id (#203)
- (ingest) Add
hotdata ingestcommand group - (ingest) Add-connection discovers schema only, loads no data
- (ingest) Show live stage progress while polling
- (ingest) Mark active connectors in
connectors - (ingest) Connection/import command surface, API-backed listings, true re-run
- (ingest) Imports return immediately; add
statusfor tracking - (ingest) Color the STATUS column in list-imports/list-connections
- (ingest) IMPORT ID is the leftmost list-imports column
- (ingest) Listing tables read oldest-to-newest
- (ingest) Show-connection and delete-connection
- (ingest) Product-noun connection type labels β SQL, buckets, API
- (ingest) Redact source secrets from --debug request logging
- (ingest) Actionable hint on enqueue transport failures
- (workspace) Report the workspace commands actually target
- (ingest) Wizard iceberg catalog key is uri, not catalog_uri
- (ingest) Send connector_type for iceberg so imports can resolve it
- (ingest) Send connector_type for filesystem so imports can resolve it
- (release) Drop README version-badge replacement
- (ingest) Mirror the
connectionsUX β new/list/create/import/refresh - (ingest) Drop display-side connector dedup (fixed at the source)
- (ingest) Consolidate add-connection under
new; dropcreate - (ingest) Rename
refreshtoupdate - (ingest) Quality-review pass β bugs, reuse, DRY, docs
- (ingest) Terse one-line command summaries in help
- (skills) Teach the hotdata agent skill the ingest surface
- (skills) Lead the new-connection example with @file config
- Buckets and iceberg connectors in the skill and README
- (readme) Rework for users β quickstart first, tasks over flags (#207)
- Rustfmt
- (queries,results) Scope to database for SDK 0.8.0
- (seam) Consolidate database scoping into scoped_to_database_opt
- (indexes) Accept --catalog on 'indexes delete'
- (indexes) Validate delete scope via clap; default schema to public
- (modules) Move to module layout for sub-command structure
- (upload) Large or slow
databases loaduploads now ride out a flaky connection instead of failing partway through: a single dropped or stalled part is retried on its own β with a fresh upload link and a timeout so it can't hang indefinitely β while parts that already finished are kept, so one part's bad moment no longer aborts the whole transfer
- (jobs) Accept managed_load as --job-type filter (#160) (#195)
- (deps) Bump hotdata SDK to 0.7.0
- (upload) Very large or slow
databases loaduploads no longer fail partway through β each part's upload link is now fetched just in time and renewed automatically if it expires
- (auth)
hotdata authnow shows help instead of auto-launching a browser login β runhotdata auth loginto sign in; addsauth profilesto scaffold profiles.yml (#182)
- (skills) Update bundled skill docs to match current commands and auth
- (databases) Add auth and command limitations for database api token flag
- (upload) Speed up large-file uploads with concurrent, direct-to-storage transfer
- (upload) Clean up --url temp file before exit on failure
- (deps) Update hotdata SDK to 0.5.0
- (deps) Update reqwest blocking comment for presigned --url path
- (query) Carry execution_time_ms through async poll path
- (upgrade) Gate commands on a new release; rename updateβupgrade (#178)
- (databases) Suppress current-database footer for non-TTY stdout (#180)
- (databases) Attach/detach connection catalogs
- (databases) Tolerate a bad --attach spec in create
- (query) Show cross-source hint on poll failure
- (databases) Keep attach failures auth-aware like detach
- Document cross-source query via catalog attach
- (cli) Show "waking up worker" hint on KEDA cold starts (#167)
- (datasets) [breaking] Remove datasets commands and dataset feature surface (#166)
- (usage) Add
hotdata usagecommand (#174)
- (search) Infer embedding source column for vector indexes (#163)
- (indexes) List indexes for a database-scoped connection (#164)
- (query) Fail loud on incomplete result previews
- (indexes) Show managed-database indexes in unscoped
indexes list(#170) - (databases) Surface the id change when
loadrecreates a managed database (#173)
- (deps) Upgrade hotdata SDK 0.3.1 -> 0.4.0 (#171)
- (skills) Improve accuracy, structure, and consistency across CLI skills (#172)
- (query) Cover table footer rendering and ApiError::message
- Follow truncated inline query results to full set
- Auto-retry queries shed under load (HTTP 429
OVERLOADED), honoringRetry-After
- Preserve inline warning and timing when following truncation
- Stop using deprecated
QueryResponse.row_count
- Bump hotdata SDK to 0.3.1
- (skills) Fix stale datasets create flags and add --no-input (#153)
- (sdk) Add sync wrapper and CliTokenProvider
- (query) Remove dead --connection flag
- (sdk) Avoid double /v1 and scope by database
- (sdk) Restore sandbox scope, guard, timeout
- (sdk) Guard negative numeric casts
- (sdk) Set hotdata-cli user-agent header
- (sdk) Drop dead X-Sandbox-Id header
- (ci) Skip scenario-parity for Dependabot PRs
- (release) Prepend unreleased changelog instead of full regen
- Pin third-party github actions to commit SHAs
- (deps) Add hotdata sdk, tokio, async-trait
- (deps) Pin hotdata sdk to merged rev
- (deps) Consolidate CLI on reqwest 0.13
- Add cargo fmt check job
- (deps) Pin sdk-rust to upload_stream content_length rev
- Remove sandbox cli commands
- (deps) Use published hotdata 0.1.1 from crates.io
- (ci) Add Dependabot to track published hotdata SDK
- (http) Add slim raw-http helper
- (workspace) Use sdk workspaces handle
- (jobs) Use sdk jobs handle
- (tables) Use sdk information_schema
- (queries) Use sdk query_runs handle
- (results) Use sdk results handle
- (embeddings) Use sdk providers handle
- (context) Use sdk database_context
- (datasets) Use sdk datasets handle
- (connections) Migrate connections_new
- (connections) Use sdk connections handle
- (sandbox) Use sdk sandboxes handle
- (indexes) Use sdk indexes handle
- (query) Poll+arrow via sdk handles
- (databases) Use sdk databases handle
- (api) Remove legacy ApiClient
- (query) Submit via sdk submit_query
- (sdk) Extract apply_seam_headers helper
- (sdk) Drop stale dead_code allows
- (query) Decode results via SDK get_result_arrow (arrow v55)
- Migrate raw HTTP to typed SDK (#131)
- (databases) Clarify output DTOs, use From trait
- Drop dead Deserialize derives on output DTOs
- (databases) Stream /files upload via SDK upload_stream
- (databases) Drop redundant upload content-type param
- (sdk) Drop migration-history notes from comments
- Describe current behavior, not change history, in comments
- Clear clippy lints in migrated modules
- Apply cargo fmt to codebase
- Apply rustfmt
- (sdk) Cover generic HTTP status preservation in from_arrow
- (cli) Add env-gated scenario integration tests
- (databases) Add --catalog flag to databases create (#125)
- (queries) Show result_id in queries list table (#126)
- Managed database demo flow β explicit flags, catalog resolution, BM25 search (#127)
- (databases) Add databases run command for and isolated database CLI (#118)
- Handle pre-existing draft release in host job (#116)
- (api) Add API timeout relaxation and refresh token retry ability
- (databases) Rename --description to --name in databases run (#122)
- (skills) Update --description to --name in databases commands (#123)
- Allow dirty ci in dist-workspace config
- (ci) Bump Node 20 actions to Node 24 runtime
- (databases) Use name not description for API alignment (#112)
- (datasets) Add missing
-o/--outputflag todatasets create; move success banner to stderr so-o jsonstdout isjq-parseable (#110) - (sandbox) Move "Sandbox created" and "Sandbox updated" banners to stderr for clean
-o jsonoutput (#110) - (sandbox) Fix missing trailing newline in
sandbox readoutput (#110) - (sandbox) Add
sandbox delete <id>subcommand; clears the active session automatically when the deleted sandbox was the active one (#110) - (workspaces) Fix incorrect lock check in
workspaces setβ was checkingHOTDATA_WORKSPACE(always set in sandbox runs), now correctly checksHOTDATA_SANDBOX(#110) - (context) Surface a friendly hint when
context pushis blocked inside an active sandbox, pointing users tohotdata sandbox set(no args) to clear it (#110)
- (skills) Bump skill file versions to 0.3.1 so
hotdata skills installcorrectly detects and installs the latest skills for CLI v0.3.x
- (query) Fetch results as Arrow IPC instead of JSON; reduces transfer size and preserves native types (#103)
- (query) Add
--database/-dflag to scope a query to a managed database without changing the active database (#102) - (databases) Add
databases show <id>as an explicit subcommand alias (#103) - (databases)
databases tables <id>now lists tables without requiring thelistsubcommand (#103) - (skills) Add
skills listas an alias forskills status(#103) - (update) Background update check with post-command notice; never blocks command output (#104)
- (update) Auto-install and update skills to match the new binary version during
hotdata update(#105) - (update) Execute
brew upgradedirectly for Homebrew installs instead of printing manual instructions (#106)
- (query) Async polling loop exits with code 2 on unexpected statuses instead of spinning forever (#103)
- (query) Failed async queries now surface the real server error message (#103)
- (query)
results get <id>now fetches Arrow IPC like the rest of the query path (#103) - (query) Polling loop polls first before checking the deadline, eliminating a mandatory 500ms delay (#106)
- (skills) Add 120-second HTTP timeout to the skills tarball download during
hotdata update(#106)
- (skills) Update skills to reflect recent API changes: database-scoped context,
databases set,--expires-at, corrected flag names fordatabases create/datasets create/datasets update(#100)
- (context) Scope context commands to active database;
hotdata contextnow calls/databases/{id}/contextand requires--database-idor an active database set viadatabases set(#98) - (databases) Add
--expires-atflag todatabases create; accepts relative durations (24h,7d) or RFC 3339 timestamps (#97) - (datasets) Remove upload/URL/file create paths;
datasets createnow requires exactly one of--sqlor--query-id(#95) - (databases) Migrate CLI to dedicated
/databasesAPI;databases setsaves active database;X-Database-Idheader sent automatically on all requests (#94)
- (datasets) Add missing
typediscriminator to dataset source payloads sent to API - (context) Correct
--database-idflag name in error message
- (indexes) Dot-bracket notation for
indexes create:airbnb.listings[col1,col2]replaces--connection-id/--schema/--table/--columns(#92) - (databases) Add
databases load <db.table>shorthand replacingdatabases tables load(#92) - (indexes) Make
--nameoptional onindexes create; auto-derived from table, columns, and type (#92)
- (databases) Remove
load:hint fromdatabases createsuccess output (#92)
- (search) Infer
--typeand--columnfrom table indexes; schema defaults topublic(#90)
- (search) Explicit error when a search index has no columns (#90)
- (databases) Add
--urlflag totables loadfor remote parquet files (#88)
- (auth) Add
hotdata auth registercommand (#85, #86) - (auth) Default register to GitHub; add
--emailflag - (update) Add
hotdata updatecommand - (skills) Split bundled skills into
hotdata-searchandhotdata-analytics(#84)
- (auth) Align CLI callback page colors with web app theme
- (auth) Extract
run_browser_authhelper; add tests forexchange_cli_register_code
- (skill) Epic flow checklists, datasets vs databases workflows, tag-only release finish (#84)
- (databases) Add managed databases CLI for parquet table loads (#82)
- (sandbox) Add sandbox JWT support
- (tty) Add no-input flag and tty checks for interactive commands
- (deps) Bump openssl to 0.10.79 for CVE fixes (#77)
- Ignore macOS metadata files (#81)
- (skill) Document managed databases commands
- (wizard) Render schema description, examples, defaults (#75)
- (skill) Align hotdata skill with CLI behavior
- (datasets) Add update subcommand to rename label or table_name
- Data/dataset refresh + indexes auto-embedding + embedding providers (#67)
- (skills) Add optional geospatial agent skill
- (skills) Auto-update bundled agent skills after CLI upgrade
- (datasets) Match runtimedb response shape on update
- (datasets) Drop synthetic schema_name on update output
- (datasets) Restore eprintln for "Dataset updated" status line
- (skills) Complete partial installs and improve status output
- (skills) Show Installed: No when no skill store exists
- (skills) Stop repeat auto-downloads (parse SKILL.md, stale tarball guard)
- (release) Bump geospatial skill version on release
- (skills) Always auto-update skills when eligible (remove env opt-out)
- (datasets) Drop redundant Stylize import in update path
- (auth) Add CLI auth session support (JWT access tokens, refresh, PKCE login)
- (indexes) Workspace-wide list with filters and parallel fetch
- (codecov) Treat patch coverage as informational
- Raise coverage for indexes list and get_none_if_not_found
- (auth) Add login subcommand mirroring bare auth
- (context) Strip .md suffix using correct byte length
- (context) Avoid UTF-8 panic when probing .md suffix
- (release) Pass --no-confirm to cargo release
- (skill) List before show; avoid blind context show DATAMODEL
- (skill) Context: notation and analysis vs DATAMODEL
- (context) Add context list/show/pull/push commands
- (context) Fail-fast pull when target exists; expand stem tests
- (release) Regenerate changelog with git-cliff
- (context) Clearer fetch_context exhaustiveness; drop no-op mkdir
- (cli) Clarify datasets command as upload and query Parquet/CSV
- (skill) Prefer workspace context API for data model and agents
- (skill) Context API only for data model and workspace docs
- (readme) Document workspace context commands and API-first model
- (skill) Align Hotdata SKILL with current CLI flags
- (skill) Sandbox datasets, long flags, and WORKFLOWS
- (skill) Unify dataset SQL as datasets..
- (sandbox) Align CLI with updated sandbox API
- (connections) Add health check to connection flow
- (sessions) Add session command feature
- (security) Update tar from 0.4.44 to 0.4.45
- (ci) Update workflow actions for Node.js 24 compatibility
- (ci) Revert release.yml (cargo-dist managed)
- (ci) SHA-pin codecov-action for consistency
- (ci) Keep create-github-app-token at v1 to avoid breaking changes
- (skill) Document results list, connections refresh, queries update flags
- (skill) Workflows, references, and SKILL alignment
- (auth) Fix config initialization and url upload api parameter
- (search) Add basic vector search (l2_distance)
- (query) Async query execution by returning early from long running queries
- (connections) Add connection information command (#28)
- (completions) Add completions command and include in brew formula
- (search) Add indexes and text search commands
- (queries) Add upload url for datasets and new queries commands (#23)
- (datasets) Add --sql and --query-id to datasets create
- (workspaces) Add set command to switch default workspace
- (results) Add results list command
- (connections) Add connections refresh endpoint
- (jobs) Add jobs commands
- (cli) Add table formatting and fix wrapping issues
- (cli) Skills/Auth CLI command quality of life improvements
- (skills) Add skill install command for CLI
- (datasets) Add datasets commands to create, list, and view datasets in CLI
- (datasets) Add upload id functionality to datasets create command
- (connections) Add connection command to list/view/create connections via the CLI
- (results) Add query result retrieval via results command
- (workspaces) Default workspace support for CLI commands
- (tables) Add search and pagination to tables list command
- Format table list output with full table path ..
- (tables) Add table list command and better table rendering
- (workspace) Add workspace list command
- (connection) Add connections list command
- (query) Add query execution command