finicky icon indicating copy to clipboard operation
finicky copied to clipboard

Friction/issues during v3 -> v4 migration

Open nisc opened this issue 6 months ago • 16 comments

Issues encountered after upgrade to v4:

  1. Finicky no longer found my config file
  2. Config file syntax not automatically converted
  3. Unclear how to restore previous default behavior
  4. Confusing: asked for a bunch of permissions without justification

The migration experience can be a bit frustrating, especially given it's not made obvious to the user how v4 is better than v3 (not implying that it's not ... so maybe explain the changes somewhere after upgrade? E.g., link this here: https://github.com/johnste/finicky/wiki/Migrating-from-Finicky-3). At some point I was seriously wondering if I should just downgrade again, because everything worked perfectly before.

Re/ 1: Finicky v3 allowed me to select a config file at an arbitrary location. After upgrading to v4 it could no longer find that config file location, and neither could I, so I had to downgrade to v3 to see where it was loading it from. Eventually found and symlinked it.

Re/ 2: Next I ran into the config syntax incompatibilities, which my LLM partially fixed for me. However, ideally Finicky would have automated the conversion, given it was so trivial.

However, I still have many warnings in my logfile that I haven't had time to debug, yet:

  • Accessing legacy property "url" that is no longer supported. This first argument to the function is a URL instance, a standard interface for URLs. https://developer.mozilla.org/en-US/docs/Web/API/URL
  • Accessing legacy property "opener" that is no longer supported.
  • No hostname available for file:///Volumes/xyz/xyz/xyz.html

Re/ 3: Finicky used to sit in a tray icon in the menu bar, now it's an application in the Dock, which I don't want. I haven't figured out yet how to fix this again.

Re/ 4: I remember I was asked to grant permission to a bunch of locations (like ~/Desktop, ~/Documents), which I all declined. I still don't know why it asked for those.

Misc:

  • Also see https://github.com/johnste/finicky/issues/428#issuecomment-2959215915

nisc avatar Jun 10 '25 13:06 nisc

(I noticed that the warning messages were related to my now broken URL rewrite rules and now broken opener-based rules ... was able to fix those with some trial an error.)

nisc avatar Jun 10 '25 15:06 nisc

+1 it's also rather annoying that it warns about the deprecated syntax but not where (line number) in your config it occured.

stewartadam avatar Jun 10 '25 17:06 stewartadam

Hi! I'm sorry you had a rough time upgrading, that was of course never my intention. Let me also say that you can absolutely keep on using Finicky 3 if it works well for you.

I wrote a short migration guide where I also mention the reasons for a rewrite in the first place.

Now, to answer your specific feedback:

  1. I felt allowing to customize the location of the configuration didn't really align with the way other applications like this works. Most of them support config files in the home folder, or a .config folder, like Finicky now does. In the future I hope we can support XDG Base Directory Specification #298
  2. Finicky 4 supports more modern syntax (and TypeScript). Except for a couple of known changes in the API it should be fully backwards compatible, though some messages could be clearer in how to avoid the issues. Improving these messages is something I'd like to do.
  3. Finicky now runs only when needed, which is why there's no longer a menu item. Not sure at this point if Finicky 4 will ever support a menu item. I've found the Finicky window to be a good substitute for the menu. If there's enough feedback on this I'll consider it but I can't make any promises.
  4. Finicky saves some cache information in ~/Library/..., and looks up the user's home directory, I'm assuming these messages appear from this access. Denying access to Desktop, Documents, etc should be completely fine.

johnste avatar Jun 10 '25 17:06 johnste

  1. The symlink workaround works fine, just wanted to list what made the migration rough.
  2. I wrote my Finicky config back in ~2021 and have only made simple adjustments since (e.g., adding / changing patterns). I didn't find it trivial to fix the config when v4 suddenly hit Homebrew and I wasn't expecting breaking changes. But I'm good now.
  3. Fine, but would it be possible to not persist the Dock icon?
  4. Okay. No longer affecting me. See 1 re/ why I mentioned it.

nisc avatar Jun 10 '25 21:06 nisc

The migration was more confusing than painful for me. I had no idea that there were wholesale changes and upgraded via Homebre, but my config file was detected and I was able to quickly fix the highligthed syntax deprecations:

  • switching to matchHostnames
  • switching to export default

Not having the menu item is very discombobulating, though. I relied on that to:

  • quickly launch my editor if I need to tweak my config
  • reload the config if I've been messing with it
  • look at the logs if something has gone wonky

Now, I essentially need to launch Finicky each time I need to interact with it as there's no item in the menu bar, nor is there a dock icon (which I don't want)

@johnste do you think it would be possible to reinstate the menu bar item? Granted, it doesn't get used a lot because Finicky just works. However, when it does need to be used, it's less hassle than having to open my launcher and call up Finicky each time since I can't ⌘ + ↹ to get to it.

Thanks loads.

Luminus avatar Jun 12 '25 11:06 Luminus

Now, I essentially need to launch Finicky each time I need to interact with it as there's no item in the menu bar, nor is there a dock icon (which I don't want)

How did you get rid of the dock icon? Mine keeps re-appearing if I remove it.

nisc avatar Jun 12 '25 17:06 nisc

How did you get rid of the dock icon? Mine keeps re-appearing if I remove it.

I have no idea. I just never got one. It was confusing the most confusing situation as I couldn't find the menu bar item and there was nothing in the dock.

I'm assuming I'm not the only one that upgraded via homebrew.

Maybe when I finally reboot the computer the behaviour may be different ¯_(ツ)_/¯

Luminus avatar Jun 12 '25 17:06 Luminus

In my testing a dock icon did very rarely pop up and disappear after maybe 0.1 seconds or so. Since I also hide my dock by default I never really encountered it afterwards.

I do understand the feedback. I'll be looking in to this to see if:

  • there are alternative ways to still support opening apps in the background,
  • I could reinstante a menu bar icon for those who miss it.

This might take a while, so if these are dealbreakers please use 3.4 in the meantime. :pray:

johnste avatar Jun 12 '25 18:06 johnste

Below are my dock settings. Icon shows up whenever a link is clicked and stays unless manually removed.

MacOS 15.5 on M1

# Only ever show the dock on the primary display:
defaults write com.apple.spaces "spans-displays" -bool "false"
defaults write com.apple.dock autohide -bool false
defaults write com.apple.dock autohide-delay -float 9999999
killall SystemUIServer
killall Dock

Image

Image

nisc avatar Jun 12 '25 20:06 nisc

@johnste maybe you have "Show suggested and recent apps in Dock" turned off?

If I disable it, Finicky shows up briefly, but then disappears again. However, I prefer the setting to be "On".

Think "On" is also the MacOS Default?

nisc avatar Jun 12 '25 20:06 nisc

@nisc Show suggested and recent apps in Dock is turned on for me, but I also have Automatically hide and show the Dock enabled, which @johnste mentioned he also has enabled.

Luminus avatar Jun 12 '25 20:06 Luminus

Asking for these probably unnecessary, given the config file sits elsewhere?

Image

nisc avatar Jun 23 '25 21:06 nisc

Deleted and recreated in #458

nisc avatar Jun 24 '25 01:06 nisc

@nisc

  1. I'm working on a rewrite of how finicky accesses the folders. It never reads anything outside of the the home/cache and logs folders, but maybe one of the built in go methods of reading the folders accesses something that triggers this permission check
  2. can you open your question as a separate issue? I can't immediately tell what's wrong from the logs. Does firefox start?

johnste avatar Jun 24 '25 22:06 johnste

Alright let me try to create some structure and close some loops regarding all issues discussed in this thread. @johnste feel free to close this, we got it all covered elsewhere now.

RESOLVED:

  • Issue 1: Symlinks are not resolved when config is loaded — FIXED in 4.1.3

OPEN:

  • Issue 2: Finicky icon pops up and remains in Dock when links are clicked, until manually removed — seems related to browser choice (Chrome works fine), see: https://github.com/johnste/finicky/issues/438.
  • Issue 3: Finicky requests unnecessary permissions — WIP, see your Point 1.
  • Issue 4: Finicky window opens when jupyter-lab is launched from shell — I created a new issue: #458.

WONTFIX (please correct me if I misremember):

  • Issue 5: v3 and v4 config syntax are incompatible, Finicky will break after brew upgrade, and migration guide is not presented to user (workaround: this conversion could be automated most easily via a nicely crafted LLM prompt, assuming privacy is not an issue).
  • Issue 6: Config file no longer loaded from v3 custom paths after upgrade to v4 (creates friction during upgrade, but symlink can be used to work around it).

nisc avatar Jun 24 '25 23:06 nisc

For the issue

Accessing legacy property "opener" that is no longer supported.

I was able to fix by changing the line in my config from match: ({ opener }) => opener.name === "Messages", to match: ( url, options ) => options.opener.name === "Messages",

davidalim avatar Aug 14 '25 18:08 davidalim