Skip to content

[Fix] Reject a non-finite timeout_s passed in code; real-server deadline evidence for #36 - #53

Merged
Birfy merged 4 commits into
ThinkFlowLab:mainfrom
chaimaerachdi:timeout-arg-validation
Oct 8, 2026
Merged

Birfy merged 4 commits into
ThinkFlowLab:mainfrom
chaimaerachdi:timeout-arg-validation

Conversation

@chaimaerachdi

Copy link
Copy Markdown
Contributor

Follow-up to #36.

  1. Fix (from the [Feat] Make the decision deadline configurable for slower local System One servers #36 review): S1A_DECISION_TIMEOUT_S rejects nan, inf and values <= 0, but a deadline passed in code (JevModel.from_env(timeout_s=...)) skipped that check. JevDecisionsClient now applies the same guard and raises MODEL_SERVICE_CONFIG_ERROR naming timeout_s. New test: 0, -3, nan, inf, -inf. (c0b20d7)

  2. Real-server evidence for [Feat] Make the decision deadline configurable for slower local System One servers #36, no injected delay: the Flights agent at the default 5 s, at S1A_DECISION_TIMEOUT_S=30 and at =1, on one NVIDIA A40.

  • docs/results/decision-timeout/2026-10-08-a40-native/ (389f346): through system1-omni's frontend and its native Open-Jev worker (4a79980) with Open-Jev-9B. 5 s: the first decision (8.7 s) is cut, clean stop at 12.3 s. 30 s: both decisions complete, then the model answers BLOCKED. 1 s: clean failure, no hang.
  • docs/results/decision-timeout/2026-10-07-a40/ (34cc19b): the same three runs through system1-omni's frontend in front of Open-Jev's reference server with Open-Jev-9B; plus the native worker's out-of-memory log for Open-Jev-27B-v1.1 on the 46 GB A40 and the measured export cost (37 s, 59 GiB RAM).
    Each folder has the records, the commits, the hardware and the scripts as run; see its README.

Verification: ruff and ty clean; 648 passed. One failure (test_decision_models_laya.py::TestFromEnv::test_an_agent_without_system_one_is_a_config_error_naming_the_method) fails the same on main on this machine.

chaimaerachdi and others added 3 commits October 8, 2026 14:45
S1A_DECISION_TIMEOUT_S already rejects nan, inf and values <= 0; a deadline passed as
JevModel.from_env(timeout_s=...) skipped that check. JevDecisionsClient now applies the same guard.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ontend at 5 s, 30 s and 1 s

Open-Jev-9B behind omni-jev on one A40, three runs with only S1A_DECISION_TIMEOUT_S changing; the native
Open-Jev-27B worker's out-of-memory log on the same GPU; the export's measured time and memory; scripts as run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…9B, one A40)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@Birfy Birfy left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review of current head 389f3463024d6e64683d7ec8486e738417873c38 against 9790b52ef4d78a2215e8dd5a526d3a8daea9875a.

I found no blocking code issue in this focused fix. JevDecisionsClient now rejects non-finite and non-positive explicit timeout_s values before constructing the httpx client, reports a configuration error naming timeout_s, and the regression test covers zero, negative, NaN and both infinities. The real-server deadline evidence is also recorded with the runs and environment details. Core 3.11, 3.13, Windows 3.11 and full CI pass; browser is skipped by configuration.

Disposition: no code findings from this review. This is a narrow bug fix with reproducible trace evidence; I do not consider a separate feature recording necessary here.

@Birfy
Birfy self-requested a review October 8, 2026 15:30

@Birfy Birfy left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed current head 5bfd358b80f09996d29b81e1d8f2dda9d66712d8 against base 5d89f85e702fc8dbdb7b719721e3cb0dda0bef4f.

The fix closes the explicit-timeout validation gap: JevDecisionsClient rejects non-finite and non-positive timeout_s values before creating the httpx client, and reports a configuration error naming the parameter. Regression coverage includes zero, negative, NaN and both infinities. Normal timeout/deadline behavior is unchanged. The real-server evidence records the 1 s, default 5 s and 30 s cases with run artifacts and environment details.

I found no blocking code issues. Core 3.11, core 3.13, Windows core and full CI pass; browser is skipped by configuration. Approved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants