The app menu's "Report a problem…" opens a small dialog with the summary (reportModel.ts, English on purpose: the people who read reports do): the app and framework versions, the system and webview (coarse, from the user agent), the language and how it was chosen, the mode, the theme and icon pack ids, the file names of the plugins that are on, what paused itself (the panel's `reportDetails`), and safe mode. The model has no field for an account, a handle, an address, a tab or a path, and a value that is not made of id characters is left out rather than trimmed into shape, so nothing of that kind can ride along (tested with hostile input). The dialog sends nothing: Copy puts the text on the clipboard, and "Open the issue page" opens `ShellSite.menu.report.issueUrl` bare in the system browser (the summary is never put in a URL). Without an issue page the button is off and the dialog says so. |
||
|---|---|---|
| .. | ||
| scripts | ||
| src | ||
| tests | ||
| package.json | ||
| README.md | ||
| tsconfig.build.json | ||
shell (internal)
Sources of waybetter/shell/*: the shell models, the Store screens, the shell frame (src/frame,
createShell) and the panel (src/panel, createPanel: the app's own tab). Published as part of
the waybetter package; not published on its own. The repository's
docs/ARCHITECTURE.md ("The shell frame" and "The panel") describes what an app supplies.
The panel is here rather than in a package of its own because it is drawn inside the frame and
shares its state: the frame's profile, deck, theme, sync and developer-mode stores, its native
bridge and its language. It imports the theme document model from ../runtime by source path;
the package build (packages/waybetter/scripts/build.mjs) points those imports at dist/runtime.
scripts/google-fonts-catalog.mjs regenerates the font browser's offline Google Fonts list
(src/panel/fonts/googleFontsCatalog.json).