theseus/docs
Local Dev 3d9b05ba25 docs: scope the signing allow-list per extension, not per app
Multiple signing keys already work — PUBKEYS_HEX is an array and
verifySignature accepts any entry that verifies, which is an allow-list
already. What it isn't is scoped: every add-on is checked against the same
array, so a key added for one extension can sign an update for any other.
The canonical message binds a signature to an extension; nothing binds an
extension to a signer.

The publisher path doesn't have that problem, because a name answers "who
may sign this" per extension and rotates on chain without an app release.
So the note now argues for generalising that rather than replacing it:
per-extension key bindings, several acceptable keys each, the chain
preferred over a compiled-in array, and co-signing considered only for the
default set — the extensions that reach every fresh profile without anyone
choosing them.

Records the open questions honestly too: where a binding can live without
being restatable by whoever controls the manifest, and that refusing to
update an extension is a much smaller decision than refusing to run it.
2026-09-22 00:47:00 +02:00
..
ADDON-UPDATES.md feat(theseus): profile at %APPDATA%\Theseus, extensions under extensions\ 2026-09-21 01:55:25 +02:00
DESIGN-one-extension-catalogue.md docs: scope the signing allow-list per extension, not per app 2026-09-22 00:47:00 +02:00
DESIGN-one-extension-directory.md docs(theseus): one extension directory, not bundled versus community 2026-09-21 22:46:11 +02:00