tag:github.com,2008:https://github.com/dstackai/dstack/releases Release notes from dstack 2026-02-26T11:22:07Z tag:github.com,2008:Repository/444377346/0.20.12 2026-02-27T14:24:37Z 0.20.12 <h2>Backends</h2> <h3>Crusoe</h3> <p><code>dstack</code> now supports <a href="https://crusoe.ai/" rel="nofollow">Crusoe</a> as a backend, enabling VM-based provisioning with GPU instances. The backend supports both single-node and multi-node cluster provisioning with InfiniBand.</p> <div> <div class="highlight highlight-source-yaml notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="type: fleet name: my-crusoe-fleet backends: [crusoe] resources: gpu: A100:8 nodes: 2 placement: cluster"><pre><span class="pl-ent">type</span>: <span class="pl-s">fleet</span> <span class="pl-ent">name</span>: <span class="pl-s">my-crusoe-fleet</span> <span class="pl-ent">backends</span>: <span class="pl-s">[crusoe]</span> <span class="pl-ent">resources</span>: <span class="pl-ent">gpu</span>: <span class="pl-s">A100:8</span> <span class="pl-ent">nodes</span>: <span class="pl-c1">2</span> <span class="pl-ent">placement</span>: <span class="pl-s">cluster</span></pre></div> </div> <div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>CPU instances, H200, B200, GB200, MI300X, MI355X and volumes support is coming soon.</p> </div> <h2>UI</h2> <h3>Launch wizard</h3> <p>The UI now includes a launch wizard that lets users create runs from pre-defined templates. Instead of writing YAML from<br> scratch, users can select a template, pick GPU resources, adjust settings, and review the final<br> configuration—all through a guided flow.</p> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/54148038/555475459-ff0958d3-ff99-4f4c-b354-3713976d651d.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81NTU0NzU0NTktZmYwOTU4ZDMtZmY5OS00ZjRjLWIzNTQtMzcxMzk3NmQ2NTFkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJmMDU5MTVmNWU2ZTZiYTVmMjk0Mjc1NWZmYjY4OTI4MDUyYjViOGE2ODYzMWIyMGQzODVlNWVhZDU4ZDBmZDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.uG4xKPrBSOrB5bjey3-uDxtF1xY2QJA4vX58Bj5BlLQ"><img width="850" src="https://private-user-images.githubusercontent.com/54148038/555475459-ff0958d3-ff99-4f4c-b354-3713976d651d.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81NTU0NzU0NTktZmYwOTU4ZDMtZmY5OS00ZjRjLWIzNTQtMzcxMzk3NmQ2NTFkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJmMDU5MTVmNWU2ZTZiYTVmMjk0Mjc1NWZmYjY4OTI4MDUyYjViOGE2ODYzMWIyMGQzODVlNWVhZDU4ZDBmZDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.uG4xKPrBSOrB5bjey3-uDxtF1xY2QJA4vX58Bj5BlLQ" content-type-secured-asset="image/png" style="max-width: 100%;"></a> <p>To enable the launch wizard, point the server to a templates repository:</p> <div> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ DSTACK_SERVER_TEMPLATES_REPO=https://github.com/dstackai/dstack-templates dstack server"><pre>$ DSTACK_SERVER_TEMPLATES_REPO=https://github.com/dstackai/dstack-templates dstack server</pre></div> </div> <p>Templates are YAML files under <code>.dstack/templates</code> in the repo. Each template has <code>type</code> set to <code>template</code>, a unique <code>name</code>, a <code>title</code>, configurable <code>parameters</code>, and a <code>configuration</code> that defines the <code>dstack</code> run:</p> <div> <div class="highlight highlight-source-yaml notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="type: template name: in-browser-ide title: In-browser IDE description: Access the instance using VS Code in the browser. parameters: - type: name - type: resources - type: python_or_docker - type: repo - type: working_dir - type: env title: Password name: PASSWORD value: $random-password configuration: type: service auth: false gateway: true https: auto env: - BIND_ADDR=0.0.0.0:8080 commands: - | echo &quot;Your password is $PASSWORD. Share it carefully as it grants full access to the IDE.&quot; - | curl -fsSL https://code-server.dev/install.sh | sh -s -- --method standalone --prefix /tmp/code-server - | /tmp/code-server/bin/code-server --bind-addr $BIND_ADDR --auth password --disable-telemetry --disable-update-check . port: 8080 probes: - type: http url: /healthz"><pre><span class="pl-ent">type</span>: <span class="pl-s">template</span> <span class="pl-ent">name</span>: <span class="pl-s">in-browser-ide</span> <span class="pl-ent">title</span>: <span class="pl-s">In-browser IDE</span> <span class="pl-ent">description</span>: <span class="pl-s">Access the instance using VS Code in the browser.</span> <span class="pl-ent">parameters</span>: - <span class="pl-ent">type</span>: <span class="pl-s">name</span> - <span class="pl-ent">type</span>: <span class="pl-s">resources</span> - <span class="pl-ent">type</span>: <span class="pl-s">python_or_docker</span> - <span class="pl-ent">type</span>: <span class="pl-s">repo</span> - <span class="pl-ent">type</span>: <span class="pl-s">working_dir</span> - <span class="pl-ent">type</span>: <span class="pl-s">env</span> <span class="pl-ent">title</span>: <span class="pl-s">Password</span> <span class="pl-ent">name</span>: <span class="pl-s">PASSWORD</span> <span class="pl-ent">value</span>: <span class="pl-s">$random-password</span> <span class="pl-ent">configuration</span>: <span class="pl-ent">type</span>: <span class="pl-s">service</span> <span class="pl-ent">auth</span>: <span class="pl-c1">false</span> <span class="pl-ent">gateway</span>: <span class="pl-c1">true</span> <span class="pl-ent">https</span>: <span class="pl-s">auto</span> <span class="pl-ent">env</span>: - <span class="pl-s">BIND_ADDR=0.0.0.0:8080</span> <span class="pl-ent">commands</span>: - <span class="pl-s">|</span> <span class="pl-s"> echo "Your password is $PASSWORD. Share it carefully as it grants full access to the IDE."</span> <span class="pl-s"></span> - <span class="pl-s">|</span> <span class="pl-s"> curl -fsSL https://code-server.dev/install.sh | sh -s -- --method standalone --prefix /tmp/code-server</span> <span class="pl-s"></span> - <span class="pl-s">|</span> <span class="pl-s"> /tmp/code-server/bin/code-server --bind-addr $BIND_ADDR --auth password --disable-telemetry --disable-update-check .</span> <span class="pl-s"></span> <span class="pl-ent">port</span>: <span class="pl-c1">8080</span> <span class="pl-ent">probes</span>: - <span class="pl-ent">type</span>: <span class="pl-s">http</span> <span class="pl-ent">url</span>: <span class="pl-s">/healthz</span></pre></div> </div> <p>See <a href="https://github.com/dstackai/dstack-templates">dstack-templates</a> for an example repository.</p> <div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>The launch wizard is an experimental feature. Currently, templates are configured per server. Per-project templates configuration is coming soon.</p> </div> <h3>Instances</h3> <p>The UI now has an Instance details page where you can view detailed information about an instance, including its events and inspect data. Instance names across the UI—including on Events pages—now link directly to this page.</p> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/54148038/555476255-32495740-1e86-4e1d-ab78-547dedf71d97.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81NTU0NzYyNTUtMzI0OTU3NDAtMWU4Ni00ZTFkLWFiNzgtNTQ3ZGVkZjcxZDk3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA5NzQ1ZDE0YTkyNmM0NzMwOGYxMWQ4YzExOTVlM2RmY2RhYzM4MjMwYjZlZGE4MWEzNjU0NTBlMjhjZjZkNmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.u7cdjLywJu7tUvepujSvr3jmBuwsOJIQCs9ano9PpzY"><img width="850" src="https://private-user-images.githubusercontent.com/54148038/555476255-32495740-1e86-4e1d-ab78-547dedf71d97.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81NTU0NzYyNTUtMzI0OTU3NDAtMWU4Ni00ZTFkLWFiNzgtNTQ3ZGVkZjcxZDk3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA5NzQ1ZDE0YTkyNmM0NzMwOGYxMWQ4YzExOTVlM2RmY2RhYzM4MjMwYjZlZGE4MWEzNjU0NTBlMjhjZjZkNmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.u7cdjLywJu7tUvepujSvr3jmBuwsOJIQCs9ano9PpzY" content-type-secured-asset="image/png" style="max-width: 100%;"></a> <h2>What's changed</h2> <ul> <li>Document Adding indexes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3962913691" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3594" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3594/hovercard" href="https://github.com/dstackai/dstack/pull/3594">#3594</a></li> <li>[Blog] Model inference with Prefill-Decode disaggregation by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3963396772" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3595" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3595/hovercard" href="https://github.com/dstackai/dstack/pull/3595">#3595</a></li> <li>[runner] Drop buildLDLibraryPathEnv() by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3962904710" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3593" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3593/hovercard" href="https://github.com/dstackai/dstack/pull/3593">#3593</a></li> <li>Fix mutually exclusive fields validation by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3966984683" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3598" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3598/hovercard" href="https://github.com/dstackai/dstack/pull/3598">#3598</a></li> <li>[Docs] PD disaggregation by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Bihan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Bihan">@Bihan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3962715947" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3592" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3592/hovercard" href="https://github.com/dstackai/dstack/pull/3592">#3592</a></li> <li>[Docs] Clarify how K8s resources and offers work by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3926867983" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3565" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3565/hovercard" href="https://github.com/dstackai/dstack/pull/3565">#3565</a></li> <li>Allow <code>https: auto</code> for services by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3968358012" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3600" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3600/hovercard" href="https://github.com/dstackai/dstack/pull/3600">#3600</a></li> <li>Implement gateway pipeline by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3968077660" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3599" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3599/hovercard" href="https://github.com/dstackai/dstack/pull/3599">#3599</a></li> <li>Allow detecting whether service <code>https</code> is unset by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3969662050" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3601" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3601/hovercard" href="https://github.com/dstackai/dstack/pull/3601">#3601</a></li> <li>Implement volume pipeline by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3982988665" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3604" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3604/hovercard" href="https://github.com/dstackai/dstack/pull/3604">#3604</a></li> <li>[Website] Minor edits by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3988972724" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3609" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3609/hovercard" href="https://github.com/dstackai/dstack/pull/3609">#3609</a></li> <li>[Website] Add <code>robots.txt</code> and structured data by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3989623752" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3610" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3610/hovercard" href="https://github.com/dstackai/dstack/pull/3610">#3610</a></li> <li>Add templates API and launch wizard UI by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3984232782" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3605" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3605/hovercard" href="https://github.com/dstackai/dstack/pull/3605">#3605</a></li> <li>[UI] Include availability issues information to offer cards by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3985199275" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3607" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3607/hovercard" href="https://github.com/dstackai/dstack/pull/3607">#3607</a></li> <li>Fix SSH fleet with <code>proxy_jump</code> in-place update check by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3989925141" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3612" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3612/hovercard" href="https://github.com/dstackai/dstack/pull/3612">#3612</a></li> <li>Bump gpuhunt==0.1.17 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3994685313" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3615" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3615/hovercard" href="https://github.com/dstackai/dstack/pull/3615">#3615</a></li> <li>[UI] Add Instance details page by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3992110498" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3614" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3614/hovercard" href="https://github.com/dstackai/dstack/pull/3614">#3614</a></li> <li>Add Crusoe Cloud backend by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3980896690" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3602" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3602/hovercard" href="https://github.com/dstackai/dstack/pull/3602">#3602</a></li> </ul> <p><strong>Full changelog</strong>: <a class="commit-link" href="https://github.com/dstackai/dstack/compare/0.20.11...0.20.12"><tt>0.20.11...0.20.12</tt></a></p> peterschmidt85 tag:github.com,2008:Repository/444377346/0.20.11 2026-02-26T09:17:41Z 0.20.11 <p>This release fixes a potential issue with the server replica failing to start due to a migration trying to create existing index on Postgres.</p> <h2>What's Changed</h2> <ul> <li>Fix concurrent indexes migration by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3962682048" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3591" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3591/hovercard" href="https://github.com/dstackai/dstack/pull/3591">#3591</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/dstackai/dstack/compare/0.20.10...0.20.11"><tt>0.20.10...0.20.11</tt></a></p> r4victor tag:github.com,2008:Repository/444377346/0.20.10 2026-02-19T12:42:42Z 0.20.10 <h2>Services</h2> <h3>Prefill-Decode disaggregation</h3> <p><code>dstack</code> now supports disaggregated Prefill–Decode inference, allowing both Prefill and Decode worker types to run within a single service.</p> <p>To define and run such a service, set <code>pd_disaggregation</code> to <code>true</code> under the <code>router</code> property (this requires the gateway to use the <a href="https://dstack.ai/docs/concepts/gateways/#sglang" rel="nofollow"><code>sglang</code> router</a>, and define separate replica groups for Prefill and Decode worker types:</p> <div class="highlight highlight-source-yaml notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="type: service name: prefill-decode env:   - HF_TOKEN   - MODEL_ID=zai-org/GLM-4.5-Air-FP8 image: lmsysorg/sglang:latest replicas:   - count: 1..4     scaling:       metric: rps       target: 3     commands:       - |           python -m sglang.launch_server \             --model-path $MODEL_ID \             --disaggregation-mode prefill \             --disaggregation-transfer-backend mooncake \             --host 0.0.0.0 \             --port 8000 \             --disaggregation-bootstrap-port 8998     resources:       gpu: H200   - count: 1..8     scaling:       metric: rps       target: 2     commands:       - |           python -m sglang.launch_server \             --model-path $MODEL_ID \             --disaggregation-mode decode \             --disaggregation-transfer-backend mooncake \             --host 0.0.0.0 \             --port 8000     resources:       gpu: H200 port: 8000 model: zai-org/GLM-4.5-Air-FP8 probes:   - type: http     url: /health_generate     interval: 15s router:   type: sglang   pd_disaggregation: true"><pre><span class="pl-ent">type</span>: <span class="pl-s">service</span> <span class="pl-ent">name</span>: <span class="pl-s">prefill-decode</span> <span class="pl-ent">env</span>: <span class="pl-s">  - HF_TOKEN</span> <span class="pl-s">  - MODEL_ID=zai-org/GLM-4.5-Air-FP8</span> <span class="pl-ent">image</span>: <span class="pl-s">lmsysorg/sglang:latest</span> <span class="pl-ent">replicas</span>: <span class="pl-ent">  - count</span>: <span class="pl-s">1..4</span> <span class="pl-ent">    scaling</span>: <span class="pl-ent">      metric</span>: <span class="pl-s">rps</span> <span class="pl-ent">      target</span>: <span class="pl-c1">3</span> <span class="pl-ent">    commands</span>: <span class="pl-s">      - |</span> <span class="pl-s">          python -m sglang.launch_server \</span> <span class="pl-s">            --model-path $MODEL_ID \</span> <span class="pl-s">            --disaggregation-mode prefill \</span> <span class="pl-s">            --disaggregation-transfer-backend mooncake \</span> <span class="pl-s">            --host 0.0.0.0 \</span> <span class="pl-s">            --port 8000 \</span> <span class="pl-s">            --disaggregation-bootstrap-port 8998</span> <span class="pl-ent">    resources</span>: <span class="pl-ent">      gpu</span>: <span class="pl-c1">H200</span> <span class="pl-ent">  - count</span>: <span class="pl-s">1..8</span> <span class="pl-ent">    scaling</span>: <span class="pl-ent">      metric</span>: <span class="pl-s">rps</span> <span class="pl-ent">      target</span>: <span class="pl-c1">2</span> <span class="pl-ent">    commands</span>: <span class="pl-s">      - |</span> <span class="pl-s">          python -m sglang.launch_server \</span> <span class="pl-s">            --model-path $MODEL_ID \</span> <span class="pl-s">            --disaggregation-mode decode \</span> <span class="pl-s">            --disaggregation-transfer-backend mooncake \</span> <span class="pl-s">            --host 0.0.0.0 \</span> <span class="pl-s">            --port 8000</span> <span class="pl-ent">    resources</span>: <span class="pl-ent">      gpu</span>: <span class="pl-c1">H200</span> <span class="pl-ent">port</span>: <span class="pl-c1">8000</span> <span class="pl-ent">model</span>: <span class="pl-s">zai-org/GLM-4.5-Air-FP8</span> <span class="pl-ent">probes</span>: <span class="pl-ent">  - type</span>: <span class="pl-s">http</span> <span class="pl-ent">    url</span>: <span class="pl-s">/health_generate</span> <span class="pl-ent">    interval</span>: <span class="pl-c1">15s</span> <span class="pl-ent">router</span>: <span class="pl-ent">  type</span>: <span class="pl-s">sglang</span> <span class="pl-ent">  pd_disaggregation</span>: <span class="pl-c1">true</span></pre></div> <div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>Note, <code>pd_disaggregation</code> requires both the gateway and replicas to use the same cluster. With <code>dstack</code>, this can now be used with the <code>aws</code>, <code>gcp</code>, <code>kubernetes</code> backends (as they support creating both clusters and gateways). Support for more backends (and eventually SSH fleets) is coming soon.</p> </div> <p>Currently, <code>pd_disaggregation</code> works only with SGLang. Support for vLLM is coming soon.</p> <p>Support for additional scaling metrics, such as TTFT and ITL, is also coming soon to enable autoscaling of Prefill and Decode workers.</p> <h3>Model endpoint</h3> <p>If you configure the <code>model</code> property, <code>dstack</code> previously provided a global model endpoint at <code>gateway.&lt;gateway domain&gt;</code> (or <code>/proxy/models/&lt;project name&gt;</code>), allowing access to all models deployed in the project. This endpoint has been deprecated.</p> <p>Now, any deployed model should be accessed via the service endpoint itself at <code>&lt;run name&gt;.&lt;gateway domain&gt;</code> (or <code>/proxy/services/main/&lt;service name&gt;</code>).</p> <div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>If you configure the <code>model</code> property, <code>dstack</code> automatically enables CORS on the service endpoint. Future versions will allow you to disable or customize this behavior.</p> </div> <h2>CLI</h2> <h3><code>dstack apply</code></h3> <p>Previously, if you did not specify <code>gpu</code>, <code>dstack</code> treated it as <code>0..1</code> but did not display it in the run plan. Now, <code>dstack</code> properly displays this default. Additionally, if you do not specify <code>image</code>, dstack automatically defaults the vendor to <code>nvidia</code>.</p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="dstack apply -f dev.dstack.yml Project peterschmidt85 User peterschmidt85 Type dev-environment Resources cpu=2.. mem=8GB.. disk=100GB.. gpu=0.. Spot policy on-demand Max price off Retry policy off Idle duration 5m Max duration off Inactivity duration off # BACKEND RESOURCES INSTANCE TYPE PRICE 1 verda (FIN-01) cpu=4 mem=16GB disk=100GB CPU.4V.16G $0.0279 2 verda (FIN-02) cpu=4 mem=16GB disk=100GB CPU.4V.16G $0.0279 3 verda (FIN-03) cpu=4 mem=16GB disk=100GB CPU.4V.16G $0.0279 ... Submit the run dev? [y/n]: "><pre>dstack apply -f dev.dstack.yml Project peterschmidt85 User peterschmidt85 Type dev-environment Resources cpu=2.. mem=8GB.. disk=100GB.. gpu=0.. Spot policy on-demand Max price off Retry policy off Idle duration 5m Max duration off Inactivity duration off <span class="pl-c"><span class="pl-c">#</span> BACKEND RESOURCES INSTANCE TYPE PRICE</span> 1 verda (FIN-01) cpu=4 mem=16GB disk=100GB CPU.4V.16G <span class="pl-smi">$0</span>.0279 2 verda (FIN-02) cpu=4 mem=16GB disk=100GB CPU.4V.16G <span class="pl-smi">$0</span>.0279 3 verda (FIN-03) cpu=4 mem=16GB disk=100GB CPU.4V.16G <span class="pl-smi">$0</span>.0279 ... Submit the run dev<span class="pl-k">?</span> [y/n]: </pre></div> <p>This makes the run plan much more explicit and clear.</p> <h2>What's changed</h2> <ul> <li>[Docs] Nebius example under <code>Clusters</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3928582422" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3567" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3567/hovercard" href="https://github.com/dstackai/dstack/pull/3567">#3567</a></li> <li>[Docs] Add get nodes rule to K8s ClusterRole by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3932022262" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3571" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3571/hovercard" href="https://github.com/dstackai/dstack/pull/3571">#3571</a></li> <li>[Docs] Clarified the behavior of idle duration: how run's <code>idle_duration</code> and fleet's <code>idle_duration</code> are applied by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3934807576" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3574" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3574/hovercard" href="https://github.com/dstackai/dstack/pull/3574">#3574</a></li> <li>[runner] Don't bind to public addresses by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3946771319" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3575" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3575/hovercard" href="https://github.com/dstackai/dstack/pull/3575">#3575</a></li> <li>Migrate service model base url by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3920933325" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3560" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3560/hovercard" href="https://github.com/dstackai/dstack/pull/3560">#3560</a></li> <li>Set explicit GPU defaults in ResourcesSpec and improve default GPU vendor selection by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3934687327" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3573" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3573/hovercard" href="https://github.com/dstackai/dstack/pull/3573">#3573</a></li> <li>Add <code>--verbose</code> to <code>dstack apply</code> and enhance run plan output by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3934608186" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3572" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3572/hovercard" href="https://github.com/dstackai/dstack/pull/3572">#3572</a></li> <li>Cosmetical changes to the home page (font; headline; etc) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3954928687" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3582" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3582/hovercard" href="https://github.com/dstackai/dstack/pull/3582">#3582</a></li> <li>Implement pipeline tasks by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3952157585" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3581" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3581/hovercard" href="https://github.com/dstackai/dstack/pull/3581">#3581</a></li> <li>Add pd disaggregated inference by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Bihan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Bihan">@Bihan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3920037438" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3558" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3558/hovercard" href="https://github.com/dstackai/dstack/pull/3558">#3558</a></li> <li>Group db migrations by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3957227592" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3583" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3583/hovercard" href="https://github.com/dstackai/dstack/pull/3583">#3583</a></li> <li>Clarify GPU vendor inference comments (follow-up to <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3934687327" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3573" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3573/hovercard" href="https://github.com/dstackai/dstack/pull/3573">#3573</a>) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3957866739" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3588" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3588/hovercard" href="https://github.com/dstackai/dstack/pull/3588">#3588</a></li> <li>Kubernetes: gateway: start services via docker-systemctl-replacement by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3957324780" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3584" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3584/hovercard" href="https://github.com/dstackai/dstack/pull/3584">#3584</a></li> <li>Remove dangling services from gateway by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3957605270" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3586" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3586/hovercard" href="https://github.com/dstackai/dstack/pull/3586">#3586</a></li> <li>[runner] Check capabilities(7) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3957725298" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3587" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3587/hovercard" href="https://github.com/dstackai/dstack/pull/3587">#3587</a></li> <li>[runner] Check if repo dir exists before chown by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3958130655" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3589" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3589/hovercard" href="https://github.com/dstackai/dstack/pull/3589">#3589</a></li> </ul> <p><strong>Full changelog</strong>: <a class="commit-link" href="https://github.com/dstackai/dstack/compare/0.20.9...0.20.10"><tt>0.20.9...0.20.10</tt></a></p> r4victor tag:github.com,2008:Repository/444377346/0.20.9 2026-02-12T13:12:52Z 0.20.9 <h2>Events</h2> <h3>UI</h3> <p>In the UI, both the <code>Project</code> and <code>User</code> pages now have an <code>Events</code> tab, providing a convenient way to track events without manually using the global filters.</p> <p>On the <code>User</code> page, the <code>Events</code> tab shows events where the current user is either the <code>Actor</code> (the one who initiated the operation) or the <code>Target user</code> (the user the command was applied to):</p> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/54148038/548786016-64e2de39-32c7-4337-9942-cfef3d868d8e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81NDg3ODYwMTYtNjRlMmRlMzktMzJjNy00MzM3LTk5NDItY2ZlZjNkODY4ZDhlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNiNTI3OTI3NTM1OThhMGMwOGMwOTYxY2ZkYjdjODU2NDNiNDdkMDY0Nzc3Y2M2MDNkNjEzZWE2ZjE4MDdjZDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.a2i-UStexWYpa1DwTyuYJRFlgozCQGuOuAEfEg48S50"><img width="850" src="https://private-user-images.githubusercontent.com/54148038/548786016-64e2de39-32c7-4337-9942-cfef3d868d8e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81NDg3ODYwMTYtNjRlMmRlMzktMzJjNy00MzM3LTk5NDItY2ZlZjNkODY4ZDhlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNiNTI3OTI3NTM1OThhMGMwOGMwOTYxY2ZkYjdjODU2NDNiNDdkMDY0Nzc3Y2M2MDNkNjEzZWE2ZjE4MDdjZDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.a2i-UStexWYpa1DwTyuYJRFlgozCQGuOuAEfEg48S50" content-type-secured-asset="image/png" style="max-width: 100%;"></a> <p>On the <code>Project</code> page, the <code>Events</code> tab shows all events within the current project.</p> <h2>CLI</h2> <h3><code>dstack attach</code></h3> <p>The <code>dstack attach</code> command now waits until the run is provisioned (similar to <code>dstack apply</code>), shows live progress, and attaches only after the run reaches the running state.</p> <p>In addition, if a task defines <code>ports</code> and any of those ports cannot be forwarded to <code>localhost</code> (for example, because the port is already in use), both <code>dstack attach</code> and <code>dstack apply</code> now show a clear error message with a <code>-p</code> suggestion:</p> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Failed to attach: port 8000 is already in use. Use -p in dstack attach to override the local port mapping, e.g. -p 8001:8000."><pre class="notranslate"><code>Failed to attach: port 8000 is already in use. Use -p in dstack attach to override the local port mapping, e.g. -p 8001:8000. </code></pre></div> <h2>Kubernetes</h2> <h3>Resources and offers</h3> <p>The way the <code>kubernetes</code> backend fetches offers has been updated. Previously, the offers reflected the node resources. Now, <code>dstack</code> returns only the offers that satisfy the requested range at its minimum value; for example, if you request <code>gpu: 0..8</code>, <code>dstack</code> returns only offers with <code>gpu: 0</code>. This makes the displayed offers closer to how runs are actually provisioned by Kubernetes.</p> <p><code>dstack offer -b kubernetes --gpu 0..8</code> will return only offers with <code>gpu: 0</code>.</p> <p>To see offers with <code>gpu: 1</code>, you must pass <code>gpu: 1</code> or <code>gpu: 1..</code> to <code>dstack offer</code> or <code>dstack apply</code>.</p> <div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>We understand that this differs from how offers are shown for other backends, but this is the first step in improving how the kubernetes backend does provisioning. Feedback is welcome.</p> </div> <h3>Proxy jump</h3> <p>To proxy SSH traffic inside containers, the <code>kubernetes</code> backend creates a proxy jump pod on startup. This requires at least one cluster node to have an external IP and relies on Kubernetes to forward this traffic even if the proxy jump pod is not running on the node with the external IP.</p> <p>However, not all Kubernetes services support this behavior; for example, Nebius's Managed Kubernetes requires the proxy jump pod to run on a node with an external IP. To support these cases, the <code>kubernetes</code> backend now double-checks that the proxy jump pod is created correctly.</p> <div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>The most reliable approach in such environments is still to ensure that all cluster nodes have an external IP. Feedback is welcome.</p> </div> <h2>Fleets</h2> <p>Instances in SSH fleets are no longer automatically terminated when they become unreachable over SSH. This prevents premature termination of SSH fleet instances due to transient SSH connectivity issues.</p> <h2>Docs</h2> <p>The reference pages for <code>.dstack.yml</code> configurations now include more information on supported types for every property, making them more useful.</p> <h2>What's changed</h2> <ul> <li>Events UI <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3649549404" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3309" data-hovercard-type="issue" data-hovercard-url="/dstackai/dstack/issues/3309/hovercard" href="https://github.com/dstackai/dstack/issues/3309">#3309</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/olgenn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/olgenn">@olgenn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3887104865" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3532" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3532/hovercard" href="https://github.com/dstackai/dstack/pull/3532">#3532</a></li> <li>[runner] Write termination_{reason,message} to the log by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3901838494" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3550" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3550/hovercard" href="https://github.com/dstackai/dstack/pull/3550">#3550</a></li> <li>Disable autoflush by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3905769946" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3553" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3553/hovercard" href="https://github.com/dstackai/dstack/pull/3553">#3553</a></li> <li>Update SKILL.md with authentication details and OpenAI model usage instructions by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3907553746" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3554" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3554/hovercard" href="https://github.com/dstackai/dstack/pull/3554">#3554</a></li> <li>Update SKILL.md to standardize run name formatting and add permissions guardrail for <code>dstack attach</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3907645023" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3555" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3555/hovercard" href="https://github.com/dstackai/dstack/pull/3555">#3555</a></li> <li>Optimize create instance on AWS by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3915560704" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3556" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3556/hovercard" href="https://github.com/dstackai/dstack/pull/3556">#3556</a></li> <li>[UX] Wait for run provisioning in <code>dstack attach</code>; pretty-print "port in use" error during <code>dstack apply</code> and <code>dstack attach</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3921847246" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3562" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3562/hovercard" href="https://github.com/dstackai/dstack/pull/3562">#3562</a></li> <li>Updated schema generation script to improve type handling and user-fr… by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3923958411" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3563" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3563/hovercard" href="https://github.com/dstackai/dstack/pull/3563">#3563</a></li> <li>Replaced <code>datacrunch</code> with <code>verda</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3926067633" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3564" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3564/hovercard" href="https://github.com/dstackai/dstack/pull/3564">#3564</a></li> <li>Kubernetes: improve offers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3901392777" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3548" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3548/hovercard" href="https://github.com/dstackai/dstack/pull/3548">#3548</a></li> <li>Streamline <code>InstanceModel.remote_connection_info</code> handling by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3927391003" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3566" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3566/hovercard" href="https://github.com/dstackai/dstack/pull/3566">#3566</a></li> <li>Kubernetes: rework jump pod provisioning by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3921000881" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3561" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3561/hovercard" href="https://github.com/dstackai/dstack/pull/3561">#3561</a></li> <li>Don't terminate unreachable SSH instances by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3930267965" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3568" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3568/hovercard" href="https://github.com/dstackai/dstack/pull/3568">#3568</a></li> </ul> <p><strong>Full changelog</strong>: <a class="commit-link" href="https://github.com/dstackai/dstack/compare/0.20.8...0.20.9"><tt>0.20.8...0.20.9</tt></a></p> r4victor tag:github.com,2008:Repository/444377346/0.20.8 2026-02-05T11:46:10Z 0.20.8 <h2>CLI</h2> <h3><code>dstack event --watch</code></h3> <p>The <code>dstack event</code> command now supports a <code>--watch</code> option for real-time event tracking.</p> <p><a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/36324149/545501387-e9a236b5-62d1-4cf2-a58e-b90d0a5bc2a6.gif?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii8zNjMyNDE0OS81NDU1MDEzODctZTlhMjM2YjUtNjJkMS00Y2YyLWE1OGUtYjkwZDBhNWJjMmE2LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThlMzM0NjdhMTVhZTdkMDNkNGVlNDhjMGZhNjE4Njg2ZDFkNjhlMzU3NDhlMzg5YzI5Njc2NTdhMzE2ZjA5YzAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0._HgruBoskQ8wFHFyvfG3j1f21a_QZDgkvye3bUHAZhg"><img src="https://private-user-images.githubusercontent.com/36324149/545501387-e9a236b5-62d1-4cf2-a58e-b90d0a5bc2a6.gif?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii8zNjMyNDE0OS81NDU1MDEzODctZTlhMjM2YjUtNjJkMS00Y2YyLWE1OGUtYjkwZDBhNWJjMmE2LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThlMzM0NjdhMTVhZTdkMDNkNGVlNDhjMGZhNjE4Njg2ZDFkNjhlMzU3NDhlMzg5YzI5Njc2NTdhMzE2ZjA5YzAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0._HgruBoskQ8wFHFyvfG3j1f21a_QZDgkvye3bUHAZhg" alt="video" content-type-secured-asset="image/gif" style="max-width: 100%;"></a></p> <p>Event coverage has also been improved, with events for run in-place update and service registration now available.</p> <h3><code>dstack fleet</code></h3> <p>The <code>dstack fleet</code> command now includes fleet-level information such as nodes, resources, spot policy, and backend details, with individual instances listed underneath.</p> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/36324149/545499618-dd1a070f-2d0c-4286-954c-da22679906f1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii8zNjMyNDE0OS81NDU0OTk2MTgtZGQxYTA3MGYtMmQwYy00Mjg2LTk1NGMtZGEyMjY3OTkwNmYxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQwM2Q1NWJkNjU1ZWQwMjE3ZTE2NjZiMDgwZGVjZTJiMDcwODNlZmU3ZWI4NDk4NDM5NTJmYmJlMzMxOWZjOTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.r1oMO6qoueXWsPY9kZdNV72Ks9tM5iye5hExcHgS2dk"><img width="1474" height="301" alt="dstack-fleet" src="https://private-user-images.githubusercontent.com/36324149/545499618-dd1a070f-2d0c-4286-954c-da22679906f1.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii8zNjMyNDE0OS81NDU0OTk2MTgtZGQxYTA3MGYtMmQwYy00Mjg2LTk1NGMtZGEyMjY3OTkwNmYxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQwM2Q1NWJkNjU1ZWQwMjE3ZTE2NjZiMDgwZGVjZTJiMDcwODNlZmU3ZWI4NDk4NDM5NTJmYmJlMzMxOWZjOTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.r1oMO6qoueXWsPY9kZdNV72Ks9tM5iye5hExcHgS2dk" content-type-secured-asset="image/png" style="max-width: 100%; height: auto; max-height: 301px;"></a> <h2>Skills</h2> <h3><code>SKILL.md</code></h3> <p>If you're using agents such as Claude Code, Codex, Cursor, etc., it’s now possible to install <code>dstack</code> skills.</p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="npx skills add dstackai/dstack"><pre>npx skills add dstackai/dstack</pre></div> <p>These skills make the agent fully aware of the configuration syntax and CLI commands.</p> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/54148038/545535396-d7fc7828-572f-41f6-9c3d-9ce16f6226a8.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81NDU1MzUzOTYtZDdmYzc4MjgtNTcyZi00MWY2LTljM2QtOWNlMTZmNjIyNmE4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc4ODA4ODVkMWUwM2Y5MTM5ZmY0MmNhYWNiOGUyMzlmODAxMjZhMjQzNDNiZWJmODQzMjM0OTFhNTQyZjkzNWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.HqnYCO_1VT7YYUiRGoBTfk0RA8_RBQU8w7zD1d0R_mQ"><img width="850" alt="Screenshot 2026-02-05 at 11 54 18" src="https://private-user-images.githubusercontent.com/54148038/545535396-d7fc7828-572f-41f6-9c3d-9ce16f6226a8.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81NDU1MzUzOTYtZDdmYzc4MjgtNTcyZi00MWY2LTljM2QtOWNlMTZmNjIyNmE4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc4ODA4ODVkMWUwM2Y5MTM5ZmY0MmNhYWNiOGUyMzlmODAxMjZhMjQzNDNiZWJmODQzMjM0OTFhNTQyZjkzNWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.HqnYCO_1VT7YYUiRGoBTfk0RA8_RBQU8w7zD1d0R_mQ" content-type-secured-asset="image/png" style="max-width: 100%;"></a> <h2>Services</h2> <h3>Probes</h3> <h4>UI</h4> <p>The UI now displays <a href="https://dstack.ai/docs/concepts/services/#probes" rel="nofollow">probe</a> statuses for services, helping monitor replica readiness and health.</p> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/36324149/545498052-abf0bdce-1462-49ab-ac3b-5e4e033b8d5b.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii8zNjMyNDE0OS81NDU0OTgwNTItYWJmMGJkY2UtMTQ2Mi00OWFiLWFjM2ItNWU0ZTAzM2I4ZDViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIzYmU2ZjJiZjliOTU1NGJmMjJiODIyMTc1M2RhZTFhMDM0NzE0MjI0MTlkMjU4NTZkMjcxOWU3YjM5MWRmYzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.joRZjSAIYnojAaK9ydVnN0oICpVv73toBMhY8ORjbBo"><img width="1348" height="689" alt="ui-probes" src="https://private-user-images.githubusercontent.com/36324149/545498052-abf0bdce-1462-49ab-ac3b-5e4e033b8d5b.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii8zNjMyNDE0OS81NDU0OTgwNTItYWJmMGJkY2UtMTQ2Mi00OWFiLWFjM2ItNWU0ZTAzM2I4ZDViLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIzYmU2ZjJiZjliOTU1NGJmMjJiODIyMTc1M2RhZTFhMDM0NzE0MjI0MTlkMjU4NTZkMjcxOWU3YjM5MWRmYzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.joRZjSAIYnojAaK9ydVnN0oICpVv73toBMhY8ORjbBo" content-type-secured-asset="image/png" style="max-width: 100%; height: auto; max-height: 689px;"></a> <h4><code>until_ready</code></h4> <p>A new <code>until_ready</code> option for probes allows stopping probe execution once the <code>ready_after</code> threshold is reached. This is useful for resource-intensive probes that only need to run during startup:</p> <div class="highlight highlight-source-yaml notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="probes: - type: http url: /health until_ready: true ready_after: 2"><pre><span class="pl-ent">probes</span>: - <span class="pl-ent">type</span>: <span class="pl-s">http</span> <span class="pl-ent">url</span>: <span class="pl-s">/health</span> <span class="pl-ent">until_ready</span>: <span class="pl-c1">true</span> <span class="pl-ent">ready_after</span>: <span class="pl-c1">2</span></pre></div> <h4>Model probes</h4> <p>Services that use the <a href="https://dstack.ai/docs/concepts/services/#model" rel="nofollow"><code>model</code></a> property to declare a chat model with an OpenAI-compatible interface now receive an automatically configured probe that checks model availability by requesting <code>/v1/chat/completions</code>.</p> <h2>Backends</h2> <h3>RunPod</h3> <h4>Community Cloud</h4> <p>RunPod Community Cloud is now disabled by default to ensure a more reliable experience. You can still enable Community Cloud in the <a href="https://dstack.ai/docs/concepts/backends/#runpod" rel="nofollow">backend settings</a>. <code>dstack</code> Sky users can enable Community Cloud only when using their own RunPod credentials.</p> <h3>CUDO</h3> <p>Due to CUDO Compute winding down its public on-demand offering, the <code>cudo</code> backend is now deprecated.</p> <h2>What's changed</h2> <ul> <li>[Docs] Replica groups by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Bihan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Bihan">@Bihan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3865987848" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3511" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3511/hovercard" href="https://github.com/dstackai/dstack/pull/3511">#3511</a></li> <li>[Docs] Added <code>Spot policy</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3869509974" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3512" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3512/hovercard" href="https://github.com/dstackai/dstack/pull/3512">#3512</a></li> <li>Switch UI to pagination-based projects and users API by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/olgenn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/olgenn">@olgenn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3860034086" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3503" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3503/hovercard" href="https://github.com/dstackai/dstack/pull/3503">#3503</a></li> <li>[UI] Add Spot policy configuration option to the fleet wizard by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/olgenn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/olgenn">@olgenn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3872334095" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3519" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3519/hovercard" href="https://github.com/dstackai/dstack/pull/3519">#3519</a></li> <li>Rename event target filters in UI by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3872148081" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3517" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3517/hovercard" href="https://github.com/dstackai/dstack/pull/3517">#3517</a></li> <li>[Docs] Add dstack skill by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3877956327" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3525" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3525/hovercard" href="https://github.com/dstackai/dstack/pull/3525">#3525</a></li> <li>[Docs] Remove the mention of the gateway endpoint <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3871544995" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3514" data-hovercard-type="issue" data-hovercard-url="/dstackai/dstack/issues/3514/hovercard" href="https://github.com/dstackai/dstack/issues/3514">#3514</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3872152977" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3518" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3518/hovercard" href="https://github.com/dstackai/dstack/pull/3518">#3518</a></li> <li>Add service and replica registration events by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3872132589" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3516" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3516/hovercard" href="https://github.com/dstackai/dstack/pull/3516">#3516</a></li> <li>[Bug]: Refresh button does not work on list pages by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/olgenn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/olgenn">@olgenn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3872406150" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3520" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3520/hovercard" href="https://github.com/dstackai/dstack/pull/3520">#3520</a></li> <li>[Feature]: Show probe statuses in the UI by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/olgenn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/olgenn">@olgenn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3872568477" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3521" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3521/hovercard" href="https://github.com/dstackai/dstack/pull/3521">#3521</a></li> <li>[Runpod] Make Community Cloud an "opt-in" (disable by default) by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3890333777" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3534" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3534/hovercard" href="https://github.com/dstackai/dstack/pull/3534">#3534</a></li> <li>[Services] Add default probes if model is set by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3872935230" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3524" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3524/hovercard" href="https://github.com/dstackai/dstack/pull/3524">#3524</a></li> <li>[Docs] Update SKILL.md by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3891321992" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3536" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3536/hovercard" href="https://github.com/dstackai/dstack/pull/3536">#3536</a></li> <li>[CLI]: <code>dstack event --watch</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3888384149" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3533" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3533/hovercard" href="https://github.com/dstackai/dstack/pull/3533">#3533</a></li> <li>Add <code>/api/project/{project_name}/instances/get</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3891128809" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3535" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3535/hovercard" href="https://github.com/dstackai/dstack/pull/3535">#3535</a></li> <li>Add run in-place update event by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3892852522" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3540" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3540/hovercard" href="https://github.com/dstackai/dstack/pull/3540">#3540</a></li> <li>Add job in-place update event by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3892853330" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3541" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3541/hovercard" href="https://github.com/dstackai/dstack/pull/3541">#3541</a></li> <li>Add probe <code>until_ready</code> configuration option by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3884665627" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3530" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3530/hovercard" href="https://github.com/dstackai/dstack/pull/3530">#3530</a></li> <li>CLI crashes with 'Operation not permitted' when log file is not writable by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3891624733" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3538" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3538/hovercard" href="https://github.com/dstackai/dstack/pull/3538">#3538</a></li> <li>[Docs] Removed <code>cudo</code> backend by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3891855904" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3539" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3539/hovercard" href="https://github.com/dstackai/dstack/pull/3539">#3539</a></li> <li>[UX] Improve <code>dstack fleet</code> output layout by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3883037894" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3529" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3529/hovercard" href="https://github.com/dstackai/dstack/pull/3529">#3529</a></li> <li>[UX] Remove creation_policy from Concept by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3897066053" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3542" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3542/hovercard" href="https://github.com/dstackai/dstack/pull/3542">#3542</a></li> <li>[Bug]: Run doesn't show Waiting runner limit exceeded in Error by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3897567646" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3546" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3546/hovercard" href="https://github.com/dstackai/dstack/pull/3546">#3546</a></li> <li>[Docs] Update SKILL.md by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3898308952" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3547" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3547/hovercard" href="https://github.com/dstackai/dstack/pull/3547">#3547</a></li> <li>Fix <code>probes=None</code> client incompatibility by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3897481968" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3544" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3544/hovercard" href="https://github.com/dstackai/dstack/pull/3544">#3544</a></li> <li>Fix <code>probes=None</code> server incompatibility by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3897276002" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3543" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3543/hovercard" href="https://github.com/dstackai/dstack/pull/3543">#3543</a></li> </ul> <p><strong>Full changelog</strong>: <a class="commit-link" href="https://github.com/dstackai/dstack/compare/0.20.7...0.20.8"><tt>0.20.7...0.20.8</tt></a></p> jvstme tag:github.com,2008:Repository/444377346/0.20.7 2026-01-28T16:48:36Z 0.20.7 <h2>Services</h2> <h3>Replica groups</h3> <p>A service can now include multiple replica groups. Each group can define its own <code>commands</code>, <code>resources</code> spec, and <code>scaling</code> rules.</p> <div class="highlight highlight-source-yaml notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="type: service name: llama-8b-service image: lmsysorg/sglang:latest env: - MODEL_ID=deepseek-ai/DeepSeek-R1-Distill-Llama-8B replicas: - count: 1..2 scaling: metric: rps target: 10 commands: - | python -m sglang.launch_server \ --model-path $MODEL_ID \ --port 8000 \ --trust-remote-code resources: gpu: 48GB - count: 1..4 scaling: metric: rps target: 5 commands: - | python -m sglang.launch_server \ --model-path $MODEL_ID \ --port 8000 \ --trust-remote-code resources: gpu: 24GB port: 8000 model: deepseek-ai/DeepSeek-R1-Distill-Llama-8B"><pre><span class="pl-ent">type</span>: <span class="pl-s">service</span> <span class="pl-ent">name</span>: <span class="pl-s">llama-8b-service</span> <span class="pl-ent">image</span>: <span class="pl-s">lmsysorg/sglang:latest</span> <span class="pl-ent">env</span>: - <span class="pl-s">MODEL_ID=deepseek-ai/DeepSeek-R1-Distill-Llama-8B</span> <span class="pl-ent">replicas</span>: - <span class="pl-ent">count</span>: <span class="pl-s">1..2</span> <span class="pl-ent">scaling</span>: <span class="pl-ent">metric</span>: <span class="pl-s">rps</span> <span class="pl-ent">target</span>: <span class="pl-c1">10</span> <span class="pl-ent">commands</span>: - <span class="pl-s">|</span> <span class="pl-s"> python -m sglang.launch_server \</span> <span class="pl-s"> --model-path $MODEL_ID \</span> <span class="pl-s"> --port 8000 \</span> <span class="pl-s"> --trust-remote-code</span> <span class="pl-s"></span> <span class="pl-ent">resources</span>: <span class="pl-ent">gpu</span>: <span class="pl-s">48GB</span> - <span class="pl-ent">count</span>: <span class="pl-s">1..4</span> <span class="pl-ent">scaling</span>: <span class="pl-ent">metric</span>: <span class="pl-s">rps</span> <span class="pl-ent">target</span>: <span class="pl-c1">5</span> <span class="pl-ent">commands</span>: - <span class="pl-s">|</span> <span class="pl-s"> python -m sglang.launch_server \</span> <span class="pl-s"> --model-path $MODEL_ID \</span> <span class="pl-s"> --port 8000 \</span> <span class="pl-s"> --trust-remote-code</span> <span class="pl-s"></span> <span class="pl-ent">resources</span>: <span class="pl-ent">gpu</span>: <span class="pl-s">24GB</span> <span class="pl-ent">port</span>: <span class="pl-c1">8000</span> <span class="pl-ent">model</span>: <span class="pl-s">deepseek-ai/DeepSeek-R1-Distill-Llama-8B</span></pre></div> <div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>Properties such as <code>regions</code>, <code>port</code>, <code>image</code>, <code>env</code> and some other cannot be configured per replica group. This support is coming soon.</p> </div> <div class="markdown-alert markdown-alert-note"><p class="markdown-alert-title"><svg class="octicon octicon-info mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Note</p><p>Native support for disaggregated prefill and decode, allowing both worker types to run within a single service, is coming soon.</p> </div> <h2>Events</h2> <p>Events are now also supported for volumes, gateways, and secrets.</p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ dstack event --target-gateway my-gateway [2026-01-28 11:53:03] [👤admin] [gateway my-gateway] Gateway created. Status: SUBMITTED [2026-01-28 11:53:32] [gateway my-gateway] Gateway status changed SUBMITTED -&gt; PROVISIONING [2026-01-28 11:54:46] [gateway my-gateway] Gateway status changed PROVISIONING -&gt; RUNNING [2026-01-28 11:55:08] [👤admin] [gateway my-gateway] Gateway set as default"><pre>$ dstack event --target-gateway my-gateway [2026-01-28 11:53:03] [👤admin] [gateway my-gateway] Gateway created. Status: SUBMITTED [2026-01-28 11:53:32] [gateway my-gateway] Gateway status changed SUBMITTED -<span class="pl-k">&gt;</span> PROVISIONING [2026-01-28 11:54:46] [gateway my-gateway] Gateway status changed PROVISIONING -<span class="pl-k">&gt;</span> RUNNING [2026-01-28 11:55:08] [👤admin] [gateway my-gateway] Gateway <span class="pl-c1">set</span> as default</pre></div> <p>Instance events now also include reachability and health events.</p> <p>Finally, we have added <a href="https://dstack.ai/docs/concepts/events/" rel="nofollow">Events</a> under <code>Concepts</code> in the documentation.</p> <h2>CLI</h2> <h3><code>dstack project</code></h3> <p>The <code>dstack project</code> and <code>dstack project set-default</code> commands now allow you to interactively select the default project when these commands are run without arguments.</p> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/54148038/541732537-1ce0fed9-4f81-479a-89be-0b59379ed307.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81NDE3MzI1MzctMWNlMGZlZDktNGY4MS00NzlhLTg5YmUtMGI1OTM3OWVkMzA3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMyYjA4ODM3NTgxNzVmNmFiMWUxYzM0YTk5NDE4YWRkMTVhZWY2YjJiODg2NzY0NDE2MjhhZDc4OGM2NWYxODImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.hKHyy-_L_k3IkbkdPbCefXbCOgCbXJ9efo9d7ErARys"><img width="750" alt="dstack-cli-project" src="https://private-user-images.githubusercontent.com/54148038/541732537-1ce0fed9-4f81-479a-89be-0b59379ed307.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81NDE3MzI1MzctMWNlMGZlZDktNGY4MS00NzlhLTg5YmUtMGI1OTM3OWVkMzA3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMyYjA4ODM3NTgxNzVmNmFiMWUxYzM0YTk5NDE4YWRkMTVhZWY2YjJiODg2NzY0NDE2MjhhZDc4OGM2NWYxODImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.hKHyy-_L_k3IkbkdPbCefXbCOgCbXJ9efo9d7ErARys" content-type-secured-asset="image/png" style="max-width: 100%;"></a> <h3><code>dstack login</code></h3> <p>The <code>dstack login</code> command can now be run without arguments. In this case, it will interactively ask for the URL and provider if needed. If you want to use dstack Sky, you can simply press Enter without entering a URL or provider.</p> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/54148038/541732685-6c596ee4-7ca0-4d68-9e2d-93bcaef28ca7.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81NDE3MzI2ODUtNmM1OTZlZTQtN2NhMC00ZDY4LTllMmQtOTNiY2FlZjI4Y2E3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFkZWE5ZWJhNGVlMWJmN2JkMTBiMDI5OGQxM2FlMjhjN2YyOTA4ZjRhYWVlZDFjMTMyMDA3YTQ3NjgyZjE0M2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.AI4r2adpRE3yIokzDUQixFXP4BWwxIs66uWP22lRVV8"><img width="750" alt="dstack-cli-login" src="https://private-user-images.githubusercontent.com/54148038/541732685-6c596ee4-7ca0-4d68-9e2d-93bcaef28ca7.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81NDE3MzI2ODUtNmM1OTZlZTQtN2NhMC00ZDY4LTllMmQtOTNiY2FlZjI4Y2E3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFkZWE5ZWJhNGVlMWJmN2JkMTBiMDI5OGQxM2FlMjhjN2YyOTA4ZjRhYWVlZDFjMTMyMDA3YTQ3NjgyZjE0M2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.AI4r2adpRE3yIokzDUQixFXP4BWwxIs66uWP22lRVV8" content-type-secured-asset="image/png" style="max-width: 100%;"></a> <p>Also, if you have multiple projects, the command will prompt you to select the default project as well.</p> <h2>What's changed</h2> <ul> <li>Implement pagination for <code>/api/project/list</code> and <code>/api/users/list</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3846245607" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3489" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3489/hovercard" href="https://github.com/dstackai/dstack/pull/3489">#3489</a></li> <li>Update dstack server CLI logo by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3769331540" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3438" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3438/hovercard" href="https://github.com/dstackai/dstack/pull/3438">#3438</a></li> <li>Move pytest.ini options to pyproject.toml by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3846765841" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3491" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3491/hovercard" href="https://github.com/dstackai/dstack/pull/3491">#3491</a></li> <li>[UX] Make <code>dstack project</code> and <code>dstack project set-default</code> interactive for default project selection by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3843358360" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3488" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3488/hovercard" href="https://github.com/dstackai/dstack/pull/3488">#3488</a></li> <li>Add replica groups in dstack-service by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Bihan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Bihan">@Bihan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3749480948" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3408" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3408/hovercard" href="https://github.com/dstackai/dstack/pull/3408">#3408</a></li> <li>[chore]: Add <code>list_events</code> utility for unit tests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3848316718" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3493" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3493/hovercard" href="https://github.com/dstackai/dstack/pull/3493">#3493</a></li> <li>[Docs]: Fix k8s backend config example by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3853336821" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3495" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3495/hovercard" href="https://github.com/dstackai/dstack/pull/3495">#3495</a></li> <li>Move ruff.toml to pyproject.toml by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3854751135" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3496" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3496/hovercard" href="https://github.com/dstackai/dstack/pull/3496">#3496</a></li> <li>Events: instance/job reachability and health by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3835144894" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3482" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3482/hovercard" href="https://github.com/dstackai/dstack/pull/3482">#3482</a></li> <li>Volume events by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3848456665" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3494" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3494/hovercard" href="https://github.com/dstackai/dstack/pull/3494">#3494</a></li> <li>Set INSTANCE_UNREACHABLE for unreachable on-demand instances by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3855133531" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3497" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3497/hovercard" href="https://github.com/dstackai/dstack/pull/3497">#3497</a></li> <li>Support gateway events in API, CLI, and UI by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3857590729" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3499" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3499/hovercard" href="https://github.com/dstackai/dstack/pull/3499">#3499</a></li> <li>Use numeric replica-group names by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Bihan/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Bihan">@Bihan</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3859288120" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3502" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3502/hovercard" href="https://github.com/dstackai/dstack/pull/3502">#3502</a></li> <li>Add gateway lifecycle events by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3857621572" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3500" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3500/hovercard" href="https://github.com/dstackai/dstack/pull/3500">#3500</a></li> <li>Docs minor improvements by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3857995523" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3501" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3501/hovercard" href="https://github.com/dstackai/dstack/pull/3501">#3501</a></li> <li>Support secret events in API, CLI, and UI by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3860858087" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3504" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3504/hovercard" href="https://github.com/dstackai/dstack/pull/3504">#3504</a></li> <li>[Docs] Events <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3738871832" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3397" data-hovercard-type="issue" data-hovercard-url="/dstackai/dstack/issues/3397/hovercard" href="https://github.com/dstackai/dstack/issues/3397">#3397</a> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3861138905" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3506" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3506/hovercard" href="https://github.com/dstackai/dstack/pull/3506">#3506</a></li> <li>[UX] Extend <code>dstack login</code> with interactive selection of <code>url</code> and default project by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3848011647" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3492" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3492/hovercard" href="https://github.com/dstackai/dstack/pull/3492">#3492</a></li> <li>Add secret lifecycle events by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3860920234" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3505" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3505/hovercard" href="https://github.com/dstackai/dstack/pull/3505">#3505</a></li> <li>Fix apply plan compatibility with old servers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3864245022" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3507" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3507/hovercard" href="https://github.com/dstackai/dstack/pull/3507">#3507</a></li> <li>[UI] Minor tweaks by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3864813873" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3508" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3508/hovercard" href="https://github.com/dstackai/dstack/pull/3508">#3508</a></li> <li>Fix <code>dstack event</code> compat. with older servers by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3865337074" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3509" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3509/hovercard" href="https://github.com/dstackai/dstack/pull/3509">#3509</a></li> <li>Fix scaling during update to replica groups by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3865381805" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3510" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3510/hovercard" href="https://github.com/dstackai/dstack/pull/3510">#3510</a></li> </ul> <p><strong>Full changelog</strong>: <a class="commit-link" href="https://github.com/dstackai/dstack/compare/0.20.6...0.20.7"><tt>0.20.6...0.20.7</tt></a></p> jvstme tag:github.com,2008:Repository/444377346/0.20.6 2026-01-21T13:54:04Z 0.20.6 <h2>Server deployment</h2> <h3>Memory optimization</h3> <p>This release reduces peak server memory usage. Previously, memory grew with the total number of instances ever submitted; this is now fixed. We recommend upgrading if memory usage increases over time.</p> <h3>Logs storage</h3> <h4>Fluent Bit + Elasticsearch/OpenSearch</h4> <p>Run logs can now be stored in your own log storage via Fluent Bit. At the same time, dstack can now read run logs from Elasticsearch/OpenSearch (to display in the UI and CLI), if Fluent Bit ships the logs there.</p> <p>See the <a href="https://dstack.ai/docs/guides/server-deployment/#fluent-bit" rel="nofollow">docs</a> for more details.</p> <h2>Fleets</h2> <p>Since 0.20, <code>dstack</code> requires at least one fleet to be created before you can submit any runs. To make this easier, we’ve simplified default fleet creation during project setup in the UI:</p> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/54148038/538573127-f8ec3798-b122-4d24-9872-23cc06b88a06.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81Mzg1NzMxMjctZjhlYzM3OTgtYjEyMi00ZDI0LTk4NzItMjNjYzA2Yjg4YTA2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc1NWQ2NjkzNjdiMzIyNmMyYWE3YTBjNzlmZTYwODZmZTkxN2I3ZTIzYjQzNWI3YjllZjNkZWVmNWE5M2YzYTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.PwQ2rgOgXmMNsqR3rpH1Qf3qTZCRYYnaq0kZET4e-iI"><img width="750" src="https://private-user-images.githubusercontent.com/54148038/538573127-f8ec3798-b122-4d24-9872-23cc06b88a06.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81Mzg1NzMxMjctZjhlYzM3OTgtYjEyMi00ZDI0LTk4NzItMjNjYzA2Yjg4YTA2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc1NWQ2NjkzNjdiMzIyNmMyYWE3YTBjNzlmZTYwODZmZTkxN2I3ZTIzYjQzNWI3YjllZjNkZWVmNWE5M2YzYTAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.PwQ2rgOgXmMNsqR3rpH1Qf3qTZCRYYnaq0kZET4e-iI" content-type-secured-asset="image/png" style="max-width: 100%;"></a> <p>In addition, if your project doesn’t have a fleet, the UI will prompt you to create one.</p> <h2>What's Changed</h2> <ul> <li>Hotfix. Fixed generation fleet fields in project forms by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/olgenn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/olgenn">@olgenn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3837918830" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3486" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3486/hovercard" href="https://github.com/dstackai/dstack/pull/3486">#3486</a></li> <li>Add missing Box imports by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3837732688" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3485" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3485/hovercard" href="https://github.com/dstackai/dstack/pull/3485">#3485</a></li> <li>Use the same metrics endpoint label for 404 requests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3803942539" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3455" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3455/hovercard" href="https://github.com/dstackai/dstack/pull/3455">#3455</a></li> <li>Refactoring Inspect page by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/olgenn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/olgenn">@olgenn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3805742557" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3457" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3457/hovercard" href="https://github.com/dstackai/dstack/pull/3457">#3457</a></li> <li>Migrate from Slurm by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3798214333" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3454" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3454/hovercard" href="https://github.com/dstackai/dstack/pull/3454">#3454</a></li> <li>[Internal]: Handle GitHub API errors in <code>release_notes.py</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3814166789" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3463" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3463/hovercard" href="https://github.com/dstackai/dstack/pull/3463">#3463</a></li> <li>Display <code>InstanceAvailability.NO_BALANCE</code> in CLI by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3813979323" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3460" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3460/hovercard" href="https://github.com/dstackai/dstack/pull/3460">#3460</a></li> <li>Do not return <code>NO_BALANCE</code> to older clients by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3814013759" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3462" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3462/hovercard" href="https://github.com/dstackai/dstack/pull/3462">#3462</a></li> <li>Optimize job submissions loading by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3816572440" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3466" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3466/hovercard" href="https://github.com/dstackai/dstack/pull/3466">#3466</a></li> <li>[CLI] Add <code>--memory</code> option to <code>apply</code> and <code>offer</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3813986680" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3461" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3461/hovercard" href="https://github.com/dstackai/dstack/pull/3461">#3461</a></li> <li>[runner] Rework and fix user processing by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3804491371" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3456" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3456/hovercard" href="https://github.com/dstackai/dstack/pull/3456">#3456</a></li> <li>Optimize fleet instances db queries by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3817040892" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3467" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3467/hovercard" href="https://github.com/dstackai/dstack/pull/3467">#3467</a></li> <li>Kubernetes: adjust offer GPU count by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3818283183" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3469" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3469/hovercard" href="https://github.com/dstackai/dstack/pull/3469">#3469</a></li> <li>Add missing job status change event for scaling by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3816514671" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3465" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3465/hovercard" href="https://github.com/dstackai/dstack/pull/3465">#3465</a></li> <li>Fix <code>find_optimal_fleet_with_offers</code> log message by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3822291853" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3470" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3470/hovercard" href="https://github.com/dstackai/dstack/pull/3470">#3470</a></li> <li>Fix missing instance lock in delete_fleets by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3828697157" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3471" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3471/hovercard" href="https://github.com/dstackai/dstack/pull/3471">#3471</a></li> <li>Optimize list and get fleets by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3829400226" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3472" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3472/hovercard" href="https://github.com/dstackai/dstack/pull/3472">#3472</a></li> <li>feat(logging): add fluent-bit log shipping by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DragonStuff/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DragonStuff">@DragonStuff</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3764450507" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3431" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3431/hovercard" href="https://github.com/dstackai/dstack/pull/3431">#3431</a></li> <li>Adjust fluent-bit logging integration by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3832387016" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3478" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3478/hovercard" href="https://github.com/dstackai/dstack/pull/3478">#3478</a></li> <li>Emit events for instance status changes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3831394806" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3477" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3477/hovercard" href="https://github.com/dstackai/dstack/pull/3477">#3477</a></li> <li>[runner] Restore <code>--home-dir</code> option as no-op by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3832812490" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3480" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3480/hovercard" href="https://github.com/dstackai/dstack/pull/3480">#3480</a></li> <li>[UI] Default fleet in project wizard by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/olgenn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/olgenn">@olgenn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3815015617" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3464" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3464/hovercard" href="https://github.com/dstackai/dstack/pull/3464">#3464</a></li> <li>Support shared AWS compute caches by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3836924461" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3483" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3483/hovercard" href="https://github.com/dstackai/dstack/pull/3483">#3483</a></li> <li>[UI] Minor re-order in the sidebar by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3837284027" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3484" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3484/hovercard" href="https://github.com/dstackai/dstack/pull/3484">#3484</a></li> </ul> <p><strong>Full changelog</strong>: <a class="commit-link" href="https://github.com/dstackai/dstack/compare/0.20.3...0.20.6"><tt>0.20.3...0.20.6</tt></a></p> peterschmidt85 tag:github.com,2008:Repository/444377346/0.20.5 2026-01-21T13:54:29Z 0.20.5 <div class="markdown-alert markdown-alert-warning"><p class="markdown-alert-title"><svg class="octicon octicon-alert mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Warning</p> <p><strong>Be sure to update to <a href="https://github.com/dstackai/dstack/releases/0.20.6">0.20.6</a>, which includes important fixes.</strong></p> </div> <h2>What's Changed</h2> <ul> <li>Add missing Box imports by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3837732688" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3485" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3485/hovercard" href="https://github.com/dstackai/dstack/pull/3485">#3485</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/dstackai/dstack/compare/0.20.4...0.20.5"><tt>0.20.4...0.20.5</tt></a></p> r4victor tag:github.com,2008:Repository/444377346/0.20.4 2026-01-21T13:54:47Z 0.20.4 <div class="markdown-alert markdown-alert-warning"><p class="markdown-alert-title"><svg class="octicon octicon-alert mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Warning</p> <p><strong>Be sure to update to <a href="https://github.com/dstackai/dstack/releases/0.20.6">0.20.6</a>, which includes important fixes.</strong></p> </div> <h2>What's changed</h2> <ul> <li>Use the same metrics endpoint label for 404 requests by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3803942539" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3455" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3455/hovercard" href="https://github.com/dstackai/dstack/pull/3455">#3455</a></li> <li>Refactoring Inspect page by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/olgenn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/olgenn">@olgenn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3805742557" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3457" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3457/hovercard" href="https://github.com/dstackai/dstack/pull/3457">#3457</a></li> <li>Migrate from Slurm by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3798214333" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3454" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3454/hovercard" href="https://github.com/dstackai/dstack/pull/3454">#3454</a></li> <li>[Internal]: Handle GitHub API errors in <code>release_notes.py</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3814166789" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3463" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3463/hovercard" href="https://github.com/dstackai/dstack/pull/3463">#3463</a></li> <li>Display <code>InstanceAvailability.NO_BALANCE</code> in CLI by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3813979323" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3460" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3460/hovercard" href="https://github.com/dstackai/dstack/pull/3460">#3460</a></li> <li>Do not return <code>NO_BALANCE</code> to older clients by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3814013759" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3462" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3462/hovercard" href="https://github.com/dstackai/dstack/pull/3462">#3462</a></li> <li>Optimize job submissions loading by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3816572440" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3466" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3466/hovercard" href="https://github.com/dstackai/dstack/pull/3466">#3466</a></li> <li>[CLI] Add <code>--memory</code> option to <code>apply</code> and <code>offer</code> by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3813986680" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3461" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3461/hovercard" href="https://github.com/dstackai/dstack/pull/3461">#3461</a></li> <li>[runner] Rework and fix user processing by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3804491371" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3456" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3456/hovercard" href="https://github.com/dstackai/dstack/pull/3456">#3456</a></li> <li>Optimize fleet instances db queries by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3817040892" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3467" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3467/hovercard" href="https://github.com/dstackai/dstack/pull/3467">#3467</a></li> <li>Kubernetes: adjust offer GPU count by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3818283183" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3469" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3469/hovercard" href="https://github.com/dstackai/dstack/pull/3469">#3469</a></li> <li>Add missing job status change event for scaling by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3816514671" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3465" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3465/hovercard" href="https://github.com/dstackai/dstack/pull/3465">#3465</a></li> <li>Fix <code>find_optimal_fleet_with_offers</code> log message by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3822291853" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3470" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3470/hovercard" href="https://github.com/dstackai/dstack/pull/3470">#3470</a></li> <li>Fix missing instance lock in delete_fleets by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3828697157" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3471" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3471/hovercard" href="https://github.com/dstackai/dstack/pull/3471">#3471</a></li> <li>Optimize list and get fleets by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3829400226" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3472" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3472/hovercard" href="https://github.com/dstackai/dstack/pull/3472">#3472</a></li> <li>feat(logging): add fluent-bit log shipping by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DragonStuff/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/DragonStuff">@DragonStuff</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3764450507" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3431" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3431/hovercard" href="https://github.com/dstackai/dstack/pull/3431">#3431</a></li> <li>Adjust fluent-bit logging integration by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3832387016" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3478" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3478/hovercard" href="https://github.com/dstackai/dstack/pull/3478">#3478</a></li> <li>Emit events for instance status changes by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3831394806" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3477" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3477/hovercard" href="https://github.com/dstackai/dstack/pull/3477">#3477</a></li> <li>[runner] Restore <code>--home-dir</code> option as no-op by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3832812490" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3480" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3480/hovercard" href="https://github.com/dstackai/dstack/pull/3480">#3480</a></li> <li>[UI] Default fleet in project wizard by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/olgenn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/olgenn">@olgenn</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3815015617" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3464" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3464/hovercard" href="https://github.com/dstackai/dstack/pull/3464">#3464</a></li> <li>Support shared AWS compute caches by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3836924461" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3483" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3483/hovercard" href="https://github.com/dstackai/dstack/pull/3483">#3483</a></li> <li>[UI] Minor re-order in the sidebar by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3837284027" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3484" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3484/hovercard" href="https://github.com/dstackai/dstack/pull/3484">#3484</a></li> </ul> <p><strong>Full changelog</strong>: <a class="commit-link" href="https://github.com/dstackai/dstack/compare/0.20.3...0.20.4"><tt>0.20.3...0.20.4</tt></a></p> r4victor tag:github.com,2008:Repository/444377346/0.20.3 2026-01-08T18:03:00Z 0.20.3 <h2>Dev environments</h2> <h3>Windsurf IDE</h3> <p>Dev environments now support Windsurf as a first-class IDE option alongside VSCode and Cursor.</p> <div class="highlight highlight-source-yaml notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="type: dev-environment ide: windsurf repos: - https://github.com/dstackai/dstack resources: gpu: 24GB..:1"><pre><span class="pl-ent">type</span>: <span class="pl-s">dev-environment</span> <span class="pl-ent">ide</span>: <span class="pl-s">windsurf</span> <span class="pl-ent">repos</span>: - <span class="pl-s">https://github.com/dstackai/dstack</span> <span class="pl-ent">resources</span>: <span class="pl-ent">gpu</span>: <span class="pl-s">24GB..:1</span></pre></div> <p><code>dstack</code> provisions an instance for your dev environment and seamlessly connects your local Windsurf editor to it.</p> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/36324149/533448988-94efb2c4-fb68-44fb-aa49-a08725754d5e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii8zNjMyNDE0OS81MzM0NDg5ODgtOTRlZmIyYzQtZmI2OC00NGZiLWFhNDktYTA4NzI1NzU0ZDVlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY2YjFmMjliODI5OTIwODU3OTJjMWNmNGU1MDI3Nzk3ZTcxZjIwMjhiNjc0NDFiNTU3ZTQyNTVhMDczYmY0ZGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.u_uFZNLxkXrGHZE2NZVtdZsET2afTW0xQJvBDP-WBfw"><img width="2000" height="1946" alt="dstack-windsurf-dev-environment-min" src="https://private-user-images.githubusercontent.com/36324149/533448988-94efb2c4-fb68-44fb-aa49-a08725754d5e.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii8zNjMyNDE0OS81MzM0NDg5ODgtOTRlZmIyYzQtZmI2OC00NGZiLWFhNDktYTA4NzI1NzU0ZDVlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY2YjFmMjliODI5OTIwODU3OTJjMWNmNGU1MDI3Nzk3ZTcxZjIwMjhiNjc0NDFiNTU3ZTQyNTVhMDczYmY0ZGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.u_uFZNLxkXrGHZE2NZVtdZsET2afTW0xQJvBDP-WBfw" content-type-secured-asset="image/png" style="max-width: 100%; height: auto; max-height: 1946px;"></a> <h2>Troubleshooting</h2> <h3>Runs/fleets/volumes/gateways JSON via CLI</h3> <p>You can now inspect the full JSON state of runs, fleets, volumes, and gateways using these CLI commands:</p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="$ dstack run get &lt;name&gt; --json $ dstack fleet get &lt;name&gt; --json $ dstack volume get &lt;name&gt; --json $ dstack gateway get &lt;name&gt; --json"><pre>$ dstack run get <span class="pl-k">&lt;</span>name<span class="pl-k">&gt;</span> --json $ dstack fleet get <span class="pl-k">&lt;</span>name<span class="pl-k">&gt;</span> --json $ dstack volume get <span class="pl-k">&lt;</span>name<span class="pl-k">&gt;</span> --json $ dstack gateway get <span class="pl-k">&lt;</span>name<span class="pl-k">&gt;</span> --json</pre></div> <h3>Runs/fleets JSON via UI</h3> <p>The UI includes new "Inspect" tabs with read-only JSON viewers for runs and fleets, making it easier to debug and understand resource states.</p> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/54148038/533453301-4a8cb884-1217-4f6b-8482-57e415ddfe2f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81MzM0NTMzMDEtNGE4Y2I4ODQtMTIxNy00ZjZiLTg0ODItNTdlNDE1ZGRmZTJmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI0NGE1OTJjOTUxYmJiZDEyMGM3NDFiM2EzYzcwZDVkMDkzZTU4YmUwZmNjMTE1ZjUwMjFjMGVkMGQyZDY3Y2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.5Q3qGNn2LtyISr5U0lAVNB500Qu2krm_GF2Dkkb74ss"><img width="1729" height="978" alt="dstack-inspect-ui-min" src="https://private-user-images.githubusercontent.com/54148038/533453301-4a8cb884-1217-4f6b-8482-57e415ddfe2f.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzI5MDg4OTQsIm5iZiI6MTc3MjkwODU5NCwicGF0aCI6Ii81NDE0ODAzOC81MzM0NTMzMDEtNGE4Y2I4ODQtMTIxNy00ZjZiLTg0ODItNTdlNDE1ZGRmZTJmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzA3VDE4MzYzNFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI0NGE1OTJjOTUxYmJiZDEyMGM3NDFiM2EzYzcwZDVkMDkzZTU4YmUwZmNjMTE1ZjUwMjFjMGVkMGQyZDY3Y2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.5Q3qGNn2LtyISr5U0lAVNB500Qu2krm_GF2Dkkb74ss" content-type-secured-asset="image/png" style="max-width: 100%; height: auto; max-height: 978px;"></a> <h2>What's changed</h2> <ul> <li>Adjust kubernetes gpu matching for RTX5090 by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/r4victor/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/r4victor">@r4victor</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3769789012" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3440" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3440/hovercard" href="https://github.com/dstackai/dstack/pull/3440">#3440</a></li> <li>[runner] Fix MPI hostfile by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3769911964" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3441" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3441/hovercard" href="https://github.com/dstackai/dstack/pull/3441">#3441</a></li> <li>[Crusoe] Minor edits by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3785499104" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3448" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3448/hovercard" href="https://github.com/dstackai/dstack/pull/3448">#3448</a></li> <li>[Dev environments] Support windsurf IDE by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3779537302" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3444" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3444/hovercard" href="https://github.com/dstackai/dstack/pull/3444">#3444</a></li> <li>Add <code>processing instance</code> debug log message by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jvstme/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jvstme">@jvstme</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3791729568" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3450" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3450/hovercard" href="https://github.com/dstackai/dstack/pull/3450">#3450</a></li> <li>[runner] Decouple Server and Executor by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/un-def/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/un-def">@un-def</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3784451952" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3447" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3447/hovercard" href="https://github.com/dstackai/dstack/pull/3447">#3447</a></li> <li>[Feature] Allow to see JSON state of runs/volumes/fleets/gateways via CLI/UI by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterschmidt85/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterschmidt85">@peterschmidt85</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3779609701" data-permission-text="Title is private" data-url="https://github.com/dstackai/dstack/issues/3445" data-hovercard-type="pull_request" data-hovercard-url="/dstackai/dstack/pull/3445/hovercard" href="https://github.com/dstackai/dstack/pull/3445">#3445</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/dstackai/dstack/compare/0.20.2...0.20.3"><tt>0.20.2...0.20.3</tt></a></p> jvstme