Skip to content

[Linux v1][B11] Adapt companion tool routing to Desktop registered tools #2140

Description

@w4ffl35

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

  • Fake tool scenarios cover selection, invalid args, retry, failure, loop limit and cancellation.
  • Network tools cannot execute offline; local tools remain available.
  • Tool output cannot become a system instruction or bypass mandatory generation checks.

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    linux-v1Linux NVIDIA offline Desktop release handoff

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions