All releases

v0.4.58

Signedpublished October 12, 2026

What changed

  • See how much disk a workspace uses. A workspace's General tab has a new Disk row: the total, then the parts that make it up. Those are its /workspace volume, its Docker data if it is Docker-enabled, and its container, which covers everything else it has written, such as installed packages and the home directory. The card on the Workspaces page shows the total, with the parts when you point at it. Administrators get a Disk column for every workspace on the System page, stopped ones included. Snapshots are not counted here; they are listed where they always were. Measuring walks every volume on the server, so it happens in the background (at most every five minutes while someone is looking, and every half hour otherwise) and pages never wait for it. Each figure says how old it is. The API has it at GET /api/v1/workspaces/disk-usage.
  • The System page shows when it is still catching up. After you stop, start or resize a workspace, its row stays busy and Refresh spins until the list has reloaded. Before, the confirmation appeared while the row still showed the old state for a few seconds.
  • The nested domain section is no longer only about DevGrail. The Domains tab describes a nested domain as what it is: every name under it sent to a server in the workspace that handles its own TLS, whether that is Traefik, Caddy or another DevGrail. The form no longer previews an inner dashboard, and a claimed domain no longer lists settings for an inner DevGrail or links to one. The checklist says "Ready" once everything passes. The API and the MCP tools follow suit: a nested domain and its check no longer carry dashboard_url, and the check no longer carries inner_settings.

Container images

registry build 41
amd64853 MB
sha256:2f4e28dc59dd04f37f4414569cac7d5166e6e7e78d4636422fa6246b33281ee9
Download
arm64717 MB
sha256:463e6def84e50544425b898edf607a8dc696a5794aef90e1ce571d8ee2e14853
Download
registry build 84
amd6447 MB
sha256:efb3c305cf5d0929f72c9691b369c5c968eaf69f51f32d55d5d2599c0b53d998
Download
arm6445 MB
sha256:3295e6895e2025ca61e7cd5c5bcc870a5f70ab90a2c545ffec811078a72ad372
Download

Installer files

devgrail-desktop-files.tar.gz31 KBsha256:2f2bf722f47a45ee336dd9c9d76b984cb53840a8584b4a4e915543b247fe42bc
devgrail-desktop-install.sh46 KBsha256:f6dc82abc6b0624660adb45d6e234f1bc5b93f2e030e1cf39a976234f939efeb
devgrail-desktop-linux-amd6411 MBsha256:c46837f4879a727f4aed41b13bc4e31a22f72728908731db33a9dd8dc906795a
devgrail-desktop-linux-arm649.9 MBsha256:607d4adcd40f5712ed6d8b6fd5dc28e0416d005ec30645b260137ef95f838c22
docker-compose.yml27 KBsha256:5ba6b6d89a988ec87ac18f252a067a8e5902c291d945317ee2b0b2cef9c3e841
install.sh234 KBsha256:caf15cca443c16d8e1728f9c1c893ffc6c492dd6ca99aff1406556c2490c2414
traefik-dynamic-http.yml7 KBsha256:787e7e7ff8099a2dc084b4204a68f7f666561b5adf709ec7f859f9fae34d9163
traefik-dynamic.yml8 KBsha256:3fe40a3d1c61b71aacd1db9b5e20132c8e69d19d44e5f193f8a27375ed921273
uninstall.sh82 KBsha256:bb505e7b33f61de131f45dec9d76e80fb3e60bbdc227a2f5163760f9ac789778

Signature

ecdsa-p256-sha256key f1f1eaf642454d65

One signature covers every artifact above. It is made off this host, and neither this site nor the registry behind it can check it — that is the point, and it is why verifying it catches things a checksum from the same server cannot. How to verify it.

Verify devgrail-container (amd64)
curl -fsSL https://web-dev.trixibot.com/api/registry/releases/v0.4.58 -o release.json

# -j, not -r: -r appends a newline the signer never saw, and the check fails.
jq -j '.signature.payload'   release.json > payload
jq -r '.signature.signature' release.json | base64 -d > payload.sig

openssl dgst -sha256 -verify devgrail-release.pem -signature payload.sig payload
# -> Verified OK

# The payload must name this release, so an older signed one cannot be replayed.
head -2 payload

# ...and it must name this exact file. -qxF: whole line, literal.
grep -qxF 'image devgrail-container 41 amd64 2f4e28dc59dd04f37f4414569cac7d5166e6e7e78d4636422fa6246b33281ee9' payload && echo "digest is covered by the signature"
The signed payload — shown for reading, not for verifying

Copy this from the manifest with jq -j, never from this page: the signature covers exact bytes, and rendering here drops the trailing newline the signer included.

devgrail-release-signature-v1
release v0.4.58
asset devgrail-desktop-files.tar.gz 7 2f2bf722f47a45ee336dd9c9d76b984cb53840a8584b4a4e915543b247fe42bc
asset devgrail-desktop-install.sh 7 f6dc82abc6b0624660adb45d6e234f1bc5b93f2e030e1cf39a976234f939efeb
asset devgrail-desktop-linux-amd64 7 c46837f4879a727f4aed41b13bc4e31a22f72728908731db33a9dd8dc906795a
asset devgrail-desktop-linux-arm64 7 607d4adcd40f5712ed6d8b6fd5dc28e0416d005ec30645b260137ef95f838c22
asset docker-compose.yml 68 5ba6b6d89a988ec87ac18f252a067a8e5902c291d945317ee2b0b2cef9c3e841
asset install.sh 68 caf15cca443c16d8e1728f9c1c893ffc6c492dd6ca99aff1406556c2490c2414
asset traefik-dynamic-http.yml 67 787e7e7ff8099a2dc084b4204a68f7f666561b5adf709ec7f859f9fae34d9163
asset traefik-dynamic.yml 68 3fe40a3d1c61b71aacd1db9b5e20132c8e69d19d44e5f193f8a27375ed921273
asset uninstall.sh 68 bb505e7b33f61de131f45dec9d76e80fb3e60bbdc227a2f5163760f9ac789778
image devgrail-container 41 amd64 2f4e28dc59dd04f37f4414569cac7d5166e6e7e78d4636422fa6246b33281ee9
image devgrail-container 41 arm64 463e6def84e50544425b898edf607a8dc696a5794aef90e1ce571d8ee2e14853
image devgrail-server 84 amd64 efb3c305cf5d0929f72c9691b369c5c968eaf69f51f32d55d5d2599c0b53d998
image devgrail-server 84 arm64 3295e6895e2025ca61e7cd5c5bcc870a5f70ab90a2c545ffec811078a72ad372