Third install-path miss from the versioned-layout refactor: the bundled apps moved from /opt/furtka/apps (flat) to /opt/furtka/versions/<ver>/apps/, reached through the /opt/furtka/current symlink. paths.py was still pointing at the flat path, so _list_bundled walked a non-existent directory and /api/bundled returned [] — the fileshare tile never showed up on /apps. Tests already use FURTKA_BUNDLED_APPS_DIR env override so nothing in the suite needed to change. Confirmed on the VM: compat symlink /opt/furtka/apps -> current/apps makes /api/bundled return the fileshare manifest immediately, no service restart needed since scanner.py reads the directory on every request. Locking the path at current/apps rather than leaving the flat fallback is deliberate — Phase-2 self-updates flip the symlink, and a flat /opt/furtka/apps wouldn't move with them; bundled apps would freeze at whatever version installed first. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| api.py | ||
| cli.py | ||
| dockerops.py | ||
| installer.py | ||
| manifest.py | ||
| paths.py | ||
| reconciler.py | ||
| scanner.py | ||
| updater.py | ||