Lyra
v2
— Dep Graph
v5.1
12 milestones × 15 columns · 24 ready · 97 blocked · 210 done · 331 total · toggle Graph/Table · hover a card to trace its dep chain
Graph
Table
group by epic
hide closed
only ready
ready
blocked
done
—
No milestone
FIN
Final Initiatives
M7 — Identity
M1 — NATS maturity + containerize
Phase 5 — Security & Resilience
Phase 2 — Distributed NATS
Phase 4 — Autonomy & Scheduling
M5 — Plugin layer
M3 — Observability
M8 — Tools
M4 — Hub statelessness
M6 — Memory
M9 — Voice-to-Voice (Omni)
M0 — NATS hardening
M2 — LLM stack modernization
M10 — Social Media Bricks
Phase 0 — Foundation
#72
chore(packaging): nats-serv…
#3
P2: Quick Validations
#60
Epic: Phase 2 — NATS introd…
#62
Epic: Phase 4 — Resilience,…
#74
Epic: Voice pipeline — TTS …
#101
Epic: Phase 0 — Bot core pa…
#151
feat(auth): AuthMiddleware …
#653
refactor(arch): move core/s…
#853
refactor(core): remove plat…
#875
chore(provision): detect no…
#876
chore(provision): warn on r…
#878
chore(dep-graph): polish it…
#908
tests: pin supervisorctl de…
#909
docs(adr): extend ADR-044 —…
#911
chore(deploy-lib): move EXT…
#913
feat(deploy-lib): add DEPLO…
#922
fix(ops): HEALTHCHECK silen…
#606
chore(infra): Dockerfile pr…
#81
feat(memory): roxabi-memory…
#612
chore(core): make all servi…
#603
feat(voice): load-aware rou…
#24
Measure Machine 1 VRAM unde…
#736
chore(deploy): supervisor s…
#15
Connect Telegram + Discord …
#10
LegalTech validation: 10-20…
#11
MedTech validation: 10-20 p…
#12
YouTube: create channel + 3…
#49
feat: install NATS server o…
#18
YouTube automation pipeline
#22
Evaluate non-blocking embed…
#23
Machine 2 timeout + circuit…
#274
Epic: Observability — loggi…
#42
feat: user + agent preferen…
#45
feat: implémenter mémoire d…
#47
chore: social media strateg…
#73
Epic: Phase 1b — Agent core…
#82
feat(memory): hybrid search…
#102
feat: add message_id to Tel…
#103
feat: unified pairing syste…
#104
feat: LLM circuit breaker f…
#105
feat: TOML message template…
#106
feat: directory-based plugi…
#111
feat: bash pre-check layer …
#68
feat: data migration — 2ndB…
#152
feat(routing): RoutingConte…
#109
Epic: Agent Supervision Sys…
#335
Phase 1: Pipeline mode on p…
#419
feat: implement PuLID Flux2…
#447
feat(core): amend Bus[T] Pr…
#448
feat(infra): install NATS s…
#454
docs(architecture): design …
#455
feat(core): NatsBus — Bus[T…
#456
feat(core): trust re-resolu…
#469
chore(infra): make NATS ins…
#522
epic: NATS messaging harden…
#555
V24 — Klein 4B + PuLID LoRA…
#561
epic(security+nats): NATS h…
#581
epic(nats): NATS Adapter SD…
#584
epic(llm): Machine 2 LLM of…
#585
epic(infra): Slice D — JetS…
#602
feat(nats): SDK heartbeat i…
#604
chore(test): Docker integra…
#912
feat(deploy-lib): per-repo …
#609
feat(infra): stt-adapter.co…
#688
refactor(voice)[S1]: freeze…
#852
refactor(nats): transcribe(…
#854
refactor(bootstrap): typed …
#855
feat(audit): security event…
#607
feat(infra): nats.container…
#689
refactor(voice)[S3]: Machin…
#24
feature: NATS subscriber mo…
#28
Slice 1: Routing model (Sha…
#270
feat(observability): struct…
#44
feat: event-driven agent mo…
#65
Epic: Google Workspace inte…
#75
feat: agent identity / pers…
#76
feat: direct Anthropic SDK …
#77
chore: 2ndBrain feature par…
#78
feat: vault as semantic mem…
#134
feat(agent): LLM smart rout…
#139
epic: Message & Media Norma…
#153
feat(commands): CommandPars…
#323
Install VoiceCLI + models o…
#324
Add VoiceCLI supervisor con…
#325
Configure Lyra STT/TTS on p…
#420
docs(brand): scaffold workf…
#421
ops(brand): ComfyUI + PuLID…
#422
ops(brand): build face-lock…
#423
ops(brand): generate Lyra f…
#547
ops(brand): v23f-schedule —…
#523
feat(nats): wire nkey authe…
#525
fix(nats): sanitize platfor…
#526
fix(nats): bound caches and…
#556
V24 Test 1 — Texture verifi…
#564
fix(security): check nkey s…
#565
fix(security): validate pla…
#569
fix(nats): FIFO tombstone e…
#570
fix(nats): add _terminated_…
#573
chore(infra): CI diff check…
#598
feat(voice): normalize STT/…
#643
refactor(nats): NatsRenderE…
#582
refactor(nats): NatsAdapter…
#608
feat(infra): telegram.conta…
#29
Slice 2: Telegram adapter —…
#30
Slice 3: Discord adapter — …
#80
feat: voice STT — audio tra…
#64
arch: external tool integra…
#66
feat: Telegram command/skil…
#112
refactor(hub): conversation…
#135
feat(agent): runtime agent …
#137
feat(bus): InboundMessage —…
#138
feat(bus): OutboundMessage …
#140
feat(bus): audio input norm…
#141
feat(bus): audio output nor…
#142
feat(bus): incoming attachm…
#143
feat(bus): outgoing attachm…
#144
feat(bus): live audio strea…
#145
feat(hub): message debounce…
#162
refactor(bus): rename Attac…
#168
feat(image): formalize imag…
#171
feat(bus): InboundAudioBus …
#183
feat(adapters): incoming at…
#184
feat(adapters): outgoing at…
#186
refactor(adapters): extract…
#527
feat(nats): add queue group…
#528
feat(nats): add startup ord…
#524
feat(nats): add stream_erro…
#557
V24 Test 2 — LoRA training …
#563
fix(security): TTS/STT adap…
#566
fix(nats): add check_schema…
#567
fix(nats): STT timeout 60s …
#571
refactor(nats): Slice 2 — a…
#575
test(nats): unit tests for …
#31
Slice 4: Main entrypoint — …
#48
feat: Bus abstraction — ext…
#123
refactor: Claude CLI wrappe…
#147
feat(stt/v1): Telegram voic…
#125
refactor(hub): scope_id rou…
#126
refactor(hub): per-channel …
#127
refactor(hub): per-session …
#182
feat(adapters): audio outpu…
#234
feat(tts/V1): TTSService mo…
#235
feat(tts/V2): Response.audi…
#172
feat(bus): InboundAudioBus …
#175
feat(bus): OutboundDispatch…
#217
feat(bus): OutboundDispatch…
#236
feat(tts/V3): Agent DI wiri…
#237
feat(tts/V4): /voice comman…
#529
refactor(nats): extract out…
#530
feat(nats): add message ver…
#558
V24 Test 3 — Hybrid dataset…
#562
ops(security): deploy nats.…
#574
fix(nats): extract shared _…
#50
feat: NatsBus implementatio…
#83
feat(memory): Lyra agent in…
#148
feat(stt/v2): STTService + …
#185
feat(adapters): live audio …
#173
feat(adapters): wire Inboun…
#174
feat(hub): Hub consumer loo…
#53
feat: CognitiveFrame protoc…
#51
feat: LLM worker on Machine…
#52
feat: health check system —…
#56
feat: JetStream persistence…
#58
feat: NATS auth — nkey/JWT …
#57
feat: NATS observability — …
#67
feat: raw turn logging + co…
#149
feat(stt/v3): Agent AUDIO b…
#99
feat: hub command sessions …
#84
feat(memory): vault-migrate…
#255
feat(adapters): VoiceSessio…
#54
feat: Router SLM worker — i…
#59
feat: agent-to-agent messag…
#244
feat: reply-to-resume — loa…
#150
chore(stt/v4): STT observab…
#256
feat(adapters): render_voic…
#257
feat(adapters): !join / !le…
#55
feat: Planner + NER SLM wor…
#914
docs(QUADLET-ADOPTION): add…
#915
refactor(deploy-lib): clari…
#61
Epic: Phase 3 — Atomic SLMs…
#63
Epic: Agent orchestration —…
#424
feat: local AI video & virt…
#577
epic(brand): Lyra avatar Lo…
#13
Machine 2 + Ollama + Qwen 2…
#14
LLM benchmark: Qwen 2.5 14B…
#19
Meta-skills + atomic SLM + …
#96
Phase X-2: Product Ideas — …
#542
ops(brand): V23 LoRA attrib…
#16
LegalTech SaaS — development
#17
MedTech cardio — development
#20
Polymarket agent
#543
ops(brand): v23d-island0 — …
#544
ops(brand): v23a-rank — ran…
#545
ops(brand): v23c-dop — diff…
#546
ops(brand): v23e-combiner —…
#548
ops(brand): v23g-prodigy — …
#549
ops(brand): v23h-pivotal — …
#554
ops(brand): v23f2-top30-sch…
#414
refactor: separate agent pe…
#69
refactor(nats): adopt roxab…
#82
chore(refactor): split src/…
#439
Prompt injection detection …
#445
Epic: Distributed Lyra — NA…
#480
feat(autonomy): CRON schedu…
#644
feat(plugins): entry-points…
#669
feat(obs): OTelObsProvider …
#457
feat(core): extract Hub int…
#458
feat(adapters): rewire Tele…
#459
chore(infra): ops updates, …
#477
feat(tools): ToolHandler re…
#478
feat(plugins): Plugin SDK w…
#120
feat: auto-remediation acti…
#481
feat(agents): Inter-agent c…
#475
feat: unified channel rule …
#641
feat(stores): Redis session…
#71
feat: Memory SLM — episodic…
#128
feat(memory): import 2ndBra…
#166
feat(memory): integrate rox…
#336
Phase 2: Omni mode — voice-…
#337
Phase 3: HTTP API + automat…
#568
fix(nats): add inbound_audi…
#572
test(nats): add test + comm…
#576
docs(ops): nkey rotation ru…
#521
feat(nats): object store pa…
#634
docs(arch): lyra_harness sp…
#629
feat(llm): NatsCliClient — …
#630
feat(infra): cli_adapter_st…
#703
architecture: route vault w…
#660
chore(devops): audit NATS J…
#81
chore(refactor): split src/…
#85
bug(e2e): test_nats_roundtr…
#713
test(nats): integration tes…
#717
refactor(nats): extract acl…
#53
refactor(nats): typed adapt…
#838
refactor(llm): wrap Circuit…
#80
chore(refactor): split src/…
#729
refactor(roxabi-nats): repl…
#751
refactor(core): split pairi…
#752
epic(arch): rollout ADR-048…
#730
chore(release): lightweight…
#731
chore: guard against re-add…
#762
feat(contracts): scaffold p…
#767
chore(release): wire roxabi…
#769
docs(satellites): document …
#839
feat(contracts): port llm d…
#727
chore(infra): bootstrap pod…
#695
fix(deploy): M16 — fail fas…
#642
feat(hub): hub sheds Pool +…
#88
Layer 1 — Identity / Person…
#89
Layer 2 — Account Creation …
#90
Layer 3 — Account Warming (…
#91
Layer 4 — Content Generatio…
#92
Layer 5 — Scheduling / Publ…
#93
Layer 6 — Engagement / Reac…
#94
Layer 7 — Analytics (5 bric…
#95
Layer 8 — Cross-cutting Inf…
#72
feat: Memory layer Phase 2 …
#326
Add lyra_omni supervisor pr…
#327
Implement voice mode manage…
#328
Implement Omni client (Open…
#329
Extend audio_pipeline.py fo…
#330
Wire voice module into Hub …
#331
Test voice-to-voice + tool …
#332
Build VoiceCLI HTTP API (ex…
#333
Wire Lyra STT/TTS to remote…
#334
Enable automatic mode switc…
#665
feat(llm): LiteLLMDriver — …
#635
feat(hub): serialize histor…
#636
feat(llm): NatsHarnessClien…
#631
feat(infra): lyra_cli super…
#687
feat(nats): per-stream keep…
#715
feat(nats): per-identity NA…
#716
test(nats): CI integration …
#718
refactor(scripts): replace …
#754
feat(nats): lyra-side image…
#737
feat(ops): lyra ops verify …
#55
docs(adr): extend ADR-044 —…
#83
chore(refactor): restructur…
#857
refactor(infrastructure): r…
#763
feat(contracts): port voice…
#765
refactor(nats): migrate CON…
#840
feat(llm): build lyra_llm w…
#797
verify voiceCLI tolerates '…
#610
chore(infra): Makefile Podm…
#696
fix(deploy): FAIL_FILE per-…
#460
feat(infra): JetStream pers…
#461
feat(security): JWT/account…
#462
feat(monitoring): NATS Prom…
#645
feat(plugins): PLUGIN.json …
#671
feat(llm): wire LiteLLM → O…
#449
feat(monitoring): NATS heal…
#451
feat(infra): Machine 2 LLM …
#452
feat(llm): circuit breaker …
#808
test(nats): use guarded ext…
#809
docs(adr): replace ADR-047 …
#807
chore(deploy): document com…
#662
refactor(nats): consolidate…
#805
refactor(nats): rename Voic…
#806
refactor(nats): port ImageR…
#764
feat(contracts): test doubl…
#611
chore(infra): supervisord c…
#694
docs(adr): promote ADR-043 …
#666
chore(llm): drop AnthropicS…
#637
feat(infra): harness_adapte…
#632
test: integration test — NA…
#79
feat: voice TTS in Telegram…
#167
feat(voice): formalize voic…
#450
feat(llm): NatsLlmDriver — …
#453
test: integration test — NA…
#670
feat(infra): self-host Lang…
#672
feat(harness): wire lyra_ha…
#813
feat(voice): registry-autho…
#768
chore(ci): include packages…
#766
refactor(nats): migrate lyr…
#790
refactor(contracts): extrac…
#697
chore(ops) [roxabi-ops repo…
#232
feat(voice): TTS in Discord…
#638
feat(infra): lyra_harness s…
#733
test(voice): integration te…
#698
feat(deploy): lyra/deploy/a…
#699
feat(deploy) [voiceCLI repo…
#700
feat(deploy) [roxabi-* repo…
#639
test: integration test — st…
#690
refactor(voice)[S4]: delete…
#701
feat(ops) [roxabi-ops repo]…
#136
feat(hub): multi-bot regist…
#691
refactor(voice)[S5]: drop v…
#702
chore(deploy): cutover — re…
#728
feat(infra): containerize v…
#657
chore(ci): tag lyra image b…
#661
chore(ci): automate contain…
—
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
#3
P2: Quick Validations
→
#15
#24
#60
Epic: Phase 2 — NATS introduction + Machine 2 coord…
→
#48
#49
#50
#51
#52
#62
Epic: Phase 4 — Resilience, observability + security
→
#56
#58
#274
#23
#120
#74
Epic: Voice pipeline — TTS + STT integration
→
#80
#42
#79
#232
#101
Epic: Phase 0 — Bot core parity (pairing, circuit b…
→
#102
#103
#104
#105
#106
#111
#83
#67
#73
#151
feat(auth): AuthMiddleware + TrustLevel par adapter
→
#152
#83
#653
refactor(arch): move core/stores/ to adapters/store…
F-lite
→
#751
#752
#853
refactor(core): remove platform_meta dict[str, Any]…
F-lite
#875
chore(provision): detect non-contiguous subuid/subg…
S
#876
chore(provision): warn on re-run if existing subuid…
S
#878
chore(dep-graph): polish items deferred from PR #87…
S
#908
tests: pin supervisorctl default path + lyra-{name}…
#909
docs(adr): extend ADR-044 — typed validated struct …
S
→
V:#55
#911
chore(deploy-lib): move EXTRA_REPOS out of shared l…
S
→
#912
#913
feat(deploy-lib): add DEPLOY_LIB_VERSION runtime ve…
S
#922
fix(ops): HEALTHCHECK silently dropped from publish…
S
#10
LegalTech validation: 10-20 LinkedIn posts on lawye…
←
#86
#11
MedTech validation: 10-20 posts on medical dictatio…
←
#86
#12
YouTube: create channel + 3 first manual videos
←
#86
#15
Connect Telegram + Discord adapters to Lyra hub (re…
←
#3
→
#28
#29
#30
#31
#18
YouTube automation pipeline
←
#86
#22
Evaluate non-blocking embedding strategy
←
#9
#23
Machine 2 timeout + circuit breaker + cloud fallback
←
#62
#24
Measure Machine 1 VRAM under real load
←
#3
→
#54
#42
feat: user + agent preference layer — language, voi…
←
#74
#45
feat: implémenter mémoire deux niveaux pour agents …
←
#9
#47
chore: social media strategy synthesis — themed X +…
←
#86
#49
feat: install NATS server on Machine 1 + systemd se…
←
#60
→
#50
#68
feat: data migration — 2ndBrain memory.db to roxabi…
←
#9
#73
Epic: Phase 1b — Agent core (identity, SDK, skills …
←
#101
→
#75
#76
#77
#78
#65
#44
#67
#99
#112
#123
#134
#135
#139
#81
feat(memory): roxabi-memory package foundation — sc…
←
#9
#82
feat(memory): hybrid search — fastembed ONNX + sqli…
←
#9
#102
feat: add message_id to TelegramContext for session…
←
#101
#103
feat: unified pairing system for Telegram and Disco…
F-lite
←
#101
→
#112
#104
feat: LLM circuit breaker for Anthropic SDK calls
←
#101
#105
feat: TOML message template system with i18n
←
#101
#106
feat: directory-based plugin system (MVP)
←
#101
#109
Epic: Agent Supervision System — multi-level orches…
←
#63
#111
feat: bash pre-check layer before LLM monitoring ca…
←
#101
#152
feat(routing): RoutingContext + vérification Adapte…
←
#151
→
#153
#274
Epic: Observability — logging, tracing & audit …
←
#62
→
#270
#57
#335
Phase 1: Pipeline mode on prod (foundation)
F-lite
←
#322
→
#323
#324
#325
#419
feat: implement PuLID Flux2 face locking for Lyra a…
←
#577
→
#420
#421
#422
#423
#447
feat(core): amend Bus[T] Protocol — async put()
S
←
#445
#448
feat(infra): install NATS server on Machine 1 — sys…
S
←
#445
#454
docs(architecture): design streaming chunk protocol…
S
←
#445
#455
feat(core): NatsBus — Bus[T] implementation over NA…
F-lite
←
#445
#456
feat(core): trust re-resolution — move Authenticato…
S
←
#445
#469
chore(infra): make NATS install opt-in in provision…
S
←
#445
#522
epic: NATS messaging hardening — auth, error bounda…
←
#445
→
#523
#525
#526
#528
#527
#524
#529
#530
#555
V24 — Klein 4B + PuLID LoRA training data explorati…
←
#577
→
#556
#557
#558
#561
epic(security+nats): NATS hardening — post 48h revi…
←
#445
→
#562
#569
#564
#565
#573
#570
#575
#574
#598
#643
#581
epic(nats): NATS Adapter SDK — pluggable contracts …
←
#445
→
#582
#563
#566
#567
#571
#584
epic(llm): Machine 2 LLM offloading — NatsLlmDriver…
F-full
←
#445
→
#449
#450
#451
#452
#453
#585
epic(infra): Slice D — JetStream persistence + JWT …
F-full
←
#445
→
#460
#461
#462
#602
feat(nats): SDK heartbeat in NatsAdapterBase + voic…
F-lite
←
#445
#604
chore(test): Docker integration test environment — …
S
←
#445
#609
feat(infra): stt-adapter.container + tts-adapter.co…
S
←
#605
#688
refactor(voice)[S1]: freeze NATS voice contract as …
←
#658
#852
refactor(nats): transcribe() takes bytes not Path
S
←
#734
#854
refactor(bootstrap): typed Secrets registry replace…
F-lite
←
#693
#855
feat(audit): security event stream + CLI spawn audit
F-full
←
#667
#912
feat(deploy-lib): per-repo FAIL_FILE for EXTRA_REPOS
S
←
#911
#28
Slice 1: Routing model (Shape B) — RoutingKey + Pla…
←
#15
→
#29
#30
#44
feat: event-driven agent monitoring — replace cron …
←
#73
#65
Epic: Google Workspace integration via gws CLI
←
#73
→
#64
#66
#75
feat: agent identity / persona system
←
#73
#76
feat: direct Anthropic SDK agent (replace CLI subpr…
←
#73
→
#112
#135
#99
#77
chore: 2ndBrain feature parity audit
←
#73
#78
feat: vault as semantic memory backend (Level 3)
←
#73
#134
feat(agent): LLM smart routing — complexity-based m…
←
#73
#139
epic: 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
#153
feat(commands): CommandParser + ComplexityEstimator…
←
#152
#270
feat(observability): structured logging + request t…
←
#274
#323
Install VoiceCLI + models on prod (roxabituwer)
S
←
#335
#324
Add VoiceCLI supervisor confs on prod
S
←
#335
#325
Configure Lyra STT/TTS on prod for pipeline mode
S
←
#335
#420
docs(brand): scaffold workflows dir, prompt templat…
←
#419
#421
ops(brand): ComfyUI + PuLID Flux2 environment setup…
←
#419
#422
ops(brand): build face-lock workflow + quality gate…
←
#419
#423
ops(brand): generate Lyra face-locked variation cam…
←
#419
#523
feat(nats): wire nkey authentication in Python clie…
←
#522
→
#528
#527
#525
fix(nats): sanitize platform_meta at NATS trust bou…
←
#522
#526
fix(nats): bound caches and add TTL reaper in NatsO…
←
#522
→
#524
#547
ops(brand): v23f-schedule — RECLASSIFIED as face-li…
←
#542
#556
V24 Test 1 — Texture verification (Klein 4B + PuLID)
←
#555
→
#557
#564
fix(security): check nkey seed file permissions on …
←
#561
#565
fix(security): validate platform_meta values — leng…
←
#561
#569
fix(nats): FIFO tombstone eviction — set.pop() → Or…
←
#561
#570
fix(nats): add _terminated_streams cleanup to TTL r…
←
#561
#573
chore(infra): CI diff check to keep supervisor conf…
←
#561
#582
refactor(nats): NatsAdapterBase — enforced nkey, sc…
←
#581
→
#571
#563
#567
#566
#575
#450
#598
feat(voice): normalize STT/TTS env vars + circuit b…
←
#561
#643
refactor(nats): NatsRenderEventCodec — shared encod…
←
#561
#29
Slice 2: Telegram adapter — aiogram v3 webhook
←
#28
#15
#30
Slice 3: Discord adapter — discord.py v2 Gateway
←
#28
#15
→
#31
#64
arch: external tool integration pattern — Install, …
←
#65
#66
feat: Telegram command/skill router — connect roxab…
←
#65
#80
feat: voice STT — audio transcription (Whisper)
←
#139
#74
→
#147
#148
#149
#150
#112
refactor(hub): conversation-scoped sessions + per-c…
←
#103
#76
#73
→
#125
#126
#127
#123
#83
#48
#135
feat(agent): runtime agent config — live tuning via…
←
#76
#73
#137
feat(bus): InboundMessage — normalized input envelo…
←
#139
#138
feat(bus): OutboundMessage — normalized output enve…
←
#139
#140
feat(bus): audio input normalization — InboundAudio…
←
#139
#141
feat(bus): audio output normalization — OutboundAud…
←
#139
#142
feat(bus): incoming attachment handling — Attachmen…
←
#139
#143
feat(bus): outgoing attachment handling — file send…
←
#139
#144
feat(bus): live audio streaming — chunked OutboundA…
←
#139
#145
feat(hub): message debounce + cancel-in-flight — hy…
←
#139
#162
refactor(bus): rename Attachment.url_or_bytes to ur…
←
#139
#168
feat(image): formalize imageCLI consumption in Lyra
←
#139
#171
feat(bus): InboundAudioBus — per-platform audio que…
F-lite
←
#139
→
#172
#173
#174
#175
#217
#182
#185
#183
feat(adapters): incoming attachment handling — type…
F-lite
←
#139
#184
feat(adapters): outgoing attachment handling — type…
F-lite
←
#139
#186
refactor(adapters): extract shared adapter helpers …
S
←
#139
#524
feat(nats): add stream_error envelope for mid-strea…
←
#522
#526
→
#529
#530
#527
feat(nats): add queue groups to prevent duplicate d…
←
#522
#523
#528
feat(nats): add startup ordering or readiness probes
←
#522
#523
#557
V24 Test 2 — LoRA training data batch (Klein 4B + P…
←
#555
#556
→
#558
#563
fix(security): TTS/STT adapters bypass nkey auth — …
←
#582
#581
→
#562
#566
fix(nats): add check_schema_version to OutboundMess…
←
#582
#581
#567
fix(nats): STT timeout 60s → 15s default, expose LY…
←
#582
#581
#571
refactor(nats): Slice 2 — adapter migration + legac…
←
#582
#581
→
#574
#575
test(nats): unit tests for NatsSttClient, NatsTtsCl…
←
#582
#561
#31
Slice 4: Main entrypoint — python -m lyra with both…
←
#30
#15
#48
feat: Bus abstraction — extract LocalBus/NatsBus in…
←
#112
#60
→
#50
#123
refactor: Claude CLI wrapper library — extract 2ndB…
←
#112
#73
→
#83
#125
refactor(hub): scope_id routing — replace user_id i…
←
#112
#126
refactor(hub): per-channel inbound/outbound queues …
←
#112
#127
refactor(hub): per-session Task + Discord thread au…
←
#112
#147
feat(stt/v1): Telegram voice download + normalize (…
←
#80
→
#148
#172
feat(bus): InboundAudioBus — per-platform bounded q…
←
#171
→
#173
#174
#175
feat(bus): OutboundDispatcher.enqueue_audio() + enq…
←
#171
#182
feat(adapters): audio output normalization — typed …
F-lite
←
#171
#139
→
#185
#217
feat(bus): OutboundDispatcher.enqueue_attachment() …
S
←
#171
#234
feat(tts/V1): TTSService module — SynthesisResult, …
←
#167
#235
feat(tts/V2): Response.audio field + Hub dispatch g…
←
#167
#236
feat(tts/V3): Agent DI wiring — tts param in AgentB…
←
#167
#237
feat(tts/V4): /voice command, Telegram MIME routing…
←
#167
#529
refactor(nats): extract outbound listener behind a …
←
#522
#524
#530
feat(nats): add message versioning to wire format
←
#522
#524
#558
V24 Test 3 — Hybrid dataset (Klein+PuLID top25 + V2…
←
#555
#557
#562
ops(security): deploy nats.conf with nkey server-si…
←
#563
#561
#574
fix(nats): extract shared _TTS_CONFIG_FIELDS consta…
←
#571
#561
#50
feat: NatsBus implementation — NATS-backed distribu…
←
#60
#49
#48
→
#53
#51
#52
#56
#57
#58
#83
feat(memory): Lyra agent integration — identity anc…
←
#151
#123
#112
#101
#9
→
#84
#99
#67
#136
#148
feat(stt/v2): STTService + STTConfig with faster-wh…
←
#147
#80
→
#149
#173
feat(adapters): wire InboundAudio enqueue in Telegr…
←
#172
#171
#174
feat(hub): Hub consumer loop for InboundAudio → STT…
←
#172
#171
#185
feat(adapters): live audio streaming — real-time au…
F-full
←
#182
#171
#139
→
#255
#257
#256
#51
feat: LLM worker on Machine 2 — NATS-based inferenc…
←
#60
#50
#52
feat: health check system — heartbeat + worker stat…
←
#60
#50
#53
feat: CognitiveFrame protocol — structured SLM-to-S…
←
#50
#61
→
#54
#55
#56
feat: JetStream persistence — survive restarts, rep…
←
#62
#50
#57
feat: NATS observability — Prometheus metrics + Gra…
←
#50
#274
#58
feat: NATS auth — nkey/JWT authentication for worke…
←
#62
#50
→
#59
#67
feat: raw turn logging + conversation audit trail (…
←
#83
#101
#73
→
#244
#244
#84
feat(memory): vault-migrate skill update — v2 schem…
←
#83
#9
#99
feat: hub command sessions — /add, /explain, /summa…
←
#139
#83
#76
#73
#149
feat(stt/v3): Agent AUDIO branch + temp file cleanup
←
#148
#80
→
#150
#255
feat(adapters): VoiceSessionManager — guild lifecyc…
F-lite
←
#185
→
#256
#257
#54
feat: Router SLM worker — intent classification via…
←
#24
#53
#61
→
#55
#59
feat: agent-to-agent messaging + workflow engine ov…
←
#58
#63
#150
chore(stt/v4): STT observability + VRAM docs
←
#149
#80
#244
feat: reply-to-resume — load old session context wh…
←
#67
#67
#256
feat(adapters): render_voice_stream + dispatch_voic…
F-lite
←
#255
#185
#257
feat(adapters): !join / !leave voice commands — Dis…
S
←
#255
#185
#55
feat: Planner + NER SLM workers — skill selection a…
←
#54
#53
#61
#914
docs(QUADLET-ADOPTION): add HTTP-only vs NATS-hub-s…
S
←
#728
#915
refactor(deploy-lib): clarify HUB_SERVICE semantics…
S
←
#728
a2
roxabi-nats SDK
SDK
#734
#72
chore(packaging): nats-serve subcommand requires na…
S
→
#691
b
Containerize
M1
#605
#606
chore(infra): Dockerfile prod hardening + Quadlet n…
S
←
#605
→
#607
#612
chore(core): make all service paths container-aware…
S
←
#605
→
#607
#607
feat(infra): nats.container + hub.container — Quadl…
S
←
#606
#612
#605
→
#608
#608
feat(infra): telegram.container + discord.container…
S
←
#607
#605
·
·
·
·
g
Voice
M1
#658
#603
feat(voice): load-aware routing for multi-GPU STT/T…
S
←
#658
→
#689
#689
refactor(voice)[S3]: Machine-1 cutover — voicecli_{…
←
#603
#658
h
Deploy ops
M1
#693
#736
chore(deploy): supervisor scripts fail-fast on miss…
F-lite
←
#693
i
Vault ingest
M2
#704
#24
feature: NATS subscriber mode — consume vault write…
←
#704
#703
·
·
·
·
·
·
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
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
FIN
Final Initiatives
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
o
Final Initiatives
∞
#86
#61
Epic: Phase 3 — Atomic SLMs + cognitive pipeline ov…
F-full
→
#53
#54
#55
#19
#13
#14
#71
#63
Epic: Agent orchestration — orchestrator, agent mes…
F-full
→
#59
#109
#481
#424
feat: local AI video & virtual cam stack on Pop…
F-lite
#577
epic(brand): Lyra avatar LoRA training pipeline
→
#542
#555
#419
#13
Machine 2 + Ollama + Qwen 2.5 14B setup
←
#61
#14
LLM benchmark: Qwen 2.5 14B vs Mistral Small 24B
←
#61
#19
Meta-skills + atomic SLM + cognitive metalanguage
F-full
←
#61
#96
Phase X-2: Product Ideas — LegalTech, MedTech, Poly…
F-full
←
#86
→
#16
#17
#20
#542
ops(brand): V23 LoRA attribution exploration [epic]
←
#577
→
#547
#543
#544
#545
#546
#548
#549
#554
#16
LegalTech SaaS — development
F-full
←
#96
#17
MedTech cardio — development
F-full
←
#96
#20
Polymarket agent
F-full
←
#96
#543
ops(brand): v23d-island0 — dataset swap (done) [#54…
←
#542
#544
ops(brand): v23a-rank — rank 16→32 on top30 [#542-S…
←
#542
#545
ops(brand): v23c-dop — differential output preserva…
←
#542
#546
ops(brand): v23e-combiner — stack winning knobs [#5…
←
#542
#548
ops(brand): v23g-prodigy — Prodigy auto-LR optimize…
←
#542
#549
ops(brand): v23h-pivotal — pivotal tuning (blocked …
←
#542
#554
ops(brand): v23f2-top30-schedule — clean V22 step-c…
←
#542