Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
c1fd4fa
deno compile --desktop
littledivy Mar 10, 2026
e3c5eba
optimizationx
littledivy Mar 10, 2026
ab3aa52
stuff
littledivy Mar 13, 2026
35303e6
subcommand, config file, typings, various new apis, objectwrap
crowlKats Mar 15, 2026
ae266a6
keyboard events
crowlKats Mar 16, 2026
f88040d
fixes
crowlKats Mar 16, 2026
7e42709
fix
crowlKats Mar 16, 2026
c53a06a
fix
crowlKats Mar 17, 2026
a5a79b4
remove unrelated files
crowlKats Mar 18, 2026
a01c7d2
fixes
crowlKats Mar 18, 2026
3d54803
fixes
crowlKats Mar 18, 2026
5dbba23
fix event system to always work in hmr
crowlKats Mar 18, 2026
5f175bc
rework event system
crowlKats Mar 18, 2026
d3a86b0
mouse events
crowlKats Mar 19, 2026
81b38b4
multiple windows
crowlKats Mar 24, 2026
988ba1e
cleanup subcommand handling
crowlKats Mar 25, 2026
f3bb534
cleanup subcommand handling
crowlKats Mar 25, 2026
df09104
fix typechecking
crowlKats Mar 26, 2026
081c3fb
fix events
crowlKats Mar 26, 2026
7246832
add alert, confirm & prompt
crowlKats Mar 26, 2026
229483d
error reporting
crowlKats Mar 26, 2026
00a76fb
rework app menu and add contextmenu
crowlKats Mar 31, 2026
2d62bbc
implement devtools & executejs
crowlKats Apr 1, 2026
31722bf
better handling
crowlKats Apr 1, 2026
6d9327b
fixes, update typings
crowlKats Apr 1, 2026
0f0cce9
fmt
crowlKats Apr 1, 2026
1318260
fixes, add feature test
crowlKats Apr 2, 2026
48926ef
fixes
crowlKats Apr 2, 2026
0cd4037
random port allocation
crowlKats Apr 3, 2026
0a8bcc5
Merge branch 'main' into desktop-framework-hmr
crowlKats Apr 7, 2026
5698f27
fix
crowlKats Apr 7, 2026
faeb938
fix
crowlKats Apr 7, 2026
6f4088f
fixes
crowlKats Apr 15, 2026
5c9cfd6
Merge branch 'main' into desktop-framework-hmr
crowlKats Apr 15, 2026
8dd29ee
Merge branch 'main' into desktop-framework-hmr
crowlKats Apr 15, 2026
983a43e
size fixes
crowlKats Apr 15, 2026
a5f6922
set up WEF backend downloading
crowlKats Apr 16, 2026
d39a9b0
appimage output
crowlKats Apr 16, 2026
2dccfb1
inspect
crowlKats Apr 16, 2026
1357913
Merge remote-tracking branch 'divy/desktop-framework-hmr' into deskto…
crowlKats Apr 16, 2026
c21c5c0
unified devtools
crowlKats Apr 16, 2026
c39dc44
strip, even better debugging
crowlKats Apr 17, 2026
254ee1c
rework update js, implement isclosed & reload
crowlKats Apr 21, 2026
bf62c36
fix
crowlKats Apr 21, 2026
b2aa135
remove shelling out
crowlKats Apr 21, 2026
0c33bcc
dock API
crowlKats Apr 23, 2026
75838e7
tray API
crowlKats Apr 23, 2026
fb7b578
Merge remote-tracking branch 'divy/desktop-framework-hmr' into deskto…
crowlKats Apr 23, 2026
949126b
Merge branch 'main' into desktop-framework-hmr
crowlKats Apr 23, 2026
3d7db3f
fi lockfile
crowlKats Apr 23, 2026
4dc5a9f
add appimage runtimes
crowlKats Apr 23, 2026
7423175
fmt
crowlKats Apr 23, 2026
c39822d
use released crate
crowlKats Apr 24, 2026
ae2c596
Merge branch 'main' into desktop-framework-hmr
crowlKats Apr 30, 2026
9f5c9ec
fix(desktop): address security review on auto-update and backend down…
crowlKats May 1, 2026
e768fc3
fix(desktop): make HMR robust on the desktop runtime
crowlKats May 4, 2026
0ca355e
fix(desktop): make alert/confirm/prompt sync to fix deadlock
crowlKats May 5, 2026
13e5558
fix(desktop): harden zip extraction of WEF backend archives
crowlKats May 5, 2026
0353d80
fix(desktop): drop /tmp/deno_desktop_worker.log scaffolding
crowlKats May 5, 2026
eb10cd0
fix(desktop): reject malformed error_reporting_url
crowlKats May 5, 2026
59d9daa
fix(desktop): return Result from get_raw_window_handle
crowlKats May 5, 2026
1f319b0
fix(desktop): preserve .update on rename failure, copy via temp+rename
crowlKats May 5, 2026
4bef960
fix(desktop): kill WEF subprocess on parent Child drop
crowlKats May 5, 2026
3b1daff
fix(desktop): parse Info.plist via the plist crate
crowlKats May 5, 2026
22ef032
fix(desktop): close tar symlink-escape via unpack_in
crowlKats May 5, 2026
43bd276
fix(desktop): publish DENO_SERVE_ADDRESS before tokio runtime starts
crowlKats May 5, 2026
fc7bdee
fix(desktop): validate names before interpolating into launcher scripts
crowlKats May 5, 2026
53cca37
fix(desktop): bubble wgpu surface-creation failures to JS
crowlKats May 5, 2026
d2005ac
fix(desktop): atomic-rename WEF cache extraction
crowlKats May 5, 2026
72b81bb
chore(desktop): drop #17 / #23 from issues list
crowlKats May 5, 2026
ceae2f0
fix(desktop): cleanup batch — close out remaining audit items
crowlKats May 5, 2026
588cdfa
cleanup
crowlKats May 5, 2026
759e043
expand feature test
crowlKats May 5, 2026
b59be95
Merge branch 'main' into desktop-framework-hmr
crowlKats May 6, 2026
9c17ec2
fix
crowlKats May 6, 2026
75cdfb3
fix images
crowlKats May 6, 2026
a0b4a6f
Merge branch 'main' into desktop-framework-hmr
crowlKats May 11, 2026
34a0448
notifications, bundle ids & related, and more fixes
crowlKats May 13, 2026
d3642b9
Merge remote-tracking branch 'origin/desktop-framework-hmr' into desk…
crowlKats May 13, 2026
b3c4606
feature_test: add notification testing UI
crowlKats May 19, 2026
8b6bb58
tests, fixes
crowlKats May 19, 2026
cec9377
favicon icon detection
crowlKats May 27, 2026
9d6f4ea
fix(desktop): harmonize macOS code-signing identifier with bundle id
crowlKats May 29, 2026
13cc9fe
fix(rt): transpile TS files read from host FS in HMR mode
crowlKats May 29, 2026
900e9a6
Merge branch 'main' into desktop-framework-hmr
crowlKats Jun 2, 2026
2f15b30
feat(desktop): apply custom icon, JSX-aware runtime transpile, quiet VFS
crowlKats Jun 2, 2026
3458690
feat(desktop): give HMR app a clear name via WEF_APP_NAME
crowlKats Jun 3, 2026
2a63b2b
fix(desktop): keep HMR notifications working across relaunches
crowlKats Jun 3, 2026
38b1dae
feat(desktop): tray popover panels (frameless/non-activating windows …
crowlKats Jun 3, 2026
ffca8e1
update wef and fix typings
crowlKats Jun 4, 2026
6f5ce3f
fix(desktop): keep dev-mode artifacts out of the project cwd
crowlKats Jun 4, 2026
7b65103
fix tray event
crowlKats Jun 4, 2026
a51c4b7
update to laufey
crowlKats Jun 5, 2026
5397637
transparent titlebar
crowlKats Jun 6, 2026
297256c
fmt
crowlKats Jun 9, 2026
3b278d0
fix
crowlKats Jun 10, 2026
c1ee49e
dont require . for deno desktop framework detection
crowlKats Jun 10, 2026
55b8b9f
cleanup
crowlKats Jun 10, 2026
9883d62
add experimental warning
crowlKats Jun 10, 2026
f96f4fd
Merge branch 'main' into desktop-framework-hmr
crowlKats Jun 10, 2026
dd6f317
update sui
crowlKats Jun 10, 2026
6a2315c
fmt
crowlKats Jun 10, 2026
c147b46
fix lints
crowlKats Jun 10, 2026
558c113
update ci
crowlKats Jun 10, 2026
2618df5
update ci
crowlKats Jun 10, 2026
59d1646
fix: unused update_rolled_back param on non-unix desktop build
crowlKats Jun 10, 2026
64f6afb
fix: gate apply_pending_update and Path import to unix
crowlKats Jun 10, 2026
984c8d2
fix: gate apply_pending_update tests to unix
crowlKats Jun 10, 2026
527c37c
remove servo mentions
crowlKats Jun 10, 2026
4520947
fix: unused dest_path on non-unix in archive extraction
crowlKats Jun 10, 2026
255b116
fix issue
crowlKats Jun 10, 2026
438d11e
update v8
crowlKats Jun 11, 2026
c02bfd7
Merge branch 'main' into desktop-framework-hmr
crowlKats Jun 11, 2026
74e85e5
chore: update laufey to 0.3.2
littledivy Jun 11, 2026
c19ad81
test(watch): kill process tree in check_alive_then_kill
littledivy Jun 11, 2026
8f6d5ed
test: reap DenoChild process tree on drop to stop CI shutdown hang
littledivy Jun 11, 2026
16c1710
test(hmr): keep run_hmr_server fetch child alive until request lands
littledivy Jun 11, 2026
216c1d0
fix(compile): bypass dl_iterate_phdr on Linux to fix compiled binary …
littledivy Jun 12, 2026
c6907be
Merge branch 'main' into desktop-framework-hmr
littledivy Jun 12, 2026
8480edb
fix: type mismatch in run_compiled and rustfmt use-import ordering
littledivy Jun 12, 2026
c946bda
fix(fmt): rustfmt 1.95.0 case-sensitive import ordering in binary.rs …
littledivy Jun 12, 2026
f6611d0
fix(compile): use fixed 4-byte note alignment in ELF reader, not p_align
littledivy Jun 12, 2026
1df6162
fix(runtime): use lazy_init for deno_desktop extension in worker crea…
littledivy Jun 12, 2026
a2b8a14
fix(runtime): add deno_desktop args() to lazy_init_extensions
littledivy Jun 12, 2026
2545674
fix(runtime): remove #[fast] from cppgc object methods to fix Linux r…
littledivy Jun 12, 2026
43ce6ed
fix(runtime): use #[nofast] on cppgc methods to prevent release Linux…
littledivy Jun 12, 2026
c722c84
fix(lib): bypass dl_iterate_phdr in denover section read on Linux
littledivy Jun 12, 2026
fbba980
fix(wpt): update expectation ordering and fix signals test stderr FD …
littledivy Jun 12, 2026
03da0b5
Merge branch 'main' into desktop-framework-hmr
littledivy Jun 12, 2026
5aed890
fix(wpt): sort expectedFailures arrays and stabilize flaky test expec…
littledivy Jun 12, 2026
571e3bb
fix(wpt): fix unicode encoding in expectation JSON files
littledivy Jun 12, 2026
1d45552
ci: retrigger CI after stuck build runner
littledivy Jun 12, 2026
79f8733
ci: strip binaries before denort_desktop cdylib build to free disk space
littledivy Jun 12, 2026
35c831d
ci: gate denort_desktop build on main/tags/ci-full to avoid OOM on linux
littledivy Jun 12, 2026
6bfe5a4
chore(ci): free disk space before release build on linux
littledivy Jun 12, 2026
6943258
fix(wpt): convert surrogate pairs to raw unicode in expectations
littledivy Jun 12, 2026
fdbc9dd
ci: retrigger CI
littledivy Jun 13, 2026
cc28f7a
fix(wpt): fix DEL byte encoding in mimesniff and url sort order
littledivy Jun 13, 2026
744c784
fix(wpt): mark dedicated-worker-from-blob-url as expected failure
littledivy Jun 13, 2026
30c4fd4
fix(test): use tokio::process+kill_on_drop in run_compiled
littledivy Jun 13, 2026
af42c62
fix(runtime): add #[nofast] to all remaining cppgc methods
littledivy Jun 13, 2026
df26a5c
Revert "fix(runtime): add #[nofast] to all remaining cppgc methods"
littledivy Jun 13, 2026
b1b913a
fix(runtime): opt out all desktop ops from V8 fast calls
littledivy Jun 13, 2026
f4e8a91
fix(runtime): use op_ctx_function (not plain function) during snapsho…
littledivy Jun 13, 2026
a49aacf
fix(runtime): revert ConstructorBehavior::Throw in upgrade_snapshotte…
littledivy Jun 13, 2026
74f1a4a
fix(runtime): skip fast-call upgrade when cppgc types present in snap…
littledivy Jun 13, 2026
5a2738c
fix(tests): update request_signal_streaming output to include depreca…
littledivy Jun 13, 2026
6480379
fix(runtime): use skip_op_registration=false in compiled binaries
littledivy Jun 13, 2026
19d8f11
ci: retrigger CI
littledivy Jun 13, 2026
9d6d4d8
ci: retrigger CI
littledivy Jun 13, 2026
2ecfb22
Merge remote-tracking branch 'upstream/main' into desktop-framework-hmr
littledivy Jun 13, 2026
15be18f
fix(runtime): revert skip_op_registration=false, rely on early return…
littledivy Jun 13, 2026
5bd3a4d
Merge remote-tracking branch 'upstream/main' into desktop-framework-hmr
littledivy Jun 13, 2026
e007d71
update lockfile and imporve framework detection
crowlKats Jun 13, 2026
d364077
Merge branch 'main' into desktop-framework-hmr
crowlKats Jun 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
147 changes: 144 additions & 3 deletions .github/workflows/ci.generated.yml

Large diffs are not rendered by default.

52 changes: 52 additions & 0 deletions .github/workflows/ci.ts
Original file line number Diff line number Diff line change
Expand Up @@ -704,6 +704,9 @@ const buildJobs = buildItems.map((rawBuildItem) => {
"strip ./denort",
`zip -r denort-${buildItem.arch}-unknown-linux-gnu.zip denort`,
`shasum -a 256 denort-${buildItem.arch}-unknown-linux-gnu.zip > denort-${buildItem.arch}-unknown-linux-gnu.zip.sha256sum`,
// libdenort.so is only built on main/tags and ci-full PRs; skip
// gracefully when it's absent (e.g. regular PR builds).
`if [ -f libdenort.so ]; then strip ./libdenort.so; zip -r libdenort-${buildItem.arch}-unknown-linux-gnu.zip libdenort.so; shasum -a 256 libdenort-${buildItem.arch}-unknown-linux-gnu.zip > libdenort-${buildItem.arch}-unknown-linux-gnu.zip.sha256sum; fi`,
"./deno types > lib.deno.d.ts",
],
},
Expand Down Expand Up @@ -739,6 +742,9 @@ const buildJobs = buildItems.map((rawBuildItem) => {
"strip -x -S ./denort",
`zip -r denort-${buildItem.arch}-apple-darwin.zip denort`,
`shasum -a 256 denort-${buildItem.arch}-apple-darwin.zip > denort-${buildItem.arch}-apple-darwin.zip.sha256sum`,
"strip -x -S ./libdenort.dylib",
`zip -r libdenort-${buildItem.arch}-apple-darwin.zip libdenort.dylib`,
`shasum -a 256 libdenort-${buildItem.arch}-apple-darwin.zip > libdenort-${buildItem.arch}-apple-darwin.zip.sha256sum`,
],
},
{
Expand Down Expand Up @@ -796,6 +802,8 @@ const buildJobs = buildItems.map((rawBuildItem) => {
`Get-FileHash target/release/deno-${buildItem.arch}-pc-windows-msvc.zip -Algorithm SHA256 | Format-List > target/release/deno-${buildItem.arch}-pc-windows-msvc.zip.sha256sum`,
`Compress-Archive -CompressionLevel Optimal -Force -Path target/release/denort.exe -DestinationPath target/release/denort-${buildItem.arch}-pc-windows-msvc.zip`,
`Get-FileHash target/release/denort-${buildItem.arch}-pc-windows-msvc.zip -Algorithm SHA256 | Format-List > target/release/denort-${buildItem.arch}-pc-windows-msvc.zip.sha256sum`,
`Compress-Archive -CompressionLevel Optimal -Force -Path target/release/denort.dll -DestinationPath target/release/libdenort-${buildItem.arch}-pc-windows-msvc.zip`,
`Get-FileHash target/release/libdenort-${buildItem.arch}-pc-windows-msvc.zip -Algorithm SHA256 | Format-List > target/release/libdenort-${buildItem.arch}-pc-windows-msvc.zip.sha256sum`,
`target/release/deno.exe -A tools/release/create_symcache.ts target/release/deno-${buildItem.arch}-pc-windows-msvc.symcache`,
],
},
Expand Down Expand Up @@ -868,11 +876,24 @@ const buildJobs = buildItems.map((rawBuildItem) => {
.map((name) => `-p ${name}`).join(" ");
const binsToBuild = ["deno", "denort", "test_server"]
.map((name) => `--bin ${name}`).join(" ");
const freeDiskStep = step({
name: "Free disk space (linux)",
if: isLinux,
run: [
// Removes large pre-installed tool suites not needed for Deno builds.
// Frees ~10-20 GB before cache restore, preventing OOM/disk exhaustion
// during ThinLTO V8 linking on ubuntu-24.04 runners.
"sudo rm -rf /usr/local/lib/android /usr/local/share/powershell /usr/share/dotnet 2>/dev/null || true",
"sudo docker image prune -af 2>/dev/null || true",
"df -h",
],
});
const cargoBuildReleaseStep = step
.if(
isRelease.and(isDenoland.or(buildItem.use_sysroot)),
)
.dependsOn(
freeDiskStep,
installLldStep,
restoreCacheStep,
installRustStep,
Expand All @@ -893,6 +914,24 @@ const buildJobs = buildItems.map((rawBuildItem) => {
"df -h",
],
},
{
// Build the desktop runtime shared library (libdenort cdylib) for
// laufey-based desktop apps. Only on main/tags and ci-full PRs
// because the release build on Linux uses ThinLTO which consumes
// more RAM than standard GitHub-hosted runners can provide when
// combined with the earlier deno/denort/test_server builds.
name: "Build denort_desktop",
if: hasCiFullLabel.or(isMainOrTag).and(isDenoland),
run: [
// Strip the earlier binaries to free several GB of disk before
// linking the cdylib (unstripped Linux release binaries are ~8 GB).
'if [ "$(uname -s)" = "Linux" ]; then strip target/release/deno target/release/denort target/release/test_server 2>/dev/null || true; df -h; fi',
// Separate invocation because the panic-trace feature only
// applies to the deno/denort binaries.
"cargo build --release --locked -p denort_desktop",
"df -h",
],
},
{
name: "Check release snapshot flags",
if: isLinux,
Expand Down Expand Up @@ -925,6 +964,7 @@ const buildJobs = buildItems.map((rawBuildItem) => {
);
const cargoBuildStep = step
.dependsOn(
freeDiskStep,
installLldStep,
restoreCacheStep,
installRustStep,
Expand Down Expand Up @@ -1006,31 +1046,43 @@ const buildJobs = buildItems.map((rawBuildItem) => {
"target/release/deno-x86_64-pc-windows-msvc.sha256sum",
"target/release/denort-x86_64-pc-windows-msvc.zip",
"target/release/denort-x86_64-pc-windows-msvc.zip.sha256sum",
"target/release/libdenort-x86_64-pc-windows-msvc.zip",
"target/release/libdenort-x86_64-pc-windows-msvc.zip.sha256sum",
"target/release/deno-aarch64-pc-windows-msvc.zip",
"target/release/deno-aarch64-pc-windows-msvc.zip.sha256sum",
"target/release/deno-aarch64-pc-windows-msvc.sha256sum",
"target/release/denort-aarch64-pc-windows-msvc.zip",
"target/release/denort-aarch64-pc-windows-msvc.zip.sha256sum",
"target/release/libdenort-aarch64-pc-windows-msvc.zip",
"target/release/libdenort-aarch64-pc-windows-msvc.zip.sha256sum",
"target/release/deno-x86_64-unknown-linux-gnu.zip",
"target/release/deno-x86_64-unknown-linux-gnu.zip.sha256sum",
"target/release/deno-x86_64-unknown-linux-gnu.sha256sum",
"target/release/denort-x86_64-unknown-linux-gnu.zip",
"target/release/denort-x86_64-unknown-linux-gnu.zip.sha256sum",
"target/release/libdenort-x86_64-unknown-linux-gnu.zip",
"target/release/libdenort-x86_64-unknown-linux-gnu.zip.sha256sum",
"target/release/deno-x86_64-apple-darwin.zip",
"target/release/deno-x86_64-apple-darwin.zip.sha256sum",
"target/release/deno-x86_64-apple-darwin.sha256sum",
"target/release/denort-x86_64-apple-darwin.zip",
"target/release/denort-x86_64-apple-darwin.zip.sha256sum",
"target/release/libdenort-x86_64-apple-darwin.zip",
"target/release/libdenort-x86_64-apple-darwin.zip.sha256sum",
"target/release/deno-aarch64-unknown-linux-gnu.zip",
"target/release/deno-aarch64-unknown-linux-gnu.zip.sha256sum",
"target/release/deno-aarch64-unknown-linux-gnu.sha256sum",
"target/release/denort-aarch64-unknown-linux-gnu.zip",
"target/release/denort-aarch64-unknown-linux-gnu.zip.sha256sum",
"target/release/libdenort-aarch64-unknown-linux-gnu.zip",
"target/release/libdenort-aarch64-unknown-linux-gnu.zip.sha256sum",
"target/release/deno-aarch64-apple-darwin.zip",
"target/release/deno-aarch64-apple-darwin.zip.sha256sum",
"target/release/deno-aarch64-apple-darwin.sha256sum",
"target/release/denort-aarch64-apple-darwin.zip",
"target/release/denort-aarch64-apple-darwin.zip.sha256sum",
"target/release/libdenort-aarch64-apple-darwin.zip",
"target/release/libdenort-aarch64-apple-darwin.zip.sha256sum",
"target/release/deno_src.tar.gz",
"target/release/lib.deno.d.ts",
"target/release/deno-*.bsdiff",
Expand Down
Loading
Loading