#github-feed
1 messages ยท Page 15 of 1
These had some temp changes that can be cleaned up now that v0.16.1 is out. Meant to include this in https://github.com/dagger/dagger/pull/9681 but forgot to force push and it got merged ๐
Bumps the sdk-typescript group with 14 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.12.5 |
1.12.6 |
| @opentelemetry/exporter-trace-otlp-http | 0.57.1 |
0.57.2 |
| @opentelemetry/sdk-node | 0.57.1 |
0.57.2 |
| [@opentelemetry/semantic-conventions](https://github.com/open-teleme... |
Bumps the engine group with 8 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/containerd/containerd | 1.7.25 |
1.7.26 |
| github.com/containerd/platforms | 1.0.0-rc.0 |
1.0.0-rc.1 |
| github.com/docker/cli | 27.5.1+incompatible |
28.0.1+incompatible |
| github.com/docker/docker | `27.5.1+in... |
Bumps the engine group with 10 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/containerd/containerd | 1.7.25 |
1.7.26 |
| github.com/containerd/platforms | 1.0.0-rc.0 |
1.0.0-rc.1 |
| github.com/docker/cli | 27.5.1+incompatible |
28.0.1+incompatible |
| github.com/docker/docker | `27.5.1+i... |
This commit aims to improve the structure of the install page, specifically the section on updating Dagger.
The previous fix in 867eed9 (#9697) to use the subdir in the call to bkcontenthash.Checksum was actually only a partial fix.
We need to include the subdir in the singleflight group, or we can end up colliding various operations incorrectly and getting the wrong result.
This was the probably cause of the flake in https://v3.dagger.cloud/dagger/traces/e9e01fff1fc51a3a32f60045c0e39d29?span=87...
Implement a globally accessible Dagger client.
So now, instead of passing the Client dag field from object to object, it's possible to access a single instance of the client using
io.dagger.client.Dagger.dag()
That makes it available from everywhere and simplifies the constructions of all objects.
Even better with the static import
import static io.dagger.client.Dagger.dag;
so that dag() is available. This makes the behavior of the Java SDK wa...
Currently for uploaded local dirs the UI shows the raw digest or a placeholder instead of the Host.directory call that created it.
This happens because the server's Host.directory actually returns a call with a custom content digest of the blob, rather than the call digest of the Host.directory call.
Now when querying the DB for a call we'll also look for spans that had the digest as an outp...
What is the issue?
Currently there is no example of attaching a docker daemon sidecar but it is a common pattern when running tests that require docker. There are also a couple of best practices when doing this that is worth documentting.
- It's recommended to attach a cache volume at
/var/lib/dockerso that docker can use overlayfs when storing data. Example:
daemon := dag.Container().From("fcr.fmr.com/docker:24-dind").
WithEnvVariable("TINI_SUBREAPER", "true").
WithMounte...
Signed-off-by: Marcos Lilljedahl
What are you trying to do?
- Add
:defaultoption to type system - During processing the
defnmacro, ensure that the default value matches with the type.
Why is this important to you?
No response
How are you currently working around this?
No response
Adds support for the bun.lock text format released in Bun 1.2.0 bun.sh/blog/bun-v1.2#introducing-bun-lock. This is Bun's new default.
I can't seem to get the test suite and SDK generation working, I've tried from the docs.
dagger call sdk typescript generate export --path=.
Running go test in src/core passes though.
Any advice on finishing up the PR would be appreciated, I'll look at the changie stuff and commit that shortly.
What is the issue?
Update:
https://docs.dagger.io/faq#what-is-the-dagger-platform - mention our expanded agents and CI use cases
https://docs.dagger.io/faq#dagger-sdks - mention all of the SDKs
Add:
in an entry similar to https://docs.dagger.io/faq#which-ci-providers-does-dagger-cloud-work-with, describe which LLMs and frameworks we work with. Short answer is that Dagger should work with any hosted or local LLM. With Dagger's multi-language support and ability to use any libraries or c...
-
docs(sdk/java): arguments
-
docs(sdk/java): custom functions
-
docs(sdk/java): return values
-
docs(sdk/java): services
-
fix typos and add suggestions
Bumps the sdk-java group with 6 updates in the /sdk/java directory:
| Package | From | To |
|---|---|---|
| io.netty:netty-common | 4.1.118.Final |
4.1.119.Final |
| io.netty:netty-handler | 4.1.118.Final |
4.1.119.Final |
| org.slf4j:slf4j-api | 2.0.16 |
2.0.17 |
| org.slf4j:slf4j-simple | 2.0.16 |
2.0.17 |
| org.junit:junit-bom | 5.11.4 |
5.12.0 |
| [uk.org.... |
Bumps the engine group with 1 update in the / directory: github.com/dagger/testctx/oteltest.
Bumps the engine group with 1 update in the /sdk/go directory: github.com/vektah/gqlparser/v2.
Updates github.com/dagger/testctx/oteltest from 0.0.2 to 0.0.3
Commits
46f01fa update godoc, fix unit tests
1ad0d2e embed TB to ensure W is a TB
34b0863 bump testctx
See full diff in compare view
Updates `github.com/vektah/g...
Bumps the docs group in /docs with 3 updates: sass, typedoc and typescript.
Updates sass from 1.85.0 to 1.85.1
Release notes
Sourced from sass's releases.
Dart Sass 1.85.1
To install Sass 1.85.1, download one of the packages below and add it to your PATH, or see the Sass website for full installation instructions.
Changes
Fix a bug where global Sass functions whose na...
Bumps the sdk-python-docker group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.
Bumps the sdk-python-docker group with 2 updates in the /sdk/python/runtime directory: python and astral-sh/uv.
Updates astral-sh/ruff from 0.9.5 to 0.9.9
Release notes
Sourced from astral-sh/ruff's releases.
0.9.9
Release Notes
Preview features
Fix caching of unsupported-syntax errors (#16425)
Bug fixes
Only show...
Bumps the sdk-typescript group with 15 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.12.5 |
1.12.6 |
| @opentelemetry/exporter-trace-otlp-http | 0.57.1 |
0.57.2 |
| @opentelemetry/sdk-node | 0.57.1 |
0.57.2 |
| [@opentelemetry/semantic-conventions](https://github.com/open-teleme... |
Update generateClient to only set fields in the
configuration so now the generation
logic happens in generatedContextDirectory.
That way, it works with dagger develop.
Also add persistency in dagger.json for generated clients.
Correctly use contextDirectory in codegen instead
of only the source directory.
Signed-off-by: Tom Chauveau
I know me and @rajatjindal have started seeing this in v0.16.2, but @gmile in #8830 has also seen this.
Repeatedly running
dagger functionsucceeds most of the times, but occasionally would fail with either of these two errors:โ load module 1.3s ! failed to get configured module: Post "http://dagger/query": unexpected EOF โ โ finding module configuration 1.3s โ ! Post "http://dagger/query": unexpect...
Bumps the engine group with 1 update in the /sdk/go directory: github.com/vektah/gqlparser/v2.
Updates github.com/vektah/gqlparser/v2 from 2.5.22 to 2.5.23
Release notes
Sourced from github.com/vektah/gqlparser/v2's releases.
v2.5.23
Full Changelog: https://github.com/vektah/gqlparser/compare/v2.5.23...v2.5.23
Commits
135eef6 Fix quote handling at end of block string descriptions (#355)
94fb1f6 Bump prettier in /validator/imported in the actions...
Usage: add dagger mcp as an MCP server.
Defaults to stdio. For SSE (handy for debugging), set PORT=1234 and configure http://localhost:1234/sse.
TODO:
- [ ] Should it be scoped per-chat somehow? Haven't found an easy way to do this with Claude Desktop. It literally runs a single MCP server for the entire time.
- [ ] Some more prompt engineering for
shell - [ ] Shell commands are currently trying to run e.g.
wolfiinstead ofgithub.com/dagger/dagger/modules/wolfi.- A...
[!NOTE]
Only the last commit is relevant here, the others are part of #9738
This PR is intended to be merged after #9738
Fields can now be private (or any other visibility). No need to have them public anymore to be serialized.
All non transient/static fields will be serialized by default and registered as a field to the Dagger API.
If you want to have a field serialized but not exposed it to the API (so a user can't retrieve the value) then it needs to be annotated w...
What is the issue?
Seeing an exception printed out every time I run anything with dagger 0.16.2: RuntimeError: cannot schedule new futures after interpreter shutdown
Dagger version
dagger v0.16.2 (docker-image://registry.dagger.io/engine:v0.16.2) linux/amd64
Steps to reproduce
- Write the following into
foo.py
#!/usr/bin/env python3
import asyncio
import dagger
from dagger import dag
async def main():
async with dagger.connection():
pass
asyncio....
Should fix #9759 (temporarily, hopefully go 1.24.1 will have a fix for this).
Not a simple revert commit, since we've started using new features :(
:warning: requires https://github.com/vito/bubbline/pull/1.
Improve versioning to prepare the publication of the different components to maven central.
Related to #9194
The PR is composed of two main aspects (split in two commits, the last one is a small fix regarding the "internal" deps):
-
update the different
pom.xmlto set the version based on the Dagger engine version.That way when
bumpis called, all the components of the Java SDK will get the right version. This helps to work locally with the different libraries and avoid c...
- [x] Better detection for incomplete input
- [x] Print logs after printing child rows so it appears at the bottom of the screen
- [ ] Figure out how to deal with scrollback, current attempt leaves long output chopped off :(
Closes #9723
Users have been confused by https://docs.dagger.io/cookbook/#clone-a-remote-git-repository-into-a-container-by-branch-tag-or-commit. The source of the confusion seems to be deeper than just the reproduction of the cookbook.
Basically, we lack an understanding of the security-by-design model in our docs.
This PR updates the cookbook example to differentiate the HTTP(S) and SSH based refs and also introduces a security-model page. This page is currently not linked to...
We need to document how to use Dagger in a Java custom application on this page. @eunomie I know you are all setup, do you mind tackling this issue for the docs? ๐
dagger run java ...
this is a branch PR bc we don't get secrets for fork PRs
Splitting out another seperable chunk from https://github.com/dagger/dagger/pull/9682
This updates dagql's cache to use the same "singleflight" implementation added for the local sync rework.
The idea of deduping equivalent calls is the same as the previous cachemap implementation, but with two important additional features:
- Context cancellation is handled better.
- Previously when calls were deduped, the "first" context was always used, which meant that if it was canceled (i.e. f...
These don't seem to be used, and also... conceptually, they shouldn't be. For the most part, these structs shouldn't be getting directly serialized, but the labels imply that they are.
We're really inconsistent with this anyways (as noted multiple times previously), so let's just remove them.
I don't really have context for why this was added (somewhere in https://github.com/dagger/dagger/pull/8805), but it's definitely not right, resulting in always setting a completely incorrect auth token.
See the following:
$ GIT_TERMINAL_PROMPT=0 SSH_ASKPASS=echo git credential fill <<EOF
protocol=https
host=github.com
EOF
protocol=https
host=github.com
username=Username for 'https://github.com':
password=Password for 'https://Username%20for%20...
Add introspectionJSONFile in ModuleSource so we can later remove the introspectionJSONFIle argument in the SDKs.
This changes happens because @shykes mention that it's possible to get the module TypeDef directly through the TypeDef API instead of using this introspectionJSON, so it's only an implementation details for our SDKs but not future standalone client generator.
Note: Since SDKs depends on releases dagger version, we will need to wait for a release in order to change...
What is the issue?
Update the cookbook to include PHP snippets for all recipes: https://docs.dagger.io/cookbook
What is the issue?
Add PHP code snippets to api/cache-volumes page: https://docs.dagger.io/api/cache-volumes
What is the issue?
Add PHP code snippets to https://docs.dagger.io/api/cache-volumes
What is the issue?
Add PHP code snippets to https://docs.dagger.io/api/filters
What is the issue?
Add PHP code snippets to https://docs.dagger.io/api/interfaces
What is the issue?
Add PHP code snippets to https://docs.dagger.io/api/packages
What is the issue?
Add PHP code snippets to https://docs.dagger.io/api/secrets
What is the issue?
Add PHP code snippets to https://docs.dagger.io/api/state
What is the issue?
Add PHP code snippets to https://docs.dagger.io/api/terminal
What is the issue?
Add PHP code snippets to https://docs.dagger.io/integrations/google-cloud-run
What is the issue?
If there are PHP-specific troubleshooting tips or errors to watch for, add them to https://docs.dagger.io/troubleshooting
What is the issue?
Add missing documentation for the PHP SDK. Individual page requirements are described in linked sub-issues.
What is the issue?
There is a language-native PHP example on https://docs.dagger.io/api/http#language-native-http-clients, which demonstrates how to interact with Dagger using a PHP HTTP client.
This example was created before the PHP SDK existed.
The question is whether to retain or remove it.
Argument for retain: it provides an example of communicating with Dagger using a raw GraphQL client. This could be useful for users who don't want to use the PHP SDK, who don't want to use mod...
What is the issue?
Add PHP-specific details to https://docs.dagger.io/api/daggerverse/
Currently, we're all using ./hack/dev + ./hack/with-dev go test to pull pprof dumps. It'd be better if we could orchestrate pulling dumps at the end of dagger call test specific invocations, or something UX-equivalent to "run these tests and give me a pprof dump"
cc @sipsma
What is the issue?
When running modules with dependencies in our CI pipeline, we receive excessive logging output from the printed Module.dependencies tree. This creates an issue since GitLab CI has a log output limit where content gets truncated (e.g. "Job's log exceeded limit of 4194304 bytes. Job execution will continue but no more output will be collected."). In most of our pipelines, these messages exceed this job log limit before the actual function logs even begin. This makes debu...
This PR enables setting additional environment variables for the engine container.
Add documentation on how to integrate the Dagger Java SDK with custom applications.
It covers three cases:
- Java / maven
- Java / gradle
- Kotlin / gradle
[!WIP]
Output is not currently added, it failed because libraries are not yet published. I might revisit the code but I wanted to have it as close as possible to the other languages
What are you trying to do?
Using the Directory built in object is a bit clumsy; I'd like to create a function which iterates through the files/directories in a provided Directory argument. While it is possible to do using the entries() function; this returns an array of strings which isn't easy to work with.
I propose adding a files() function and a directories() function which would return an array of File objects for each file in the dir, or an array of Directory objects for each dir...
Wolfi made a change that causes glibc triggers to require busybox triggers having already run:
https://github.com/wolfi-dev/os/commit/8229c0379cada98fb9504dd19a068dbbe2bd0d98
This isn't obviously wrong, but our current alpine module likely runs triggers in a slightly different order and we thus end up with a glibc trigger running, trying to execute /usr/bin/sh and then failing because the busybox symlink (created in its trigger) hasn't been installed yet.
The fix here is a quick hack t...
Overview
This issue tracks the work required to ship native LLM support in the Dagger Engine, as prototyped in #9628 .
Blockers
[ ] LLM access control. All modules have access to the host's LLM endpoints. This adds enormous convenience, but it is a hole in the sandbox. LLM tokens cost real money, so there must be a protection against a module draining them - intentionally or by accident.
[ ] Hacky .env support. The current implement of .env access is hacky: 1) only works for LLM ...
Did a bit more research and realized the hack to ensure busybox symlinks exist in time for glibc's trigger actually may be necessary to get compatibility w/ apko's behavior.
Basically, it turns out that apko
- doesn't run scripts
- [has it's own little hack to create busybox symlinks](https://github.com/chainguard-dev/apko/blob/3e63d01bb69480954b6040f5470197ae...
Embed remote dependencies serving in the Connect method.
This enables clients to not depends on local dagger.json to load these dependencies, it's only requires for local one.
List of changes
- Remote dependencies references are passed as argument to the codegen so they can be generated (we really need to split these 2 codegen commands..., will do when things around client gen are more stable)
- Update
Servein engine to not fail if a same dependency is served multiple time...
golang.org/x/exp/rand has been deprecated and scheduled to be deleted.
Reference: golang/exp@f9890c6
Reference: https://go.dev/doc/go1.22#math_rand_v2
Revising list of official Dagger features.
TODO: still need to test this. Don't merge yet.
fixes https://github.com/dagger/dagger/issues/9794
code complete, but currently broken because directory.WithNewFile() takes a string for content and I think passing these profiles through UTF-8 encoding breaks them. Gonna switch to pulling them with curl and passing actual files around.
I'm also getting 500s for cpu profiles rn, not sure why.
taking a default 30s cpu profile
dagger call test dump --run="TestCache/TestVolume" --pkg=./core/integration --route=pprof/profile --de...
Documents how to use Azure OpenAI Service with the experimental LLM feature
This is enabled here: https://github.com/dagger/dagger/pull/9808
Signed-off-by: Juliรกn Cruciani
What are you trying to do?
It's common to protect Ollama endpoints with reverse proxies that enforce authentication via HTTP Basic auth.
Neither dagger nor the underlying openai-go client library or the go HTTP client library make provision for injection of auth credentials directly or via an additional header.
Why is this important to you?
Without explicit support, I don't see how protected Ollama instances can be used with Dagger.
How are you currently working around this?...
[dagger/dagger] Issue opened: #9815 ๐๏ธ SyntaxError: invalid syntax: if type(item) <> ldict_node
What happened? What did you expect to happen?
$ python3 npm_test.py
Traceback (most recent call last):
File "/home/kenorb/_temp/dagger/npm_test.py", line 3, in
import dagger
File "/home/kenorb/.local/lib/python3.10/site-packages/dagger/__init__.py", line 1, in
from dagger import dagger, VERSION
File "/home/kenorb/.local/lib/python3.10/site-packages/dagger/dagger.py", line 71
if type(item) <> ldict_node:
^^
SyntaxError: invalid syntax
$ pip3 fre...
Hello, I was trying to follow along the getting started but I'm having trouble with the very first command dagger init --sdk=python --source=./dagger.
That's is probably something in my machine state, but I'm a bit puzzled to what that could be, so I was hoping someone could shed some light.
Errors
> dagger init --sdk=python --source=./dagger
โ connect 31.3s
! start engine: new client: interrupted
โ โ starting engine 0.0s
โ โ connecting to engine 31.3s
โ ! new client: ...
Bumps the sdk-typescript group with 15 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.12.5 |
1.12.6 |
| @opentelemetry/exporter-trace-otlp-http | 0.57.1 |
0.57.2 |
| @opentelemetry/sdk-node | 0.57.1 |
0.57.2 |
| [@opentelemetry/semantic-conventions](https://github.com/open-teleme... |
Bumps the engine group with 9 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/1password/onepassword-sdk-go | 0.1.7 |
0.2.0 |
| github.com/opencontainers/image-spec | 1.1.0 |
1.1.1 |
| golang.org/x/crypto | 0.35.0 |
0.36.0 |
| golang.org/x/mod | 0.23.0 |
0.24.0 |
| [golang.or... |
Bumps the sdk-python-docker group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.
Bumps the sdk-python-docker group with 1 update in the /sdk/python/runtime directory: astral-sh/uv.
Updates astral-sh/ruff from 0.9.9 to 0.9.10
Release notes
Sourced from astral-sh/ruff's releases.
0.9.10
Release Notes
Preview features
[ruff] Add new rule RUF059: Unused unpacked assignment (#16449)
[syntax-errors] D...
Bumps the sdk-java group in /sdk/java with 1 update: org.mockito:mockito-core.
Updates org.mockito:mockito-core from 5.15.2 to 5.16.0
Release notes
Sourced from org.mockito:mockito-core's releases.
v5.16.0
Changelog generated by Shipkit Changelog Gradle Plugin
5.16.0
2025-03-03 - 10 commit(s) by Brice Dutheil, Rafael Winterhalter, TDL, dependabot[bot]
Add support for including module-info in Mockito. (#3597)
Bump com.gradle.d...
Context
What is state? Itโs essentially a struct that holds all the information needed for building an API query using the query builder. The current query builder doesnโt deserialize from a string so we pass around the raw data instead, and only build the query when we need to resolve it.
This fundamentally changes how state is passed around. When you use a pipe (|) between functions, each of them is executed in their own goroutine, connected via an os.Pipe. So one functionโs s...
hey there! if you run docker ps -a you should see that the dagger engine container probably exited. Could you run docker logs $container_name on that container and share the log here?
Thanks!
All of the links from X look like the below image, this change uses the new dagger-factory.jpg icon for social sharing to make the links posted on X look more interesting. Hopefully this makes the link more interesting to capture the users attention.
Contined working on #9816
@vikram-dagger for some reason I couldn't open a PR into your fork, so I opened it here.
Feel free to pull into into your branch.
When using the llm branch and entering the .help command. None of the constructor args or functions will show in the list.
Expected:
- Enter a module directory
- Type
dagger shell - Enter
.help - The available functions will show along with any constructor args
We spoke about this with Erik, Justin & Connor a few times in the last few weeks, and the consensus is that we want all Engine tests to run against dev Engines (the next version that ships), and there is marginal value in running them against an already released version.
The thinking goes that if all tests continue running the same (or better) in the next version of Dagger, then we are confident in the upcoming release.
While we might want to do the same for all other jobs in this w...
Thanks for the prompt!
I found a post with exact same error in this issue and the proposed solution there [0] worked for me!
[0] Install a nat kernel module: sudo modprobe iptable_nat
What are you trying to do?
In Dagger Cloud, I would like the ability to make a single trace public - for example to share it on Discord. [Here is an example](#agents message).
Why is this important to you?
No response
How are you currently working around this?
No response
Inverting the svgs looks poor in dark mode and doesn't make it easy to use across docusaurus and GitHub README. This is simple solution.
Touching up some small paper cuts:
- Adds meta tags to make LinkedIn shares more visually appealing (https://www.linkedin.com/post-inspector/inspect/https:%2F%2Fdocs.dagger.io%2F)
- Adds descriptions to key pages for better SEO
Add community SDK maintainer requirements and add Java to list of SDKs.
https://linear.app/dagger/issue/ECO-526/list-of-requirements-for-community-sdks
Adds cloud-trace.gif to the README to provide a visual representation of Dagger Cloud tracing.
Adds cloud-trace.gif to the introduction to provide a visual representation of Dagger Cloud tracing.
Removed dependencies and stdlib. Moved builtins to the bottom.
Before
BUILTIN COMMANDS
.core Load any core Dagger type
.deps Dependencies from the module loaded in the current context
.help Show documentation for a command, a module, or a function
.install Install a dependency
.login Log in to Dagger Cloud
.logout Log out from Dagger Cloud
.stdlib Standard library functions
.uninstall Uninstall a dependen...
This was probably causing flakes, and had the potential to cause big issues. Should hopefully fix the issue noted in https://github.com/dagger/dagger/pull/9730#discussion_r1989264862.
Essentially, for remote operations we were caching twice:
- The DagOp for the
Git.treeoperation (with a cache key of the git ID) - The underlying git operation (with a cache key of the git commit) This was very confusing to think about, and probably could have resulted in lots of weird cache issues.
...
This proposal aims to address LLM access control from https://github.com/dagger/dagger/issues/9801. However, I think it's worth considering future use cases as well - there's other cases (especially in an enterprise scenario!) where we'll want to control security per-modules:
- allowing access to
InsecureRootCapabilities, and other similar settings - we could even consider opening up
dag.Hostaccess safely for some some modules with this control? maybe?
With that in mind, in this i...
This allows taking remote git args, or local directories using Directory.asGit.
[!WARNING]
Needs tests!
very wip, trying to get the wiring working well enough to succeed like this:
dev && with-dev dagger shell --allow-llm=all -m https://github.com/shykes/toy-programmer -c "go-program \"greet me $(date)\""
but fail like this:
dev && with-dev dagger shell -m https://github.com/shykes/toy-programmer -c "go-program \"greet me $(date)\""
currently my hunch is I'm not getting my AllowLLM flag down to nested clients, but I could be entirely wrong about that.
there was...
Fix when a function is returning void (so nothing):
- declare as a typedef of kind Void, optional
- do not get a value and return null
Need to test in GHA, will update w/ details once problem+fix confirmed
What are you trying to do?
Today if you want dagger aka dagger shell to ingore the possible module in the local dir, you need to add --no-mod, there should be a shorter option available.
I propose -M since today we have -E meaning --no-exit, -M would signify --no-mod(ule)
OPTIONS
-c, --code string Command to be executed
-d, --debug Show debug logs and full verbosity
-i, --interactive Spawn a terminal on ...
Support Java enums! ๐
Enums defined in the module must have the @Enum annotation. This allows the annotation processor to find them and register them and their possible values to the Dagger engine.
For instance:
@Enum
public enum Severity {
LOW,
MEDIUM,
HIGH
}
Only a single enum can be defined with a specific name, whatever their fully qualified name. For instance it you have two enums io.dagger.module.mymodule.Severity and `io.dagger.module.foo.S...
This is a POC for fixing #5691
During buildDocker function, we check if a docker ignore file exists and use that to exclude those paths before building the container.
TODO's:
- [ ] Verify that the name of the file follow the same pattern as supported by Docker
- [ ] Ensure that we do not error out if dockerignore file does not exist
- [ ] Add test cases
Alternative considerations:
I read through on how buildkit do it. while it is possible to do the same in dagger [here](http...
[dagger/dagger] Issue opened: #9858 โจ Enable pass-through of private Git credentials to containers
What are you trying to do?
I want to use my host's configured Git credentials within containers in Dagger.
Why is this important to you?
I want to be able to git fetch additional branches to what is already checked out within a git context. This is important for tools like SonarQube where it requires the context of the reference branch to do the analysis. There may be other use cases which require a fetch/pull from remote when working with current git directories. This is easy t...
Adds a link to the technical-content-summarizer example agent.
it checks all the current supported variables are being parsed correctly as well as the fact that the file://.env is being parsed also
looks like with the streaming change the text content got dropped from being appended to the content string
For less confusion and more consistency in naming, this updates the engine listener to use unix:///run/dagger/engine.sock.
For now, I'm leaving around the old unix:///run/buildkit/buildkitd.sock too to avoid backwards incompatibility. The two socks are just different listeners for the same server so there's no harm in both existing for now.
This updates everywhere I could find buildkitd.sock across Helm charts, various docs on integrations, etc. So it's worth a double check those ...
Fixes https://github.com/dagger/dagger/issues/9572
This has been flaking on our CI an annoying amount, occasionally locally too.
It seems that the problem happens specifically with a secret command provider being executed in a nested dagger exec.
The problem is that we run our nested exec session attachable server in our custom init process, which creates a race condition between different goroutines trying to wait on child processes.
Our init process obviously has to handle SIGCH...
A recent change modified the path of the version.gen.go file the Go SDK uses to know which version of the CLI to autodownload. However, the path that our release CI uses was not changed, so we ended up in a situation where the new path wasn't changed (stayed on v0.16.2) but the old (unused) one was.
This manually corrects the version.gen.go file and updates CI with the correct path.
Adds a small FAQ to get us something we can iterate on and work towards a 'getting started' / tutorial
What is the issue?
Expected behavior and actual behavior:
When using Dagger to publish an image to a non-existent project in Registry (eg. Harbor), the error should indicate that the project is not found (e.g., "Project not found") instead of returning a 401 Unauthorized error.
This issue seems to be a misinterpretation in Daggerโs handling of the publish process. The failure should be clearly related to the non-existence of the project, not an authentication issue.
The error mess...
Bumps the sdk-java group in /sdk/java with 2 updates: org.junit:junit-bom and org.mockito:mockito-core.
Updates org.junit:junit-bom from 5.12.0 to 5.12.1
Release notes
Sourced from org.junit:junit-bom's releases.
JUnit 5.12.1 = Platform 1.12.1 + Jupiter 5.12.1 + Vintage 5.12.1
See Release Notes.
Full Changelog: https://github.com/junit-team/junit5/compare/r5.12.0...r5.12.1
Commits
ba9c9ae Release 5.12.1
e28...
Bumps the sdk-python-docker group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.
Bumps the sdk-python-docker group with 1 update in the /sdk/python/runtime directory: astral-sh/uv.
Updates astral-sh/ruff from 0.9.10 to 0.11.0
Release notes
Sourced from astral-sh/ruff's releases.
0.11.0
Release Notes
This is a follow-up to release 0.10.0. The requires-python inference changes were unintentionally ...
Bumps the engine group with 4 updates in the / directory: github.com/99designs/gqlgen, github.com/charmbracelet/glamour, github.com/goproxy/goproxy and modernc.org/sqlite.
Bumps the engine group with 1 update in the /sdk/go directory: github.com/99designs/gqlgen.
Updates github.com/99designs/gqlgen...
Bumps the docs group in /docs with 3 updates: typedoc, typedoc-plugin-frontmatter and typedoc-plugin-markdown.
Updates typedoc from 0.27.9 to 0.28.0
Release notes
Sourced from typedoc's releases.
v0.28.0
Breaking Changes
TypeDoc now expects all in...
Update Typescript dev & node modules
- Correctly set
useEntrypoint - Update version
- Correctly export class
I tested it with https://docs.dagger.io/ci/quickstart/simplify using dagger call publish --source=https://github.com/dagger/hello-dagger and it works fine.
These provision tests are pretty disk hungry, since they all start their own docker daemons. So we should avoid spinning up them all in parallel, or we're gonna consume too much disk all at once.
This is an attempt to fix the constantly failing cgroupsv2 jobs on main!
Still not sure about the name - call-2025-03-10 is not great - but I am more interested to check if this fixes the issue.
After all Alternative CI jobs started failing since #9673, this introduces a separate call action which is only used by these alternative CI runners. We want something simpler that has a separate lifecyle from the main call action that we use in the primary CI runners.
The problem with the current call action logging config is that GitHub Actions UI breaks, a...
In the context of client generation and various discussion with @shykes and @helderco.
We conclude that the introspectionJSON arg in SDK module should not be required since they are other ways to get a module object definition (with the typedefAPI).
So I opened a PR (https://github.com/dagger/dagger/pull/9778) to expose the introspectionJSON file with an API call, so itโs up to the SDK maintainer to use it or not.
In #9778, the introspectionJSON API query is part of moduleSource but it...
Add info about Google Auth since we support it now.
What is the issue?
Right now if the engine is not ready by the time the CLI tries to connect it shows a scary looking error in dagger cloud.
connection error: desc = "error reading server preface: command [docker exec -i dagger-engine-v0.15.1 buildctl dial-stdio] has exited with exit status 1, make sure the URL is valid, and Docker 18.09 or later is installed on the remote host: stderr=Error: dial unix /run/buildkit/buildkitd.sock: connect: no such file or directory\nUsage:\n dial...
Getting rid of dagger/agents links so we can archive that repo
Think I stumbled on a pretty neato pattern for module tests. Just run them with dagger run.
Might break if/when we add self-calls? Not sure. Either way, it "just worked" so rolling with it.
(Also I may be reaching by using the word "evals" here. Dunno.)
Updates the image shared via social links.
Removes the laravel-assistant link to avoid confusion until a complete example and video are available.
Update the llm version to 10, there are issues with llm sync in version 9.
We have plenty of data re performance characteristics and now want to cost-optimise and stay within a $100/month budget.
Let's see how well this works...
I have a container that is going to be running terraform in a monorepo where each project can use a different terraform version. I'd like to manage a cache directory to cache the terraform downloads and only run downloads again if they aren't already downloaded.
So, with my container I can do this (in python),
.with_mounted_cache("/root/.cache/terraform", dag.cache_volume("terraform"))
but how (using this same python) can I opt to do something like this?
if not clien...
What is the issue?
When loading a module that has been initialized without SDK, I get an error.
Dagger version
dagger v0.17.0-llm.10 (docker-image://registry.dagger.io/engine:v0.17.0-llm.10) darwin/arm64
Steps to reproduce
dagger initdagger install github.com/shykes/hellodagger
Log output
โ connect 2.5s
โ load module 0.1s
! failed to serve module: input: moduleSource.asModule module name and SDK must be set
โ โ finding module configuration 0.0s
โ โ ...
What is the issue?
When running dagger inside a git repository, which itself is inside a dagger module, I get an error at load: moduleSource source root path "FOO" escapes context "BAR"
Dagger version
dagger v0.17.0-llm.10 (docker-image://registry.dagger.io/engine:v0.17.0-llm.10) darwin/arm64
Steps to reproduce
set -e
dagger init ./tmp/foo
git init ./tmp/foo/bar
cd ./tmp/foo/bar
dagger
Log output
Error: find module ".": input: moduleSource source root pa...
What is the issue?
Running this:
curl -fsSL https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.17.0-llm.10 BIN_DIR=/usr/local/bin sh
Recommends:
ZSH:
1. Generate a _dagger completion script and write it to a file within your $FPATH, e.g.:
dagger completion zsh > /usr/local/share/zsh/site-functions/_dagger
2. Ensure that the following is present in your ~/.zshrc:
autoload -U compinit
compinit -i
zsh version 5.7 or later is recomme...
Supercedes https://github.com/dagger/dagger/pull/9839
More importantly it fixes an issue where shadowed functions were being shown.
Bikeshedding
This puts module functions, dependencies, and stdlib commands under the same category. May want to break stdlib commands under their own "Core Functions" category for example.
See https://github.com/dagger/dagger/pull/9839#issuecomment-2734013528 for more context
Bikeshedding
Hide dagger shell?
Removed the "Experimental" annotation in dagger shell (was shown in --help) but kept it hidden to avoid confusion over using dagger shell vs dagger. May want to expose it anyway.
Hide shell builtins?
Hid the following shell builtins:
- Filesystem navigation:
.cd,.ls,.pwd - Scoping:
.stdlib,.deps,.core - Cobra subprocesses:
.install,.update,.upgrade,.login,.logout
REPL Experimental?
Remo...
What?
This is an experiment to see if including a module's top-level functions in .help makes sense.
Why?
Some people asked why .help didnโt show top level functions. Short answer is to keep it consistent with .help since a `` is basically the first function in a module, or its entrypoint (aka, constructor).
The list of a moduleโs functions comes from the object type that the entrypoint returns: the main object. This is like an object type returned by any other ...
putting this up as draft so maybe @jedevc can see something dumb i'm doing in here that's making this hang... i've tried invoking via shell and call plus various ways of passing the allowed module. still seems like regardless of what I do it hangs.
the daggerCliBase technique + daggerForwardSecrets thing works for the TestAPILimit test right above this one, so if it's something in the test code, it's a typo I can't see even though i'm looking right at it... one thing that's not in this dr...
โ ๏ธ Still needs quickstart guides! This PR only has placeholders for them.
Summary of Changes
-
Documentation Restructuring
- Consolidated multiple CI quickstart pages into a single comprehensive guide
- Removed redundant "Day 2" page
- Reorganized sidebar for a more intuitive navigation experience
-
New Content
- Created Examples page with real-world AI agent implementations
- Added dedicated LLM features page documenting Dagger's AI capabilities
- Added...
- Shrink the monolith
- Move a shared dependency to sdk/php/dev. Bonus: remove duplicate code
Signed-off-by: Solomon Hykes
This should have been done with https://github.com/dagger/dagger/pull/8669, but looks like this change was missed.
Glancing through the cookbook, I can't see any other examples like this.
Thanks to @vikram-dagger for flagging :pray:
We were using /var/run/dagger/engine.sock in a couple of places (after https://github.com/dagger/dagger/pull/9866), so this patch removes those.
Some of them just need to be renamed, but others should be entirely removed - the --addr flag shouldn't ever need to manually append the socket, we should automatically always add it.
What is the issue?
For context I'm running a k3s cluster using this example/module.
Not sure if it's related, but I frequently get issues when existing the interactive terminal.
dagger ~/svc $ exit
exit 0
Caught panic:
runtime error: index out of range [202] with length 202
Restoring terminal...
goroutine 1 [running]:
runtime/debug.Stack()
runtime/d...
What is the issue?
You cannot have a function name in a module that is named Query
Dagger version
dagger v0.17.0-llm.11 (docker-image://registry.dagger.io/engine:v0.17.0-llm.11) darwin/arm64
Steps to reproduce
When defining a module with the function Query the dagger develop will complete fine, but running dagger functions you get the following error:
# dagger/database-agent/internal/dagger
internal/dagger/dagger.gen.go:7977:2: query redeclared
internal/d...
This creates the first agent quickstart where you can create your own toy-programmer
At the moment it's possible to write Dagger modules that wrap cloud APIs, and there are benefits to that - but it's labor-intensive. The DX is cumbersome and there are gaps, for example Dagger/Graphql types don't map directly to JSON and OpenAPI (eg. no maps).
What if we added first class to external APIs somehow? Maybe as a special kind of dependency - imagine if your dagger.json could have remote APIs as a dependency, and the engine exposed that as a dagql module? The dependency source cou...
this PR adds tests for the --allow-llm flag and its associated policies.
in the process of writing these tests I found and fixed a bug in nested client allow-llm propagation that made ExperimentalPrivilegedNesting clients always try to prompt the user and did a little refactoring to make the code easier to navigate.
requires https://github.com/dagger/dagger-test-modules/pull/8 is merged and references fixed to point at dagger/dagger-test-modules instead of cwlbraa/dagger-test-module...
I faced this issue when running Podman Desktop on my mac.
Debugging the logs on the container led to an error updating the iptables and this was the fix.
The issue is already documented but it wasn;t obvious it effected me.
For llama.cpp that doesn't support both at the same time
Uses the default install partial on the agents installation section.
We haven't actually changed any details of the API - and it's pretty easy to give this as a fallback so that we don't need to bump any engine versions anywhere.
Noted this failure in https://github.com/dagger/dagger.io/pull/4328, where we got the following error while crawling a private module:
get module signature: input: moduleSource.asModule failed to get module runtime: failed to query git config: Unimplemented: unknown service Git
What happened? What did you expect to happen?
My antivirus (Cortex XDR) is blocking dagger based on static analysis of the executable.
This is the finding by Palo Alto's Wildfire analysis:
Sample contains hard-coded username/password brute force table | High
Malicious ELF files will use a list of username and passwords to login using brute force.Action: Sample contains hard-coded username/password brute force table
Details: hard_coded_passwords: 1234qwer,changeme,waldo
Ru...
The Engine API page should live under the Dagger API section, instead of its current location under the Custom Functions section.
Setup to use deno with Dagger:
deno init
dagger init --name=test --sdk=typescript --source=.
Dagger will automatically update the deno.json to support the SDK library.
Integration tests are added.
We do not directly run the test on the library since it's not useful, deno already ensure compatibility with node.
[dagger/dagger] Pull request opened: #9928 ci: Fix docs lint function call in Alternative CI Runners
While at it, replace alternative-ci-runners-3 with alternative-ci-runners-4, as discussed with @marcosnils
LGTM:
A few experiments:
- Add
LLM.withQueryfor making the whole Query schema available to the LLMloadFooFromIDfields are skipped
- CLI prompt starts from
Queryso you can jump right into action, with module + deps available - Un-deprecate
loop,withFoosetters, andfoogetters for now- Jury is still out on these, deprecating is a bit harsh (makes them hard to read in Zed)
What is the issue?
We're instrumenting our CI pipeline with OpenTelemetry. I expect the spans of our build test runs to map it to the parent trace-id but we observe orphaned spans.
Dagger version
sdk/go/v0.16.1
Steps to reproduce
dagger.io/client.arch: "amd64"
dagger.io/client.os: "linux"
I've attached the file to show how to reproduce the issue. The problem manifests in this test case as missing spans towards the end of the trace and disappear if we remove `dagger.WithRun...
This is gonna break a bunch of stuff, but better now than later...
Problem
When calling Host.directory() or Host.file(), I get a one-time snapshot of the file or directory, and it will never change for the whole session.
This hasn't been too much of a problem in one-off function calls with dagger call. But it becomes a major obstacle to using the Dagger Shell interactively for local dev.
Solution
Enable reloading of host files and directories in the same session.
Design
API: TBD
Shell UX: TBD
This introduces a new dagger mcp command that starts an MCP stdio server.
MCP clients can configure to exec: dagger mcp or dagger mcp -m path/to/module.
In this version, each dagger function corresponds to an MCP tool.
Caveats:
- Currently,
OPENAI_API_KEYor equivalent needs to be set as MCP is a method on the LLM object. This requirement will go away as we separate MCP from LLM. - Currently
-sor--progress plainneeds to be specified so only stderr is used, as `dagger m...
Adds integration tests requiring that the PHP SDK can handle method signatures of:
- Scalar Kind
- List Kind
- Void Kind
Problem
Secret providers currently fetch secrets in a lazy manner and have an internal cache system to avoid hammering the underlying service. Thing is that some of these providers generally emit extremely short lived keys (seconds) which for long pipelines this represents an issue as there's no current way to overcome this.
Solution
We should come up with a way so users can optionally set a TTL so secrets provider secerts are not cached indefinitely.
Questions
- Do we want this T...
Bumps the docs group in /docs with 4 updates: posthog-docusaurus, sass, typedoc and typedoc-plugin-markdown.
Updates posthog-docusaurus from 2.0.2 to 2.0.4
Updates sass from 1.85.1 to 1.86.0
Release notes
Sourced from sass's releases.
Dart Sass 1.86.0
To install Sass 1.86.0, download one of the packages below ...
Bumps the engine group with 11 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/1password/onepassword-sdk-go | 0.2.0 |
0.2.1 |
| github.com/alecthomas/chroma/v2 | 2.14.0 |
2.15.0 |
| github.com/anthropics/anthropic-sdk-go | 0.2.0-alpha.12 |
0.2.0-alpha.13 |
| [github.com/charmbracelet/glamour](https://gith... |
Bumps the sdk-python-docker group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.
Bumps the sdk-python-docker group with 2 updates in the /sdk/python/runtime directory: python and astral-sh/uv.
Updates astral-sh/ruff from 0.9.10 to 0.11.2
Release notes
Sourced from astral-sh/ruff's releases.
0.11.2
Release Notes
Preview features
[syntax-errors] Fix false-positive syntax errors emitted for annotat...
Bumps the sdk-java group in /sdk/java with 2 updates: io.smallrye:smallrye-graphql-client-api and io.smallrye:smallrye-graphql-client-implementation-vertx.
Updates io.smallrye:smallrye-graphql-client-api from 2.12.1 to 2.12.2
Updates io.smallrye:smallrye-graphql-client-implementation-vertx from 2.12.1 to 2.12.2
Updates io.smallrye:smallrye-graphql-client-implementation-vertx from 2.12.1 to 2.12.2
Dependabot will resolve any conflicts with this PR as long as you don't alter it yours...
Bumps the sdk-typescript group in /sdk/typescript with 11 updates:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.13.0 |
1.13.1 |
| @opentelemetry/core | 1.30.1 |
2.0.0 |
| @opentelemetry/exporter-trace-otlp-http | 0.57.2 |
0.200.0 |
| @opentelemetry/sdk-metrics | `1.... |
[dagger/dagger] Pull request opened: #9949 chore: bump jwt package to fix scanning engine CI failure
Based on https://github.com/dagger/dagger/actions/runs/14029841848/job/39303736375?pr=9944#step:5:11230 it seems the failure comes from jwt so I bumped the version to the fix
The first change should make testdev-everything-else complete quicker (it's currently ~17mins).
The second change should make testdev-module-runtimes complete quicker (it's currently ~14mins).
these are under development atm, and especially with https://github.com/dagger/dagger/pull/9915 we should be careful not to overload test-everything-else
Removes the double links in the nav to the examples docs page.
(This PR does a few things, still working on the description, quick PR up so I can go over the diff)
New evals system
- Added the beginning of a new suite of
evalsso we can quickly get a sense of how well each model understands our tool calling scheme as we iterate on it.- Gemini is great for this
- Adds an agent loop module for iterating on a system prompt based on how those
evalsgo.- We maintain a
READMEfor the tool calling scheme. - The agent generates a syste...
- We maintain a
This test has started to flake out more often recently again. Based on test output it looks like the attempt to prevent the cache mount from being pruned wasn't even actually running by the time the test containers were running (which is possible because it works by running a separate long running container in a different goroutine, so the goroutine isn't guaranteed to be running at any particular time).
This attempts to deflake by having the...
What are you trying to do?
When returning a custom type, or even a slice of strings. It would be great to have a native json method. Given this example return type: https://github.com/jasonmccallister/sql/blob/e1267aa57b6a46f8dd2f31aa9507c3e6584281a4/main.go#L16
In order to see the values of the fields, you would need to pipe | multiple times to see the values. Instead, if the return type supported a json
dagger call --conn=env:DB_URL list-column-details --table employe...
this function is a little too discoverable - trying out a quick fix
Otherwise, the go sdk is attempting to download go1.24 - we don't want that, especially as we're not really able to use any of those features.
Adds 2 tests asserting that the PHP SDK can:
- Receive an object (built-into-dagger) as an argument.
- Modify the object.
- Return the object.
Opening as a base to discuss!
x-linking https://github.com/dagger/dagger/issues/8520 for how this should interact with modules (tl;dr we can use contextual git).
Usage
# get the diff of the working directory
$ dagger core host directory --path=. as-git working diff
# get the diff to a specified target
$ dagger core host directory --path=. as-git working diff --target=
# determine if a git directory is dirty or not
$ dagger core host directory --path=. as-git working ...
What are you trying to do?
Some LLM servers that serve OpenAI endpoints do not behave the same as OpenAI when it comes to streaming, such as llama.cpp or certain Azure setups.
We should have a configuration, like an environment variable OPENAI_DISABLE_STREAMING, to not use streaming for the OpenAI client requests.
Why is this important to you?
No response
How are you currently working around this?
No response
What are you trying to do?
Some LLM providers tend to throw HTTP 429/502/503 when they're overloaded. We should have a configurable retry when one of these statuses is received
Why is this important to you?
No response
How are you currently working around this?
No response
Some engines are not able to managed tools and streaming at the same time, like llama.cpp.
This allows to define an environment variable to disable streaming:
OPENAI_DISABLE_STREAMING
This uses strconv.ParseBool so 1, t, T, TRUE, true, True will set disable the streaming while 0, f, F, FALSE, false, False will keep it.
By default streaming is not disabled.
Streaming will be disabled only if tools are used. If a query doesn't define any tools, streaming will be used.
Fixes ...
Signed-off-by: Juliรกn Cruciani
wippity wip wip, i cannot get an example to call this tool
What are you trying to do?
Would love to have more features for adding files. something like
ADD foo.tar.gz /files/foo.tar.gz
but with non-http sources that may require auth like S3.
client.Container().from("ubuntu").WithS3File("s3://bucket/file.tar.gz", "/files/foo.tar.gz")
We mainly use dagger for things like providing credentials that you can't do easily in a docker build. IMO this could be a great feature / value add for the dagger core libraries.
##...
With this change you no longer need to specify the exact model name, you may use either "claude" or "anthropic" in lieu of claude-3-5-sonnet-latest.
Same for other LLM providers.
Fixes #9203
- Fixes panics and errors on operations made on modules initialized with no sdk
- [ ] TODO: add tests
Co-authored-by @tiborvass
Only one quick fix for now, will push any more to this PR.
What are you trying to do?
I'm playing with an interactive command in a Dagger terminal and I'd like to capture the contents of stdout when the command exists.
Something similar to RedirectStdout/Stderr in WithExec would be nice.
Why is this important to you?
No response
How are you currently working around this?
No response
What is the issue?
Go codegen panics when a function is called "New"
Dagger version
dagger v0.17.1 (docker-image://registry.dagger.io/engine:v0.17.1) darwin/arm64
Steps to reproduce
- Create a function called "New"
- Try to execute
Log output
starting GOROOT= GOPATH=/go GO111MODULE=off GOPROXY= PWD=/src/vhs go list -e -f {{context.ReleaseTags}} -- unsafe
starting GOROOT= GOPATH=/go GO111MODULE= GOPROXY= PWD=/src/vhs go list -f "{{context.GOARCH}} {{context.Compile...
Change the test module to correctly point to the local sdk.
This is to assert that the current branch passes tests.
Also a non-behavioural change, in module_php_test.go.
Problem
Dagger SDKs do not bundle 100% of their code and dependencies. This means that when a developer builds their module, their build downloads third party packages from various third-party registries. And, because Dagger doesn't have a distinct build phase, this happens at runtime.
As a result, it's difficult to run Dagger modules behind corporate proxies, or in airgapped environments. There is ongoing work to allow configuring various proxies, but it's a game of whack-a-mole.
...
this lets prompt users dagger install modules and manipulate them in prompt mode as though they were the core module.
This was a bit of a halfway measure and is currently detrimental to consistent model behavior.
For example, I've observed:
- needless calls to
readVariable - attemps to pass variables as function args
With this change it will instead be 100% focused on objects and their functions.
Better late than never, woops!
:warning: Depends on:
This was scratching an itch :laughing:
On my laptop, I use GNOME, which provides gnome-keyring for storing passwords/keys, etc - it's fairly neat, and integrates with the desktop environment to prompt for the unlock password, etc. I can use it to store encrypted passwords for things like API keys, etc.
To do this, we can integrate with libsecret, which allows accessing this info. This is pretty much as close to a standard as there is across Linux desktop environments, it's also sup...
Usage:
dagger -m docs/recorder2 call render
What are you trying to do?
I am trying to convert a large docker project and I am stuck because there doesn't appear to be a way to port the VOLUME instructions.
Why is this important to you?
See above. I am stuck without VOLUME instruction.
How are you currently working around this?
I guess I could workaround it by using the dockerfile build feature, but I would like to avoid that.
What are you trying to do?
I started to write a simple coding agent where I give a limited workspace to the LLM, in order to implement simple tasks.
However, the LLM often "escapes" by directly using the base Workspace container, and end up ignoring the toolset that I explicly defined.
Example agent: https://github.com/samalba/agents/blob/robot-developer/robot-developer/main.go
Base Workspace's container: https://github.com/samalba/agents/blob/b6268db7f6bc606c9f74f2d7642156a88e2a78a8/r...
Don't think this is even needed anymore with the scrollback changes. I'm already seeing a blank line beneath it.
In addition to user-configurable function masks, maybe we should mask some functions from core types by default. The core types (Container, Directory) have a lot of functions, so the tool count goes through the roof. Maybe some of these tools can be masked by default?
It could be a slippery slope, we could accidentally cause a "nobody will need 64k of memory" situation... But worth discussing.
Which functions should we mask?
We don't have many options here that don't conflict with existing terminals or desktop environments.
Initially worried that shift+tab would conflict with tab completion, but it's not bound at the moment. If we want it later, though, maybe we shouldn't do this.
Naively split LLMEnv into two types:
- MCP (LLM-facing frontend)
- Environment (LLM-agnostic backend)
This split is done naively, for the most superficial change possible. The intent is to get this merged quickly, then follow-up with API polish.
TODO:
- Merge variables and bindings
โฆs, code and LLMs
- LLM is now a regular type. It can receive an environment
- Environment: an execution context within the Dagger Engine. Basically, a sandbox.
- Binding: a named mapping to a value, scoped to an Environment
- Environment and Binding are now dynamic, instead of LLM.
- Environment.with[TYPE]Binding: set a binding from from a value of type [TYPE]
- Binding.as[TYPE]: get the value of a binding, converted to type [TYPE]
Added hostNetwork, dnsPolicy and dnsConfig as optional fields to the Helm chart.
This is needed in some cases when using kube-pod to access the dagger engine running in a Kubernetes cluster. In my case I installed RKE2, deployed the dagger helm chart and got failed to resolve image "docker.io/library/alpine:latest" errors. After digging into it a bit I found that if I set hostNetwork: true it started working
export _EXPERIMENTAL_DAGGER_RUNNER_HOST="kube-pod://...
...
...
What is the issue?
According to the documentation at https://docs.dagger.io/features/shell#modes-of-execution, Dagger Shell supports running commands from a script file. However, the command dagger script.sh fails with an "unknown command" error.
Dagger version
dagger v0.17.2 (docker-image://registry.dagger.io/engine:v0.17.2) linux/amd64
Steps to reproduce
Reproduction Steps
- Start with a Dagger shell container based on Alpine Linux
- Create a simple Dagger script fi...
.llm=>$agent- get rid of llm variables => shell syncing now that it doesn't set vars
- get rid of obnoxious background highlight in nav mode
- chain calls by the same actor (i.e. tool calls, thinking spans)
Bumps the engine group with 8 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.68 |
0.17.70 |
| github.com/anthropics/anthropic-sdk-go | 0.2.0-alpha.13 |
0.2.0-beta.3 |
| github.com/docker/cli | 28.0.2+incompatible |
28.0.4+incompatible |
| github.com/docker/docker ... |
[dagger/dagger] Pull request opened: #10012 chore(deps): bump the docs group in /docs with 3 updates
Bumps the docs group in /docs with 3 updates: docusaurus-plugin-typedoc, react and react-dom.
Updates docusaurus-plugin-typedoc from 1.2.3 to 1.3.0
Changelog
Sourced from docusaurus-plugin-typedoc's changelog.
1.3.0 (2025-03-25)
Minor Changes
Exposed "type...
Bumps the sdk-python-docker group with 1 update in the /sdk/python/runtime directory: astral-sh/uv.
Updates astral-sh/uv from 0.6.9 to 0.6.11
Release notes
Sourced from astral-sh/uv's releases.
0.6.11
Release Notes
Enhancements
Add dependents ("via ..." comments) in uv export command (#12350)
Bump least-recent non-EOL macOS version to 13.0 (#12518)
Support --find-links-style "flat" indexes in [[tool.uv.index]] (#12407)
Distinguish b...
Bumps the sdk-typescript group in /sdk/typescript with 6 updates:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.13.1 |
1.13.2 |
| @types/node | 22.13.13 |
22.13.14 |
| @typescript-eslint/eslint-plugin | 8.27.0 |
8.28.0 |
| [@typescript-eslint/parser](https://gith... |
Bumps the sdk-elixir group in /sdk/elixir with 1 update: ex_doc.
Updates ex_doc from 0.37.2 to 0.37.3
Changelog
Sourced from ex_doc's changelog.
v0.37.3 (2025-03-06)
Bug fixes
Handle http-equiv=refresh during Swup.js navigation
Include full error description when syntax highlighting fails
Commits
0ab3d49 Release v0.37.3
42832e2 Add banner for code highlighting exceptions, improves #2095
a2a9869 Let the browser do the reload on http-equiv ...
Add the missing end backquote around Write() in LLM environments
Before:
Reported in [Discord](#1354863326907334736 message).
This fixes an issue where state was getting deleted when using a variable in the same run (same prompt or in non-interactive mode):
โฏ dagger -c 'dir=$(directory); $dir | entries; $dir | name'
Error: tried to access non-existent state "R2MDGQFTJ74TAAXBA26SBGHZXF"
This commit:
- Updates the Ci quickstart to a single-page format, also removing various explanations and sections
- Reformats and copy edits both CI and AI quickstarts to follow a similar style
- Creates cross-links and updates broken links
- Removed code snippets and images that are no longer required
Fixes https://github.com/dagger/dagger/issues/10009
If the root command has positional arguments we check if itโs an existing file. If it isnโt, return an error before passing it on to dagger shell. This way we can still offer suggestions on a subcommand typo:
โฏ dagger qery
Error: unknown command or file "qery" for "dagger"
Did you mean this?
query
exit status 1
Note that I added โor fileโ to the error that the root command returned by default.
What are you trying to do?
There are often times when you need to see env vars that the shell has, it would be nice to have the .env command as a built-in. By default, with no arguments - entering .env would show all env vars as a list. Might be worthwhile to also support a specific var with .env FOO_BAR to eliminate calls like env | grep FOO.
Why is this important to you?
No response
How are you currently working around this?
Currently you have to use `.echo $FOO_B...
What are you trying to do?
If there is an issue with a specific model, it would be great to be able to fall back to a different model. For example I sometimes get rate limited or stuck with the following errors:
โ๐ค 1.7s
โ ! received error while streaming:
โ ! {"type":"error","error":{"details":null,"type":"overloaded_error","message":"Overloaded"}}
! input: llm.withQuery.withPrompt.sync select: received error while streaming:
! {"type":"error","error":{"details":null,"type":"overlo...
Eliminate FIXME in the golangci by using $HOME together with expand option.
Manual test so far by just asking an LLM what tools it has available when given an object that has a bunch of fields:
type Toy struct {
Foo *dagger.Container
Bar *dagger.Directory
Baz *dagger.File
}
func New() Toy {
return Toy{
// Build a base container optimized for Go development
Foo: dag.Container().
From("golang").
WithDefaultTerminalCmd([]string{"/bin/bash"}).
WithMountedCache("/go/pkg/mod", dag.CacheVolume("go_mod_cache")).
WithWorkdir("/app"),
...
What are you trying to do?
Many users have requested the ability to capture the state of a Container that has been modified through an interactive session with terminal such as in
โ container | from alpine | terminal
dagger / $ apk add git
dagger / $ exit
โ container | from alpine | terminal 3m47s
Container@xxh3:0991463b40bf15ca
It would be amazing if you could just run
โ ctr=$_
โ $ctr
Why is this important to you?
No response
How are ...
I thought this was already handled by the post-release process, specifically this command, but it doesn't seem to be the case ๐คท
find .github/ -type f -exec sed -i 's/0-17-1/0-17-2/g; s/0\.17\.1/0\.17\.2/g' {} +
Follow-up to https://github.com/dagger/dagger/pull/9994
What is the issue?
Engine which may handle prompt mode fine with LLMs like Gemini, GPT, Claude, panics when llm is run in shell mode under 0.18.0
Dagger version
0.18.0
Steps to reproduce
dagger
llm
Log output
Gemini:
time="2025-04-01T12:39:01Z" level=debug msg="handling http request" client_hostname=MacBook-Pro.local client_id=fofhdzs4ryf0z209g784traqb contentType=application/json method=POST path=/query session_id=zd8b4i9hmvirbg5onv3166e0w span=18ae7a99ac530...
Fixes 10032. Initializes once when LLM is created
Signed-off-by: Marcos Lilljedahl
What is the issue?
When creating a module that contains a reference to a time.Time Dagger cannot compile the module and fails with
dagger functions -m repro
โ connect 0.6s
โ load module 1.8s
! failed to serve module: input: moduleSource.asModule failed to call module "repro" to get functions: call constructor: process "go build -ldflags -s -w -o /runtime ." did not complete successfully: exit code: 1
โ โ finding module configuration 0.4s
โ โ initializing module 1.4s
โ ! input...
The URL is 'community-sdk' singular.
I hope this is helpful. Dagger looks great!
Adds the LLM trace for the LLM features page.
Now when a model ends its turn without returning, and the user has passed -i, we'll prompt the user to help the model out.
(Credit to @cwlbraa who started on this in #9978 - preserved a sign-off on the commit!)
โฆ, host and current module access
Deprecates LLM.withQuery()
What is the issue?
When changing model of an existing LLM instance, with llm.withModel, the underlying MCP implementation is not reconfigured to adapt to the provider. As of 0.18.0 that means the "needs system prompt" flag is not changed.
Dagger version
dagger v0.18.0 (docker-image://registry.dagger.io/engine:v0.18.0) darwin/arm64
Steps to reproduce
dagger -c 'llm --model gemini | with-model gpt-4o'
Log output
No response
this PR intends to allow users to run MCPs within dagger and wire them up to their dagger LLMs.
its mega-wip atm.
Currently the prompt has a blank line above it and then the keymap to the right of it. So this fixes that. (Tested locally.)
With this fix, env | with-file-output foo description | output name now returns foo instead returning an empty result.
The Google Gemini API returns a googleapi: Error 400 if the request includes an empty tools declaration (e.g., [{ FunctionDeclarations: [] }]). Previously, the code always included the tools parameter, even if there were no functions to declare, resulting in invalid requests.
This fix ensures the tools parameter is only sent when there is at least one valid function declaration. This change resolves the API error and aligns with Geminiโs request format.
This enables the user to run dagger mcp without specifying the progress option -- and adds safeguards on user progress flags mismatch:
- Fails if
progress=ttyin non-tty environment:
โ dagger_dev mcp --progress tty -m github.com/shykes/hello | cat
Error: cannot use tty progress output: it interferes with mcp stdio
- Enforce progress plain when
tty=auto
โ dagger_dev mcp -m github.com/shykes/hello
overriding 'auto' progress mode t...
fix function name in comment
(borrowing some logic from #9518)
This patch allows marking certain APIs as experimental, just like we allow marking certain APIs as deprecated.
TODO:
- [x] add dagql plumbing
- [ ] sdks
- [x] go
- [ ] python
- [x] typescript
- [ ]
schema.graphqls(:thinking: need to investigate how to do this)
Motivations:
- Stop setting a system prompt just for Gemini - if we need one, do it across the board in a way that's compatible with MCP.
- Improve behavior for local models like
qwen2.5-coder:14b, which don't know to call thereturntool (among other things).
New SYSTEM_PROMPT tool
We don't want to rely on setting a system prompt since we don't have control over that in MCP clients like Goose, Cursor, etc. - so we only set it for Gemini, because Gemini performs pretty terr...
What is the issue?
There is much confusion for new users around with-mounted-directory, with-mounted-file vs with-directory, with-file. We often see these questions in Discord. We should doco it and also point it out right away in the CI Quickstart so folks start off on the right foot.
We should also look at updating the descriptions in the core API if they need an update to be clearer for humans and LLMs.
What is the issue?
Diagrams, link to it from Quickstart
Fixes https://github.com/dagger/dagger/issues/7678
Also allows nested quotes, as reported in Discord.
Before
Spread commas
โ container | from alpine | with-exec -- echo trivy fs --scanners vuln,misconfig,secret | stdout 2.4s
trivy fs --scanners vuln misconfig secret
Nested quotes
โ container | from alpine | with-exec -- sh -c 'echo "hello world"' | stdout
! function "with-exec": inva...
Problem
The Dagger API has 6 different reference docs:
- GraphQL
- Go
- Python
- Typescript
- PHP
- Java
This is very frustrating because it's impossible to link to a single page to reference a given API type or function. Instead I have to either 1) ask or guess the most relevant language, then search in the corresponding reference doc, or 2) link to the language-agnostic GraphQL reference, which is usually too low-level for most people.
Solution
Develop a single reference API refe...
What is the issue?
The magic-cache setting for dagger-daemonset is broken. The indentation was changed with the following commit, and now the chart generates an invalid YAML file in magiccache enabled.
Problem
When calling .install MODULE from the dagger shell, the newly installed module is not available in the same session. I have to exit and re-run the shell to use it.
Solution
Fix .install so that it loads the installed module in the same shell session.
Problem
Dagger core types (Container, Directory, File etc) could be more LLM-friendly:
- They have a lot of functions, which increases token cost and decreases performance.
- Function comments have not been optimized for clarity
Solution
- Look for core functions that can be hidden without hurting the LLM's ability to use them. This is a delicate balance
- Clean up and improve all function descriptions, using evals to measure the impact objectively
What is the issue?
Disk hit 100% and I was unable to clean it with dagger commands like prune. I think this is because it's trying to spin up a module?
Use "dagger [command] --help" for more information about a command.
/ # dagger core
โ connect 0.1s
โ loading type definitions 0.1s
! query module objects: input: failed to get schema: failed to select introspection JSON file: select: parent snapshot z62ntc4rcflkf4lixwzv8hk2b does not exist: not found
Dagger version
16.1
...
What is the issue?
When running a long-running function (like Service.up) in dagger shell, I can't kill that service without also killing the shell session.
Dagger version
dagger v0.18.1 (docker-image://registry.dagger.io/engine:v0.18.1) darwin/arm64
Steps to reproduce
- Open interactive dagger shell:
dagger container | from nginx | up- Go to view mode:
esc - Press either
Ctrl-Corq
The shell session is terminated
Log output
No response
due to what it seems to be a bug in the buildkit client initialization
when using stdio (TBC), bumping the default connect timeout from 3s to 10s
so ssh connections work
Signed-off-by: Marcos Lilljedahl
Fixed the indentation in helm/dagger/templates/engine-daemonset.yaml for the secretRef block
Fixes #10065
- add winget to goreleaser
- add winget install
- improve powershell command
- fix invalid 'development' install example
Removed incorrect note about subdirectory requirements
[dagger/dagger] Pull request opened: #10076 chore(deps): bump the docs group in /docs with 4 updates
Bumps the docs group in /docs with 4 updates: sass, typedoc, typedoc-plugin-markdown and typescript.
Updates sass from 1.86.0 to 1.86.3
Release notes
Sourced from sass's releases.
Dart Sass 1.86.3
To install Sass 1.86.3, download one of the packages below and add it to y...
Bumps the sdk-typescript group with 8 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.13.1 |
1.13.2 |
| typescript | 5.8.2 |
5.8.3 |
| @types/node | 22.13.13 |
22.14.0 |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD... |
Bumps the sdk-java group in /sdk/java with 5 updates:
| Package | From | To |
|---|---|---|
| io.netty:netty-common | 4.1.119.Final |
4.2.0.Final |
| io.netty:netty-handler | 4.1.119.Final |
4.2.0.Final |
| com.github.javaparser:javaparser-core | 3.26.3 |
3.26.4 |
| uk.org.webcompere:system-stubs-jupiter | 2.1.7 |
`2... |
As of today, the file created by the Generate function is never used and needs to be removed by hand.
This commit removes the creation of those useless schema.json files.
Sometimes we have a "job" running within dagger that needs to tidy up resources it allocates (e.g. a provisioned VM in a cloud provider, etc). If this job is terminated by dagger then that resource will be left running, which has significant cost.
The problem is that if a parallel task within dagger fails, then the job that manages that resource is killed immediately, leaving the resource allocated, and our wallets emptying.
Are there any facilities within dagger to prevent this?
Fo...
What is the issue?
I am using the native macOS Terminal (version 2.14).
The dagger output is duplicated and off by one pixel. This makes the TUI a little hard to read at times.
See some examples:
Dagger version
dagger v0.18.2 (docker-image://registry.d...
Problem
Visual Studio Code has extensions to show CI status directly in the editor. This is done with extensions, such as the Github Actions extension. Unfortunately the same integration is not available with Dagger Cloud. Even if my CI is configured to run Dagger, and send telemetry to Dagger Cloud, I cannot access the status of my Dagger pipelines as conveniently.
Solution
Implement a Visual Studio Code extension which integrates directly with Dagger Cloud, and shows CI status dir...
What are you trying to do?
Default values can be specified for optional arguments, e.g.
// Say hello to the world!
func (hello *Hello) Hello(ctx context.Context,
// Change the greeting
// +optional
// +default="hello"
greeting string,
// Change the name
// +optional
// +default="world"
name string,
This is visible in the help of the cli:
However, the generated code only cont...
Same as we did for the Engine & CLI tests in https://github.com/dagger/dagger/pull/9887, we want to see what difference this runner type makes.
Will update with metrics after the first run.
So that we see how they compare to the new runners after a week (or two?) back on the initial infrastructure.
As discussed with @sipsma @jedevc earlier today.
Signed-off-by: Marcos Lilljedahl
. If this job is terminated by dagger then that resource will be left running, which has significant cost.
:wave: could you please be more specific when you mention "a job terminated by dagger"?
The problem is that if a parallel task within dagger fails, then the job that manages that resource is killed immediately, leaving the resource allocated, and our wallets emptying.
As above, it'd be helpful if you could share a brief example about what you're referring to when you say ...
We had support for skipping the automatic init in withExec, but not for containers created in dockerfile RUN statements, this adds support for that arg to Container.build and Directory.dockerBuild.
Autogenerated from docs.
Using code from:
https://github.com/prisma/docs/blob/main/docusaurus.config.ts#L95
from this issue:
https://github.com/facebook/docusaurus/issues/10899
dagger -c 'server | up'
Sample output:
https://gist.github.com/jpadams/864dda6b3df0e0536497efd5be315405 llms.txt
https://gist.github.com/jpadams/9cbf07138b2e33baf57d9b8558f05265 llms-full.txt
closes ECO-430
This adds a --core flag to the MCP command, allowing the env to optionally expose the core API as an MCP server
Usage
| Module Present | Core Present | Exposed Tools | Outcome |
|---|---|---|---|
| โ | โ | SDK + Core | โ Success |
| โ | โ | SDK only | โ Success |
| โ | โ | Core only | โ Success ... |
What is the issue?
When a job takes longer than 5 minutes, it times out. This only affects the bun runtime. node works fine. This is due to: https://github.com/oven-sh/bun/pull/6217
Dagger version
v0.18.2
Steps to reproduce
/**
* Bun timeout
*/
@func()
async bunTimeoutRepro(): Promise {
return dag
.container()
.from("alpine:latest")
.withExec(...
Remove the generation of the full sdk directory but instead generate a smaller bundle (4.5M).
This allows better maintenance and simpler dependency management for the user.
It also speed up the init/call time since the only required dependency is typescript.
Update TS runtime to use the bundle SDK and remove previous lib generation.
Update package.json / tsconfig.json / deno.json to use the bundled library.
Update export on the Typescript SDK to make accessible the telemetry pack...
The MCP protocol has a new feature called Roots. It is already supported by Visual Studio Code and other clients are sure to follow. We should support it as on the server side asap.
Roots seem to be the solution to our "contextual access" problem:
- Dagger is highly contextual: different directories in the same repo can have different modules, which means a diffe...
This PR adds SecretArg to docker build api. fixes #9437
Overview
When exposing a module over mcp, dagger doesn't expose the module type's actual description to the MCP client. Instead it exposes the description "odule to expose as an MCP server"
What I did
- Configure
gooseto usedagger -s mcpas a mcp server - Open goose in the context of a local checkout of
github.com/dagger/dagger - Prompt goose:
show me a table of all the tools available to you: name, desc, schema
What I expected
A table of tools including this line:
...
Problem
When configuring Goose to use dagger mcp as an extension, the extension fails to load with a cryptic error. It turns out that the default log output of dagger mcp is interpreted as an error, or invalid output, by Goose. Calling dagger -s mcp instead solves it. This is confusing and should not be the default outcome.
Solution
Make it so that dagger mcp works as a Goose extension / MCP server, without having to guess which flags to add.
What are you trying to do?
Access a module's own version information directly from within the module, without requiring expensive git tag fetching operations. See this conversation in discord: #maintainers message.
Specifically, we'd like the github.com/dagger/dagger/version module to be more efficient by enabling a pattern like dag.CurrentModule().Version() which would return the current version (tag or commit SHA) ...
Follow-up from https://github.com/dagger/dagger/pull/9118.
When we mixed in slashes here, we should have ensured that we updated the view. Otherwise, we could encounter the following scenario:
- Module A uses v0.16.0 (no trailing slashes), and calls
Directory.entrieson a directory. - Module A uses v0.17.0 (has trailing slashes), and calls
Directory.entrieson the same directory.
If this all occurs within the same session (or across the whole engine once https://github.com/dagge...
Module version compatibility was introduced originally in https://github.com/dagger/dagger/issues/7640. When it was originally added, we decided that we would only add Views for fields that changed or removed - added fields wouldn't get a field.
That's because, there's actually no need from a compatibility point-of-view.
The main reason that we might want to is that it's technically possible right now to dagger develop --compat to a specific ``, and get a view of the API that is c...
Module version compatibility was introduced originally in https://github.com/dagger/dagger/issues/7640. Essentially, it allows modules to be served a compatible old API, while we're free to modernize the API for new + updated modules.
However, the original really only covers changes to fields:
- Fields being removed/renamed
- Fields added (but we don't, see https://github.com/dagger/dagger/issues/10102)
- Fields with different type signatures
We don't handle changes to types - I remem...
Sections in the Dagger blog are not linkable. This is annoying since some of our blog posts have a lot of rich content that we often want to reference later. For example, release announcements. Instead of linking to a particular feature in the announcement, I have to link to the whole post and say "scroll down to the part about ".
What is the issue?
Was using TAB completion in Dagger Shell and got panic when tabbing.
Dagger version
0.18.2
Steps to reproduce
dagger -M
โ dir=$(directory | with-new-directory
Log output
Caught panic:
runtime error: slice bounds out of range [1:0]
Restoring terminal...
goroutine 1 [running]:
runtime/debug.Stack()
/usr/lib/go/src/runtime/debug/stack.go:26 +0x64
runtime/debug.PrintStack()
/usr/lib/go/src/runtime/debug/stack.go:18 +0x1c
github.com/charm...
Bumps the engine group with 13 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/alecthomas/chroma/v2 | 2.15.0 |
2.16.0 |
| github.com/anthropics/anthropic-sdk-go | 0.2.0-alpha.13 |
0.2.0-beta.3 |
| github.com/containernetworking/cni | 1.2.3 |
1.3.0 |
| [github.com/jackpal/gateway](https://github.com/jackpal/gat... |
The new util is a bit more ergonomic in many situations by using generics to return results directly.
This was mostly done by Claude, with human touch-ups.
Follow-up from here: https://github.com/dagger/dagger/pull/9682#discussion_r2021729577
Fixes #10097
When exposing a module over mcp, dagger didn't expose the module type's actual description to the MCP client. The fix now shows the actual module description
Open question
- What do we want to show when there is no module description ?
cc @tiborvass
Problem
The default verbosity of the TUI is awesome, but... it's a lot. People get overwhelmed - like running shell scripts with set -x by default. Or stracing your unix tools by default.
This is actually 2 problems in 1:
- Problem 1: the default verbosity is too high
- Problem 2: the lower verbosity, as implemented, is still overwhelming. We need a different kind of low-verbosity output
Solution
Default output should be a new output, with a fixed depth of 2. Basically, only ...
What is the issue?
The Env api should show installed dependencies as part of its WithXInput/WithXOutput APIs.
Curiously, after loading a module, calling .refresh will cause the env API extensions for dependencies to appear. This bug also doesn't occur when loading a module via cd, like dagger -c ".cd ..; env | .help" will show all the env extensions of ..'s installed modules.
Dagger version
dagger v0.18.2
Steps to reproduce
for example, DaggerDev, `dagger -c "env | .h...
As this is our second slowest test suite - 13m 20s P90 for the last 2 weeks - and also most likely to flake, we (@sipsma @jedevc) were curious to see how this behaves when everything is split.
FWIW, this provided some surprising results, so we want to dig a little bit more into the behaviour of this particular split:
Builds on top of:
We may not want to merge this, the primary rea...
Sorry, not sure on what the official terminology is.
By a "job" I mean a process that's launched using .with_exec([...]) (in the python API). Here's an example script. We want the use_resource job to either always execute to completion, or to be able to receive a SIGTERM and be able to handle its shutdown gracefully (obviously this would involve modification of the shell script that it's running, but hopefully this is enough of an example).
#!/usr/bin/env python3
imp...
this PR adds a selectRoot tool and the ability for Environments to specify an initial selection for an LLM. The idea here is that the default behavior for the dagger shell should be to drop the llm into the module, but also give the llm the ability to back out to the core API.
this is currently broken because i'm trying to pass a module to dagql to construct an environment, but trying to get a module in the shell context via dag.CurrentModule() chokes- presumably that function is intended...
supersedes #10059
supersedes #9986
wip
Ok, now I got a better idea of what you're trying to achieve. @jedevc and @sipsma will very likely have more context but I don't think it's currently possible with Dagger's design to signal a process which is running in a with_exec step.
There might some ways you can hack it by signaling the process outside of Dagger but I'd like to see what Erik and justin have to say about this particularly around the idea that maybe something could be done by leveraging the current option we have to ...
This is my first PR, please let me if I am missing something.
This PR addresses bug where the shell was crashing due to a slice bounds out of range [1:0] error in dispatchCall, caused by accessing args[0] when call.Args is empty.
This is my first PR, please let me know if I am missing something.
This PR addresses bug where the shell was crashing due to a slice bounds out of range [1:0] error in dispatchCall, caused by accessing args[0] when call.Args is empty.
What is the issue?
Pardon my laziness, I will copy-paste from discord
I tried setting up dagger engine behind a k8s service (and tried to configure dagger client to connect to the dagger engine using k8s service name + port). While the connection is established, dagger builds fail with some weird error saying smth about an invalid session. I straced dagger and saw that it opens x4 connections to the dagger engine. Since k8s services are load-balanced round-robin, each connection was pro...
What is the issue?
Hi all
I'm using the latest version of Dagger engine i.e. 0.18.2
By running my module using dagger call [...] -vvvv --progress=plain --interactive tests (where [...] represent my own flags), I got the error "failed to forward exit code: failed to close terminal: EOF"
container = (
await container.with_exec(["php", "artisan", "config:clear"])
.with_exec(["php", "artisan", "key:generate"], expect=ReturnType.SUCCESS)
.with_exec(["php",...
supersedes #10121 so it can run with secrets
- [x] Import evals from https://github.com/vito/daggerverse/tree/4dd3536684dbcf4345597ac6b64c878b454839ac/botsbuildingbots
- [x] Support
.envinjection in GHA workflows - [ ] Get
OP_SERVICE_ACCOUNT_TOKENsecret working - [ ] Evals should run against dev engine, not outer one
- [ ] Only run for PRs labeled
evals - [ ] Fine tune pass/fail expectation thresholds (ideally we trust green)
Looks like this was missed in the past couple of ships
Follow-up from https://github.com/dagger/dagger/pull/10074
This is currently broken on main:
Related to https://github.com/dagger/dagger/issues/9582
Summary of changes
- Rename
addtoinstallfor consistency. - Add
listwith optional--jsonoption - Add uninstall
- New integration tests for CLI commands
- New
WithoutClientmethod onModuleSource
There are 2 other commands describe in the issue:
update: Not sure how to implement it properly yet, for now existing generators are bundled inside the engine as SDK methods so it's not a priority- `config [s...
replaces #10123 with local branch
When rebasing #10090, I mistakenly removed the fix from #10111.
[dagger/dagger] Pull request opened: #10136 fix(sdk/elixir): escape special characters in docstrings
This superseded #10113 with escape both single and triple quote docstrings.
What is the issue?
Hi!
I discovered that some gitalias entries can fail the codegen. See the log below:
! failed to run codegen: failed to load dependencies as modules: failed to load module dependencies: select: failed to get module runtime: git config error:
! Failed to parse git config invalid format: line "\"; printf \"%s" doesn't match key=value pattern
Error: failed to generate code: input: moduleSource.withEngineVersion.generatedContextDirectory failed to run codegen: fai...
[dagger/dagger] Pull request opened: #10138 helm: enable using persistent volume claims in DaemonSet
This PR enables using PVCs as ephemeral storage for the cache in DaemonSets
The snippets tab shows Python code for SSH in both cases. This updates the simple clone tab to show the correct code.
remove duplicate words
looks like Commit 5bbc4be broke file path. fixed in this pr
What is the issue?
I opened this issue as the project lacks proper documentation around how to setup a dev environment for the project. I was trying to contribute to this project but unfortunately, after first PR is merged, I am unable to move forward. I tried a lot to setup a local running engine that I can debug via dlv, and failed.
A dev documentation exists, however I feel that this document expects developer to already know about the project. This is the one: https://github.com/...
Bumps the sdk-java group in /sdk/java with 2 updates: com.palantir.javapoet:javapoet and org.junit:junit-bom.
Updates com.palantir.javapoet:javapoet from 0.6.0 to 0.7.0
Release notes
Sourced from com.palantir.javapoet:javapoet's releases.
0.7.0
No documented user-facing changes
Commits
3a501f5 Release 0.7.0
af0e200 Add newlines between types in long interface lists (#196)
569df27 Excavator: Upgrades supp...
Bumps the sdk-typescript group with 10 updates in the /sdk/typescript directory:
| Package | From | To |
|---|---|---|
| @grpc/grpc-js | 1.13.1 |
1.13.3 |
| @opentelemetry/semantic-conventions | 1.30.0 |
1.32.0 |
| typescript | 5.8.2 |
5.8.3 |
| @types/node | `22.13.13... |
Bumps the engine group with 14 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/alecthomas/chroma/v2 | 2.15.0 |
2.16.0 |
| github.com/anthropics/anthropic-sdk-go | 0.2.0-alpha.13 |
0.2.0-beta.3 |
| github.com/charmbracelet/bubbles | 0.20.0 |
0.21.0 |
| [github.com/containernetworking/cni](https://github.com/conta... |
Bumps the sdk-python-docker group with 2 updates in the /sdk/python/runtime directory: python and astral-sh/uv.
Updates python from a866731 to 8582432
Updates astral-sh/uv from 0.6.9 to 0.6.14
Release notes
Sourced from astral-sh/uv's releases.
0.6.14
Release Notes
Python versions
The following Python versions have been added:
CPython 3.13.3
CPython 3.12.10
CPython 3.11.12
CPython 3.10.17
CPython 3.9.22
See the python-build-standalone release n...
Bumps the docs group in /docs with 1 update: typedoc-plugin-markdown.
Updates typedoc-plugin-markdown from 4.6.1 to 4.6.2
Release notes
Sourced from typedoc-plugin-markdown's releases.
typedoc-plugin-markdown@4.6.2
Patch Changes
Expose full declaration for returned union types (#799).
Move isOptional flag inside backTicks (#797) - thanks @โLekoArts.
Added support for TypeDoc's v0.28.2 fea...
Hello!
I currently have a pipeline that builds a multiarch image. The individual platforms take long enough that they need to be executed on two different runners, then combined into the final multiarch image in a final stage. Something akin to,
/- publish image @ ":{commit}-amd64" -\
source - create ":{commit}" from ":{commit}-armd64" and ":{commit}-amd64"
\- publish image @ ":{commit}-arm64" -/
This pushes two ta...
It appears that LLM.withModel is broken. See this support conversation
Problem
When I run a command in the dagger shell, the shell stays in "edit mode" while the command is running. This creates confusion (is the command in the foreground? has it completed?), and it also makes it difficult to cancel the command: you have to press esc to switch to "view mode", then ctrl-C.
Solution
Change the dagger shell to switch to "view mode" while a command is running.
This has been happening a lot lately.
Primary error seems to be:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:3.1.2:install (default-install) on project dagger-sdk-parent: Failed to install metadata io.dagger:dagger-sdk-parent/maven-metadata.xml: Could not parse metadata /root/.m2/repository/io/dagger/dagger-sdk-parent/maven-met...
This started flaking occasionally a few days ago. First occurrence I found is at https://v3.dagger.cloud/dagger/traces/99b8612ffeb0bd86a718c0d3164e0ffb?span=c7b32ffabfbd2e59
Error looks like
failed to check if module already exists: input: moduleSource failed to stat local path: failed to stat path: failed to get requester session: session for "1s13ivxachyz418qvzs4dtfoh" not found
It's a bit of a mystery since the TestSystemCACert tests run against their own isolated nested engine...
Bumps the engine group with 14 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/alecthomas/chroma/v2 | 2.15.0 |
2.16.0 |
| github.com/anthropics/anthropic-sdk-go | 0.2.0-alpha.13 |
0.2.0-beta.3 |
| github.com/charmbracelet/bubbles | 0.20.0 |
0.21.0 |
| [github.com/containernetworking/cni](https://github.com/conta... |
Change: https://github.com/dagger/buildkit/commit/7de50079619b3a3a910e6a0cf8f0dd95b52042c7
Hoping this may help with https://github.com/dagger/dagger/issues/10157 among other various "session not found" errors
Draft so I can test the rough fix here in CI for a few rounds to verify it works and doesn't hurt performance. Will cleanup if all looks good.
Noticed this while spelunking around the code a bit. There's a semblance of a chance this could explain https://github.com/dagger/dagger/issues/10157, but far from guaranteed to be the root cause there. Seems worth a fix either way.
Theoretically, before this change it seems possible for the session attachables of a nested client to not be...
Change in our fork: https://github.com/dagger/buildkit/commit/6f5903130a809fae40f475a7f9f256078f1131ed
Reasonably confident this fixes the problem in https://github.com/dagger/dagger/issues/10157, but leaving that one open until we haven't seen it for a while.
Also suspect this is most likely the culprit behind https://github.com/dagger/dagger/issues/9557, but again won't know for sure until we haven't seen the problem in a while.
- cc @vito the
returnErrormystery may finally be sol...
this commit also introduces a check to see if the current
credentials.json file is corrupted and if that is the case, it triggers
the authentication flow again automatically
Signed-off-by: Marcos Lilljedahl
What is the issue?
When passing an uninitialized object to a method, it gives a 400 GraphQL error without a clear error message of what went wrong.
Code:
@object()
export class TSProject implements Project {
source: Directory
ctr: Container
packageCache: CacheVolume;
buildCache: CacheVolume;
readonly projectDir = "/app/";
constructor(
@argument()
source: Directory
) {
this.source = source;
this.ctr = dag.node().withPnpm()...
Partial fix for https://github.com/dagger/dagger/issues/10129, by improving the error message - it still doesn't work, but actually informs the user that it isn't supported.
Previously, we were often returning invalid terminals from the OpenTerminal function. This could happen because gRPC does not actually wait for the call to Session to complete - instead, any errors returned (like the one that reports that the user can't open a terminal in a --progress=plain session) is actually r...
Technically, we are error handling, we should take these errors and print them nicely, and exit correctly.
We've had bug reports that mention the panic, and interpret it as being a dagger internal error. This seems fair, panic should be reserved for exceptional + unrecoverable scenarios (not ones that can be caused by users by passing bad input, like trying to execute a program that's not in the PATH).
As of 0.18.3 the core types like Container are more reliable to use directly. This removes the need to use something like toy-workspace for a simple agent like the quickstart.
For more advanced agents a focused tools module is still important. This will come up in the new agent quickstarts part 2 and 3.
Follow-up to https://github.com/dagger/dagger/pull/10162
Still saw an occurrence of the flake, but this time it's because the healthcheck failed 2 times in a row rather than closed early due to a bug: https://v3.dagger.cloud/dagger/traces/64ca948ee08ce288105b158ab8889321?span=8960846c5fe9627d&logs#8960846c5fe9627d:L245
Rather than try to play a game of tuning these, I'm trying out disabling them entirely: https://github.com/sipsma/buildkit/commit/03396bcf635a07d4e0ad7b50dab1a28d71f8f132...
Reported by user in [Discord](#1361372104083378176 message).
Directory and File arguments weren't resolving relative paths correctly before passing on to the flag.
since we're not mounting the buildkit sock anymore to perform privileged
nesting, there's no security risk in using this option now.
ref: #1361775263196778496 message
Signed-off-by: Marcos Lilljedahl
There's currently a bug in v0.18.3 that frequently causes the publish job to error out due to some unhandled cases involving cross-session cache hits and +private state.
This will be fixed separately, but in order to avoid this problem during the release of v0.18.4 this change moves the Publish job to run on a single-tenant engine so that it doesn't have any other sessions connected that can cause the bug.
Generally speaking, running the Publish job on a single-tenant engine is probab...
Our publish job has been failing most of the time on main after upgrading to v0.18.3 (but usually passed on a re-run) Was able to repro locally and realized it has to do with getting cache hits on module objects that have private state. The engine doesn't know about private fields so it can hold cache refs open to them, which opens the door for getting a cache hit on an object with a local dir stored in private state, the original cache ref for that local dir being released, resulting in it b...
fix some function names in comment
Just a typo in the Security - Secrets documentation.
See here: https://github.com/microsoft/winget-pkgs/pull/248030
We need to have @dagger-ci sign the CLA, see the full text at https://opensource.microsoft.com/cla/.
This can be done after the automated goreleaser PR to winget-pkgs is complete - just adding this as a reminder, and record.
cc @jpadams @samalba
This commit makes the following changes:
- Introduces the interactive terminal early
- Adds a screen recording of the interactive terminal in action
- Updates some phrasing to be clearer
When building a container using Directory.dockerBuild, any ports exposed in the Dockerfile will be lost when calling up on the container.
Default values for arrays are still handled weirdly but pedantically by only allowing the empty value with the string "[]".
This PR extends dagql views (added way back in https://github.com/dagger/dagger/pull/7759) to also work with field args, instead of just with the fields themselves.
The motivation for this is that it was getting increasingly complex to make backwards compat changes for code. For example, to remove an arg, it was required to make a full copy of the field, and to re-declare all the args. This was error-prone, and didn't really convey the intention at a glance.
To be able to simplify thi...
Sending out so it can be manually tested
Will add integ test before merge
Updates the visualization page for readability and CTA.
[dagger/dagger] Issue opened: #10186 ๐ mailto: links in module prompts with @git module addresses
What is the issue?
When loading a module using the git address (e.g. dagger -m git@github.com:jasonmccallister/database-agent.git) the link in the prompt becomes a mailto link.
Dagger version
v0.18.3
Steps to reproduce
Ran dagger -m git@github.com:jasonmccallister/database-agent.git and tried to call a function ask from the module.
Log output
No response
Replacement for https://github.com/dagger/dagger/pull/10175 as this PR solves the problem there plus some more general ones w/ a completely different approach.
New case of contextual dirs causing cache problems was noticed by @cwlbraa where he was hitting old local code when running integ tests w/ test specific
- See
TestCrossSessionContextualDirChangeinteg test added in this PR for a minimal repro of that situation
The only real fix for this is to tackle the problem of contextual...
What are you trying to do?
Hi
Why is this important to you?
Hi
How are you currently working around this?
No response
It makes sense that the --no-mod flag should be allowed everywhere that the --mod flag is.
The main rationale for this was around dagger query, where it wasn't possible to run without attempting to load the current directory. But it also extends to other commands.
I originally raised this in discord [here](#maintainers message):
@jedevc โ 25/03/2025, 17:42
question around --no-mod - I assume it s...
What is the issue?
I have a lot of secrets using 1Password and it's causing dagger to spend 8 seconds fetching secrets before running the withExec command:
I ended up switching to env secrets to speed it up - after that, the 8 second withExec went down to 400ms
Dagger version
dagger v0.18.3 (docker-ima...
What is the issue?
$ dagger <<-EOF
container | from alpine | with-env-variable VAR "--hello" | with-exec -- echo HELLOOOOO | stdout
EOF
โ connect 0.2s
โ loading type definitions 0.2s
Setup tracing at https://dagger.cloud/traces/setup. To hide set DAGGER_NO_NAG=1
Error: function "with-env-variable": unknown flag: --hello
Usage: with-env-variable [--expand]
โ16:01:06 [1]
$ dagger <<-EOF
container | from alpine | with-env-variable VAR " --hello" | with-exec -- echo HELLOOO...
Fixes #8520
[!WARNING]
This PR is under construction! :construction_worker_woman:
This allows a module to get git information about itself - it can do this through the core Git type. Later on, we'll extend the API with more functionality, like in #9968 which will be able to track dirty state, and get diffs.
Depend on https://github.com/dagger/dagger/pull/10094
This PR basically clean up the code by splitting responsibility.
TODO: cleanup generateClient code
Signed-off-by: Tom Chauveau
What is the issue?
Description:
This issue is a request to add Dagger to the list of applications that support the Model Context Protocol (MCP) on the MCP Clients page.
Proposed Entry:
| Client | [Resources] | [Prompts] | [Tools] | [Sampling] | Roots | Notes |
| ------------- |...
What is the issue?
The with_default_args function/feature, previously discussed in [Discord](#1090037052923453470 message), is currently not mentioned in docs.
[dagger/dagger] Issue opened: #10200 โจ Add remote fetching (tags, branches) to `Git` functionality
What are you trying to do?
I'm running source.AsGit().WithAuthToken().Tags(ctx) and realized it won't show the remote tags because it doesn't do a fetch. Would it be possible to add a AsGit().Fetch(branch or all)?
Why is this important to you?
The AsGit is very useful but I can't use it because I need to fetch before doing much with the repo. The fetch itself requires a PAT so I have to set up all of that whereas AsGit().WithAuthToken() handles it.
How are you current...
Fixes a cached url to redirect to the right page.
What happened? What did you expect to happen?
I'm new to dagger and trying to figure out some odd behavior.
I have a Dagger module that calls an API endpoint to create something, when the module calls the API endpoint directly like so:
package main
func (r *MyModule) CreateSomething(ctx context.Context, token *dagger.Secret, environment, version string) (string, error) {
apiClient, err := api.NewClient(ctx, token, environment)
if err != nil {
return "", fmt.Errorf("create cl...
- strict mode prevents a lot of bugs allowed with default typescript settings and is recommended for all typescript projects.
- skipLibCheck is generally recommended to improve typescript speed by not typechecking dependencies
- fixed a type issue in the @argument decorator that was caught by strict mode
Updates the 404 link on Melvin to the right repository.
What is the issue?
I am seeing a strange behavior when using a forked repo as a ref. When I point a Directory arg to git fork, it sets the origin to upstream instead of the fork. Even if I explicitly tell it to use my default branch like github.com/private_org/repo.git#main it points to github.com/upstream_org/repo.git.
but,
If I use a branch other than default, it sets the right remote github.com/private_org/repo.git#custom_branch works.
Dagger version
dagger v0.18.3
#...
A bunch of TestClientGenerator tests started consistently failing out of band, turns out this is because:
- gqlgen did a release 19h ago where their go.mod specifies go 1.23.8
- dagger's go toolchains are on go 1.23.6
- Some of the
TestClientGeneratortests init an empty go.mod - The custom client generator code doesn't make any attempt to pin to our go sdk dep...
Small change to make setting the runtimeClassName possible via values.yaml override, similar to how priorityClassName is already overridable.
Bumps the engine group with 15 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.70 |
0.17.71 |
| github.com/alecthomas/chroma/v2 | 2.15.0 |
2.16.0 |
| github.com/anthropics/anthropic-sdk-go | 0.2.0-alpha.13 |
0.2.0-beta.3 |
| [github.com/charmbracelet/bubbles](https://github.com/charmbracelet/b... |
Module initialization (when we ask the runtime for what type defs it has) previously got just enough data to support checking the current module name, but basically nothing else. This is because the module is not yet fully constructed during initialization.
This update results in as much of the module being available during init as is possible. This should cover various cases like:
- access to dag.CurrentModule().Source()
- creating execs during module initializtion (which previously p...
What is the issue?
I don't know if the Rust SDK was meant to be cross compatible (Unix & Windows) but it would be useful to allow the SDK be able to compile in Windows by separating the following configuration below referenced for Unix and Windows.
The issue is that the dagger-sdk crate is attempting to use Unix-specific functionality (os::unix::prelude::PermissionsExt and set_mode on Permissions) on a Windows platform. This won't work because the unix module within os is c...
This PR adds an integration test for the struct fields (https://github.com/dagger/dagger/pull/9539).
What are you trying to do?
Here is the OTel link: https://opentelemetry.io/docs/languages/erlang
We might use Go SDK as a implementation reference.
Why is this important to you?
No response
How are you currently working around this?
No response
Bumps the sdk-java group with 4 updates in the /sdk/java directory: io.smallrye:smallrye-graphql-client-api, io.smallrye:smallrye-graphql-client-implementation-vertx, com.palantir.javapoet:javapoet and org.junit:junit-bom.
Updates io.smallrye:smallrye-graphql-client-api from 2.12.2 to 2.13.0
Updates io.smallrye:smallrye-graphql-client-implementation-vertx from 2.12.2 to 2.13.0
Updates `io.smallrye:smallrye-...
Bumps the docs group in /docs with 1 update: typedoc.
Updates typedoc from 0.28.2 to 0.28.3
Release notes
Sourced from typedoc's releases.
v0.28.3
Bug Fixes
@inline now functions when referencing tuple types, #2932.
@link links to the current page are now rendered, #2934.
@includeCode now supports regions in TypeScript files with .mts and .cts file extensions, #2935.
Aliased symbols (re-exports) are now resolved before checking if they are exclud...
Bumps the engine group with 16 updates in the / directory:
| Package | From | To |
|---|---|---|
| github.com/99designs/gqlgen | 0.17.70 |
0.17.72 |
| github.com/alecthomas/chroma/v2 | 2.15.0 |
2.16.0 |
| github.com/anthropics/anthropic-sdk-go | 0.2.0-alpha.13 |
0.2.0-beta.3 |
| [github.com/charmbracelet/bubbles](https://github.com/charmbracelet/b... |
Bumps the sdk-elixir group in /sdk/elixir with 1 update: credo.
Updates credo from 1.7.11 to 1.7.12
Release notes
Sourced from credo's releases.
v1.7.12
Check it out on Hex: https://hex.pm/packages/credo/1.7.12
Fix compatibility & compiler warnings with Elixir 1.19 (dev)
Provide :column on all checks
Fix check docs in other project's documentation
Credo.Check.Refactor.DoubleBooleanNegation fixed false positive
Credo.Check.Readability.NestedFunction...
Bumps the sdk-python-docker group with 1 update in the /modules/ruff/build directory: astral-sh/ruff.
Bumps the sdk-python-docker group with 1 update in the /sdk/python/runtime directory: python.
Updates astral-sh/ruff from 0.11.2@sha256:5de67d7c9f5fcb98109623ebbc9b41e20f4e6f80ca61442efd0ff2d469e151fe to sha256:f2491968bb001af02259a629f7edcf26bc4811a7a43c51ae18270087035478ac
Changelog
Sourced from astral-sh/ruff's changelog.
Changelog
0.11.6
Preview f...
Saw this happen one time so far: https://v3.dagger.cloud/dagger/traces/cdca068a2bc3f4a24669294d6d55b6a2?span=9bb360c22dab5941&logs
time="2025-04-19T01:42:46Z" level=debug msg="merging edges" dest_index=2 dest_vertex_digest="sha256:25054e2b8aa9a0a72570be4927725d143b9efc775b097111ab630993fc648079" dest_vertex_name="npm pkg set type=module" source_edge_index=2 source_edge_vertex_digest="sha256:8e05840352c710528a008aaf070ad90ea1c78ac5b3ae04d2ae04736a0e93df6b" source_edge_vertex_name="npm pkg...
Fix for issue brought up in discord: https://discord.com/channels/707636530424053791/1363438107722125382
Think the fix is good to go but gonna give CI a few runs first. Will update description once verified.
fixes this scenario:
โ๐ค 0.5s โ Input Tokens: 3,059 โ Output Tokens: 25
โ $ .withExec(args: ["go", "version"]): Container! 0.0s CACHED
โ
โ๐ค 0.6s โ Input Tokens: 3,128 โ Output Tokens: 17
โ โ .stdout: String! 0.0s
โ
โ๐ค A Golang container was created and the command go version was run. The output is:
โ โ
โ โ go version go1.24.2 linux/amd64
โ โ
โ โ If you need to run additional commands or inspect this container further, let me know!
โ โ 1.0s
! returned error 422: {"data":null...
Have been seeing this flake multiple times a week: https://v3.dagger.cloud/dagger/traces/dafefd720f702dc6e87a46fdbcaf976b#fdf958e9fef4c3cb:EL1
The elixir sdk dev module (loaded as part of the overall dagger-dev module) errors out w/ OS monotonic time stepped backwards.
Have no idea what to make of it yet, could be a genuine infra issue that elixir is just reporting or some issue w/ elixir itself? cc @wingyplus in case you have any ideas
(This PR will ultimately be closed in favor of one using a branch on dagger/dagger to verify it still runs there.)
When running Dagger with Kata Containers one will want to avoid using virtio-fs and direct attach a block volume to the container, which will then require e2fsprogs in order to properly mkfs.XYZ ... the block device before getting it to actually be mounted and used ae /var/lib/dagger.
Of course, this is far from a "normal" use-case, but right now there's no way to use the Dagger engine without either modifying Kata Containers itself or re-building the Dagger image ... and both option...
Fixes https://github.com/dagger/dagger/issues/10151
withModel was not loading env vars from the main client in the same way that the llm constructor was, so calling withModel didn't result in any auth being loaded along with the reset model.
This updates withModel to load the router in the same way as the constructor so API keys are loaded consistently.
Tested manually so far since I don't believe our integ tests support any actual calls with real API auth keys.
T...