Commit graph

9 commits

Author SHA1 Message Date
b406970b93 docs: describe the shell-driven light/dark theming 2026-07-02 15:38:22 -05:00
2dc15a4849 docs: document the single-instance daemon contract
Add a "Single instance" note to ARCHITECTURE explaining the two layers that
keep exactly one daemon on the bus: the extension skips spawning when the name
is owned, and the daemon requests it with DoNotQueue (exits if taken, never
steals/orphans).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 21:33:10 -05:00
6f0f7db513 docs: explain the light.css class-toggle mechanism and theme-switch caveat
Clarify how theming actually works: light.css is loaded once but inert until
the panel adds the `.strata-theme-light` class (the more-specific scoped rules
then win); the live light/dark switch is just that class toggle. Document the
single caveat - a full GNOME Shell theme switch replaces the theme object and
drops light.css, so light mode needs a re-enable until then (dark is
unaffected; ordinary/system light-dark switching is fine).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 19:33:23 -05:00
7a203c70a7 docs: align ARCHITECTURE with 0.6/0.7 behavior
- Search: describe the lazy full-history paged search (snapshot + scroll
  paging, epoch/results-epoch guards) instead of the old "disables
  scroll-driven appends" behavior.
- Theming: light.css is loaded once with no theme-context 'changed'
  subscription (removed in 0.7.0 to stop the reload recursion); document the
  trade-off, not the old re-load-on-changed claim.
- Thumbnail size: ~256 px -> ~200 px to match THUMB_PX.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 19:24:34 -05:00
b41c9662cb 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>
2026-05-26 19:20:12 -05:00
945ad61bf7 feat: light/dark theme support
Add a Theme preference (Automatic / Light / Dark). Automatic follows the
system org.gnome.desktop.interface color-scheme; the dark theme is
unchanged. Light styling lives in light.css, every rule scoped under a
.strata-theme-light class the panel toggles on its root box, loaded into the
St theme context by the extension. St's CSS engine has no custom properties,
so this specificity-based scoped override is how the palette is switched
without generating a stylesheet at runtime; switching is a single class
toggle off the ingest/render hot paths.

Also in this change:
- fix: the keyboard shortcut now hides the panel when it is already open.
  The binding lacked Shell.ActionMode.POPUP, so while the panel's modal grab
  was active the second press was swallowed and toggle() never ran.
- fix: the search placeholder ("Search...") is now legible in the light
  theme; it previously inherited a light-on-dark Shell color.
- pack: bundle light.css via --extra-source (gnome-extensions pack only
  auto-includes stylesheet.css), so packaged installs ship the light theme.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 14:49:08 -05:00
8a7091755b docs: correct Wayland monitor protocol availability and post-0.3.0 drift
The monitor.rs comments claimed Mutter implements ext-data-control-v1 on
GNOME 47+, contradicting ARCHITECTURE.md. Mutter exposes neither
ext-data-control-v1 nor zwlr-data-control-v1, so the monitor never binds
on GNOME and ingest comes from the extension via Meta.Selection +
SubmitItem; the monitor only runs on wlroots. Correct the comments
(module doc, Ext probe, bail! message) and the main.rs spawn comment.

Also reconcile ARCHITECTURE.md with the code: supervisor backoff
(1/2/4/8/16 s, 5 s reset, log-only give-up), SIGTERM at 1.5 s, prune as a
separate post-insert call, multi-thread tokio default, the 200 px
load-more threshold, and the SQL-side preview truncation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 13:08:50 -05:00
375f50e962 docs: update CHANGELOG, ARCHITECTURE and AGENTS for post-0.2.0 fixes
- CHANGELOG: add [Unreleased] section with all fixes and perf improvements
  since the 0.2.0 tag
- ARCHITECTURE: note that GetItemContent also returns ay (no base64)
- AGENTS: update D-Bus method summary -- GetItemContent returns (s, ay),
  SetFocusedApp removed

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-25 04:02:07 -05:00
350d647953 Initial commit
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-25 03:02:34 -05:00