Commit 7dc8b2d
authored
🚀 release(v1.5): rc.28 — handshake cold-start race + perf/security/refactor batch (#396)
## Summary
Cuts v1.5.0-rc.28 — 19 commits since rc.27, all on `feature/v1.5-rc28`.
### Highlights
- **#386 follow-through (`7ef4aa61`)** — `AgentClient._doHandshake` now
defers `pruneOldContainers` when handshake returns 0 containers,
eliminating the cold-start race where a freshly-restarted agent would
wipe the controller's last-known container count between handshake and
first watch cycle. Combined with the rc.25 (`d02080ae`) snapshot
suppression and rc.26 (`512c3751`) stats-changed broadcast, the agent
count display is now robust across the full restart lifecycle.
Cesc1986's rc.27 reporter log proved the failure mode (`agent-client.ml
Handshake → 0` after restart, wiping 5 known containers).
- **#386 concurrent-handshake guard (`3da42587`)** — in-flight
`_doHandshake` Promise reused across overlapping reconnects.
- **Security caps (`5e02f6df`, `9b6e1b97`)** — auth JSON body limit +
global SSE connection cap; doc note that Command trigger inherits all
`DD_*` env.
- **Perf batch (`07e3580e`, `b2999eb7`, `dceec898`)** —
store/watcher/SSE replay hot paths, bundle splitting, SSE jitter,
OpenAPI cache, alert fan-out, containers menu scan, WS log backpressure.
- **Refactors (`47c0cf44`, `4d34b5e7`, `6ee07006`)** — notifications
outbox openapi docs + drain-safe stop, registry contract hygiene,
`readJsonResponse` adoption.
- **UI fix (`de07d412`)** — include scanning/sbom-generating in phase
enum.
- **CI polish (`794497e5`, `06e56be3`, `612e81c4`, `06eed8dc`,
`82caeb08`, `3721f66b`)** — stub `getContainersRaw` in same-source
watcher tests, vite codeSplitting i18n group, `runTrigger` json type
narrowing, Crowdin Sync emoji prefix, transient 401 checkout retry,
exclude pure-data files from UI mutation slice.
### CHANGELOG
- `[Unreleased]` now contains only the #386 deferred-prune entry (will
be stamped to `[1.5.0-rc.28]` by `release-cut.yml`).
- `[1.5.0-rc.27]` section added retroactively for the two #289 entries
that shipped in rc.27 release notes but were never stamped into the
file.
## Test plan
- [x] All pre-push gates green on `bca0b7bb`: clean-tree, biome, qlty,
qlty-smells, typecheck-ui, **100% coverage**, build
- [x] `npx vitest run agent/AgentClient.test.ts` → 455/455 pass
(includes 4 new regression tests for handshake-zero prune-skip)
- [ ] Required CI checks green on this PR
- [ ] After merge: `gh workflow run release-cut.yml --ref main -f
release_tag=v1.5.0-rc.28`
- [ ] Reporter (Cesc1986) verifies #386 fixed on rc.28 image
Fixes: #3861 parent afee8cb commit 7dc8b2d
51 files changed
Lines changed: 1138 additions & 151 deletions
File tree
- .github/workflows
- app
- agent
- api
- openapi/paths
- notifications
- registries/providers/dhi
- registry
- security
- store
- triggers/providers/command
- watchers/providers/docker
- content/docs/current/configuration
- server
- triggers/command
- ui
- src
- components/containers
- services
- stores
- types
- tests
- config
- stores
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
136 | | - | |
| 136 | + | |
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
128 | 128 | | |
129 | 129 | | |
130 | 130 | | |
131 | | - | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
132 | 135 | | |
133 | 136 | | |
134 | 137 | | |
| |||
173 | 176 | | |
174 | 177 | | |
175 | 178 | | |
176 | | - | |
| 179 | + | |
177 | 180 | | |
178 | 181 | | |
179 | 182 | | |
| |||
182 | 185 | | |
183 | 186 | | |
184 | 187 | | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
185 | 201 | | |
186 | 202 | | |
187 | 203 | | |
| |||
265 | 281 | | |
266 | 282 | | |
267 | 283 | | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
268 | 297 | | |
269 | 298 | | |
270 | 299 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
15 | 21 | | |
16 | 22 | | |
17 | 23 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
| 148 | + | |
| 149 | + | |
148 | 150 | | |
149 | | - | |
| 151 | + | |
150 | 152 | | |
151 | 153 | | |
152 | 154 | | |
| |||
398 | 400 | | |
399 | 401 | | |
400 | 402 | | |
| 403 | + | |
| 404 | + | |
401 | 405 | | |
402 | | - | |
| 406 | + | |
403 | 407 | | |
404 | 408 | | |
405 | 409 | | |
| |||
0 commit comments