Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
44bbcfe
fix: Retry ClosedResourceError on isolated session (#2711)
elainegan-openai Mar 19, 2026
1bb5ff6
feat(mcp): expose auth and httpx_client_factory in SSE/StreamableHttp…
adityasingh2400 Mar 19, 2026
05dc068
fix: Retry MCP 408s on isolated session (#2709)
elainegan-openai Mar 19, 2026
5fa3fd4
Recover streamed nested agent output before cancellation fallback (#2…
elainegan-openai Mar 19, 2026
f25a4f9
Release 0.12.5 (#2716)
github-actions[bot] Mar 19, 2026
fc609e1
add PromptLayer integration link to tracing documentation (#2718)
adagradschool Mar 19, 2026
47ff1da
docs: update translated document pages (#2719)
github-actions[bot] Mar 19, 2026
58374fe
feat(mcp): expose session_id on MCPServerStreamableHttp (#2708)
adityasingh2400 Mar 19, 2026
230a9d6
Highlight gpt-realtime-1.5 in public docs (#2724)
teri-oai Mar 19, 2026
54444ad
docs: update translated document pages (#2726)
github-actions[bot] Mar 19, 2026
aa483fe
fix(memory): make SQLAlchemySession first writes race-safe (#2725)
felmonon Mar 20, 2026
c964926
fix(compaction): #2727 strip orphaned assistant message IDs after rea…
Ratnaditya-J Mar 20, 2026
bb817aa
docs: clarify cancel-after-turn streaming guidance (#2710)
felmonon Mar 20, 2026
a727b1f
docs: update translated document pages (#2730)
github-actions[bot] Mar 20, 2026
bac71c6
fix: #2729 avoid eager-task race in function tool batch executor (#2731)
seratch Mar 20, 2026
72ad8e3
chore: add agents/openai.yaml to skills
seratch Mar 20, 2026
f0df572
fix: default realtime websocket model to gpt-realtime-1.5 (#2737)
seratch Mar 20, 2026
34ff848
feat: #2669 add opt-in reasoning content replay for chat completion m…
seratch Mar 20, 2026
1005106
feat(mcp): expose list_resources, list_resource_templates, and read_r…
adityasingh2400 Mar 21, 2026
49f593b
fix: remove_all_tools missing MCP and reasoning item types (#2700)
joaquinhuigomez Mar 21, 2026
be9ce37
chore: add runtime behavior probe skill (#2743)
seratch Mar 21, 2026
8db2ed2
chore: imrpove pr-draft-summary trigger and runtime-behavior-probe tweak
seratch Mar 21, 2026
14090a2
chore: parallelize code-change-verification after format (#2751)
seratch Mar 22, 2026
85929c0
docs: rebrand Keywords AI to Respan (#2757)
drPod Mar 23, 2026
58d3ed2
fix: preserve streamed output guardrail tripwires in the run loop (#2…
seratch Mar 23, 2026
59d74e1
Release 0.13.0 (#2738)
github-actions[bot] Mar 23, 2026
6fc73a4
docs: add 0.13 changelog (#2744)
seratch Mar 23, 2026
d00f542
docs: update translated document pages (#2759)
github-actions[bot] Mar 23, 2026
681320e
fix: remove duplicate CompactionItem from RunItem union (#2761)
KanchiShimono Mar 23, 2026
0cc4805
fix: #2760 wait for realtime response.done before follow-up response.…
seratch Mar 24, 2026
8e1915e
fix: preserve static MCP meta in converted function tools (#2769)
seratch Mar 25, 2026
1c0ff59
feat: add any-llm model support with responses-compatible routing (#2…
seratch Mar 25, 2026
b8355b2
docs: add missing ref files
seratch Mar 25, 2026
687e974
fix: handle cancelled single function tools as tool failures (#2762)
elainegan-openai Mar 25, 2026
9088496
fix: optionize initialized notification tolerance (#2765)
elainegan-openai Mar 25, 2026
881f402
fix: harden example auto-runs against PATH and port conflicts (#2770)
seratch Mar 25, 2026
0a5b8c9
Release 0.13.1 (#2768)
github-actions[bot] Mar 25, 2026
13f4a74
docs: update pages to add any-llm adapter (#2715)
seratch Mar 25, 2026
7dc7fa2
docs: update translated document pages (#2771)
github-actions[bot] Mar 25, 2026
abd5cef
fix: pin liteLLM upper bound to 1.82.6 to mitigate supply chain attac…
gn00295120 Mar 25, 2026
8fdb45d
fix: update default reasoning effort for newer models (#2773)
seratch Mar 25, 2026
67fa4d8
chore: make sync
seratch Mar 26, 2026
9a96d9e
fix: #2778 keep LiteLLM reasoning_effort portable across providers (#…
seratch Mar 26, 2026
c2f6690
fix: #2776 keep private tool metadata out of persisted session items …
seratch Mar 26, 2026
570b114
docs: update readme
seratch Mar 26, 2026
c52d25f
feat: #2785 add external_web_access to WebSearchTool (#2786)
ymuichiro Mar 26, 2026
7fea1a5
fix: improve a flaky test for realtime module (#2787)
seratch Mar 26, 2026
c5e1321
fix: #2783 depend on griffelib directly for docstring parsing (#2791)
seratch Mar 26, 2026
dddbce1
Release 0.13.2 (#2774)
github-actions[bot] Mar 26, 2026
149f5ce
docs: add non-OpenAI provider code example (#2792)
Muttaqi110 Mar 27, 2026
a4db3e5
docs: update translated document pages (#2793)
github-actions[bot] Mar 27, 2026
ce0d792
docs: tweak for #2792 changes
seratch Mar 27, 2026
9ed6dad
chore: add Codex Stop hook for targeted Ruff tidy (#2795)
seratch Mar 27, 2026
a7b4851
fix: #2797 accept raw image_url content parts on chat completions inp…
seratch Mar 28, 2026
9f5575a
fix: #2798 avoid stale hydrated input ids in server conversation trac…
seratch Mar 28, 2026
d86c2e2
Release 0.13.3 (#2801)
github-actions[bot] Mar 31, 2026
5e0e6d2
fix: map extensions changes to the feature:extensions label (#2814)
seratch Mar 31, 2026
40aada1
fix: #2806 sanitize AnyLLM responses replay input before validation (…
seratch Mar 31, 2026
051c2ea
Release 0.13.4 (#2815)
github-actions[bot] Apr 1, 2026
976bcce
feat: #2807 support callable approval policies for local MCP servers …
seratch Apr 1, 2026
70939dc
chore(deps): bump openai/codex-action from 1.4 to 1.6 (#2819)
dependabot[bot] Apr 1, 2026
c940055
chore(deps): bump astral-sh/setup-uv from 7.3.1 to 8.0.0 (#2820)
dependabot[bot] Apr 1, 2026
f75a40e
docs: sync examples.md with current examples directory (#2827)
AbdullahBapra Apr 2, 2026
fe9e70f
fix: #2823 AnyLLM reasoning extraction for iterable vLLM/any-llm Reas…
ziqi-cn Apr 2, 2026
76f419f
docs: update translated document pages (#2828)
github-actions[bot] Apr 2, 2026
6a89f1b
fix: serialize SQLite session writes with shared file locks (#2843)
seratch Apr 4, 2026
7a3f6b7
feat: #2135 add public flush_traces API (#2844)
seratch Apr 4, 2026
b0ab25c
Release 0.13.5 (#2821)
github-actions[bot] Apr 6, 2026
e1d861c
docs: updates for #2844 changes (#2845)
seratch Apr 6, 2026
fa50899
docs: update translated document pages (#2847)
github-actions[bot] Apr 6, 2026
0386210
docs(tracing): add HoneyHive to tracing integrations list (#2851)
m1lestones Apr 7, 2026
aeb653e
docs: update translated document pages (#2853)
github-actions[bot] Apr 7, 2026
c06cd45
fix: harden SQLAlchemySession against transient SQLite locks (#2854)
seratch Apr 7, 2026
fb67680
fix: #2856 stop recursive trace preview truncation (#2860)
seratch Apr 8, 2026
690079e
fix: #2863 lazy-load SQLiteSession exports (#2864)
seratch Apr 9, 2026
bfc8c63
Release 0.13.6 (#2861)
github-actions[bot] Apr 9, 2026
111cbf1
docs: add Asqav to external tracing processors list (#2859)
jagmarques Apr 9, 2026
86739b1
docs: update translated document pages (#2870)
github-actions[bot] Apr 9, 2026
2d665c9
Sandbox Agents (#2889)
sdcoffey Apr 15, 2026
a7ccef4
Release 0.14.0 (#2890)
github-actions[bot] Apr 15, 2026
e336667
docs: update translated document pages (#2891)
github-actions[bot] Apr 15, 2026
4892211
docs: align translated sandbox nav and refresh generated refs (#2892)
seratch Apr 15, 2026
bd871cd
docs: clarify ToolContext availability in function-tool lifecycle hoo…
HuxleyHu98 Apr 15, 2026
5d05d5d
docs: update translated document pages (#2893)
github-actions[bot] Apr 15, 2026
83b3833
fix #2151 shield server-managed handoffs from unsupported history rew…
seratch Apr 15, 2026
9013480
fix: #2873 preserve computer driver compatibility for modifier keys (…
seratch Apr 15, 2026
fa049a2
fix: stop streamed tool execution after known input guardrail tripwir…
seratch Apr 15, 2026
0a100fb
ci: add sandbox auto-label mapping (#2894)
seratch Apr 15, 2026
2cef83b
fix: sanitize OpenAI tracing export payloads (#2896)
alfozan Apr 15, 2026
3dffa4b
Release 0.14.1 (#2895)
github-actions[bot] Apr 15, 2026
09ea6aa
fix: remove_all_tools missing hosted tool types (#2885)
javierdejesusda Apr 15, 2026
48ad4aa
fix: tolerate None text in ResponseOutputText content items (#2883)
beveradb Apr 15, 2026
47ecb38
feat: #2228 persist tool origin metadata in run items (#2654)
seratch Apr 15, 2026
6b14ebc
docs: clarify OpenAI provider configuration guidance (#2901)
seratch Apr 15, 2026
b9b0141
docs: update translated document pages (#2903)
github-actions[bot] Apr 15, 2026
5086b24
docs: sync sandbox translations and set doc translation default model…
seratch Apr 15, 2026
4f3c8a5
fix: #1876 LiteLLM extra_body forwarding (#2900)
yu2001-s Apr 16, 2026
3ad12bc
chore: Bump `temporalio` Dep in Temporal Example (#2918)
JasonSteving99 Apr 16, 2026
b58d059
fix: Trust filesystem permissions for Vercel roots (#2910)
scotttrinh Apr 17, 2026
b7ba446
fix: #604 handle None choices in ChatCompletion response (#2850)
Spectual Apr 17, 2026
f84ef7f
fix: normalize compacted Responses user inputs before session reuse (…
seratch Apr 17, 2026
67fb85a
feat(extensions): add MongoDB session backend (#2902)
alexbevi Apr 17, 2026
dd3f59e
Loosen sandbox compaction model parsing (#2930)
sdcoffey Apr 17, 2026
3772047
feat: support sandbox extra path grants (#2920)
qiyaoq-oai Apr 17, 2026
55c8900
docs: update translated document pages (#2935)
github-actions[bot] Apr 17, 2026
61443ca
fix: #2929 surface run-loop exceptions after stream_events() complete…
nileshpatil6 Apr 18, 2026
e80d2d2
Release 0.14.2 (#2899)
github-actions[bot] Apr 18, 2026
82eaf15
fix: #2938 make sandboxes importable on Windows (#2948)
seratch Apr 18, 2026
cebc763
docs: move module docstring to top of handoff_filters.py (#2950)
kuishou68 Apr 19, 2026
da82b2c
fix: #2951 warn for tool name character replacement (#2953)
seratch Apr 19, 2026
cc57bb1
fix: #2962 normalize sandbox paths and add Windows CI (#2963)
seratch Apr 20, 2026
12b5471
fix: prepare Daytona workspace root before start (#2956)
seratch Apr 20, 2026
66cc689
Add Datadog as an external tracer in the tracing docs (#2965)
jarbaugh5 Apr 20, 2026
35c497e
docs: update translated document pages (#2978)
github-actions[bot] Apr 20, 2026
5515283
fix: windows errors with #2956 (#2979)
seratch Apr 20, 2026
902c599
fix: tighten LocalSnapshot restorable checks (#2975)
matthewflint Apr 20, 2026
9d963e8
fix: bound manifest description truncation (#2974)
matthewflint Apr 20, 2026
5d300f0
Release 0.14.3 (#2980)
github-actions[bot] Apr 20, 2026
bf3e9d1
docs: remove duplicate word in voice interruptions section (#2981)
abhicris Apr 21, 2026
9e228fc
docs: update translated document pages (#2982)
github-actions[bot] Apr 21, 2026
2a515f0
test: add sandbox compatibility guards (#2984)
seratch Apr 21, 2026
106ef05
fix: ignore relative snapshot base overrides (#2976)
matthewflint Apr 21, 2026
4c5112c
feat: add BoxMount support (#2988)
alfozan Apr 21, 2026
3aad7eb
refactor: share sandbox ephemeral mount lifecycle (#2986)
seratch Apr 21, 2026
4c68780
refactor: share sandbox tar exclude arg generation (#2987)
seratch Apr 21, 2026
333721d
refactor: extract sandbox session helper operations (#2985)
seratch Apr 21, 2026
fdf2d00
docs: update translated document pages (#2996)
github-actions[bot] Apr 21, 2026
4e43cba
Release 0.14.4 (#2989)
github-actions[bot] Apr 21, 2026
734d424
docs: clarify lazy skill source host paths (#2998)
alfozan Apr 22, 2026
638388a
docs: update translated document pages (#2999)
github-actions[bot] Apr 22, 2026
81c57c5
fix: backfill streamed terminal output (#3000)
ankitphogat Apr 23, 2026
5be06a1
feat: #3001 add Modal sandbox idle timeout option (#3005)
seratch Apr 23, 2026
16e0409
fix: #3004 serve HITL resume tool outputs (#3006)
seratch Apr 23, 2026
fe3a5e6
Release 0.14.5 (#3007)
github-actions[bot] Apr 23, 2026
c2cb031
chore: harden uv dependency resolution (#3014)
mcgrew-oai Apr 23, 2026
5ffc1ec
relax websockets upper bound from <16 to <17 (#3013)
mathisobadia Apr 23, 2026
c88f339
Update examples and defaults to GPT-5.5 (#3016)
alfozan Apr 25, 2026
071e2b6
docs: update translated document pages (#3021)
github-actions[bot] Apr 25, 2026
1821bf8
docs: add MongoDB session documentation (#3015)
alexbevi Apr 25, 2026
9af6ad1
docs: update translated document pages (#3023)
github-actions[bot] Apr 25, 2026
9a207b6
Release 0.14.6 (#3022)
github-actions[bot] Apr 25, 2026
2eb8713
fix: tighten tar and zip member validation (#3028)
matthewflint Apr 26, 2026
5df41d3
feat: #2886 add convenience properties (tool_name, call_id) to tool i…
jawwad-ali Apr 26, 2026
ba889de
fix: reject symlinked LocalFile sources (#2972)
matthewflint Apr 26, 2026
233d71a
feat(usage): add agent_name and model_name to RequestUsage (#2100)
Apr 14, 2026
09c9bbb
fix(usage): copy RequestUsage entries instead of mutating other in place
Apr 17, 2026
8709e0b
test(usage)+harden: model_name handoff coverage, serialize round-trip…
adityasingh2400 Apr 22, 2026
fa0a85f
fix: adapt usage annotation to upstream agent->public_agent rename + …
adityasingh2400 Apr 26, 2026
617a77c
fix(usage): preserve request_usage entry metadata for single-request …
adityasingh2400 Apr 28, 2026
bccca6d
refactor(usage): narrow request attribution to agent name
adityasingh2400 May 6, 2026
76bf2b7
style: format usage attribution
adityasingh2400 May 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 8 additions & 5 deletions .agents/skills/code-change-verification/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,25 @@ Ensure work is only marked complete after formatting, linting, type checking, an
1. Keep this skill at `./.agents/skills/code-change-verification` so it loads automatically for the repository.
2. macOS/Linux: `bash .agents/skills/code-change-verification/scripts/run.sh`.
3. Windows: `powershell -ExecutionPolicy Bypass -File .agents/skills/code-change-verification/scripts/run.ps1`.
4. If any command fails, fix the issue, rerun the script, and report the failing output.
5. Confirm completion only when all commands succeed with no remaining issues.
4. The scripts run `make format` first, then run `make lint`, `make typecheck`, and `make tests` in parallel with fail-fast semantics.
5. While the parallel steps are still running, the scripts emit periodic heartbeat updates so you can tell that work is still in progress.
6. If any command fails, fix the issue, rerun the script, and report the failing output.
7. Confirm completion only when all commands succeed with no remaining issues.

## Manual workflow

- If dependencies are not installed or have changed, run `make sync` first to install dev requirements via `uv`.
- Run from the repository root in this order: `make format`, `make lint`, `make typecheck`, `make tests`.
- Run from the repository root with `make format` first, then `make lint`, `make typecheck`, and `make tests`.
- Do not skip steps; stop and fix issues immediately when a command fails.
- If you run the steps manually, you may parallelize `make lint`, `make typecheck`, and `make tests` after `make format` completes, but you must stop the remaining steps as soon as one fails.
- Re-run the full stack after applying fixes so the commands execute in the required order.

## Resources

### scripts/run.sh

- Executes the full verification sequence with fail-fast semantics from the repository root. Prefer this entry point to ensure the required commands run in the correct order.
- Executes `make format` first, then runs `make lint`, `make typecheck`, and `make tests` in parallel with fail-fast semantics from the repository root. It also emits periodic heartbeat updates while the parallel steps are still running. Prefer this entry point to preserve the required ordering while reducing total runtime.

### scripts/run.ps1

- Windows-friendly wrapper that runs the same verification sequence with fail-fast semantics. Use from PowerShell with execution policy bypass if required by your environment.
- Windows-friendly wrapper that runs the same sequence with `make format` first and the remaining steps in parallel with fail-fast semantics, plus periodic heartbeat updates while work is still running. Use from PowerShell with execution policy bypass if required by your environment.
4 changes: 4 additions & 0 deletions .agents/skills/code-change-verification/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
interface:
display_name: "Code Change Verification"
short_description: "Run the required local verification stack"
default_prompt: "Use $code-change-verification to run the required local verification stack and report any failures."
186 changes: 178 additions & 8 deletions .agents/skills/code-change-verification/scripts/run.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,198 @@ try {
}

if (-not $repoRoot) {
$repoRoot = Resolve-Path (Join-Path $scriptDir "..\\..\\..\\..")
$repoRoot = (Resolve-Path (Join-Path $scriptDir "..\\..\\..\\..")).Path
} else {
$repoRoot = ([string]$repoRoot).Trim()
}

Set-Location $repoRoot

$logDir = Join-Path ([System.IO.Path]::GetTempPath()) ("code-change-verification-" + [System.Guid]::NewGuid().ToString("N"))
New-Item -ItemType Directory -Path $logDir | Out-Null

$steps = New-Object System.Collections.Generic.List[object]
$heartbeatIntervalSeconds = 10
if ($env:CODE_CHANGE_VERIFICATION_HEARTBEAT_SECONDS) {
$heartbeatIntervalSeconds = [int]$env:CODE_CHANGE_VERIFICATION_HEARTBEAT_SECONDS
}

function Resolve-MakeInvocation {
$command = Get-Command make -ErrorAction Stop

while ($command.CommandType -eq [System.Management.Automation.CommandTypes]::Alias) {
$command = $command.ResolvedCommand
}

if ($command.CommandType -in @(
[System.Management.Automation.CommandTypes]::Application,
[System.Management.Automation.CommandTypes]::ExternalScript
)) {
$commandPath = if ($command.Path) { $command.Path } else { $command.Source }
return [PSCustomObject]@{
FilePath = $commandPath
ArgumentList = @()
}
}

if ($command.CommandType -eq [System.Management.Automation.CommandTypes]::Function) {
$shellPath = (Get-Process -Id $PID).Path
if (-not $shellPath) {
throw "Unable to resolve the current PowerShell executable for make wrapper launches."
}

$wrapperPath = Join-Path $logDir "invoke-make.ps1"
$escapedRepoRoot = $repoRoot -replace "'", "''"
$wrapperTemplate = @'
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"
Set-Location -LiteralPath '{0}'
function global:make {{
{1}
}}
& make @args
exit $LASTEXITCODE
'@
$wrapperScript = $wrapperTemplate -f $escapedRepoRoot, $command.Definition.TrimEnd()
Set-Content -Path $wrapperPath -Value $wrapperScript -Encoding UTF8

return [PSCustomObject]@{
FilePath = $shellPath
ArgumentList = @("-NoLogo", "-NoProfile", "-File", $wrapperPath)
}
}

throw "code-change-verification: make must resolve to an application, script, alias, or function."
}

$script:MakeInvocation = Resolve-MakeInvocation

function Invoke-MakeStep {
param(
[Parameter(Mandatory = $true)][string]$Step
)

Write-Host "Running make $Step..."
& make $Step
& $script:MakeInvocation.FilePath @($script:MakeInvocation.ArgumentList + $Step)

if ($LASTEXITCODE -ne 0) {
Write-Error "code-change-verification: make $Step failed with exit code $LASTEXITCODE."
exit $LASTEXITCODE
Write-Host "code-change-verification: make $Step failed with exit code $LASTEXITCODE."
return $LASTEXITCODE
}

return 0
}

function Start-MakeStep {
param(
[Parameter(Mandatory = $true)][string]$Step
)

$stdoutLogPath = Join-Path $logDir "$Step.stdout.log"
$stderrLogPath = Join-Path $logDir "$Step.stderr.log"
Write-Host "Running make $Step..."
$process = Start-Process -FilePath $script:MakeInvocation.FilePath -ArgumentList @($script:MakeInvocation.ArgumentList + $Step) -RedirectStandardOutput $stdoutLogPath -RedirectStandardError $stderrLogPath -PassThru
$steps.Add([PSCustomObject]@{
Name = $Step
Process = $process
StdoutLogPath = $stdoutLogPath
StderrLogPath = $stderrLogPath
StartTime = Get-Date
})
}

Invoke-MakeStep -Step "format"
Invoke-MakeStep -Step "lint"
Invoke-MakeStep -Step "typecheck"
Invoke-MakeStep -Step "tests"
function Stop-RunningSteps {
foreach ($step in $steps) {
if ($null -eq $step.Process) {
continue
}

& taskkill /PID $step.Process.Id /T /F *> $null
}

foreach ($step in $steps) {
if ($null -eq $step.Process) {
continue
}

try {
$step.Process.WaitForExit()
} catch {
}
}
}

function Wait-ForParallelSteps {
$pending = New-Object System.Collections.Generic.List[object]
foreach ($step in $steps) {
$pending.Add($step)
}
$nextHeartbeatAt = (Get-Date).AddSeconds($heartbeatIntervalSeconds)

while ($pending.Count -gt 0) {
foreach ($step in @($pending)) {
$step.Process.Refresh()
if (-not $step.Process.HasExited) {
continue
}

$duration = [int]((Get-Date) - $step.StartTime).TotalSeconds
if ($step.Process.ExitCode -eq 0) {
Write-Host "make $($step.Name) passed in ${duration}s."
[void]$pending.Remove($step)
continue
}

Write-Host "code-change-verification: make $($step.Name) failed with exit code $($step.Process.ExitCode) after ${duration}s."
if (Test-Path $step.StderrLogPath) {
Write-Host "--- $($step.Name) stderr log (last 80 lines) ---"
Get-Content $step.StderrLogPath -Tail 80
}
if (Test-Path $step.StdoutLogPath) {
Write-Host "--- $($step.Name) stdout log (last 80 lines) ---"
Get-Content $step.StdoutLogPath -Tail 80
}

Stop-RunningSteps
return $step.Process.ExitCode
}

if ($pending.Count -gt 0) {
if ((Get-Date) -ge $nextHeartbeatAt) {
$running = @()
foreach ($step in $pending) {
$elapsed = [int]((Get-Date) - $step.StartTime).TotalSeconds
$running += "$($step.Name) (${elapsed}s)"
}
Write-Host ("code-change-verification: still running: " + ($running -join ", ") + ".")
$nextHeartbeatAt = (Get-Date).AddSeconds($heartbeatIntervalSeconds)
}
Start-Sleep -Seconds 1
}
}

return 0
}

$exitCode = 0

try {
$exitCode = Invoke-MakeStep -Step "format"
if ($exitCode -eq 0) {
Write-Host "Running make lint, make typecheck, and make tests in parallel..."
Start-MakeStep -Step "lint"
Start-MakeStep -Step "typecheck"
Start-MakeStep -Step "tests"

$exitCode = Wait-ForParallelSteps
}
} finally {
Stop-RunningSteps
Remove-Item $logDir -Recurse -Force -ErrorAction SilentlyContinue
}

if ($exitCode -ne 0) {
exit $exitCode
}

Write-Host "code-change-verification: all commands passed."
Loading
Loading