Problem
The Algorithm component (Components/Algorithm/v0.2.25.md) hardcodes an ElevenLabs voice_id (gJx1vCzNCD1EQHT212Ls) in all phase announcement curl commands:
🔊 `curl -s -X POST http://localhost:8888/notify -H "Content-Type: application/json" -d '{"message": "Entering the Observe phase", "voice_id": "gJx1vCzNCD1EQHT212Ls"}'`
This ID is provider-specific and breaks silently when the user changes their voice server or voice provider. The > /dev/null 2>&1 in the template hides the error, so the user doesn't know phase announcements stopped working.
Impact
- Anyone who changes
daidentity.voiceId in settings.json gets silent failures on all Algorithm phase voice announcements
- The error is invisible because stdout/stderr are redirected to
/dev/null
- Other identity values (
name, fullName, displayName) already use template variables — voiceId is the only one that doesn't
Proposed Fix
1. Add {DAIDENTITY.VOICEID} to CreateDynamicCore.ts:
// In loadVariables():
"{DAIDENTITY.VOICEID}": settings.daidentity?.voiceId || "1",
2. Use it in the Algorithm component:
🔊 `curl -s -X POST http://localhost:8888/notify -H "Content-Type: application/json" -d '{"message": "Entering the Observe phase", "voice_id": "{DAIDENTITY.VOICEID}"}'`
After rebuild, {DAIDENTITY.VOICEID} resolves from settings.json just like {DAIDENTITY.NAME} already does.
Current Template Variables (for reference)
| Variable |
Source |
Status |
{DAIDENTITY.NAME} |
settings.daidentity.name |
✅ Exists |
{DAIDENTITY.FULLNAME} |
settings.daidentity.fullName |
✅ Exists |
{DAIDENTITY.DISPLAYNAME} |
settings.daidentity.displayName |
✅ Exists |
{PRINCIPAL.NAME} |
settings.principal.name |
✅ Exists |
{PRINCIPAL.TIMEZONE} |
settings.principal.timezone |
✅ Exists |
{DAIDENTITY.VOICEID} |
settings.daidentity.voiceId |
❌ Missing |
Related
Problem
The Algorithm component (
Components/Algorithm/v0.2.25.md) hardcodes an ElevenLabs voice_id (gJx1vCzNCD1EQHT212Ls) in all phase announcement curl commands:This ID is provider-specific and breaks silently when the user changes their voice server or voice provider. The
> /dev/null 2>&1in the template hides the error, so the user doesn't know phase announcements stopped working.Impact
daidentity.voiceIdinsettings.jsongets silent failures on all Algorithm phase voice announcements/dev/nullname,fullName,displayName) already use template variables —voiceIdis the only one that doesn'tProposed Fix
1. Add
{DAIDENTITY.VOICEID}toCreateDynamicCore.ts:2. Use it in the Algorithm component:
After rebuild,
{DAIDENTITY.VOICEID}resolves fromsettings.jsonjust like{DAIDENTITY.NAME}already does.Current Template Variables (for reference)
{DAIDENTITY.NAME}settings.daidentity.name{DAIDENTITY.FULLNAME}settings.daidentity.fullName{DAIDENTITY.DISPLAYNAME}settings.daidentity.displayName{PRINCIPAL.NAME}settings.principal.name{PRINCIPAL.TIMEZONE}settings.principal.timezone{DAIDENTITY.VOICEID}settings.daidentity.voiceIdRelated
settings.jsonmtime)LoadContext.hook.tsrebuild-on-settings-change fix (suggested in feat: Local patch tracking and update-safe SYSTEM file management #650 comment) would ensure SKILL.md stays current after voice_id changes