ready blocked done
No lane
NATS
a1 · NATS maturity a2 · roxabi-nats SDK a3 · roxabi-contracts SDK
CONTAINER
b · Containerize
LLM
c1 · LiteLLM c2 · lyra_harness c3 · lyra_cli
OBS
d · Observability
HUB
e · Hub stateless
PLUGINS
f · Plugins
VOICE
g · Voice
DEPLOY
h · Deploy ops
VAULT
i · Vault ingest
MEMORY
j · Memory
IDENTITY
k · Identity
TOOLS
l · Tools
OMNI
m · Voice-to-Voice (Omni)
SOCIAL
n · Social Media Bricks
FINAL
o · Final Initiatives
No milestone
#3P2: Quick Validations
#15#24
#60Epic: Phase 2 — NATS introduction + Machine 2 coord…
#48#49#50#51#52
#62Epic: Phase 4 — Resilience, observability + security
#56#58#274#23#120
#74Epic: Voice pipeline — TTS + STT integration
#80#42#79#232
#101Epic: Phase 0 — Bot core parity (pairing, circuit b…
#102#103#104#105#106#111#83#67#73
#151feat(auth): AuthMiddleware + TrustLevel par adapter
#152#83
#653refactor(arch): move core/stores/ to adapters/store…F-lite
#751#752
#853refactor(core): remove platform_meta dict[str, Any]…F-lite
#875chore(provision): detect non-contiguous subuid/subg…S
#876chore(provision): warn on re-run if existing subuid…S
#878chore(dep-graph): polish items deferred from PR #87…S
#908tests: pin supervisorctl default path + lyra-{name}…
#909docs(adr): extend ADR-044 — typed validated struct …S
V:#55
#911chore(deploy-lib): move EXTRA_REPOS out of shared l…S
#912
#913feat(deploy-lib): add DEPLOY_LIB_VERSION runtime ve…S
#922fix(ops): HEALTHCHECK silently dropped from publish…S
#10LegalTech validation: 10-20 LinkedIn posts on lawye…
#86
#11MedTech validation: 10-20 posts on medical dictatio…
#86
#12YouTube: create channel + 3 first manual videos
#86
#15Connect Telegram + Discord adapters to Lyra hub (re…
#3#28#29#30#31
#18YouTube automation pipeline
#86
#22Evaluate non-blocking embedding strategy
#9
#23Machine 2 timeout + circuit breaker + cloud fallback
#62
#24Measure Machine 1 VRAM under real load
#3#54
#42feat: user + agent preference layer — language, voi…
#74
#45feat: implémenter mémoire deux niveaux pour agents …
#9
#47chore: social media strategy synthesis — themed X +…
#86
#49feat: install NATS server on Machine 1 + systemd se…
#60#50
#68feat: data migration — 2ndBrain memory.db to roxabi…
#9
#73Epic: Phase 1b — Agent core (identity, SDK, skills …
#101#75#76#77#78#65#44#67#99#112#123#134#135#139
#81feat(memory): roxabi-memory package foundation — sc…
#9
#82feat(memory): hybrid search — fastembed ONNX + sqli…
#9
#102feat: add message_id to TelegramContext for session…
#101
#103feat: unified pairing system for Telegram and Disco…F-lite
#101#112
#104feat: LLM circuit breaker for Anthropic SDK calls
#101
#105feat: TOML message template system with i18n
#101
#106feat: directory-based plugin system (MVP)
#101
#109Epic: Agent Supervision System — multi-level orches…
#63
#111feat: bash pre-check layer before LLM monitoring ca…
#101
#152feat(routing): RoutingContext + vérification Adapte…
#151#153
#274Epic: Observability — logging, tracing & audit …
#62#270#57
#335Phase 1: Pipeline mode on prod (foundation)F-lite
#322#323#324#325
#419feat: implement PuLID Flux2 face locking for Lyra a…
#577#420#421#422#423
#447feat(core): amend Bus[T] Protocol — async put()S
#445
#448feat(infra): install NATS server on Machine 1 — sys…S
#445
#454docs(architecture): design streaming chunk protocol…S
#445
#455feat(core): NatsBus — Bus[T] implementation over NA…F-lite
#445
#456feat(core): trust re-resolution — move Authenticato…S
#445
#469chore(infra): make NATS install opt-in in provision…S
#445
#522epic: NATS messaging hardening — auth, error bounda…
#445#523#525#526#528#527#524#529#530
#555V24 — Klein 4B + PuLID LoRA training data explorati…
#577#556#557#558
#561epic(security+nats): NATS hardening — post 48h revi…
#445#562#569#564#565#573#570#575#574#598#643
#581epic(nats): NATS Adapter SDK — pluggable contracts …
#445#582#563#566#567#571
#584epic(llm): Machine 2 LLM offloading — NatsLlmDriver…F-full
#445#449#450#451#452#453
#585epic(infra): Slice D — JetStream persistence + JWT …F-full
#445#460#461#462
#602feat(nats): SDK heartbeat in NatsAdapterBase + voic…F-lite
#445
#604chore(test): Docker integration test environment — …S
#445
#609feat(infra): stt-adapter.container + tts-adapter.co…S
#605
#688refactor(voice)[S1]: freeze NATS voice contract as …
#658
#852refactor(nats): transcribe() takes bytes not PathS
#734
#854refactor(bootstrap): typed Secrets registry replace…F-lite
#693
#855feat(audit): security event stream + CLI spawn auditF-full
#667
#912feat(deploy-lib): per-repo FAIL_FILE for EXTRA_REPOSS
#911
#28Slice 1: Routing model (Shape B) — RoutingKey + Pla…
#15#29#30
#44feat: event-driven agent monitoring — replace cron …
#73
#65Epic: Google Workspace integration via gws CLI
#73#64#66
#75feat: agent identity / persona system
#73
#76feat: direct Anthropic SDK agent (replace CLI subpr…
#73#112#135#99
#77chore: 2ndBrain feature parity audit
#73
#78feat: vault as semantic memory backend (Level 3)
#73
#134feat(agent): LLM smart routing — complexity-based m…
#73
#139epic: Message & Media Normalization — typed bus…
#73#137#138#140#141#142#143#144#145#162#171#182#183#184#185#186#80#99#168#167#79
#153feat(commands): CommandParser + ComplexityEstimator…
#152
#270feat(observability): structured logging + request t…
#274
#323Install VoiceCLI + models on prod (roxabituwer)S
#335
#324Add VoiceCLI supervisor confs on prodS
#335
#325Configure Lyra STT/TTS on prod for pipeline modeS
#335
#420docs(brand): scaffold workflows dir, prompt templat…
#419
#421ops(brand): ComfyUI + PuLID Flux2 environment setup…
#419
#422ops(brand): build face-lock workflow + quality gate…
#419
#423ops(brand): generate Lyra face-locked variation cam…
#419
#523feat(nats): wire nkey authentication in Python clie…
#522#528#527
#525fix(nats): sanitize platform_meta at NATS trust bou…
#522
#526fix(nats): bound caches and add TTL reaper in NatsO…
#522#524
#547ops(brand): v23f-schedule — RECLASSIFIED as face-li…
#542
#556V24 Test 1 — Texture verification (Klein 4B + PuLID)
#555#557
#564fix(security): check nkey seed file permissions on …
#561
#565fix(security): validate platform_meta values — leng…
#561
#569fix(nats): FIFO tombstone eviction — set.pop() → Or…
#561
#570fix(nats): add _terminated_streams cleanup to TTL r…
#561
#573chore(infra): CI diff check to keep supervisor conf…
#561
#582refactor(nats): NatsAdapterBase — enforced nkey, sc…
#581#571#563#567#566#575#450
#598feat(voice): normalize STT/TTS env vars + circuit b…
#561
#643refactor(nats): NatsRenderEventCodec — shared encod…
#561
#29Slice 2: Telegram adapter — aiogram v3 webhook
#28#15
#30Slice 3: Discord adapter — discord.py v2 Gateway
#28#15#31
#64arch: external tool integration pattern — Install, …
#65
#66feat: Telegram command/skill router — connect roxab…
#65
#80feat: voice STT — audio transcription (Whisper)
#139#74#147#148#149#150
#112refactor(hub): conversation-scoped sessions + per-c…
#103#76#73#125#126#127#123#83#48
#135feat(agent): runtime agent config — live tuning via…
#76#73
#137feat(bus): InboundMessage — normalized input envelo…
#139
#138feat(bus): OutboundMessage — normalized output enve…
#139
#140feat(bus): audio input normalization — InboundAudio…
#139
#141feat(bus): audio output normalization — OutboundAud…
#139
#142feat(bus): incoming attachment handling — Attachmen…
#139
#143feat(bus): outgoing attachment handling — file send…
#139
#144feat(bus): live audio streaming — chunked OutboundA…
#139
#145feat(hub): message debounce + cancel-in-flight — hy…
#139
#162refactor(bus): rename Attachment.url_or_bytes to ur…
#139
#168feat(image): formalize imageCLI consumption in Lyra
#139
#171feat(bus): InboundAudioBus — per-platform audio que…F-lite
#139#172#173#174#175#217#182#185
#183feat(adapters): incoming attachment handling — type…F-lite
#139
#184feat(adapters): outgoing attachment handling — type…F-lite
#139
#186refactor(adapters): extract shared adapter helpers …S
#139
#524feat(nats): add stream_error envelope for mid-strea…
#522#526#529#530
#527feat(nats): add queue groups to prevent duplicate d…
#522#523
#528feat(nats): add startup ordering or readiness probes
#522#523
#557V24 Test 2 — LoRA training data batch (Klein 4B + P…
#555#556#558
#563fix(security): TTS/STT adapters bypass nkey auth — …
#582#581#562
#566fix(nats): add check_schema_version to OutboundMess…
#582#581
#567fix(nats): STT timeout 60s → 15s default, expose LY…
#582#581
#571refactor(nats): Slice 2 — adapter migration + legac…
#582#581#574
#575test(nats): unit tests for NatsSttClient, NatsTtsCl…
#582#561
#31Slice 4: Main entrypoint — python -m lyra with both…
#30#15
#48feat: Bus abstraction — extract LocalBus/NatsBus in…
#112#60#50
#123refactor: Claude CLI wrapper library — extract 2ndB…
#112#73#83
#125refactor(hub): scope_id routing — replace user_id i…
#112
#126refactor(hub): per-channel inbound/outbound queues …
#112
#127refactor(hub): per-session Task + Discord thread au…
#112
#147feat(stt/v1): Telegram voice download + normalize (…
#80#148
#172feat(bus): InboundAudioBus — per-platform bounded q…
#171#173#174
#175feat(bus): OutboundDispatcher.enqueue_audio() + enq…
#171
#182feat(adapters): audio output normalization — typed …F-lite
#171#139#185
#217feat(bus): OutboundDispatcher.enqueue_attachment() …S
#171
#234feat(tts/V1): TTSService module — SynthesisResult, …
#167
#235feat(tts/V2): Response.audio field + Hub dispatch g…
#167
#236feat(tts/V3): Agent DI wiring — tts param in AgentB…
#167
#237feat(tts/V4): /voice command, Telegram MIME routing…
#167
#529refactor(nats): extract outbound listener behind a …
#522#524
#530feat(nats): add message versioning to wire format
#522#524
#558V24 Test 3 — Hybrid dataset (Klein+PuLID top25 + V2…
#555#557
#562ops(security): deploy nats.conf with nkey server-si…
#563#561
#574fix(nats): extract shared _TTS_CONFIG_FIELDS consta…
#571#561
#50feat: NatsBus implementation — NATS-backed distribu…
#60#49#48#53#51#52#56#57#58
#83feat(memory): Lyra agent integration — identity anc…
#151#123#112#101#9#84#99#67#136
#148feat(stt/v2): STTService + STTConfig with faster-wh…
#147#80#149
#173feat(adapters): wire InboundAudio enqueue in Telegr…
#172#171
#174feat(hub): Hub consumer loop for InboundAudio → STT…
#172#171
#185feat(adapters): live audio streaming — real-time au…F-full
#182#171#139#255#257#256
#51feat: LLM worker on Machine 2 — NATS-based inferenc…
#60#50
#52feat: health check system — heartbeat + worker stat…
#60#50
#53feat: CognitiveFrame protocol — structured SLM-to-S…
#50#61#54#55
#56feat: JetStream persistence — survive restarts, rep…
#62#50
#57feat: NATS observability — Prometheus metrics + Gra…
#50#274
#58feat: NATS auth — nkey/JWT authentication for worke…
#62#50#59
#67feat: raw turn logging + conversation audit trail (…
#83#101#73#244#244
#84feat(memory): vault-migrate skill update — v2 schem…
#83#9
#99feat: hub command sessions — /add, /explain, /summa…
#139#83#76#73
#149feat(stt/v3): Agent AUDIO branch + temp file cleanup
#148#80#150
#255feat(adapters): VoiceSessionManager — guild lifecyc…F-lite
#185#256#257
#54feat: Router SLM worker — intent classification via…
#24#53#61#55
#59feat: agent-to-agent messaging + workflow engine ov…
#58#63
#150chore(stt/v4): STT observability + VRAM docs
#149#80
#244feat: reply-to-resume — load old session context wh…
#67#67
#256feat(adapters): render_voice_stream + dispatch_voic…F-lite
#255#185
#257feat(adapters): !join / !leave voice commands — Dis…S
#255#185
#55feat: Planner + NER SLM workers — skill selection a…
#54#53#61
#914docs(QUADLET-ADOPTION): add HTTP-only vs NATS-hub-s…S
#728
#915refactor(deploy-lib): clarify HUB_SERVICE semantics…S
#728
·
·
·
·
·
·
·
·
·
·
M0
NATS hardening
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
M1
NATS maturity / containerize
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
M2
LLM stack modernization
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
M3
Observability
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
M4
Hub statelessness
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
M5
Plugin layer
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
M6
Memory
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
M7
Identity
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
M8
Tools
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
M9
Voice-to-Voice (Omni)
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
M10
Social Media Bricks
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·