Skip to content

fix(tests): skip xurl article-ingestion test when the skill file is missing - #4

Merged
Spaceman-Spiffy merged 1 commit into
mainfrom
fix/skip-xurl-test-when-skill-missing
Jun 6, 2026
Merged

fix(tests): skip xurl article-ingestion test when the skill file is missing#4
Spaceman-Spiffy merged 1 commit into
mainfrom
fix/skip-xurl-test-when-skill-missing

Conversation

@Spaceman-Spiffy

Copy link
Copy Markdown
Owner

Summary

tests/skills/test_xurl_article_ingestion_docs.py::test_xurl_article_ingestion_uses_raw_api_mode reads skills/social-media/xurl/SKILL.md directly via Path.read_text(). This fork ships without the social-media skill category (disabled in local config via hermes-skills-toggle), so the file is absent and the test always fails with FileNotFoundError.

Replace the unconditional read with a module-level pytest.mark.skipif that no-ops the whole test when the skill file is missing, with a clear reason in the skip message. When the skill is restored (e.g. by reenabling the social-media category, or via an upstream merge), the test re-engages automatically — no follow-up needed.

Why skip, not remove

Removing the test would lose the safety net: if/when the xurl skill lands back in this fork (via upstream re-sync, category re-enable, or local re-installation), the test would need to be re-added manually to catch the regression the original commit was guarding. A conditional skip keeps the test on disk, dormant, and ready.

Failing test before the fix (confirmed locally + on CI run NousResearch#18)

FAILED tests/skills/test_xurl_article_ingestion_docs.py::test_xurl_article_ingestion_uses_raw_api_mode
  FileNotFoundError: [Errno 2] No such file or directory:
  '/home/runner/work/hermes-agent/hermes-agent/skills/social-media/xurl/SKILL.md'

Local verification

$ venv/bin/python -m pytest -v -r s tests/skills/test_xurl_article_ingestion_docs.py
SKIPPED [1] tests/skills/test_xurl_article_ingestion_docs.py:29:
  xurl skill not present (skills/social-media/xurl/SKILL.md missing)
1 skipped in 0.01s

(Was 1 failed in 0.30s; now 1 skipped in 0.01s — CI sees this as a clean skip, not a failure.)

Out of scope (separate PRs, in flight)

…issing

The test reads skills/social-media/xurl/SKILL.md directly and fails with
FileNotFoundError when the file is absent.  This fork ships without the
social-media skill category (disabled in local config via
hermes-skills-toggle), so the test always fails on this checkout.

Replace the unconditional read with a module-level pytest.mark.skipif
that no-ops the whole test when the skill file is missing, with a clear
reason in the skip message.  When the skill is restored (e.g. by
reenabling the social-media category, or via an upstream merge), the
test will re-engage automatically — no follow-up needed.

Failing test before the fix (confirmed locally + on CI run NousResearch#18):
  - tests/skills/test_xurl_article_ingestion_docs.py
    ::test_xurl_article_ingestion_uses_raw_api_mode (FileNotFoundError)

Local verification:
  - Before: 1 failed (FileNotFoundError)
  - After:  1 skipped (reason='xurl skill not present ...')

Out of scope (separate PRs, in flight):
  - The 4 brand-dependent CLI tests (fix/tests-accept-mercury-brand).
  - The MatrixAdapter fatal-status harness bug (fix/matrix-sync-fatal-status-harness).
@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown

🔎 Lint report: fix/skip-xurl-test-when-skill-missing vs origin/main

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 9867 on HEAD, 9866 on base (🆕 +1)

🆕 New issues (1):

Rule Count
unresolved-import 1
First entries
tests/skills/test_xurl_article_ingestion_docs.py:1: [unresolved-import] unresolved-import: Cannot resolve imported module `pytest`

✅ Fixed issues: none

Unchanged: 5119 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

@Spaceman-Spiffy
Spaceman-Spiffy merged commit b90da8e into main Jun 6, 2026
20 of 23 checks passed
Spaceman-Spiffy pushed a commit that referenced this pull request Jun 11, 2026
…eSessionPage (NousResearch#43487)

When auto-compression rotates the session tip (old #4 → new NousResearch#5), the
incoming page carries the new tip but the previous list still holds the
old one. The old tip's id differs from the new tip's id, so the existing
id-only dedup in mergeSessionPage() preserves both as separate sidebar
rows.

Add lineage-level dedup: build a set of incoming lineage keys
(`_lineage_root_id ?? id`) and filter survivors whose lineage key
matches any incoming row. This mirrors the existing sessionPinId()
logic used for pin stability.

Fixes NousResearch#43483
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.

1 participant