Skip to content

Controller: EM_OWW_RUNTIME_DIR moves the vendored wake runtime off /app - #1042

Open
scragnog wants to merge 1 commit into
wilbowes:mainfrom
scragnog:oww-runtime-dir-env
Open

scragnog wants to merge 1 commit into
wilbowes:mainfrom
scragnog:oww-runtime-dir-env

Conversation

@scragnog

Copy link
Copy Markdown
Contributor

What and why

I run the controller from source on a Mac (native, so its mDNS reaches the LAN). em_oww_assets.RUNTIME_DIR is hardcoded to the image's /app/models/oww_runtime, and macOS's sealed root volume can't create /app, so the only way to give my Echoes on-device wake has been to edit that line after every checkout.

EM_OWW_RUNTIME_DIR overrides it. Unset or empty keeps the image's path, so Docker and the add-on are unchanged. In .env.example it's a commented example rather than a defined variable, since nothing in a container should set it (and so test_every_env_var_reaches_the_addon_or_states_why_not needs no exemption). There's also a row in docs/configuration.md.

Fixes # (no issue; a fault I hit)

Checklist

  • This comes from an issue, a fault I hit or a device I own (linked or described above).
  • I understand what this change does and why.
  • It is one change, and the description above is short.
  • Tested on: 3× Dot 2 on emOS (firmware v2.19.0-ea.2, controller 2.27.0-ea.2 run from source on macOS), where the edited line has run since 2026-09-10. The env-var form is covered by test_runtime_dir_env_override. Full suite passes except test_trialcheck_passes, which also fails on clean main on macOS (it compiles Linux-only C).
  • CLAUDE.md files, CHANGELOG.md, controller-ea/ and version pins are left out.

🤖 Generated with Claude Code

RUNTIME_DIR was hardcoded to the image's /app/models/oww_runtime. A
controller run from source has no /app, and on macOS the sealed root volume
cannot create one, so the only way to give its Echoes on-device wake was to
edit em_oww_assets.py after every checkout.

EM_OWW_RUNTIME_DIR overrides it; unset or empty keeps the image's path, so
Docker and the add-on are unchanged. It is a commented example in
.env.example rather than a defined variable, because nothing in a container
should set it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@scragnog
scragnog requested a review from wilbowes as a code owner October 25, 2026 18:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant