@@ -26,6 +26,7 @@ import (
2626 "github.com/docker/buildx/builder"
2727 "github.com/docker/buildx/driver"
2828 "github.com/docker/buildx/localstate"
29+ "github.com/docker/buildx/util/desktop"
2930 "github.com/docker/buildx/util/dockerutil"
3031 "github.com/docker/buildx/util/imagetools"
3132 "github.com/docker/buildx/util/progress"
@@ -822,6 +823,7 @@ func BuildWithResultHandler(ctx context.Context, nodes []builder.Node, opt map[s
822823
823824 for i , dp := range dps {
824825 i , dp , so := i , dp , * dp .so
826+ node := nodes [dp .driverIndex ]
825827 if multiDriver {
826828 for i , e := range so .Exports {
827829 switch e .Type {
@@ -885,6 +887,7 @@ func BuildWithResultHandler(ctx context.Context, nodes []builder.Node, opt map[s
885887
886888 cc := c
887889 var printRes map [string ][]byte
890+ var buildDetailsOpt * desktop.BuildDetailsOpt
888891 rr , err := c .Build (ctx , so , "buildx" , func (ctx context.Context , c gateway.Client ) (* gateway.Result , error ) {
889892 var isFallback bool
890893 var origErr error
@@ -928,6 +931,13 @@ func BuildWithResultHandler(ctx context.Context, nodes []builder.Node, opt map[s
928931 if opt .PrintFunc != nil {
929932 printRes = res .Metadata
930933 }
934+ if node .Driver .Features (ctx )[driver .HistoryAPI ] && desktop .BuildBackendEnabled () {
935+ buildDetailsOpt = & desktop.BuildDetailsOpt {
936+ Builder : node .Builder ,
937+ Node : node .Name ,
938+ Ref : so .Ref ,
939+ }
940+ }
931941 results .Set (resultKey (dp .driverIndex , k ), res )
932942 if resultHandleFunc != nil {
933943 resultCtx , err := NewResultContext (ctx , cc , so , res )
@@ -951,6 +961,13 @@ func BuildWithResultHandler(ctx context.Context, nodes []builder.Node, opt map[s
951961 for k , v := range printRes {
952962 rr .ExporterResponse [k ] = string (v )
953963 }
964+ if buildDetailsOpt != nil {
965+ bddt , err := json .Marshal (buildDetailsOpt )
966+ if err != nil {
967+ return err
968+ }
969+ rr .ExporterResponse [desktop .BuildDetailsKey ] = base64 .StdEncoding .EncodeToString (bddt )
970+ }
954971
955972 node := nodes [dp .driverIndex ].Driver
956973 if node .IsMobyDriver () {
0 commit comments