From 07fc303d684c4895d6c750f71153281a68f10974 Mon Sep 17 00:00:00 2001 From: Vasek - Tom C Date: Thu, 23 Jul 2026 13:42:11 +0200 Subject: [PATCH 1/4] generate: stage local dependency closure before codegen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before generating each managed module, stage its transitive local dependency closure via ModuleSource.generateLocalDependencies and overlay it onto the workspace, so the module's codegen sees up-to-date dependency bindings — including dependencies owned by other SDKs. The staged dependency codegen is ephemeral: it appears in both the fork's before and after, so it cancels in the merge, leaving only each module's own changes. Signed-off-by: Vasek - Tom C --- mod.dang | 5 ++++- typescript-sdk.dang | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/mod.dang b/mod.dang index fb06415..7b1f1b7 100644 --- a/mod.dang +++ b/mod.dang @@ -74,7 +74,10 @@ type Mod { if (skipGenerate(ws)) { polyfill.workspace(ws).fork.changes } else { - polyfill.workspace(ws).moduleSource("/" + rootPath).generate.changes + # Stage the local dependency closure so this module's codegen sees + # up-to-date dependency bindings before generating it. + let stagedWs = ws.withChanges(polyfill.workspace(ws).moduleSource("/" + rootPath).core.generateLocalDependencies(ws)) + polyfill.workspace(stagedWs).moduleSource("/" + rootPath).generate.changes } } } diff --git a/typescript-sdk.dang b/typescript-sdk.dang index eecbddb..2f9523f 100644 --- a/typescript-sdk.dang +++ b/typescript-sdk.dang @@ -356,7 +356,12 @@ type TypescriptSdk { modules(ws) .filter { mod => mod.skipGenerate(ws) == false } .reduce(pws.fork) { fork, mod => - fork.merge(pws.moduleSource("/" + mod.rootPath).generate) + # Stage this module's local dependency closure first (leaf-first, possibly + # across SDKs) so its codegen sees up-to-date dependency bindings. The dep + # codegen is ephemeral: it appears in both the fork's before and after, so + # it cancels in the merge, leaving only each module's own changes. + let stagedWs = ws.withChanges(pws.moduleSource("/" + mod.rootPath).core.generateLocalDependencies(ws)) + fork.merge(polyfill.workspace(stagedWs).moduleSource("/" + mod.rootPath).generate) } .changes } From 4b8d6e13f43ebeff185ca1dec90976f4b92abf53 Mon Sep 17 00:00:00 2001 From: Vasek - Tom C Date: Thu, 23 Jul 2026 16:04:43 +0200 Subject: [PATCH 2/4] chore: use polyfill branch with module-generate scoping fix Temporary: point the polyfill dependency at fix/module-generate-scope-to-path (dagger/polyfill#5) so multi-module / workspace-root generate works. Revert to @main once that PR merges. Signed-off-by: Vasek - Tom C --- dagger.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dagger.json b/dagger.json index 57db1dc..b486529 100644 --- a/dagger.json +++ b/dagger.json @@ -7,8 +7,8 @@ "dependencies": [ { "name": "polyfill", - "source": "github.com/dagger/polyfill@main", - "pin": "e90bbfc4843258a877a3a95b8db1571e7981e65f" + "source": "github.com/dagger/polyfill@fix/module-generate-scope-to-path", + "pin": "c2a932275f0c14cab5542053250b2fddbad29c12" } ], "source": "." From 0adb7fa569c28d34f8c77f2a9ba847358ce199b4 Mon Sep 17 00:00:00 2001 From: Vasek - Tom C Date: Thu, 23 Jul 2026 16:22:28 +0200 Subject: [PATCH 3/4] chore: bump polyfill pin to amended commit Signed-off-by: Vasek - Tom C --- dagger.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dagger.json b/dagger.json index b486529..be12294 100644 --- a/dagger.json +++ b/dagger.json @@ -8,7 +8,7 @@ { "name": "polyfill", "source": "github.com/dagger/polyfill@fix/module-generate-scope-to-path", - "pin": "c2a932275f0c14cab5542053250b2fddbad29c12" + "pin": "4357bc1ccd2a4621c20a2e4c037c4835632003a6" } ], "source": "." From 967deae87f56f90ef734d0174fd694983082ce8f Mon Sep 17 00:00:00 2001 From: Vasek - Tom C Date: Fri, 24 Jul 2026 13:12:25 +0200 Subject: [PATCH 4/4] chore: bump polyfill to merged main dagger/polyfill#5 merged; point the polyfill dependency back at @main. Signed-off-by: Vasek - Tom C --- dagger.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dagger.json b/dagger.json index be12294..28c9169 100644 --- a/dagger.json +++ b/dagger.json @@ -7,8 +7,8 @@ "dependencies": [ { "name": "polyfill", - "source": "github.com/dagger/polyfill@fix/module-generate-scope-to-path", - "pin": "4357bc1ccd2a4621c20a2e4c037c4835632003a6" + "source": "github.com/dagger/polyfill@main", + "pin": "16627066d1852106320bdc0cfa0e5f901efe5970" } ], "source": "."