strix/tests
0xallam 17f85e1569 feat(migration): phase 2.1-2.3 — sandbox dispatch + thin slice tool wrappers
Phase 2.1 — sandbox dispatch helper:
- strix/tools/_sandbox_dispatch.py: post_to_sandbox() centralizes the
  host->container HTTP wire format. Connect=10s, read=150s timeouts mirror
  legacy executor.py. 50 MB response cap (C18) prevents OOM from a runaway
  tool. All errors surface as {"error": str} so the model can recover
  instead of the run dying.

Phase 2.2 — C6 lock-protected JSONL writes:
- strix/tools/notes/notes_actions.py: notes.jsonl appends are now wrapped
  in _notes_lock so concurrent agents can't interleave half-written lines.
  Regression test in test_notes_jsonl_concurrency.py verifies 1000 parallel
  writes produce exactly 1000 valid JSON lines.

Phase 2.3 — thin-slice SDK wrappers (think + todo + notes):
- strix/tools/_legacy_adapter.py: LegacyAgentStateAdapter shim — exposes
  just enough surface (.agent_id) for legacy tools that close over
  agent_state, sourced from ctx.context['agent_id'].
- strix/tools/thinking/thinking_sdk_tools.py: 1 tool (think).
- strix/tools/todo/todo_sdk_tools.py: 6 tools (create/list/update/done/
  pending/delete) with bulk-form preserved.
- strix/tools/notes/notes_sdk_tools.py: 5 tools (create/list/get/update/
  delete) with asyncio.to_thread around the lock-protected file I/O.

Tests: 22 new tests pass (10 sandbox dispatch + 2 concurrency + 10 SDK
local). Full suite still green.

Per-file ruff ignores added for SDK wrapper files: TC002 (RunContextWrapper
must be runtime-importable because the SDK calls get_type_hints() to
derive the JSON schema) and PLR0911 (sandbox dispatch's 10 short-circuit
returns are intentional, each a distinct documented failure mode).

Refs: PLAYBOOK.md §3.4, AUDIT_R3.md C6/C18.
2026-04-25 00:13:34 -07:00
..
agents refactor(tests): reorganize unit tests module structure 2025-12-04 00:02:14 +04:00
config fix: --config flag now fully overrides ~/.strix/cli-config.json (#457) 2026-04-22 16:37:22 -04:00
interface feat: Better source-aware testing (#391) 2026-03-31 11:53:49 -07:00
llm feat(migration): phase 1 — Session + Tracer + RunConfig factory 2026-04-25 00:01:05 -07:00
orchestration feat(migration): phase 0 — foundation files + smoke tests for SDK migration 2026-04-24 23:43:56 -07:00
runtime feat(migration): phase 0 — foundation files + smoke tests for SDK migration 2026-04-24 23:43:56 -07:00
skills feat: add skills for specific tools (#366) 2026-03-19 16:47:29 -07:00
static feat(migration): phase 0 — foundation files + smoke tests for SDK migration 2026-04-24 23:43:56 -07:00
telemetry feat(migration): phase 1 — Session + Tracer + RunConfig factory 2026-04-25 00:01:05 -07:00
tools feat(migration): phase 2.1-2.3 — sandbox dispatch + thin slice tool wrappers 2026-04-25 00:13:34 -07:00
__init__.py test: add initial unit tests for argument_parser module 2025-12-04 00:02:14 +04:00
conftest.py refactor(tests): reorganize unit tests module structure 2025-12-04 00:02:14 +04:00
test_run_config_factory.py feat(migration): phase 1 — Session + Tracer + RunConfig factory 2026-04-25 00:01:05 -07:00