Skip to content

fix: update tests for current plugin registry - #1

Merged
AllynSheep merged 1 commit into
AllynSheep:fix/kanban-handoff-retry-loopfrom
MKI13:autofix/pr-29064-test-fix
May 20, 2026
Merged

fix: update tests for current plugin registry#1
AllynSheep merged 1 commit into
AllynSheep:fix/kanban-handoff-retry-loopfrom
MKI13:autofix/pr-29064-test-fix

Conversation

@MKI13

@MKI13 MKI13 commented May 20, 2026

Copy link
Copy Markdown

Summary

  • Include the bundled xAI web provider in web plugin registry tests.
  • Isolate web plugin tests from local xAI credentials by using a temporary HERMES_HOME.
  • Make the update hangup-protection stream assertion resilient to hermes_cli.main reloads.

Test plan

  • /home/marios/.hermes/hermes-agent/venv/bin/python -m pytest tests/plugins/web/test_web_search_provider_plugins.py tests/hermes_cli/test_update_hangup_protection.py -q
  • /home/marios/.hermes/hermes-agent/venv/bin/python -m ruff check tests/plugins/web/test_web_search_provider_plugins.py tests/hermes_cli/test_update_hangup_protection.py

Follow-up for NousResearch#29064.

@AllynSheep
AllynSheep merged commit 6479692 into AllynSheep:fix/kanban-handoff-retry-loop May 20, 2026
AllynSheep pushed a commit that referenced this pull request May 22, 2026
Four findings from Copilot's review on PR NousResearch#22891, all in the AX
elements-array cap added by 22fa1ed:

1. The truncation note ("response truncated to N of M elements") was
   appended unconditionally — including in the som/vision multimodal
   path, whose response carries a screenshot rather than an `elements`
   array. The note described a payload field that wasn't present.
   Moved the note into the AX-text branch where the array actually
   appears.

2. `_format_elements(cap.elements)` ran on the full untrimmed list with
   its own `max_lines=40` cap, so a caller passing `max_elements=10`
   would see summary lines referencing `NousResearch#11..NousResearch#40` even though the JSON
   `elements` array only held #1..NousResearch#10. Format on `visible_elements`
   instead so the summary indices always exist in the response.

3. `_coerce_max_elements` enforced a lower bound but no upper bound,
   so `max_elements=10_000_000` silently disabled the safeguard and
   reintroduced the original context-blow-up. Added a hard cap
   (`_MAX_ALLOWED_MAX_ELEMENTS = 1000`) that clamps oversized values.

4. The schema string said "Default 100" but the property carried no
   `default` field, and claimed `max_elements` had no effect on som/
   vision while the image-missing fallback path can still return an
   elements array. Added `"default": 100`, `"maximum": 1000`, and
   clarified the fallback-path wording.

Each finding gets a regression test:

- test_capture_ax_clamps_oversized_max_elements_to_hard_cap
- test_capture_ax_summary_indices_match_returned_elements
- test_capture_multimodal_summary_omits_truncation_note
- test_schema_max_elements_documents_default_and_upper_bound

Verified with `pytest tests/tools/test_computer_use.py` (53 passed,
including the 5 new cases). Confirmed each new test fails on the
pre-fix code path before applying the production change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

3 participants