From 6b3e76a8e218d8e6067bc979999d86b06e6bfed0 Mon Sep 17 00:00:00 2001 From: Samuel K Date: Fri, 24 Jul 2026 10:19:53 -0500 Subject: [PATCH] fix(feature): interpolate documentation URL and feature id in wrapper script The feature install wrapper script contained two JS template-literal expressions left over from the upstream TypeScript devcontainers CLI that were pasted verbatim into Go raw strings and never interpolated: - ${documentation} in the troubleshooting message printed literally instead of the feature's documentation URL. - ${escapeQuotesForShell(feature.id)} in the deprecation warning printed a literal JS function call instead of the feature id. Replace both with Go string concatenation of the already-escaped values. --- pkg/devcontainer/feature/features.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/devcontainer/feature/features.go b/pkg/devcontainer/feature/features.go index 1b4070dfd..eba2e2fb4 100644 --- a/pkg/devcontainer/feature/features.go +++ b/pkg/devcontainer/feature/features.go @@ -44,7 +44,7 @@ func GetFeatureInstallWrapperScript( warningHeader := "" if feature.Deprecated { warningHeader += `(!) WARNING: Using the deprecated Feature ` + - `"${escapeQuotesForShell(feature.id)}". This Feature will no longer receive any further updates/support.\n` + `"` + id + `". This Feature will no longer receive any further updates/support.\n` } echoWarning := "" @@ -55,7 +55,7 @@ func GetFeatureInstallWrapperScript( errorMessage := `ERROR: Feature "` + name + `" (` + id + `) failed to install!` troubleshootingMessage := "" if documentation != "" { - troubleshootingMessage = ` Look at the documentation at ${documentation} for help troubleshooting this error.` + troubleshootingMessage = ` Look at the documentation at ` + documentation + ` for help troubleshooting this error.` } return `#!/bin/sh