tests/ — how Hermes tests are written and run
Applies on top of the root `AGENTS.md`. Read it before adding or changing any test.
## Running tests
**ALWAYS use `scripts/run_tests.sh`**, never bare
264k2d agoReviewMountCreate a free account to mount
search, skills, terminal, todo,
tts, video, vision, web` (don't assert the list in tests). Per-platform enable/disable via
`hermes tools` (curses) or `tools. .enabled/disabled` in config.yaml. `browser_exec
264k2d agoReviewMountCreate a free account to mount
import; the dispatcher rejects unknown param keys
(`4000` + key path) and, under `HERMES_TEST_ISOLATION=1`, raises `ContractViolation` when a handler's
result or an emitted payload does not match
264k2d agoReviewMountCreate a free account to mount
surface; a new surface is a new `web_routers/ .py`, not a growing
`web_server.py`.
- Tests: Python in `tests/hermes_cli/` (routers, pty bridge); JS in the `web/` vitest suite. Python
tests must
264k2d agoReviewMountCreate a free account to mount
origin/dev`, target PRs at `dev`, and diff against `origin/dev` unless told otherwise.
## Live TUI Testing
- Run `bun run dev:live` from a development worktree to test its TUI against
227k28d agoReviewMountCreate a free account to mount
change code and its doctests in the same PR.** If you're only
updating tests, say so and touch nothing else.
## Code conventions (enforced by CI)
- **Formatting & linting:** `ruff
Steady25 mentions in 2 weeks
No other project uses it yet
226k3y agoReviewMountCreate a free account to mount
Essential Commands
For routine pre-commit checks, follow [Verify changes](#verify-changes).
For focused tests, use `pnpm agent:test` or `pnpm agent:playwright`.
Pass test files and worker limits after
211k3d agoReviewMountCreate a free account to mount
here are the general steps you should take:
1. Write some end-to-end tests that assert your win conditions, if they don't already exist
- 1 happy path (more
Steady12 mentions in 2 weeks
No other project uses it yet
202k17mo agoReviewMountCreate a free account to mount
commit hook, `pnpm run oxlint`, the oxc editor extension and the rule tests, through oxlint's `RuleTester`), which loads them as JS plugins. They use oxlint's ESLint-compatible rule
195k3d agoReviewMountCreate a free account to mount
overridden sections) and the full config at `trace`. Keep new config shapes summarizable there.
- **Tests.** `../../../test/node/agentHostPromptRegistry.test.ts` covers the registry/wiring; `../../../test/node/toolInstructions.test.ts` covers the composition/gating. Add cases there, not new harnesses
Steady+17 stars this week
No other project uses it yet
195k3d agoReviewMountCreate a free account to mount
Agent host unit tests
For tests in this area that touch the SessionDatabase, they MUST use an in-memory database, not a real database file on disk. Use `SessionDatabase.open(':memory
Steady+17 stars this week
No other project uses it yet
195k3d agoReviewMountCreate a free account to mount
generator.
- `.github/workflows/`: CI pipelines for PR quality validation, stale checks, site deployment, and Go tests.
## When Modifying the Awesome List
- Read and respect `CONTRIBUTING.md` (alphabetical order, one item
Steady2 mentions in 2 weeks
No other project uses it yet
194k4y agoReviewMountCreate a free account to mount
polish on the live app.
4. `Tech Debt & Improvements (QN YYYY)` for refactors, cleanup, tests, dev experience and infra.
5. `Feature Suggestions (QN YYYY)` for ideas and requests nobody
188k2d agoReviewMountCreate a free account to mount