-
released this
2026-07-28 15:20:29 +03:00 | 13 commits to main since this releaseThe app manages a service whose only control was the app itself. The
tile starts and stops it from the shade, shows which state is current,
and refuses the tap while a lifecycle transition, module update or
full rollback owns the module — those serialize against the same lock,
so accepting the tap would queue work the shade cannot show.Two things the tile cannot borrow. It has no lifecycle owner: the
platform destroys the service when the shade closes, while the
transition it started holds a root shell for as long as the module
needs, so the work is scoped to the process instead and the tile is
redrawn from whatever binding is listening when it ends. And a
long-press has nowhere to go unless the app declares the tile's
settings, which is why one landed on the system App info page instead
of the app.Deciding what a tap does needed care the first version did not have:
the tap marks itself in flight before it can read the status it acts
on, so asking the ordinary projection at that point answered BUSY
because of that very tap and the tile did nothing at all.Separately, the boot stage no longer looks for a pre-2.3.0 in-tree
hosts overlay. customize.sh carries that content over while the old
tree still exists, which is the only moment it does — every supported
root manager replaces the tree wholesale on the activating boot. The
search was a branch that never ran in the field, and its absence is
now an invariant the test enforces: boot does not touch the module
tree at all.Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
1 download
-
Source code (ZIP)