Hernan Javier Ardila Sanchez
d098114fe5
fix(combo): guarantee combo loops terminate with an actionable error instead of hanging silently (#10463)
Guarantees combo/target loops always terminate with an actionable error instead of hanging when an upstream hangs — fixes 10 silent-stop gaps (G1–G10): combo-loop safety timer + abort on hang → 504, unexpected task throw → 502, round-robin safety net, chaos all-panel-failure visibility, ReDoS-safe eval regex, autoRefreshDaemon swallowed-error logging, batch-item wall-clock timeout.
Validated in an isolated worktree boarded onto origin/release/v3.8.50 (2 real conflicts in combo.ts and chaosEngine.ts, both additive features from concurrently-merged PRs landing at the same insertion point — resolved by combining both, verified no variable-shadowing/scoping issues):
- 10/10 new regression tests pass (combo-silent-stop-gaps.test.ts): hung upstream → 504, unexpected throw → 502, chaos all-fail logged, ReDoS regex rejected, batch timeout.
- 163/163 broader focused tests pass (combo-routing-engine, combo-target-timeout-runner, pipeline-router, chaos-executor, batch-processor ×2, service-batch-processor, evalrunner-builtinsuites-split).
- check-file-size, check-changelog-integrity: OK.
- typecheck:core: clean.
- check-complexity / check-cognitive-complexity: OK, both under baseline.
Co-authored-by: herjarsa <herjarsa@users.noreply.github.com>
2026-08-20 23:07:25 -03:00
..
2026-08-12 16:19:25 -03:00
2026-06-19 06:49:01 -03:00
2026-08-18 08:25:16 -03:00
2026-08-20 15:07:19 -03:00
2026-08-20 15:07:19 -03:00
2026-06-30 06:54:29 -03:00
2026-07-02 10:47:13 -03:00
2026-06-30 06:54:29 -03:00
2026-06-29 16:51:03 -03:00
2026-08-20 10:27:26 -03:00
2026-07-13 09:12:40 -03:00
2026-08-20 15:34:08 -03:00
2026-07-29 15:18:55 -03:00
2026-07-13 09:12:40 -03:00
2026-08-20 06:30:43 -03:00
2026-08-18 10:51:34 -03:00
2026-06-27 09:07:12 -03:00
2026-08-12 02:13:41 -03:00
2026-08-17 08:02:47 -03:00
2026-08-20 15:46:57 -03:00
2026-08-20 16:42:02 -03:00
2026-08-11 04:31:24 -03:00
2026-08-20 22:15:48 -03:00
2026-07-04 13:00:30 -03:00
2026-07-29 15:18:55 -03:00
2026-08-20 13:21:11 -03:00
2026-08-12 02:13:41 -03:00
2026-08-20 23:07:25 -03:00
2026-06-29 16:51:03 -03:00
2026-07-29 15:18:55 -03:00
2026-08-14 11:00:12 -03:00
2026-08-19 12:35:44 -03:00
2026-07-07 13:14:06 -03:00
2026-07-29 15:18:55 -03:00
2026-08-05 21:43:16 -03:00
2026-07-29 15:18:55 -03:00
2026-08-09 09:54:47 -03:00
2026-08-09 09:54:47 -03:00
2026-07-29 15:18:55 -03:00
2026-08-11 04:30:38 -03:00
2026-07-02 10:47:13 -03:00
2026-08-12 16:54:50 -03:00
2026-08-20 09:46:13 -03:00
2026-06-30 06:54:29 -03:00
2026-08-19 12:09:43 -03:00
2026-06-03 06:45:04 -03:00
2026-05-28 17:19:48 -03:00
2026-08-07 20:54:32 -03:00
2026-06-30 06:54:29 -03:00
2026-08-18 12:27:46 -03:00
2026-08-20 22:53:24 -03:00
2026-08-20 15:47:34 -03:00
2026-07-29 15:18:55 -03:00
2026-08-18 10:49:52 -03:00
2026-08-18 11:31:53 -03:00
2026-08-14 22:19:50 -03:00
2026-07-29 15:18:55 -03:00
2026-08-18 11:31:53 -03:00
2026-07-29 15:18:55 -03:00
2026-08-18 11:31:53 -03:00
2026-02-26 15:11:40 +00:00
2026-08-18 10:52:43 -03:00
2026-06-20 14:55:24 -03:00
2026-08-18 11:25:46 -03:00
2026-08-20 17:28:37 -03:00
2026-04-17 09:00:32 -03:00
2026-08-11 10:29:28 -03:00
2026-08-05 16:07:31 -03:00
2026-08-09 15:16:55 -03:00
2026-04-23 16:57:43 -03:00
2026-08-20 18:26:02 -03:00
2026-08-18 11:42:47 -03:00
2026-08-18 11:25:46 -03:00
2026-08-04 14:34:02 -03:00
2026-08-07 20:53:21 -03:00
2026-06-29 16:51:03 -03:00
2026-04-16 05:26:17 -03:00
2026-05-29 12:44:29 -03:00
2026-08-18 11:31:46 -03:00
2026-05-09 12:42:59 +00:00
2026-06-17 02:43:21 -03:00
2026-08-20 10:27:26 -03:00
2026-04-01 08:42:03 -03:00
2026-03-29 14:37:55 +02:00
2026-03-17 04:24:46 -03:00
2026-08-09 09:52:28 -03:00
2026-07-29 15:18:55 -03:00
2026-05-29 12:44:29 -03:00
2026-05-29 12:44:29 -03:00
2026-08-20 06:29:42 -03:00
2026-03-04 19:35:38 -03:00
2026-08-05 22:41:38 -03:00
2026-08-15 01:51:01 -03:00
2026-06-29 08:40:06 -03:00
2026-06-29 08:40:06 -03:00
2026-08-18 11:25:46 -03:00
2026-07-29 15:18:55 -03:00
2026-07-29 15:18:55 -03:00
2026-08-18 10:49:15 -03:00
2026-08-20 11:47:38 -03:00
2026-04-01 08:45:39 +07:00
2026-08-09 09:54:47 -03:00
2026-08-18 10:57:44 -03:00
2026-07-29 15:18:55 -03:00
2026-08-20 13:00:01 -03:00
2026-07-29 15:18:55 -03:00
2026-08-13 04:02:42 -03:00
2026-08-09 09:55:02 -03:00
2026-04-24 13:20:59 -03:00
2026-08-20 15:07:19 -03:00
2026-08-17 08:21:53 -03:00
2026-08-17 08:21:53 -03:00
2026-08-20 09:31:12 -03:00
2026-08-15 14:23:29 -03:00
2026-08-09 09:55:16 -03:00
2026-08-20 09:31:12 -03:00
2026-08-20 22:15:48 -03:00
2026-08-20 10:27:26 -03:00
2026-04-30 01:27:03 -03:00
2026-06-03 06:45:04 -03:00
2026-08-18 11:31:53 -03:00
2026-05-01 08:36:07 -03:00
2026-05-01 08:36:07 -03:00
2026-06-01 23:13:19 -03:00
2026-08-20 13:11:03 -03:00
2026-08-09 09:55:16 -03:00
2026-08-20 15:19:32 -03:00
2026-08-20 15:47:34 -03:00
2026-06-29 08:40:06 -03:00
2026-08-20 15:47:34 -03:00
2026-08-20 06:29:38 -03:00
2026-07-29 15:18:55 -03:00
2026-08-11 09:16:23 -03:00
2026-06-13 17:27:40 -03:00
2026-08-07 20:54:11 -03:00
2026-08-17 08:24:51 -03:00
2026-08-11 04:31:24 -03:00
2026-07-29 15:18:55 -03:00
2026-08-11 04:31:24 -03:00
2026-02-18 14:43:57 -03:00
2026-02-18 00:02:15 -03:00
2026-07-02 10:47:13 -03:00
2026-06-09 15:56:24 -03:00
2026-08-18 11:25:46 -03:00
2026-07-29 15:18:55 -03:00