Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: dstackai/dstack
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0.22.5
Choose a base ref
...
head repository: dstackai/dstack
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
  • 9 commits
  • 89 files changed
  • 3 contributors

Commits on Oct 22, 2026

  1. Add orphan cleanup for cloud resources (#4401)

    * Prototype OrphanCleanupPipeline
    
    * Clean up
    
    * Fix orphan classification order
    
    * Batch owner record lookups in orphan cleanup
    
    * Log orphan resources of stuck pending instances
    
    * Emit events for orphaned resources
    
    * Add migrations for orphan cleanup
    
    * Recommend separate migrations for concurrent indexes
    
    * Clarify resource listing contract
    
    * Register OrphanCleanupPipeline
    
    * Pass provider_ref to backends
    
    * Match orphaned resources of failed job provisioning by job
    
    * Add provider_ref naming helpers
    
    * Implement orphan resource listing for AWS
    
    * Move AWS Elastic IP helpers to resources.py
    
    * Enroll backends in orphan cleanup
    
    * Mention orphan cleanup when instance termination gives up
    
    * Document orphan cleanup settings
    
    * Reword resource listing contract
    
    * List AWS instances without Elastic IP permissions
    
    * Detect orphan cleanup support of registered backends
    
    * Report partial resource listings in orphan cleanup
    
    * Ignore unsupported owner types in orphan cleanup
    
    * Test OrphanCleanupPipeline fetching and processing
    
    * Document orphan cleanup support for backends
    
    * Fix AWS resource listing edge cases
    
    * Simplify orphan cleanup result handling and logging
    
    * Tidy orphan cleanup docstrings and tests
    
    * Check orphan cleanup activity in worker instead of fetcher
    
    * Skip orphan groups of owners changed around listing and drop backoff for skips
    
    * Report orphan owner resources whose deletion is requested
    
    * Load orphan owner jobs before instances
    
    * Keep superseded job submissions until orphan cleanup
    
    * Bound how long superseded submissions wait for orphan cleanup
    
    * Clarify orphan cleanup filter docstring
    
    * Fix compute group provider_ref TODO
    
    * Replace em dash in release_eip docstring
    
    * Derive superseded submission max wait from orphan cleanup interval
    
    * Document orphan cleanup in contributing
    
    * Record issued provider refs in a ledger
    
    Placeholder instances carry the provider_ref of run_job() instead of jobs,
    and ProviderRefModel keeps refs after owners are deleted, so superseded
    job submissions no longer need to wait for orphan cleanup.
    
    * Wrap AWS errors when deleting orphaned resources
    r4victor authored Oct 22, 2026
    Configuration menu
    Copy the full SHA
    6361caf View commit details
    Browse the repository at this point in the history

Commits on Oct 23, 2026

  1. Support orphaned resources cleanup for RunPod (#4404)

    * Support orphaned resources cleanup for RunPod
    
    * Fix RunPod orphan cleanup enrollment and pods pagination
    
    * Delete RunPod orphan pods without a region
    
    * Use parse_datetime for API, logs and CLI datetimes
    
    * Make orphan cleanup enrollment interval configurable
    
    * Document that orphan reports are not deduplicated
    r4victor authored Oct 23, 2026
    Configuration menu
    Copy the full SHA
    e99ed86 View commit details
    Browse the repository at this point in the history
  2. Rework Dynamo docs around a dedicated etcd group (#4402)

    Update the Dynamo example and the Dynamo tabs in concepts/services.md
    to run etcd as its own replica group that the frontend and workers
    reach via ${{ groups[0].replicas[0].IP_ADDRESS }}. etcd and NATS no
    longer run inside the router job, so the docs no longer depend on
    DSTACK_ROUTER_INTERNAL_IP, which is going to be deprecated.
    
    The examples now use Dynamo 1.5.1 with vLLM workers. Dynamo's default
    ZMQ event plane removes the need for NATS, and the frontend uses vLLM's
    GLM parsers because Dynamo's glm47 parser drops GLM-4.5 tool call
    arguments. Prefill workers publish KV events for KV-aware routing.
    
    The Router section's Dynamo tab switches from Qwen3.8-Flash-Next to
    GLM-4.5-Air-FP8, which Dynamo 1.5.1 supports.
    
    Also fix the dynamo router description and a code comment that said
    workers are discovered via etcd/NATS.
    
    Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
    un-def and claude authored Oct 23, 2026
    Configuration menu
    Copy the full SHA
    24f7d7a View commit details
    Browse the repository at this point in the history
  3. [CLI] Write logs, errors and warnings to stderr (#4405)

    stdout should carry only command output so that `--json` stays
    parseable. Logging, fatal errors from `main()`, `warn()`, the update
    notice, `get` "not found" errors, and preset mirroring warnings now
    go to stderr.
    
    `error_console` resolves `sys.stderr` on each write. A plain
    `Console(stderr=True)` unwraps the proxy that `rich.live.Live`
    installs, so its output would garble an active spinner or live table.
    While `Live` is active, `error_console` also reports no fileno.
    Otherwise, on consoles without VT support, rich writes and flushes
    each styled segment separately, and the proxy prints each one on a
    separate line.
    
    Fixes: #4403
    Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
    un-def and claude authored Oct 23, 2026
    Configuration menu
    Copy the full SHA
    0f6db9d View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2026

  1. Support orphaned resources cleanup for GCP (#4408)

    * Support orphaned resources cleanup for GCP
    
    * Drop GCP create_instance label test
    r4victor authored Oct 26, 2026
    Configuration menu
    Copy the full SHA
    9150a3a View commit details
    Browse the repository at this point in the history
  2. Use sys.exit() instead of exit() in CLI (#4409)

    exit() is added by the site module and is meant for the interactive
    shell. It is not defined under `python -S` or in some embedded
    interpreters, and it closes sys.stdin before raising SystemExit.
    
    Replace all exit() calls and hand-written `raise SystemExit(1)` with
    sys.exit(), and enable Ruff's PLR1722 to keep exit() from coming back.
    
    Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
    un-def and claude authored Oct 26, 2026
    Configuration menu
    Copy the full SHA
    05fc4e0 View commit details
    Browse the repository at this point in the history
  3. Support orphaned resources cleanup for Azure (#4410)

    * Support orphaned resources cleanup for Azure
    
    * Show Azure VM size values in orphan descriptions
    
    * Clarify that Azure orphan resource groups are not Azure resource groups
    r4victor authored Oct 26, 2026
    Configuration menu
    Copy the full SHA
    1c5179e View commit details
    Browse the repository at this point in the history
  4. Fix Ctrl+C handling in CLI (#4411)

    confirm_ask turned Ctrl+C into sys.exit(1), so handlers that catch a
    second Ctrl+C at a prompt never ran: `dstack apply` didn't abort the
    run, and preset creation left the agent and its runs going.
    
    Handle KeyboardInterrupt once in main(): print "Interrupted" and
    re-raise with the traceback hidden. On an uncaught KeyboardInterrupt,
    Python shuts down normally and then kills itself with SIGINT, so a
    calling shell script stops too. Exiting with 130 doesn't do that: bash
    assumes the child handled SIGINT itself and continues.
    
    - Drop the interrupt handlers in confirm_ask, login, _repo_diff_verbose
      (library code), and the apply and preset catch-alls, which exited 0.
    - Re-raise after aborting a run on a second Ctrl+C.
    - Let Ctrl+C through questionary menus (unsafe_ask).
    - Respect -y when interrupting fleet provisioning on old servers.
    
    Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
    un-def and claude authored Oct 26, 2026
    Configuration menu
    Copy the full SHA
    c7208bb View commit details
    Browse the repository at this point in the history
  5. Support orphaned resources cleanup for Nebius (#4412)

    * Support orphaned resources cleanup for Nebius
    
    * Drop redundant Nebius orphan cleanup tests
    r4victor authored Oct 26, 2026
    Configuration menu
    Copy the full SHA
    15f890b View commit details
    Browse the repository at this point in the history
Loading