Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions argus_skill/release_manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"package_version": "0.1.1",
"release_id": "0.1.1+87d11d59e1912d08",
"release_id": "0.1.1+6602ba3ec767d3f5",
"schema_version": 1,
"source_digest": "87d11d59e1912d08174f89073bcd219fb6036c534986e19d4097cf7b3f946095"
"source_digest": "6602ba3ec767d3f5f63d5dcb1ec840b7750e5933cf3cc274f40ff78d3acdf03b"
}
44 changes: 34 additions & 10 deletions argus_skill/webapi/manager_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,29 +127,53 @@ def _prewarm_manager_context(
state["session_id"] = sid
state["global_root"] = str(mem.global_root)
runner = _ensure_manager_runner(state, mem)
backend = None
default_backend = getattr(runner, "_backend", None) if runner is not None else None
classifier_backend = None
if runner is not None:
backend = getattr(runner, "manager_backend", None) or getattr(
runner,
"_backend",
None,
classifier_backend = (
getattr(runner, "manager_backend", None) or default_backend
)
prewarm = getattr(backend, "prewarm_acp_client", None)
if not callable(prewarm):
prewarm_classifier = getattr(
classifier_backend,
"prewarm_acp_client",
None,
)
prewarm_reply = getattr(default_backend, "prewarm_acp_client", None)
if not callable(prewarm_classifier) or not callable(prewarm_reply):
return
from ..core.knobs import resolve_knob, resolve_manager_classify_model
from ..core.knobs import (
resolve_knob,
resolve_manager_classify_model,
resolve_manager_reply_model,
resolve_role_reasoning_effort,
)

cwd = str(state.get("manager_runner_workdir") or Path.cwd())
classify_effort = resolve_knob(
"ARGUS_SKILL_FRONTDOOR_CLASSIFY_EFFORT",
"low",
).value.strip() or "low"
prewarm(
prewarm_classifier(
model=resolve_manager_classify_model(),
reasoning_effort=classify_effort,
lean=True,
cwd=str(state.get("manager_runner_workdir") or Path.cwd()),
cwd=cwd,
front_door_session=True,
)
prewarm_reply(
model=resolve_manager_reply_model(),
reasoning_effort=resolve_role_reasoning_effort(
"ARGUS_SKILL_SELF_REASONING_EFFORT",
default="high",
),
lean=False,
cwd=cwd,
add_dirs=(
[str(mem.project_root)]
if str(mem.project_root) != cwd
else None
),
)
if not _is_manager_prewarm_owner(sid):
_release_manager_state(sid)
return
Expand Down
4 changes: 2 additions & 2 deletions frontend/core/src/release.generated.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
// Generated by argus_skill.release_tools.generate_manifest. Do not edit.
export const RELEASE_ID = "0.1.1+87d11d59e1912d08";
export const RELEASE_SOURCE_DIGEST = "87d11d59e1912d08174f89073bcd219fb6036c534986e19d4097cf7b3f946095";
export const RELEASE_ID = "0.1.1+6602ba3ec767d3f5";
export const RELEASE_SOURCE_DIGEST = "6602ba3ec767d3f5f63d5dcb1ec840b7750e5933cf3cc274f40ff78d3acdf03b";
2 changes: 1 addition & 1 deletion frontend/tui/bundle/argus.mjs

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion frontend/web/dist/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
document.documentElement.dataset.theme = dark ? 'dark' : 'light';
})();
</script>
<script type="module" crossorigin src="/assets/index-CB0pjs9N.js"></script>
<script type="module" crossorigin src="/assets/index-BbCY0C-f.js"></script>
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
<link rel="modulepreload" crossorigin href="/assets/icons-BgG77X6K.js">
<link rel="modulepreload" crossorigin href="/assets/query-DOc9YWJi.js">
Expand Down
12 changes: 7 additions & 5 deletions tests/webapi/test_manager_rotation.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,15 +117,17 @@ def test_manager_prewarm_uses_manager_backend(
"backend": "copilot",
"last_access_monotonic": time.monotonic(),
}
calls: list[str] = []
calls: list[tuple[str, bool]] = []

default_backend = SimpleNamespace(
prewarm_acp_client=lambda **_kwargs: (_ for _ in ()).throw(
AssertionError("default backend must not own Manager prewarm")
prewarm_acp_client=lambda **kwargs: calls.append(
("default", bool(kwargs["lean"]))
)
)
manager_backend = SimpleNamespace(
prewarm_acp_client=lambda **_kwargs: calls.append("manager")
prewarm_acp_client=lambda **kwargs: calls.append(
("manager", bool(kwargs["lean"]))
)
)
runner = SimpleNamespace(
_backend=default_backend,
Expand All @@ -138,7 +140,7 @@ def test_manager_prewarm_uses_manager_backend(

manager_state._prewarm_manager_context(sid, global_root=tmp_path)

assert calls == ["manager"]
assert calls == [("manager", True), ("default", False)]
assert manager_state._STATES[sid]["_manager_acp_prewarmed"] is True


Expand Down
Loading