Tom Boucher
c6ce110efa
feat(#2092): migrate Qwen Code onto EoS imperative adapter + native subagents + SubagentStart (ADR-1239)
Fold all runtime==='qwen'/isQwen logic branches (skill-priority frontmatter,
branding/path rewrites, legacy commands/gsd cleanup, hyphen-namespace
normalization, RUNTIME_CONTENT_DISPATCH, hooks-surface label) into
descriptor-driven runtime.hostBehaviors on capabilities/qwen/capability.json,
read via _hostBehaviors(). Shared claude/qwen/hermes legacy-migration branches
in install-engine.cts folded to descriptor flags (claude+hermes descriptors
updated; FALLBACK_HOST_BEHAVIORS.claude floored). Byte-identical golden parity
for qwen/hermes/claude(global+local).
UPGRADE 1: native .qwen/agents/*.md subagent projection — new agents
artifact-layout kind + convertClaudeAgentToQwenAgent converter (name +
description + tools YAML block list; color/model dropped). qwen routed onto
the descriptor-driven agents path (_DESCRIPTOR_AGENTS_RUNTIMES).
UPGRADE 2: SubagentStart hook wired into extendedHookEvents + the
descriptor-gated hook-writer loop (activates only for qwen).
Tests: qwen-imperative-reference (adapter/axes/fail-closed/hostBehaviors +
no runtime==='qwen' source-grep across 4 files) + qwen-upgrades (agents file
validity + SubagentStart mirrors SubagentStop, descriptor-gated). Docs matrix
+ how-to updated; changeset added.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 15:44:19 -04:00
..
2026-07-09 19:38:27 -04:00
2026-06-09 12:51:15 -04:00
2026-06-02 11:45:01 -04:00
2026-06-14 20:52:56 -04:00
2026-06-28 02:12:06 -04:00
2026-06-28 11:10:59 -04:00
2026-06-21 22:55:22 -04:00
2026-06-15 16:18:54 -04:00
2026-06-15 18:50:46 -04:00
2026-07-07 15:11:12 -04:00
2026-06-02 11:45:01 -04:00
2026-06-27 08:43:47 -04:00
2026-06-23 23:21:06 -04:00
2026-07-10 09:14:15 -04:00
2026-06-16 02:38:47 -04:00
2026-06-20 01:59:03 -04:00
2026-06-20 01:59:03 -04:00
2026-06-25 23:55:58 -04:00
2026-07-07 19:38:01 -04:00
2026-06-25 23:55:58 -04:00
2026-07-02 20:34:30 -04:00
2026-07-07 00:19:08 -04:00
2026-06-20 01:59:03 -04:00
2026-07-07 08:25:33 -04:00
2026-07-10 11:12:45 -04:00
2026-06-23 23:21:06 -04:00
2026-07-06 15:18:23 -04:00
2026-07-06 15:41:19 -04:00
2026-06-10 10:40:12 -04:00
2026-06-26 12:19:39 -04:00
2026-06-02 11:45:01 -04:00
2026-07-05 19:16:06 +00:00
2026-06-02 11:45:01 -04:00
2026-07-05 19:16:06 +00:00
2026-06-02 11:45:01 -04:00
2026-06-13 10:27:12 -04:00
2026-06-23 22:47:57 -04:00
2026-07-10 10:11:43 -04:00
2026-07-07 15:11:12 -04:00
2026-06-23 16:10:34 -04:00
2026-06-15 18:50:46 -04:00
2026-07-07 15:11:12 -04:00
2026-06-08 22:51:43 -04:00
2026-06-02 11:45:01 -04:00
2026-07-07 10:15:37 -04:00
2026-06-22 23:43:22 -04:00
2026-06-24 13:26:25 -04:00
2026-06-15 16:40:48 -04:00
2026-06-02 11:45:01 -04:00
2026-06-14 21:44:21 -04:00
2026-06-28 02:12:06 -04:00
2026-06-24 17:16:13 -04:00
2026-06-24 17:16:13 -04:00
2026-06-28 12:00:43 -04:00
2026-07-03 19:37:38 -04:00
2026-06-11 11:36:50 -04:00
2026-06-08 23:37:41 -04:00
2026-07-02 11:55:49 -04:00
2026-06-18 21:59:10 -04:00
2026-07-05 14:04:29 -04:00
2026-06-15 18:50:46 -04:00
2026-06-23 23:21:06 -04:00
2026-07-05 14:50:01 -04:00
2026-06-15 16:18:54 -04:00
2026-07-02 18:08:42 -04:00
2026-06-28 11:44:36 -04:00
2026-07-02 21:45:35 -04:00
2026-07-09 20:47:35 -04:00
2026-07-05 19:16:08 +00:00
2026-07-10 14:24:14 -04:00
2026-07-07 22:21:45 -04:00
2026-07-10 15:44:19 -04:00
2026-07-06 22:43:32 -04:00
2026-06-04 13:44:05 -04:00
2026-07-09 00:58:09 -04:00
2026-06-25 23:55:58 -04:00
2026-06-23 23:21:06 -04:00
2026-06-16 00:12:54 -04:00
2026-06-24 13:19:10 -04:00
2026-06-15 16:18:54 -04:00
2026-07-07 19:38:01 -04:00
2026-07-10 11:12:45 -04:00
2026-06-28 12:45:25 -04:00
2026-07-10 09:31:17 -04:00
2026-06-28 11:27:44 -04:00
2026-06-02 18:35:29 -04:00
2026-06-02 11:45:01 -04:00
2026-07-06 20:45:40 -04:00
2026-07-07 12:14:43 -04:00
2026-07-05 19:16:10 +00:00
2026-06-02 11:45:01 -04:00
2026-06-05 17:58:48 -04:00
2026-06-20 13:37:22 -04:00
2026-07-10 09:31:17 -04:00
2026-06-20 13:37:32 -04:00
2026-06-15 18:50:46 -04:00
2026-07-10 10:11:43 -04:00
2026-07-02 11:14:01 -04:00
2026-06-14 20:52:36 -04:00
2026-07-05 14:03:29 -04:00
2026-07-07 14:40:44 -04:00
2026-07-02 11:55:53 -04:00
2026-07-04 13:32:51 -04:00
2026-06-08 14:04:26 -04:00
2026-07-03 23:21:55 -04:00
2026-06-20 13:37:16 -04:00
2026-06-02 11:45:01 -04:00
2026-06-06 11:24:48 -04:00
2026-06-05 17:58:48 -04:00
2026-06-18 07:44:52 -04:00
2026-07-10 15:44:19 -04:00
2026-07-10 09:44:49 -04:00
2026-07-10 10:42:18 -04:00
2026-07-10 09:44:49 -04:00
2026-07-10 10:11:43 -04:00
2026-07-10 15:44:19 -04:00
2026-07-08 21:42:11 -04:00
2026-07-10 15:44:19 -04:00
2026-06-13 01:49:25 -04:00
2026-07-08 21:42:11 -04:00
2026-07-10 15:44:19 -04:00
2026-07-06 08:31:52 -04:00
2026-06-11 12:37:25 -04:00
2026-06-02 11:45:01 -04:00
2026-06-02 11:45:01 -04:00
2026-06-07 01:06:41 -04:00
2026-06-18 14:41:20 -04:00
2026-07-04 13:32:51 -04:00
2026-07-03 12:18:25 -04:00
2026-07-06 14:40:38 -04:00
2026-06-29 16:15:55 -04:00
2026-06-20 13:37:32 -04:00
2026-06-28 11:44:36 -04:00
2026-07-10 09:44:49 -04:00
2026-07-10 09:31:17 -04:00
2026-07-07 08:25:33 -04:00
2026-06-15 16:18:54 -04:00
2026-06-17 08:52:23 -04:00
2026-06-15 17:03:22 -04:00
2026-06-24 13:19:10 -04:00
2026-07-10 09:14:15 -04:00
2026-07-10 14:40:03 -04:00
2026-06-02 18:35:29 -04:00
2026-07-04 13:32:51 -04:00
2026-06-02 11:45:01 -04:00
2026-07-10 09:44:49 -04:00
2026-06-07 01:26:56 -04:00
2026-06-24 13:19:10 -04:00
2026-06-02 11:45:01 -04:00
2026-07-10 11:12:45 -04:00
2026-07-02 10:24:41 -04:00
2026-07-02 10:24:41 -04:00
2026-06-02 11:45:01 -04:00
2026-06-25 23:55:58 -04:00
2026-06-11 11:36:30 -04:00
2026-06-21 15:38:44 -04:00