Skip to content

🖥️ Desktop: dimos gateway - #4429

Draft
jeff-hykin wants to merge 262 commits into
mainfrom
jeff/feat/dimos_server
Draft

jeff-hykin wants to merge 262 commits into
mainfrom
jeff/feat/dimos_server

Conversation

@jeff-hykin

@jeff-hykin jeff-hykin commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

The stable API for building apps on top of dimos, served by Desktop at /dimos-gateway/ (API 7.0.0, no cloud): /catalog, /active, /history, extras, jobs.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

go2 replay realtime (arm64)

Details
Benchmark suite Current: 92d7ece Previous: a16e03a Ratio
peak memory 1834.023 MB 1832.699 MB 1.00
peak threads 366 threads 360 threads 1.02
network (transport) 2724.068 MB 2731.039 MB 1.00
disk write 1.492 MB 1.699 MB 0.88
instructions 136.158 G 137.742 G 0.99

This comment was automatically generated by workflow using github-action-benchmark.

@jeff-hykin jeff-hykin changed the title dimos server: the /dimos HTTP API Desktop uses, in Python (was in Desktop's Rust) dimos desktop: expose launching/listing blueprints, modules, etc so app frontends can get the data Oct 5, 2026
@jeff-hykin jeff-hykin changed the title dimos desktop: expose launching/listing blueprints, modules, etc so app frontends can get the data dimos desktop: expose launching/listing blueprints, modules, etc so app frontends can get the data and trigger actions Oct 5, 2026
@jeff-hykin jeff-hykin changed the title dimos desktop: expose launching/listing blueprints, modules, etc so app frontends can get the data and trigger actions dimos desktop: add server so frontends can launch/list blueprints, modules, etc Oct 5, 2026
…uns/restart, a launch's overrides, steps and problems, /dimos/paths server; fixture refreshed from Desktop
…own cloud code (no copied device flow, no message matching)

cli/cloud.py's device flow and whoami become functions the CLI and the server's worker share; a missing or refused
key raises NotLoggedInError, so the worker classifies by type and HTTP status. The console link and what counts as a
recording (kind_of) come from dimos.cloud.
…ay dimos run does, and is tested on real blueprints

get_by_name / get_blueprint_by_name / get_module_class_by_name instead of a copy of them, active_blueprints with no
getattr fallbacks (the catalog used every atom, the rest only active ones), and a test that every ModuleConfig field is
hidden or shown on purpose.
…and their essential args, the app to install, starter, hidden), with a schema; the all_blueprints test keeps it in step with the code
…ir args inlined, tags from modes, registered/unlisted); dimos.yaml names the file; API 1.1.0
…s run registry and LOG_DIR, and logs are tested with what dimos's logger writes

A run's log is found through its registry entry (then the log folders), is_pid_alive and REGISTRY_DIR are imported
instead of copied, and registry_runs takes RegistryRun's fields from each RunEntry.
…, stream directions, dimos.yaml's version), and the checkout version read with tomllib
…ror) instead of skipping it silently every second
…flags and GlobalConfig, and passed as --key=value

PUT /dimos/global-config, a launch and a restart refuse a key that isn't one of the root flags dimos builds from
GlobalConfig (a typo, or a field renamed since it was saved) or a value GlobalConfig refuses, with a 400 naming it,
instead of dimos failing at startup. A test runs every flag through dimos's real root callback and argv handling;
--key=value keeps "--simulation ''" from being read as a bare --simulation (mujoco).
…nect alone (it already reads ZENOH_CONNECT; no second reader)
… processes, cached on disk by commit + packages), modules ranked per robot, module config with json_compatible, custom-robot docs, extras and install jobs
… robot listing it, else the one whose dirs hold it), not a hardcoded list of vendor folders
… loader, extras from metadata by packaging markers, a job's failure is its exit code and output tail (no wording), rescan whenever an importable package, Python file or packaging file changed, one venv helper, docs links tested against real pages; /dimos/paths recordingsDir defaults to dimos's RECORDINGS_DIR
…s structured log (stage/problem fields, exception_fields, typed errors at the source), not console text; models derived from dimos's RunEntry and StreamRef
…today), not only a list: a logged-in account answered 500
…es} checked against dimos's schemas, module flags after run <bp>, saved module config per blueprint via PUT /dimos/blueprints/{name}/config) and secrets (env not argv, shown as •••, kept for restart in an owner-only file)
…arted (startedAt) and the zenoh namespace it publishes its events under (null = SSE only), so Desktop restarts it when its code changes and stops relaying its events twice; recordingsDir falls back to Desktop's $DIMOS_RECORDINGS_DIR before dimos's own; API 1.3.0
…nd the secrets fields: fixture refreshed from Desktop's GET /api/desktop/openapi, no known differences left for them
…nitree-dds, dds on python > 3.10: no wheel) first finds the CycloneDDS C library it builds against: $CYCLONEDDS_HOME, else nix builds the one dimos's flake.lock pins (out-link in the venv, a GC root), else Homebrew's; none = the job fails before uv with code cyclonedds_missing; jobs get a code (API 1.4.0)
…ith a skill flag (/catalog/rpcs), /runs/rpcs lists the running ones and POST /runs {rpc} calls one directly (API 6.0.0)
… answers them, instead of each route wrapping them in ApiError(status, str(error))
@jeff-hykin jeff-hykin changed the title desktop: dimos gateway Desktop: dimos gateway Oct 21, 2026
@jeff-hykin jeff-hykin changed the title Desktop: dimos gateway 🖥️ Desktop: dimos gateway Oct 21, 2026
…eams through one Dimos.connect()) and /history replace /runs; the gateway saves no config (each launch carries its own, GET /catalog/config has the schema); dimos run --run-id is gone; the how-to moves to docs/usage/gateway.md
…robots: section, read by annotations.py (was robots.py)

This branch was successfully deployed

1 active deployment
cachix — 92d7eceb Deployed Oct 22, 2026 by jeff-hykin via cachix-build-macos #13911
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants