Commit graph

7 commits

Author SHA1 Message Date
liyachen
06901b74c9 fix: clamp out-of-range persisted port to the default 2026-07-18 14:26:04 -04:00
liyachen
e34c2ada38 feat(sop): built-in SOPs on by default with per-mode customize fork
- Empty sopPath now falls back to the mode's bundled SOP (master switch
  useBuiltinSops, default on); a filled path always wins, and a broken
  path falls back to built-in instead of dropping the analysis block.
- Settings: Analysis SOPs section with per-row state line (built-in /
  custom / off) and a Customize button that forks the built-in into
  <base>/SOPs and points the path at the copy. Install-all button removed.
- sopPath accepts vault-relative paths (readFileSync resolves them).
- Bundled SOP files carry no personal vault frontmatter (regression test).
- All strings bilingual (en + zh).
2026-07-16 21:53:50 -04:00
liyachen
6019e606dd feat(settings): baseFolder with deriveFolders/applyBaseFolder derivation 2026-07-16 20:44:14 -04:00
liyachen
0c1504a0be feat: language setting with en/zh dropdown; settings UI and notices localized 2026-07-13 20:11:38 -04:00
liyachen
de76c302ed feat: first-save location notice, port-conflict copy, manifest description 2026-07-04 21:57:42 -04:00
liyachen
a2c1a0a404 feat: zero-config Clips/ folder defaults for all four modes 2026-07-04 21:49:59 -04:00
liyachen
7a54b1f906 feat: migrate default port 27183 -> 17183 (scrcpy collision) 2026-07-04 21:47:07 -04:00