Conversation
Introduce a reusable component that maps runner ExpressionValues and PipelineContextData into DAP scopes and variables. This is the single point where execution-context values are materialized for the debugger. Key design decisions: - Fixed scope reference IDs (1–100) for the 10 well-known scopes (github, env, runner, job, steps, secrets, inputs, vars, matrix, needs) - Dynamic reference IDs (101+) for lazy nested object/array expansion - All string values pass through HostContext.SecretMasker.MaskSecrets() - The secrets scope is intentionally opaque: keys shown, values replaced with a constant redaction marker - MaskSecrets() is public so future DAP features (evaluate, REPL) can reuse it without duplicating masking policy Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the stub HandleScopes/HandleVariables implementations that returned empty lists with real delegation to DapVariableProvider. Changes: - DapDebugSession now creates a DapVariableProvider on Initialize() - HandleScopes() resolves the execution context for the requested frame and delegates to the provider - HandleVariables() delegates to the provider for both top-level scope references and nested dynamic references - GetExecutionContextForFrame() maps frame IDs to contexts: frame 1 = current step, frames 1000+ = completed (no live context) - Provider is reset on each new step to invalidate stale nested refs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Provider tests (DapVariableProviderL0): - Scope discovery: empty context, populated scopes, variable count, stable reference IDs, secrets presentation hint - Variable types: string, boolean, number, null handling - Nested expansion: dictionaries and arrays with child drilling - Secret masking: redacted values in secrets scope, SecretMasker integration for non-secret scopes, MaskSecrets delegation - Reset: stale nested references invalidated after Reset() - EvaluateName: dot-path expression syntax Session integration tests (DapDebugSessionL0): - Scopes request returns scopes from step execution context - Variables request returns variables from step execution context - Scopes request returns empty when no step is active - Secrets values are redacted through the full request path Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add EvaluateExpression() that evaluates GitHub Actions expressions
using the runner's existing PipelineTemplateEvaluator infrastructure.
How it works:
- Strips ${{ }} wrapper if present
- Creates a BasicExpressionToken and evaluates via
EvaluateStepDisplayName (supports the full expression language:
functions, operators, context access)
- Masks the result through MaskSecrets() — same masking path used
by scope inspection
- Returns a structured EvaluateResponseBody with type inference
- Catches evaluation errors and returns masked error messages
Also adds InferResultType() helper for DAP type hints.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add HandleEvaluate() that delegates expression evaluation to the DapVariableProvider, keeping all masking centralized. Changes: - Register 'evaluate' in the command dispatch switch - HandleEvaluate resolves frame context and delegates to DapVariableProvider.EvaluateExpression() - Set SupportsEvaluateForHovers = true in capabilities so DAP clients enable hover tooltips and the Watch pane No separate feature flag — the debugger is already gated by EnableDebugger on the job context. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Provider tests (DapVariableProviderL0):
- Simple expression evaluation (github.repository)
- ${{ }} wrapper stripping
- Secret masking in evaluation results
- Graceful error for invalid expressions
- No-context returns descriptive message
- Empty expression returns empty string
- InferResultType classifies null/bool/number/object/string
Session integration tests (DapDebugSessionL0):
- evaluate request returns result when paused with context
- evaluate request returns graceful error when no step active
- evaluate request handles ${{ }} wrapper syntax
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Introduce a typed command model and hand-rolled parser for the debug
console DSL. The parser turns REPL input into HelpCommand or
RunCommand objects, keeping parsing separate from execution.
Ruby-like DSL syntax:
help → general help
help("run") → command-specific help
run("echo hello") → run with default shell
run("echo $X", shell: "bash", env: { X: "1" })
→ run with explicit shell and env
Parser features:
- Handles escaped quotes, nested braces, and mixed arguments
- Keyword arguments: shell, env, working_directory
- Env blocks parsed as { KEY: "value", KEY2: "value2" }
- Returns null for non-DSL input (falls through to expression eval)
- Descriptive error messages for malformed input
- Help text scaffolding for discoverability
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Implement the run command executor that makes REPL `run(...)` behave like a real workflow `run:` step by reusing the runner's existing infrastructure. Key design choices: - Shell resolution mirrors ScriptHandler: job defaults → explicit shell from DSL → platform default (bash→sh on Unix, pwsh→powershell on Windows) - Script fixup via ScriptHandlerHelpers.FixUpScriptContents() adds the same error-handling preamble as a real step - Environment is built from ExecutionContext.ExpressionValues[`env`] plus runtime context variables (GITHUB_*, RUNNER_*, etc.), with DSL-provided env overrides applied last - Working directory defaults to $GITHUB_WORKSPACE - Output is streamed in real time via DAP output events with secrets masked before emission through HostContext.SecretMasker - Only the exit code is returned in the evaluate response (avoiding the prototype's double-output bug) - Temp script files are cleaned up after execution Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Route `evaluate` requests by context: - `repl` context → DSL parser → command dispatch (help/run) - All other contexts (watch, hover, etc.) → expression evaluation If REPL input doesn't match any DSL command, it falls through to expression evaluation so the Debug Console also works for ad-hoc `github.repository`-style queries. Changes: - HandleEvaluateAsync replaces the sync HandleEvaluate - HandleReplInputAsync parses input through DapReplParser.TryParse - DispatchReplCommandAsync dispatches HelpCommand and RunCommand - DapReplExecutor is created alongside the DAP server reference - Remove vestigial `await Task.CompletedTask` from HandleMessageAsync Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Parser tests (DapReplParserL0, 22 tests): - help: bare, case-insensitive, with topic - run: simple script, with shell, env, working_directory, all options - Edge cases: escaped quotes, commas in env values - Errors: empty args, unquoted arg, unknown option, missing paren - Non-DSL input falls through: expressions, wrapped expressions, empty - Help text contains expected commands and options - Internal helpers: SplitArguments with nested braces, empty env block Session integration tests (DapDebugSessionL0, 4 tests): - REPL help returns help text - REPL non-DSL input falls through to expression evaluation - REPL parse error returns error result (not a DAP error response) - watch context still evaluates expressions (not routed through REPL) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The run() command was passing ${{ }} expressions literally to the
shell instead of evaluating them first. This caused scripts like
`run("echo ${{ github.job }}")` to fail with 'bad substitution'.
Fix: add ExpandExpressions() that finds each ${{ expr }} occurrence,
evaluates it individually via PipelineTemplateEvaluator, masks the
result through SecretMasker, and substitutes it into the script body
before writing the temp file — matching how ActionRunner evaluates
step inputs before ScriptHandler sees them.
Also expands expressions in DSL-provided env values so that
`env: { TOKEN: "${{ secrets.MY_TOKEN }}" }` works correctly.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Completions (SupportsCompletionsRequest = true):
- Respond to DAP 'completions' requests with our DSL commands
(help, help("run"), run(...)) so they appear in the debug
console autocomplete across all DAP clients
- Add CompletionsArguments, CompletionItem, and
CompletionsResponseBody to DapMessages
Friendly error messages for unsupported stepping commands:
- stepIn: explain that Actions debug at the step level
- stepOut: suggest using 'continue'
- stepBack/reverseContinue: note 'not yet supported'
- pause: explain automatic pausing at step boundaries
The DAP spec does not provide a capability to hide stepIn/stepOut
buttons (they are considered fundamental operations). The best
server-side UX is clear error messages when clients send them.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Guard WaitForCommandAsync against resurrecting terminated sessions (H1) - Mask exception messages in top-level DAP error responses (M1) - Move isFirstStep=false outside try block to prevent continue breakage (M5) - Guard OnJobCompleted with lock-internal state check to prevent duplicate events (M6) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add centralized secret masking in DapServer.SendMessageInternal so all outbound DAP payloads (responses, events) are masked before serialization, creating a single egress funnel that catches secrets regardless of caller. - Redact the entire secrets scope in DapVariableProvider regardless of PipelineContextData type (NumberContextData, BooleanContextData, containers) not just StringContextData, closing the defense-in-depth gap. - Null values under secrets scope are now also redacted. - Existing per-call-site masking retained as defense-in-depth. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
| """; | ||
| } | ||
|
|
||
| internal static string GetRunHelp() |
There was a problem hiding this comment.
this feels like a parsed json?
There was a problem hiding this comment.
or the workflow - run step?
There was a problem hiding this comment.
run: {"command": "echo $foo", env: {....}}
There was a problem hiding this comment.
Let's move this to a bigger conversation but good call, something recognizable like run() + JSON as the arg would save us a lot of parsing work. I liked the ruby-ness of it in the console but truth we'll probably have tools that make these calls on behalf of users.
There was a problem hiding this comment.
I believe you could also handle additionally action yml snippets (vscode shift enter for multiline input, not unlikely nvim-dap can as well)
run
- run: |
echo Test
- Runner.Worker has a steps yaml parser for this
- Can be detected by
runfollowed by newline - Similar to the lldb
scriptcommand that can be followed by multiline python code
A single line fallback is always good, but for some advanced users is copy paste actual actions workflow yaml possibly a big usability win
Single line could look like this if we omit the list - or []
run { run: echo Test, env: { a: b }}
Multiline without list
run
run: |
echo Test
commit f1995ed Author: Salman Chishti <salmanmkc@GitHub.com> Date: Tue Apr 21 19:49:15 2026 +0100 Update release version to 2.334.0 commit c87d955 Author: Salman Chishti <salmanmkc@GitHub.com> Date: Tue Apr 21 19:40:21 2026 +0100 Prepping runner release 2.334.0 (actions#4365) commit 7407189 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Apr 21 17:49:08 2026 +0100 Bump Microsoft.DevTunnels.Connections from 1.3.16 to 1.3.39 (actions#4339) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit a84fb36 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Apr 21 17:39:38 2026 +0100 Bump typescript from 6.0.2 to 6.0.3 in /src/Misc/expressionFunc/hashFiles (actions#4353) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 84598e0 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Apr 21 17:38:26 2026 +0100 Bump System.ServiceProcess.ServiceController from 10.0.3 to 10.0.6 (actions#4358) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 8fa7457 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Apr 21 16:36:21 2026 +0000 Bump @typescript-eslint/eslint-plugin from 8.58.1 to 8.59.0 in /src/Misc/expressionFunc/hashFiles (actions#4359) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 00af837 Author: Salman Chishti <salmanmkc@GitHub.com> Date: Tue Apr 21 17:31:10 2026 +0100 Add vulnerability-alerts permission (actions#4350) commit 6692e6a Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Apr 21 16:06:40 2026 +0000 Bump System.Formats.Asn1 and System.Security.Cryptography.Pkcs (actions#4362) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit cacb25d Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Apr 21 15:15:02 2026 +0100 Bump @typescript-eslint/parser from 8.58.1 to 8.59.0 in /src/Misc/expressionFunc/hashFiles (actions#4360) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit c6ca9f6 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Apr 20 17:06:35 2026 +0000 Update dotnet sdk to latest version @8.0.420 (actions#4356) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit fad1253 Author: Copilot <198982749+Copilot@users.noreply.github.com> Date: Mon Apr 20 10:45:12 2026 -0400 Bump Docker version to 29.4.0 (actions#4352) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: luketomlinson <19689611+luketomlinson@users.noreply.github.com> commit 45debbd Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Apr 20 12:44:20 2026 +0000 chore: update Node versions (actions#4355) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit 43e5211 Author: Francesco Renzi <rentziass@github.com> Date: Fri Apr 17 14:18:01 2026 +0100 Add WS bridge over DAP TCP server (actions#4328) Co-authored-by: Tingluo Huang <tingluohuang@github.com> commit 4a587ad Author: Salman Chishti <salmanmkc@GitHub.com> Date: Fri Apr 10 19:39:33 2026 +0100 feat: add `job.workflow_*` typed accessors to JobContext (actions#4335) commit 182a433 Author: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri Apr 10 12:40:28 2026 +0100 Bump System.Formats.Asn1, Cryptography.Pkcs, ProtectedData, ServiceController, CodePages, Threading.Channels, @actions/glob, @typescript-eslint/parser, lint-staged, picomatch (actions#4333) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 8d35e71 Author: Salman Chishti <salmanmkc@GitHub.com> Date: Fri Apr 10 11:34:08 2026 +0100 fix: only show changed versions in node upgrade PR description (actions#4332) commit 2bcc65e Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri Apr 10 09:01:34 2026 +0100 Bump typescript from 5.9.3 to 6.0.2 in /src/Misc/expressionFunc/hashFiles (actions#4329) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 1ba5fdf Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri Apr 10 08:54:56 2026 +0100 Bump actions/github-script from 8 to 9 (actions#4331) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 580116c Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Apr 8 07:44:38 2026 +0000 Bump @typescript-eslint/eslint-plugin from 8.57.2 to 8.58.1 in /src/Misc/expressionFunc/hashFiles (actions#4327) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit c9a1751 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed Apr 8 08:40:32 2026 +0100 Update Docker to v29.3.1 and Buildx to v0.33.0 (actions#4324) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 7711dc5 Author: Francesco Renzi <rentziass@github.com> Date: Tue Apr 7 13:51:33 2026 +0100 Add devtunnel connection for debugger jobs (actions#4317) commit df50788 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Apr 1 13:19:42 2026 +0100 Bump brace-expansion in /src/Misc/expressionFunc/hashFiles (actions#4318) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 5c6dd47 Author: Tingluo Huang <tingluohuang@github.com> Date: Tue Mar 31 17:51:01 2026 -0400 Add support for Bearer token in action archive downloads (actions#4321) commit 7ff994b Author: Stefan Penner <stef@iamstef.net> Date: Tue Mar 31 11:28:43 2026 -0600 Batch and deduplicate action resolution across composite depths (actions#4296) Co-authored-by: Stefan Penner <spenner@linkedin.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> commit b9275b5 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Mar 30 12:58:17 2026 +0000 chore: update Node versions (actions#4319) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit f0c2286 Author: eric sciple <ericsciple@users.noreply.github.com> Date: Fri Mar 27 11:45:42 2026 -0500 Remove AllowCaseFunction feature flag (actions#4316) commit 9728019 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue Mar 24 10:40:31 2026 +0000 Bump @typescript-eslint/eslint-plugin from 8.57.1 to 8.57.2 in /src/Misc/expressionFunc/hashFiles (actions#4310) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit e17e7aa Author: Francesco Renzi <rentziass@github.com> Date: Mon Mar 23 14:02:15 2026 +0000 Add DAP server (actions#4298) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Tingluo Huang <tingluohuang@github.com> commit 4259ffb Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri Mar 20 01:02:30 2026 +0000 Bump flatted from 3.2.7 to 3.4.2 in /src/Misc/expressionFunc/hashFiles (actions#4307) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 4e8e1ff Author: Salman Chishti <salmanmkc@GitHub.com> Date: Wed Mar 18 16:51:00 2026 +0000 prep new runner release 2.333.0 (actions#4306) commit b6cca8f Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Mar 18 16:26:33 2026 +0000 Bump @typescript-eslint/eslint-plugin from 8.54.0 to 8.57.1 in /src/Misc/expressionFunc/hashFiles (actions#4304) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 18d0789 Author: Salman Chishti <salmanmkc@GitHub.com> Date: Tue Mar 17 18:58:34 2026 +0000 Node 24 enforcement + Linux ARM32 deprecation support (actions#4303) commit c985a9f Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Mar 16 13:48:09 2026 +0000 Update dotnet sdk to latest version @8.0.419 (actions#4301) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Tingluo Huang <tingluohuang@github.com> commit 45ed15d Author: Tingluo Huang <tingluohuang@github.com> Date: Mon Mar 16 09:31:57 2026 -0400 Report infra_error for action download failures. (actions#4294) commit c5dcf59 Author: Nikola Jokic <jokicnikola07@gmail.com> Date: Fri Mar 13 19:16:31 2026 +0100 Exit with specified exit code when runner is outdated (actions#4285) Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> commit c7f6c49 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Mar 11 10:21:47 2026 +0000 Bump @typescript-eslint/eslint-plugin from 8.47.0 to 8.54.0 in /src/Misc/expressionFunc/hashFiles (actions#4230) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 40dd583 Author: eric sciple <ericsciple@users.noreply.github.com> Date: Mon Mar 9 11:10:08 2026 -0500 Fix cancellation token race during parser comparison (actions#4280) commit 68f2e9a Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Mar 9 13:02:32 2026 +0000 chore: update Node versions (actions#4287) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit 2b98d42 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Mar 9 00:37:54 2026 +0000 Update Docker to v29.3.0 and Buildx to v0.32.1 (actions#4286) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit ce8ce41 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat Mar 7 22:13:23 2026 +0000 Bump @stylistic/eslint-plugin from 5.9.0 to 5.10.0 in /src/Misc/expressionFunc/hashFiles (actions#4281) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 5310e90 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat Mar 7 01:59:22 2026 +0000 Bump actions/attest-build-provenance from 3 to 4 (actions#4266) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 9832328 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat Mar 7 01:49:28 2026 +0000 Bump docker/setup-buildx-action from 3 to 4 (actions#4282) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 5ef3270 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat Mar 7 01:44:58 2026 +0000 Bump docker/build-push-action from 6 to 7 (actions#4283) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 1138dd8 Author: eric sciple <ericsciple@users.noreply.github.com> Date: Thu Mar 5 14:56:28 2026 -0600 Fix positional arg bug in ExpressionParser.CreateTree (actions#4279) commit 99910ca Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu Mar 5 15:45:49 2026 +0000 Bump docker/login-action from 3 to 4 (actions#4278) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit bcd04cf Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu Mar 5 14:55:48 2026 +0000 Bump actions/upload-artifact from 6 to 7 (actions#4270) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 20111cb Author: eric sciple <ericsciple@users.noreply.github.com> Date: Wed Mar 4 17:36:45 2026 -0600 Support `entrypoint` and `command` for service containers (actions#4276) commit 8f01257 Author: Max Horstmann <MaxHorstmann@users.noreply.github.com> Date: Wed Mar 4 15:17:25 2026 -0500 Devcontainer: bump base image Ubuntu version (actions#4277) commit 8a73bcc Author: eric sciple <ericsciple@users.noreply.github.com> Date: Mon Mar 2 23:38:16 2026 -0600 Fix parser comparison mismatches (actions#4273) commit a9a07a6 Author: Tingluo Huang <tingluohuang@github.com> Date: Mon Mar 2 22:44:14 2026 -0500 Avoid throw in SelfUpdaters. (actions#4274) commit 60a9422 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Mar 2 13:51:11 2026 +0000 chore: update Node versions (actions#4272) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit 985a06f Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri Feb 27 09:18:13 2026 +0000 Bump actions/download-artifact from 7 to 8 (actions#4269) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit ae09a9d Author: eric sciple <ericsciple@users.noreply.github.com> Date: Thu Feb 26 08:36:55 2026 -0600 Fix composite post-step marker display names (actions#4267) commit 7650fc4 Author: Tingluo Huang <tingluohuang@github.com> Date: Wed Feb 25 15:44:27 2026 -0500 Log inner exception message. (actions#4265) commit bc00800 Author: Salman Chishti <salmanmkc@GitHub.com> Date: Wed Feb 25 13:36:47 2026 +0000 Bump runner version to 2.332.0 and update release notes (actions#4264) commit 86e2360 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Feb 25 12:02:23 2026 +0000 Bump @stylistic/eslint-plugin from 3.1.0 to 5.9.0 in /src/Misc/expressionFunc/hashFiles (actions#4257) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 0fb7482 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed Feb 25 11:56:32 2026 +0000 Bump minimatch in /src/Misc/expressionFunc/hashFiles (actions#4261) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 052dfbd Author: Pavel Iakovenko <paveliak@users.noreply.github.com> Date: Tue Feb 24 12:19:46 2026 -0500 Symlink actions cache (actions#4260) commit ecb5f29 Author: eric sciple <ericsciple@users.noreply.github.com> Date: Mon Feb 23 09:00:12 2026 -0600 Composite Action Step Markers (actions#4243) commit a2b2209 Author: Salman Chishti <salmanmkc@GitHub.com> Date: Sat Feb 21 19:19:46 2026 +0000 Update Node.js 20 deprecation date to June 2nd, 2026 (actions#4258) Co-authored-by: Salman <salmanmkc@gmail.com> commit 9426c35 Author: Salman Chishti <salmanmkc@GitHub.com> Date: Thu Feb 19 17:05:32 2026 +0000 Add Node.js 20 deprecation warning annotation (Phase 1) (actions#4242) commit 72189aa Author: Tingluo Huang <tingluohuang@github.com> Date: Wed Feb 18 12:00:37 2026 -0500 Try to infer runner is on hosted/ghes when githuburl is empty. (actions#4254) commit e012ab6 Author: Tingluo Huang <tingluohuang@github.com> Date: Tue Feb 17 14:09:05 2026 -0500 Fix link to SECURITY.md in README (actions#4253) commit a798a45 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Feb 16 11:34:26 2026 +0000 Update dotnet sdk to latest version @8.0.418 (actions#4250) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Salman Chishti <salmanmkc@GitHub.com> commit 9efea31 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Feb 16 11:29:25 2026 +0000 chore: update Node versions (actions#4249) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit 6680090 Author: Zach Renner <13670625+zarenner@users.noreply.github.com> Date: Thu Feb 12 05:46:48 2026 -0800 Remove unnecessary connection test during some registration flows (actions#4244) commit 15cb558 Author: eric sciple <ericsciple@users.noreply.github.com> Date: Wed Feb 11 09:44:01 2026 -0600 Fix parser comparison mismatches (actions#4220) commit d5a8a93 Author: eric sciple <ericsciple@users.noreply.github.com> Date: Tue Feb 10 12:28:42 2026 -0600 Add telemetry tracking for deprecated set-output and save-state commands (actions#4221) commit cdb77c6 Author: Tingluo Huang <tingluohuang@github.com> Date: Tue Feb 10 09:31:10 2026 -0500 Support return job result as exitcode in hosted runner. (actions#4233) commit a4a19b1 Author: Nikola Jokic <jokicnikola07@gmail.com> Date: Tue Feb 10 02:07:20 2026 +0100 Bump hook to 0.8.1 (actions#4222) commit 1b5486a Author: Tingluo Huang <tingluohuang@github.com> Date: Mon Feb 9 08:42:07 2026 -0500 Validate work dir during runner start up. (actions#4227) commit 4214709 Author: Takuma Ishikawa <nekketsuuu@users.noreply.github.com> Date: Mon Feb 9 06:03:41 2026 +0900 Add support for libssl3 and libssl3t64 for newer Debian/Ubuntu versions (actions#4213) commit 3ffedab Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Feb 2 02:15:37 2026 +0000 Update Docker to v29.2.0 and Buildx to v0.31.1 (actions#4219) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit 3a80a78 Author: eric sciple <ericsciple@users.noreply.github.com> Date: Fri Jan 30 09:24:06 2026 -0600 Fix local action display name showing `Run /./` instead of `Run ./` (actions#4218) commit 6822f4a Author: Tingluo Huang <tingluohuang@github.com> Date: Tue Jan 27 16:52:25 2026 -0500 Report job level annotations (actions#4216) commit ad43c63 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun Jan 25 21:10:56 2026 -0500 Update Docker to v29.1.5 and Buildx to v0.31.0 (actions#4212) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit 5d4fb30 Author: eric sciple <ericsciple@users.noreply.github.com> Date: Thu Jan 22 15:17:18 2026 -0600 Allow empty container options (actions#4208) commit 1df72a5 Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu Jan 22 14:41:15 2026 +0000 Bump System.Formats.Asn1 and System.Security.Cryptography.Pkcs (actions#4202) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> commit 02013cf Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon Jan 19 23:08:47 2026 -0500 Update dotnet sdk to latest version @8.0.417 (actions#4201) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> commit 7d5c17a Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue Jan 20 02:18:53 2026 +0000 chore: update Node versions (actions#4200) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> # Conflicts: # .devcontainer/devcontainer.json # images/Dockerfile # releaseNote.md # releaseVersion # src/Misc/expressionFunc/hashFiles/package-lock.json resolved by v2.334.0 version # src/Misc/expressionFunc/hashFiles/package.json resolved by v2.334.0 version # src/Misc/externals.sh # src/Runner.Common/Constants.cs # src/Runner.Common/Runner.Common.csproj # src/Runner.Listener/Runner.Listener.csproj # src/Runner.Sdk/Runner.Sdk.csproj # src/Runner.Worker/ActionManager.cs # src/Runner.Worker/InternalsVisibleTo.cs # src/Runner.Worker/Runner.Worker.csproj # src/Sdk/Sdk.csproj # src/Sdk/WorkflowParser/WorkflowFeatures.cs # src/dev.sh # src/global.json # src/runnerversion
This adds a DAP server to the runner to build debugging functionalities. The whole DAP integration is gated by the new
EnableDebuggerflag on the job message (feature flagged at the API level).When a job starts, after the job setup we will start the DAP server and allow users to step over to every step in the job, and:
runsteps in their jobs (full job context, supporting expression expansion, etc.)Here's an example of what this looks like connecting to the runner from nvim-dap: