fix: rename D-Bus name to dev.edu4rdshl.Strata; drop recursive theme reload

Two changes for 0.7.0:

BREAKING (D-Bus): the service is renamed from org.gnome.Strata to
dev.edu4rdshl.Strata. The org.gnome.* namespace is reserved for official
GNOME software; Strata is third-party, so it now uses the reverse-DNS of its
own domain (matching the strata@edu4rdshl.dev UUID). Bus name, object path
(/dev/edu4rdshl/Strata), and interface (dev.edu4rdshl.Strata.Manager) all
change. Daemon and extension are updated together; only external busctl
scripts / non-GNOME front-ends that hard-coded the old name need updating.
The GSettings schema (org.gnome.shell.extensions.strata) is unchanged - that
namespace is correct for GNOME Shell extension settings.

Fix recursion: the theme-context 'changed' handler reloaded light.css, but
load_stylesheet itself emits 'changed', so it fed back into itself and hit
"too much recursion" - flooding the journal and spinning the CPU on screen
unlock (which restyles widgets and fires 'changed'). The subscription is
removed; light.css is loaded once. Dark/light switching is unaffected (it is
the panel's class toggle, not this load). A GNOME Shell theme switch no
longer auto-re-applies the sheet, which is recoverable by re-enabling.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Eduard Tolosa 2026-05-26 19:20:12 -05:00
parent 3f32c19fd0
commit b41c9662cb
8 changed files with 40 additions and 44 deletions

View file

@ -24,7 +24,7 @@ together and the trade-offs at each layer.
| | ItemAdded / ItemDeleted / HistoryCleared |
+--------+-------------------------------------------------------------------------+
|
| session D-Bus (org.gnome.Strata)
| session D-Bus (dev.edu4rdshl.Strata)
v
+----------------------- strata-daemon (Rust process) --------------------------+
| |
@ -68,7 +68,7 @@ hot ingest path (it fires `SubmitItem` and returns immediately).
### Startup
The extension listens for `notify::g-name-owner` on the D-Bus proxy. When
the daemon's `org.gnome.Strata` name becomes owned, the panel triggers
the daemon's `dev.edu4rdshl.Strata` name becomes owned, the panel triggers
its initial fetch. No polling, no fixed delays.
## Ingest path
@ -313,7 +313,7 @@ and it is small and isolated.
| App to history | Password leak | `x-kde-passwordManagerHint` opt-out |
| User to search | SQL injection | rusqlite `params![]`, FTS5 input bound as value |
| Daemon to FS | Path traversal via id | Ids are server-generated UUID v4 |
| Daemon to extension | Signal spoofing | D-Bus enforces single owner of `org.gnome.Strata` |
| Daemon to extension | Signal spoofing | D-Bus enforces single owner of `dev.edu4rdshl.Strata` |
| Stored item to paste | Command execution | No spawn, no launch_uri, no markup parsing |
## Non-GNOME front-end