Parent/specification: #2083
Repository: Capsize-Games/airunner. Work type: Scoped implementation; review the resulting diff before release.
Outcome
Port characterized tool classification/execution behavior using existing Desktop registration and B01 contracts. Validate schemas, bound tool-call rounds/time, propagate cancellation, preserve tool result provenance, and honor offline/capability policy. Do not create an independent tool runtime.
Prerequisites
Read/change boundary
services/src/airunner_services/llm/companion/
services/src/airunner_services/llm/tool_manager.py
services/src/airunner_services/llm/managers/mixins/tool_execution_mixin.py
Paths marked new are deliverables. The companion/ module is introduced by B01; release evidence files may be introduced by prerequisite issues. Directory entries identify a subsystem, not permission to refactor it. Normally limit implementation to five production files plus directly relevant tests; if more is needed, return a proposed split with exact files and do not omit requirements.
Acceptance
Validation
Add the focused regression file services/tests/test_release_b11.py (or extend the named existing suite and report its exact equivalent command). Use real data contracts with fake external/runtime boundaries, no actual model/network/database side effects.
AIRUNNER_TEST_NO_GUI_LAUNCH=1 AIRUNNER_HEADLESS=1 venv/bin/python -m pytest services/tests/test_release_b11.py -o addopts='' -q
Run directly relevant existing tests as well; list them in the result. Explicit temporary SQLite databases only. If the checkout environment cannot run the check, report the unmet prerequisite rather than install into or alter the owner's active environment.
Guardrails / handoff
Linux + NVIDIA 16 GB minimum; retain Qt and offline core; no Electron/Windows work. Preserve existing features and user data. Do not co-install the two airunner_services implementations. No private policy vocabulary, credentials, customer content or sensitive test imagery in source, issues or logs. No GUI/model launch, paid API call, live DB change or deployment in an ordinary coding session. Read applicable repository instructions; preserve unrelated edits. One issue per session; no subagents, automatic follow-on issues or model escalation. Return behavior change, files, exact checks/results and unresolved facts. Do not close until required review/acceptance is complete.
Parent/specification: #2083
Repository: Capsize-Games/airunner. Work type: Scoped implementation; review the resulting diff before release.
Outcome
Port characterized tool classification/execution behavior using existing Desktop registration and B01 contracts. Validate schemas, bound tool-call rounds/time, propagate cancellation, preserve tool result provenance, and honor offline/capability policy. Do not create an independent tool runtime.
Prerequisites
Read/change boundary
services/src/airunner_services/llm/companion/services/src/airunner_services/llm/tool_manager.pyservices/src/airunner_services/llm/managers/mixins/tool_execution_mixin.pyPaths marked new are deliverables. The
companion/module is introduced by B01; release evidence files may be introduced by prerequisite issues. Directory entries identify a subsystem, not permission to refactor it. Normally limit implementation to five production files plus directly relevant tests; if more is needed, return a proposed split with exact files and do not omit requirements.Acceptance
Validation
Add the focused regression file
services/tests/test_release_b11.py(or extend the named existing suite and report its exact equivalent command). Use real data contracts with fake external/runtime boundaries, no actual model/network/database side effects.AIRUNNER_TEST_NO_GUI_LAUNCH=1 AIRUNNER_HEADLESS=1 venv/bin/python -m pytest services/tests/test_release_b11.py -o addopts='' -qRun directly relevant existing tests as well; list them in the result. Explicit temporary SQLite databases only. If the checkout environment cannot run the check, report the unmet prerequisite rather than install into or alter the owner's active environment.
Guardrails / handoff
Linux + NVIDIA 16 GB minimum; retain Qt and offline core; no Electron/Windows work. Preserve existing features and user data. Do not co-install the two
airunner_servicesimplementations. No private policy vocabulary, credentials, customer content or sensitive test imagery in source, issues or logs. No GUI/model launch, paid API call, live DB change or deployment in an ordinary coding session. Read applicable repository instructions; preserve unrelated edits. One issue per session; no subagents, automatic follow-on issues or model escalation. Return behavior change, files, exact checks/results and unresolved facts. Do not close until required review/acceptance is complete.