Adding a Telegram channel has always meant scraping it: every scan walks
its history and queues every IPA in it. That is the wrong bargain for the
commonest kind of channel, which carries the one tweak somebody asked for
and a hundred apps nobody did.
A channel now carries a scan mode. Full is what every channel did before
and stays the default. On demand is skipped by every sweep and is read
only by a targeted search that already knows the name it is looking for,
so the channel supplies that tweak and nothing else.
Known Tweaks gains "Import from channel". Name a channel and a tweak, and
the server registers the channel on demand, adds the tweak locked to it
unless the lock is unticked, and imports only the builds whose file names
match, up to the version limit. An existing tweak is amended rather than
replaced, and two things are refused instead of guessed: a tweak already
locked to a different source, and a name that is another tweak's alias.
A channel that is already configured keeps the mode it has, so an import
can join a full source without quietly narrowing it.
This also closes the hole underneath. A search that met a channel with no
row of its own created one in the default mode, so a single targeted
lookup enrolled that channel and the next sweep took its whole catalog.
Those rows are written on demand now.
The console app gets the same import sheet, the same mode control on
Channels & Sources, and the mode rides in the settings backup, because
dropping it on restore would turn every on-demand channel back into a
scraper.