Commit graph

113 commits

Author SHA1 Message Date
CRT
f6d52512a0 runtime: plugin UI kit (api.ui: toast, alert, confirm, prompt, dialog, modal) and theme API (api.theme, --wb-* vars); theme JSON Schema; waybetter 0.2.0
The kit draws in one shadow DOM host in the active theme's colors, corners and font and repaints
live; accessible dialogs (focus trap and return, Esc/Enter rules, alertdialog for alerts and
confirms), stacking with inert, toasts with actions, reduced motion, text-only content (ui.h),
and scope.ui closes a plugin's dialogs on dispose. api.toast routes to it.
2026-09-28 21:47:09 +07:00
CRT
1eab4a9de5 host: place child webviews on Linux in a GtkOverlay over the shell
tauri 2 (runtime-wry build_gtk with the window's GtkBox) packs every child
webview into the window box, stacked and with set_position/set_size ignored,
so tab webviews landed under the shell instead of over their panes.
place_child/attach_shell move them into a GtkOverlay (shell as base layer)
and allocate each at its exact rect via get-child-position; placed_rect
reports the placement (GTK children have no position). Windows/macOS keep
set_position/set_size.
2026-09-28 21:40:51 +07:00
CRT
07a99d408d host: low memory only for parked tabs, not for tabs hidden behind a shell overlay; skip unchanged targets 2026-09-28 19:42:34 +07:00
CRT
0732a33a21 host: hidden tab webviews use the WebView2 low memory target
set_tab_visible shows/hides a tab webview and sets
ICoreWebView2_19::SetMemoryUsageTargetLevel (LOW when hidden, NORMAL when
shown). Hidden tabs keep running; the browser trims their working set.
2026-09-28 11:35:57 +07:00
CRT
894a9de48f One system for every app: WhatsApp/Discord-style targets run in the same Tauri shell; site is waybetter.fyi 2026-09-28 06:40:57 +07:00
CRT
8821624241 Public: README links npm and the site; package points at git.crt.fyi (0.1.1) 2026-09-28 06:12:55 +07:00
CRT
e5c91a1563 npm: publish as one package waybetter (waybetter/runtime/*, waybetter/shell/*); @waybetter scope is taken 2026-09-28 05:54:03 +07:00
CRT
faf4e5909e README: projects using wayBetter (wayBetter for X first) 2026-09-28 05:46:46 +07:00
CRT
96512c7bb0 packages: make runtime and shell publishable to npm
Drop private from @waybetter/runtime and @waybetter/shell (root stays
private), add per-module exports with types/import conditions backed by
a tsc build (rewriteRelativeImportExtensions rewrites .ts specifiers to
.js in dist), files/sideEffects/engines/keywords/publishConfig, a
prepublishOnly that builds and tests, and a README + copied LICENSE per
package. Root gains build:packages and pack:check scripts. dist/ is
gitignored; the desktop app keeps importing raw src/*.ts by relative
path, unaffected.
2026-09-28 05:41:01 +07:00
CRT
2a4b5af555 README: web and desktop (Electron/webview app) targets share the runtime 2026-09-28 04:17:57 +07:00
CRT
dd13ddf450 Tabs: accept embedded favicons up to 64 KiB (a theme's replacement logo was dropped) 2026-09-28 04:14:25 +07:00
CRT
dfdde82017 host: read_json takes the runtime as impl Runtime so callers can name only T
read_json::<T>(app, name) did not compile with two explicit generic
parameters; the app's call sites name only the value type.
2026-09-28 03:18:45 +07:00
CRT
43a9e2e1a7 Extract the wayBetter framework core from wayBetter for X
Site-agnostic parts of the X app, behind a small site adapter:

- crates/waybetter-host: webview-label security policy and tab rect
  clamp, account profiles with native-owned accounts (AccountRules),
  plugin store with bundled-plugin upgrades (PluginHost), signed
  data-only hotfix channel, update scheduling and crash handshake, tab
  payloads/link routing/tab-chrome validation, and (feature "tauri")
  webview helpers and the Windows system menu.
- packages/runtime: DOM hub, request hub, plugin API core, OKLab theme
  color model, split-view rail hiding, link routing and account
  reporting, each configured by a SiteAdapter.
- packages/shell: address bar, pane, link-drop, profile, palette and
  update-chip models, and window controls with the Tauri API injected.

Tests moved/adapted from the app: 45 Rust (headless), 40 TypeScript.
2026-09-28 03:01:33 +07:00