|
27 | 27 | "Aevatar-Workflow-YAML", |
28 | 28 | "Aevatar-Virtual-Actors", |
29 | 29 | "Aevatar-Agent-Framework", |
30 | | - "Aevatar-NyxID-Integration" |
| 30 | + "Aevatar-NyxID-Integration", |
| 31 | + "Aevatar-Channel-Multi-Adapter", |
| 32 | + "Aevatar-Studio-Team-First", |
| 33 | + "Aevatar-EventSourcing-Hardening" |
31 | 34 | ], |
32 | 35 | "gh_query": "is:issue is:open repo:aevatarAI/aevatar A0 in:title" |
33 | 36 | }, |
|
51 | 54 | "promoted_at": {}, |
52 | 55 | "deps": [ |
53 | 56 | "Aevatar-A0-Milestone", |
54 | | - "Aevatar-CSharp-Scripting" |
| 57 | + "Aevatar-CSharp-Scripting", |
| 58 | + "Aevatar-M14-Milestone", |
| 59 | + "Aevatar-Ornn-Skill-Platform", |
| 60 | + "Aevatar-SessionStream-Abstraction" |
55 | 61 | ], |
56 | 62 | "gh_query": "is:issue is:open repo:aevatarAI/aevatar A1 in:title" |
57 | 63 | }, |
| 64 | + "Aevatar-Channel-Multi-Adapter": { |
| 65 | + "label": { |
| 66 | + "en": "Channel Multi-Adapter (Lark / Telegram / …)", |
| 67 | + "zh": "多 Channel 适配器 (Lark / Telegram / …)" |
| 68 | + }, |
| 69 | + "desc": { |
| 70 | + "en": "RFC #254 + ADR 0008-0013: channel-agnostic abstraction (IChannelTransport / IChannelOutboundPort / IMessageComposer / ConversationReference) replacing the 53-file ChannelRuntime megamodule. Milestone #6 'Channel Runtime Foundation' tracks rollout.", |
| 71 | + "zh": "RFC #254 + ADR 0008-0013: channel 无关抽象 (IChannelTransport / IChannelOutboundPort / IMessageComposer / ConversationReference), 替换 53 个文件的 ChannelRuntime 大模块。里程碑 #6 'Channel Runtime Foundation' 跟踪推进" |
| 72 | + }, |
| 73 | + "closure": "scoped", |
| 74 | + "formal": "checked", |
| 75 | + "product": "aevatar", |
| 76 | + "milestone": "A0", |
| 77 | + "owner": "eanzhao", |
| 78 | + "issue_count": 22, |
| 79 | + "focus": true, |
| 80 | + "archived": false, |
| 81 | + "promoted_at": { |
| 82 | + "scoped": "2026-04-20" |
| 83 | + }, |
| 84 | + "deps": [ |
| 85 | + "Aevatar-Agent-Framework", |
| 86 | + "Aevatar-Virtual-Actors" |
| 87 | + ], |
| 88 | + "gh_query": "is:issue is:open repo:aevatarAI/aevatar milestone:\"Channel Runtime Foundation\"" |
| 89 | + }, |
| 90 | + "Aevatar-Studio-Team-First": { |
| 91 | + "label": { |
| 92 | + "en": "Studio Team-First Console", |
| 93 | + "zh": "Studio Team-First 控制台" |
| 94 | + }, |
| 95 | + "desc": { |
| 96 | + "en": "ADR 0017 + 17 design docs: surface Team as first-class backend aggregate under Scope. Member workbench, team directory, workspace wording. Milestones #2 / #3 / #8 / #10 / #11 / #12 actively shipping.", |
| 97 | + "zh": "ADR 0017 + 17 篇设计文档: Team 作为 Scope 下一等聚合, Member workbench, Team Directory, Workspace 语义。里程碑 #2 / #3 / #8 / #10 / #11 / #12 持续在发" |
| 98 | + }, |
| 99 | + "closure": "bridged", |
| 100 | + "formal": "checked", |
| 101 | + "product": "aevatar", |
| 102 | + "milestone": "A0", |
| 103 | + "owner": "eanzhao", |
| 104 | + "issue_count": 8, |
| 105 | + "focus": true, |
| 106 | + "archived": false, |
| 107 | + "promoted_at": { |
| 108 | + "scoped": "2026-04-29", |
| 109 | + "bridged": "2026-05-11" |
| 110 | + }, |
| 111 | + "deps": [ |
| 112 | + "Aevatar-Testnet-Stability" |
| 113 | + ], |
| 114 | + "gh_query": "is:issue is:open repo:aevatarAI/aevatar label:\"team\" OR (Studio in:title OR Team in:title)" |
| 115 | + }, |
| 116 | + "Aevatar-EventSourcing-Hardening": { |
| 117 | + "label": { |
| 118 | + "en": "EventSourcing / CQRS Hardening", |
| 119 | + "zh": "EventSourcing / CQRS 加固" |
| 120 | + }, |
| 121 | + "desc": { |
| 122 | + "en": "Architecture-track work: unify async write/observation/read-model freshness (#594), standardize ES projection mappings (#533), reduce projection boilerplate (#591), resolve OCC pending-state leaks (#381). Symphony-team backlog.", |
| 123 | + "zh": "架构线工作: 统一 async write/observation/read-model 新鲜度 (#594), 标准化 ES projection mapping (#533), 减少 projection 模板 (#591), 修复 OCC pending 残留 (#381)。Symphony 团队 backlog" |
| 124 | + }, |
| 125 | + "closure": "seed", |
| 126 | + "formal": "none", |
| 127 | + "product": "aevatar", |
| 128 | + "milestone": "A0", |
| 129 | + "owner": "chronoai-shining", |
| 130 | + "issue_count": 5, |
| 131 | + "focus": false, |
| 132 | + "archived": false, |
| 133 | + "promoted_at": {}, |
| 134 | + "deps": [ |
| 135 | + "Aevatar-Agent-Framework" |
| 136 | + ], |
| 137 | + "gh_query": "is:issue is:open repo:aevatarAI/aevatar label:architecture" |
| 138 | + }, |
| 139 | + "Aevatar-M14-Milestone": { |
| 140 | + "label": { |
| 141 | + "en": "Aevatar M14 — Responses API v1 Prototype", |
| 142 | + "zh": "Aevatar M14 — Responses API v1 原型" |
| 143 | + }, |
| 144 | + "desc": { |
| 145 | + "en": "Aggregator: GitHub milestone #14 'Responses API v1 Minimal Prototype' — current focus. End state: user configures NyxID base URL + API key in Codex/Cursor/Opencode; request flows client -> NyxID -> Aevatar /v1/responses -> NyxID LLM -> client. Product RFC discussion #609.", |
| 146 | + "zh": "聚合节点: GitHub milestone #14 'Responses API v1 Minimal Prototype' — 当前焦点。终态: 用户在 Codex/Cursor/Opencode 里配置 NyxID base URL + API key, 请求链路 client → NyxID → Aevatar /v1/responses → NyxID LLM → client。产品 RFC 讨论 #609" |
| 147 | + }, |
| 148 | + "closure": "obligation", |
| 149 | + "formal": "none", |
| 150 | + "product": "aevatar", |
| 151 | + "milestone": "M14", |
| 152 | + "owner": "eanzhao", |
| 153 | + "issue_count": 14, |
| 154 | + "focus": true, |
| 155 | + "archived": false, |
| 156 | + "promoted_at": {}, |
| 157 | + "deps": [ |
| 158 | + "Aevatar-ChatRuntime-Harness", |
| 159 | + "Aevatar-Responses-Ingress", |
| 160 | + "Aevatar-Responses-Auth-Scope", |
| 161 | + "Aevatar-Session-Continuation", |
| 162 | + "Aevatar-Tool-Classification", |
| 163 | + "Aevatar-NyxID-Integration" |
| 164 | + ], |
| 165 | + "gh_query": "is:issue is:open repo:aevatarAI/aevatar milestone:\"Responses API v1 Minimal Prototype\"" |
| 166 | + }, |
| 167 | + "Aevatar-ChatRuntime-Harness": { |
| 168 | + "label": { |
| 169 | + "en": "ChatRuntime → Harness Refactor (M14 blocker)", |
| 170 | + "zh": "ChatRuntime → Harness 重构 (M14 blocker)" |
| 171 | + }, |
| 172 | + "desc": { |
| 173 | + "en": "M14 blocker: refactor ChatRuntime / ChannelLlmReplyInboxRuntime to match Harness boundary (#568). #608 is the umbrella refactor; #596 collapses ChatRuntime into actor-owned Agent Continuation (assigned eanzhao).", |
| 174 | + "zh": "M14 blocker: 把 ChatRuntime / ChannelLlmReplyInboxRuntime 重构到 Harness boundary (#568)。#608 主重构 issue, #596 (eanzhao 已 assigned) 把 ChatRuntime 收敛为 actor-owned Agent Continuation" |
| 175 | + }, |
| 176 | + "closure": "obligation", |
| 177 | + "formal": "none", |
| 178 | + "product": "aevatar", |
| 179 | + "milestone": "M14", |
| 180 | + "owner": "eanzhao", |
| 181 | + "issue_count": 2, |
| 182 | + "focus": true, |
| 183 | + "archived": false, |
| 184 | + "promoted_at": {}, |
| 185 | + "deps": [ |
| 186 | + "Aevatar-Agent-Framework", |
| 187 | + "Aevatar-Virtual-Actors" |
| 188 | + ], |
| 189 | + "gh_query": "is:issue is:open repo:aevatarAI/aevatar ChatRuntime in:title OR Harness in:title" |
| 190 | + }, |
| 191 | + "Aevatar-Responses-Ingress": { |
| 192 | + "label": { |
| 193 | + "en": "/v1/responses HTTP Ingress", |
| 194 | + "zh": "/v1/responses HTTP 入口" |
| 195 | + }, |
| 196 | + "desc": { |
| 197 | + "en": "M14 pillar — HTTP layer: minimal /v1/responses endpoint on Aevatar Mainnet Host (#611), normalize Responses payloads into internal chat requests (#612), serialize Responses-compatible SSE output (#614), host-level tests + docs (#615).", |
| 198 | + "zh": "M14 支柱 — HTTP 层: Aevatar Mainnet Host 上最小 /v1/responses 端点 (#611), Responses 载荷归一化到内部 chat request (#612), 兼容 Responses 协议的 SSE 输出序列化 (#614), host 级测试 + 文档 (#615)" |
| 199 | + }, |
| 200 | + "closure": "obligation", |
| 201 | + "formal": "none", |
| 202 | + "product": "aevatar", |
| 203 | + "milestone": "M14", |
| 204 | + "owner": "eanzhao", |
| 205 | + "issue_count": 4, |
| 206 | + "focus": true, |
| 207 | + "archived": false, |
| 208 | + "promoted_at": {}, |
| 209 | + "deps": [ |
| 210 | + "Aevatar-ChatRuntime-Harness" |
| 211 | + ], |
| 212 | + "gh_query": "is:issue is:open repo:aevatarAI/aevatar responses in:title" |
| 213 | + }, |
| 214 | + "Aevatar-Responses-Auth-Scope": { |
| 215 | + "label": { |
| 216 | + "en": "NyxID Auth Bridge + Scope Port", |
| 217 | + "zh": "NyxID 鉴权桥 + Scope 端口" |
| 218 | + }, |
| 219 | + "desc": { |
| 220 | + "en": "M14 pillar — security: bridge NyxID request auth into the existing NyxIdLLMProvider (#613), add scope resolution port translating NyxID identity to aevatar scope (#621). §8 of RFC #609.", |
| 221 | + "zh": "M14 支柱 — 安全层: 把 NyxID 请求鉴权接入现有 NyxIdLLMProvider (#613), 新增 scope 解析端口把 NyxID 身份翻译为 aevatar scope (#621)。对应 RFC #609 §8" |
| 222 | + }, |
| 223 | + "closure": "obligation", |
| 224 | + "formal": "none", |
| 225 | + "product": "aevatar", |
| 226 | + "milestone": "M14", |
| 227 | + "owner": "eanzhao", |
| 228 | + "issue_count": 2, |
| 229 | + "focus": true, |
| 230 | + "archived": false, |
| 231 | + "promoted_at": {}, |
| 232 | + "deps": [ |
| 233 | + "Aevatar-NyxID-Integration", |
| 234 | + "Aevatar-Responses-Ingress" |
| 235 | + ], |
| 236 | + "gh_query": "is:issue is:open repo:aevatarAI/aevatar scope in:title OR auth in:title" |
| 237 | + }, |
| 238 | + "Aevatar-Session-Continuation": { |
| 239 | + "label": { |
| 240 | + "en": "Session Continuation (response.id state machine)", |
| 241 | + "zh": "Session Continuation (response.id 状态机)" |
| 242 | + }, |
| 243 | + "desc": { |
| 244 | + "en": "M14 pillar — long-running state: run/session ownership actor for opaque response.id (#617), persist forwarded tool calls (#618), POST /v1/responses/{id}/cancel + TTL expiry (#619), resume re-auth + cross-origin resume guard (#620). §13 of RFC #609.", |
| 245 | + "zh": "M14 支柱 — 长连接状态: opaque response.id 的 run/session ownership actor (#617), 持久化 forwarded tool call (#618), POST /v1/responses/{id}/cancel + TTL 过期 (#619), resume 重新鉴权 + 跨域 resume guard (#620)。对应 RFC #609 §13" |
| 246 | + }, |
| 247 | + "closure": "obligation", |
| 248 | + "formal": "none", |
| 249 | + "product": "aevatar", |
| 250 | + "milestone": "M14", |
| 251 | + "owner": "eanzhao", |
| 252 | + "issue_count": 4, |
| 253 | + "focus": true, |
| 254 | + "archived": false, |
| 255 | + "promoted_at": {}, |
| 256 | + "deps": [ |
| 257 | + "Aevatar-Responses-Ingress", |
| 258 | + "Aevatar-Virtual-Actors" |
| 259 | + ], |
| 260 | + "gh_query": "is:issue is:open repo:aevatarAI/aevatar session in:title OR response.id in:title" |
| 261 | + }, |
| 262 | + "Aevatar-Tool-Classification": { |
| 263 | + "label": { |
| 264 | + "en": "Tool Classification (forward / substitute / additive)", |
| 265 | + "zh": "工具分类层 (forward / substitute / additive)" |
| 266 | + }, |
| 267 | + "desc": { |
| 268 | + "en": "M14 pillar — agent capability: tool classification layer at /v1/responses boundary (#622), substitute TodoWrite + Task with agent-scoped / topology-aware versions (#623), substitute WebFetch + WebSearch with traced versions (#624). §5 of RFC #609.", |
| 269 | + "zh": "M14 支柱 — agent 能力层: /v1/responses 边界的工具分类 (#622), 把 TodoWrite + Task 替换为 agent 范围 / 拓扑感知版本 (#623), 把 WebFetch + WebSearch 替换为带 trace 版本 (#624)。对应 RFC #609 §5" |
| 270 | + }, |
| 271 | + "closure": "obligation", |
| 272 | + "formal": "none", |
| 273 | + "product": "aevatar", |
| 274 | + "milestone": "M14", |
| 275 | + "owner": "eanzhao", |
| 276 | + "issue_count": 3, |
| 277 | + "focus": true, |
| 278 | + "archived": false, |
| 279 | + "promoted_at": {}, |
| 280 | + "deps": [ |
| 281 | + "Aevatar-Responses-Ingress", |
| 282 | + "Aevatar-Agent-Framework" |
| 283 | + ], |
| 284 | + "gh_query": "is:issue is:open repo:aevatarAI/aevatar Substitute in:title OR classification in:title" |
| 285 | + }, |
| 286 | + "Aevatar-Ornn-Skill-Platform": { |
| 287 | + "label": { |
| 288 | + "en": "Day One → Ornn Skill Migration", |
| 289 | + "zh": "Day One → Ornn skill 迁移" |
| 290 | + }, |
| 291 | + "desc": { |
| 292 | + "en": "Migrate hardcoded AgentBuilder templates (/daily, /social-media) from C# to Ornn skill YAML runtime (#367, #598). SkillRunner hardening (#439, #444-#450). PR #576 (Lark Ornn autoload) shipped 2026-05-07.", |
| 293 | + "zh": "AgentBuilder 模板 (/daily, /social-media) 从硬编码 C# 迁移到 Ornn skill YAML 运行时 (#367, #598)。SkillRunner 加固 (#439, #444-#450)。PR #576 (Lark Ornn autoload) 2026-05-07 已合并" |
| 294 | + }, |
| 295 | + "closure": "obligation", |
| 296 | + "formal": "none", |
| 297 | + "product": "aevatar", |
| 298 | + "milestone": "A1", |
| 299 | + "owner": "eanzhao", |
| 300 | + "issue_count": 8, |
| 301 | + "focus": false, |
| 302 | + "archived": false, |
| 303 | + "promoted_at": {}, |
| 304 | + "deps": [ |
| 305 | + "Aevatar-Workflow-YAML", |
| 306 | + "Aevatar-CSharp-Scripting" |
| 307 | + ], |
| 308 | + "gh_query": "is:issue is:open repo:aevatarAI/aevatar Ornn in:title OR daily in:title OR SkillRunner in:title" |
| 309 | + }, |
| 310 | + "Aevatar-SessionStream-Abstraction": { |
| 311 | + "label": { |
| 312 | + "en": "SessionStream Abstraction (RFC)", |
| 313 | + "zh": "SessionStream 抽象 (RFC)" |
| 314 | + }, |
| 315 | + "desc": { |
| 316 | + "en": "RFC #560: unify external long-lived streams (WebSocket / WebRTC / SSE / polling) as actor-first SessionStreamGAgent. Co-assigned jason-aelf / louis4li / eanzhao; team-discussion phase, ADR not yet written.", |
| 317 | + "zh": "RFC #560: 把外部长连接流 (WebSocket / WebRTC / SSE / polling) 统一为 actor 一等 SessionStreamGAgent。jason-aelf / louis4li / eanzhao 三人共同 assignee, 团队讨论阶段, ADR 尚未撰写" |
| 318 | + }, |
| 319 | + "closure": "obligation", |
| 320 | + "formal": "none", |
| 321 | + "product": "aevatar", |
| 322 | + "milestone": "A1", |
| 323 | + "owner": "eanzhao", |
| 324 | + "issue_count": 1, |
| 325 | + "focus": false, |
| 326 | + "archived": false, |
| 327 | + "promoted_at": {}, |
| 328 | + "deps": [ |
| 329 | + "Aevatar-Agent-Framework", |
| 330 | + "Aevatar-Voice-Stage-D" |
| 331 | + ], |
| 332 | + "gh_query": "is:issue is:open repo:aevatarAI/aevatar SessionStream in:title OR \"long connection\" in:title" |
| 333 | + }, |
58 | 334 | "Aevatar-Agent-Framework": { |
59 | 335 | "label": { |
60 | 336 | "en": "Agent Framework Core", |
|
85 | 361 | "zh": "C# 脚本运行时" |
86 | 362 | }, |
87 | 363 | "desc": { |
88 | | - "en": "Dynamic C# script execution inside Virtual Actors for custom agent behavior", |
89 | | - "zh": "在 Virtual Actor 内动态执行 C# 脚本, 支持自定义 agent 行为" |
| 364 | + "en": "Dynamic C# script execution inside Virtual Actors. Powering /daily + /social-media AgentBuilder templates in production. PR #515 (script lifecycle build surface) shipped 2026-04-29.", |
| 365 | + "zh": "Virtual Actor 内动态执行 C# 脚本, 生产环境驱动 /daily + /social-media AgentBuilder 模板。PR #515 (script lifecycle build surface) 2026-04-29 已合并" |
90 | 366 | }, |
91 | | - "closure": "scoped", |
92 | | - "formal": "none", |
| 367 | + "closure": "bridged", |
| 368 | + "formal": "checked", |
93 | 369 | "product": "aevatar", |
94 | | - "milestone": "A1", |
| 370 | + "milestone": "A0", |
95 | 371 | "owner": "eanzhao", |
96 | 372 | "issue_count": 4, |
97 | 373 | "focus": false, |
98 | 374 | "archived": false, |
99 | | - "promoted_at": {}, |
| 375 | + "promoted_at": { |
| 376 | + "bridged": "2026-04-29" |
| 377 | + }, |
100 | 378 | "deps": [ |
101 | 379 | "Aevatar-Virtual-Actors" |
102 | 380 | ], |
|
128 | 406 | "zh": "Aevatar × NyxID 集成" |
129 | 407 | }, |
130 | 408 | "desc": { |
131 | | - "en": "LLM / Tool / Auth Provider via NyxID, agent tool calls routed through NyxID proxy", |
132 | | - "zh": "通过 NyxID 提供 LLM / Tool / Auth Provider, agent 工具调用经 NyxID proxy 路由" |
| 409 | + "en": "LLM / Tool / Auth Provider via NyxID, agent tool calls routed through NyxID proxy. PRs #561 / #570 / #571 (OAuth binding rebuild + self-heal) shipped early May. Recent bugs #538 / #543 / #549 (NyxIdSpecCatalog / OAuth rolling-deploy race) prevent mature.", |
| 410 | + "zh": "通过 NyxID 提供 LLM / Tool / Auth Provider, agent 工具调用经 NyxID proxy 路由。PR #561 / #570 / #571 (OAuth binding rebuild + 自愈) 5 月初已合。近期 bug #538 / #543 / #549 (NyxIdSpecCatalog / OAuth 滚动部署竞争) 不满足 mature" |
133 | 411 | }, |
134 | | - "closure": "public", |
| 412 | + "closure": "bridged", |
135 | 413 | "formal": "checked", |
136 | 414 | "product": "aevatar", |
137 | 415 | "milestone": "A0", |
|
140 | 418 | "focus": true, |
141 | 419 | "archived": false, |
142 | 420 | "promoted_at": { |
143 | | - "public": "2026-04-02" |
| 421 | + "public": "2026-04-02", |
| 422 | + "bridged": "2026-05-06" |
144 | 423 | }, |
145 | 424 | "deps": [ |
146 | 425 | "NyxID-Hosted-Instance" |
|
0 commit comments