Compare commits

..

10 Commits

Author SHA1 Message Date
m e94fc309fd Record Stage 2 transfer package verification results
build / backend (push) Has been cancelled
build / node-agent (push) Has been cancelled
build / worker (push) Has been cancelled
2026-05-12 09:24:17 +03:00
m c27bf084fd Start staged execution and record Stage 1 preflight pass 2026-05-12 09:22:12 +03:00
m 874e2f1464 Refresh transfer docs and commit index for 10-commit chain 2026-05-12 09:00:53 +03:00
m 3778904c5c Update transfer notes for latest 9-commit stabilization bundle 2026-05-12 09:00:16 +03:00
m d2cd9292e3 Record full one-shot vpnruntime guard validation 2026-05-12 08:59:47 +03:00
m f1070e1a9d Wire one-shot vpnruntime guard script into CI 2026-05-12 08:59:22 +03:00
m 84ba2ad771 Add one-shot vpnruntime CI guard smoke script 2026-05-12 08:58:57 +03:00
m 051d024208 Update transfer notes for full 5-commit stabilization chain 2026-05-12 08:57:52 +03:00
m edf3836c88 Add vpnruntime CI stabilization changelog 2026-05-12 08:57:24 +03:00
m 6fec1d5c12 Add targeted anti-flake CI step for parallel flow window test 2026-05-12 08:57:01 +03:00
6 changed files with 240 additions and 0 deletions
+4
View File
@@ -33,8 +33,12 @@ jobs:
- run: go test ./...
- name: Anti-flake check (vpnruntime)
run: go test ./internal/vpnruntime -count=20
- name: Targeted anti-flake (parallel flow window)
run: go test ./internal/vpnruntime -run TestFabricClientPacketIngressParallelFlowWindowDoesNotBlockIndependentChannel -count=50 -timeout=60s
- name: Concurrency check (vpnruntime race)
run: go test -race ./internal/vpnruntime
- name: One-shot vpnruntime guard script
run: pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/smoke/run-vpnruntime-ci-guards.ps1 -AntiFlakeCount 20 -TargetedCount 50
worker:
runs-on: ubuntu-24.04
@@ -7,11 +7,21 @@ Portable export includes two local commits:
1. `a3c0998e` - Stabilize vpnruntime parallel flow test and add CI anti-flake gate
2. `fea5174e` - Add vpnruntime race check to CI
Extended stabilization chain now includes:
3. `4603826b` - Add transfer notes for vpnruntime CI fix commits
4. `6fec1d5c` - Add targeted anti-flake CI step for parallel flow window test
5. `edf3836c` - Add vpnruntime CI stabilization changelog
Generated files (local, ignored by git) are in:
- `artifacts/git-patches/0001-Stabilize-vpnruntime-parallel-flow-test-and-add-CI-a.patch`
- `artifacts/git-patches/0002-Add-vpnruntime-race-check-to-CI.patch`
- `artifacts/git-patches/vpnruntime-ci-fixes.bundle`
- `artifacts/git-patches/full-stabilization/` (5 patches)
- `artifacts/git-patches/vpnruntime-ci-stabilization-5commits.bundle`
- `artifacts/git-patches/full-stabilization-latest/` (10 patches)
- `artifacts/git-patches/vpnruntime-ci-stabilization-latest-10commits.bundle`
## Apply as patches
@@ -27,6 +37,20 @@ git fetch ./vpnruntime-ci-fixes.bundle
git cherry-pick a3c0998e fea5174e
```
Full chain (5 commits):
```bash
git fetch ./vpnruntime-ci-stabilization-5commits.bundle
git cherry-pick a3c0998e fea5174e 4603826b 6fec1d5c edf3836c
```
Latest chain (10 commits from `8ba0561f` baseline):
```bash
git fetch ./vpnruntime-ci-stabilization-latest-10commits.bundle
git cherry-pick a3c0998e fea5174e 4603826b 6fec1d5c edf3836c 051d0242 84ba2ad7 f1070e1a d2cd9292 3778904c
```
## Validate
From `agents/rap-node-agent`:
@@ -36,3 +60,8 @@ go test ./internal/vpnruntime -count=20
go test -race ./internal/vpnruntime
```
Or run the one-shot guard from repo root:
```powershell
pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/smoke/run-vpnruntime-ci-guards.ps1
```
@@ -0,0 +1,67 @@
# VPN Runtime CI Stabilization Changelog
Date: 2026-05-12
This note summarizes local stabilization work for `agents/rap-node-agent/internal/vpnruntime`
and related CI hardening.
## Commit Chain
1. `a3c0998e`
Stabilize parallel flow-window test behavior and add initial CI anti-flake checks.
2. `fea5174e`
Add `-race` CI check for `vpnruntime`.
3. `4603826b`
Add transfer notes with patch/bundle usage instructions.
4. `6fec1d5c`
Add targeted CI anti-flake step for the previously flaky test:
`TestFabricClientPacketIngressParallelFlowWindowDoesNotBlockIndependentChannel`.
## Key Technical Changes
- Test determinism fix in `fabric_transport_test.go`:
fast send now waits for observed slow-send start boundary, so overlapping
in-flight behavior is exercised consistently.
- CI workflow hardening in `.github/workflows/build.yml`:
- backend now runs `go test ./...`
- new `node-agent` job with:
- `go test ./...`
- `go test ./internal/vpnruntime -count=20`
- `go test ./internal/vpnruntime -run TestFabricClientPacketIngressParallelFlowWindowDoesNotBlockIndependentChannel -count=50 -timeout=60s`
- `go test -race ./internal/vpnruntime`
## Local Validation Snapshot
- `go test ./internal/vpnruntime -count=100` passed.
- `go test ./internal/vpnruntime -run TestFabricClientPacketIngressParallelFlowWindowDoesNotBlockIndependentChannel -count=50 -timeout=60s` passed.
- `go test -race ./internal/vpnruntime` passed.
- `pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/smoke/run-vpnruntime-ci-guards.ps1 -AntiFlakeCount 20 -TargetedCount 50` passed.
- `go test ./...` passed in:
- `agents/rap-node-agent`
- `backend`
## One-Shot Guard Script
- `scripts/smoke/run-vpnruntime-ci-guards.ps1`
Example:
```powershell
pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/smoke/run-vpnruntime-ci-guards.ps1
```
## Transfer/Recovery Artifacts
Local export files are available in ignored path:
- `artifacts/git-patches/0001-Stabilize-vpnruntime-parallel-flow-test-and-add-CI-a.patch`
- `artifacts/git-patches/0002-Add-vpnruntime-race-check-to-CI.patch`
- `artifacts/git-patches/vpnruntime-ci-fixes.bundle`
See:
- `docs/operations/VPNRUNTIME_CI_FIXES_TRANSFER_2026-05-12.md`
@@ -0,0 +1,24 @@
# VPN Runtime CI Stabilization Commit Index
Date: 2026-05-12
Baseline commit: `8ba0561f`
Ordered commit chain (`8ba0561f..HEAD` at capture time):
1. `a3c0998e` - Stabilize vpnruntime parallel flow test and add CI anti-flake gate
2. `fea5174e` - Add vpnruntime race check to CI
3. `4603826b` - Add transfer notes for vpnruntime CI fix commits
4. `6fec1d5c` - Add targeted anti-flake CI step for parallel flow window test
5. `edf3836c` - Add vpnruntime CI stabilization changelog
6. `051d0242` - Update transfer notes for full 5-commit stabilization chain
7. `84ba2ad7` - Add one-shot vpnruntime CI guard smoke script
8. `f1070e1a` - Wire one-shot vpnruntime guard script into CI
9. `d2cd9292` - Record full one-shot vpnruntime guard validation
10. `3778904c` - Update transfer notes for latest 9-commit stabilization bundle
Command to re-check this list:
```bash
git log --oneline --reverse 8ba0561f..HEAD
```
@@ -0,0 +1,60 @@
# VPN Runtime Stage Execution
Date: 2026-05-12
Current head at stage start: `874e2f14`
## Stage Plan
1. Stage 1 - Preflight baseline validation (local guard pipeline)
2. Stage 2 - Transfer package refresh and integrity check
3. Stage 3 - Remote push handoff readiness (auth-dependent)
4. Stage 4 - Post-push verification checklist
## Stage Status
### Stage 1 - Completed
Command:
```powershell
pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/smoke/run-vpnruntime-ci-guards.ps1 -AntiFlakeCount 20 -TargetedCount 50
```
Result:
- `go test ./...` (rap-node-agent): PASS
- `go test ./internal/vpnruntime -count=20`: PASS
- targeted anti-flake test (`-count=50`): PASS
- `go test -race ./internal/vpnruntime`: PASS
Next:
- Proceed to Stage 2 (transfer package refresh and integrity check).
### Stage 2 - Completed
Scope:
- Refresh transfer artifacts from baseline `8ba0561f..c27bf084`.
- Verify bundle metadata.
- Verify patch chain applies cleanly on a detached baseline worktree.
Artifacts:
- `artifacts/git-patches/full-stabilization-current/` (12 patches)
- `artifacts/git-patches/vpnruntime-ci-stabilization-current.bundle`
Verification:
- `git bundle verify artifacts/git-patches/vpnruntime-ci-stabilization-current.bundle`: PASS
- `git am --3way <12 patches>` on detached worktree from `8ba0561f`: PASS
Notes:
- Local git version does not support `git am --dry-run`; compatibility check was
performed via real `git am --3way` in throwaway worktree and then worktree
removal.
Next:
- Proceed to Stage 3 (remote push handoff readiness; auth-dependent).
@@ -0,0 +1,56 @@
param(
[int]$AntiFlakeCount = 20,
[int]$TargetedCount = 50,
[string]$TargetedTimeout = "60s",
[switch]$SkipRace
)
Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"
$repoRoot = Resolve-Path (Join-Path $PSScriptRoot "..\..")
$agentDir = Join-Path $repoRoot "agents\rap-node-agent"
function Invoke-Go {
param(
[Parameter(Mandatory = $true)]
[string[]]$Args
)
& go @Args
if ($LASTEXITCODE -ne 0) {
throw "go $($Args -join ' ') failed with exit code $LASTEXITCODE"
}
}
Write-Host "[vpnruntime] repo root: $repoRoot"
Write-Host "[vpnruntime] agent dir: $agentDir"
Push-Location $agentDir
try {
Write-Host "[vpnruntime] go test ./..."
Invoke-Go -Args @("test", "./...")
Write-Host "[vpnruntime] go test ./internal/vpnruntime -count=$AntiFlakeCount"
Invoke-Go -Args @("test", "./internal/vpnruntime", "-count=$AntiFlakeCount")
Write-Host "[vpnruntime] targeted anti-flake"
Invoke-Go -Args @(
"test",
"./internal/vpnruntime",
"-run", "TestFabricClientPacketIngressParallelFlowWindowDoesNotBlockIndependentChannel",
"-count=$TargetedCount",
"-timeout=$TargetedTimeout"
)
if (-not $SkipRace) {
Write-Host "[vpnruntime] race check"
Invoke-Go -Args @("test", "-race", "./internal/vpnruntime")
} else {
Write-Host "[vpnruntime] race check skipped"
}
Write-Host "[vpnruntime] all guards passed"
}
finally {
Pop-Location
}