Add Safari extension support#26
Conversation
|
Thanks for putting this together — the Safari packaging script and the manifest post-processing are clean, and a Safari build is a great direction. Before going further I want to flag a pattern that runs through several of the changes: behavior that should be Safari-specific has been applied globally, which regresses the Chrome build. Same root cause across most of the issues below. Issues1. Global default flips affect Chrome users. 2. Favicon regression on Chrome. 3. Locale strings rewritten in place rather than added. 4. Build-time safety net removed. 5. Zen reminder cooldown semantics on Safari. Suggested directionIssues 1–4 share a root cause: changes that are correct for Safari have been applied globally instead of gated on the build target. The cleanest fix is to introduce a build-target flag and gate the Safari-specific behavior on it, keeping the Chrome path unchanged. Vite's ```js ```js Then in code: ```js For the locale strings, `prepare-safari-dist.mjs` is a natural place to overlay Safari-specific overrides on top of the Chrome message files at packaging time, so the Chrome locale files don't need to change at all. |
|
Updated per review feedback:
Validation:
|
|
Quick status update on this PR: thanks again for the second pass — all five issues from the previous review were addressed cleanly, and the build-target gating approach is exactly what I had in mind. Since then, however, Totally understand if that's more work than you signed up for, no pressure either way. If you do want to take another pass, rebasing onto current |
ab0ef8b to
3b27ffd
Compare
|
Rebased this PR onto current main and resolved the Zen reminder conflicts. What changed in this pass:
Validation:
|
Summary
Validation
Notes
The generated Xcode project is intentionally ignored because it contains local signing settings and can be regenerated with npm run package:safari.