How are node server's capabilities managed?

I have both node server and Appium app. The first of these I ran was the app. I specified the path to the iOS app on my machine, UDID, etc., and all was fine. Sometime later I ran the node server (with the Appium app server not running), using just the command “appium” with no arguments. QUESTION: How did the node server know where the app lives, the UDID of the phone, and other relevant capabilities? Do the app and node servers share a config file?

Later I started building my app to a different location on my machine. I changed the associated setting in the Appium app, and everything ran fine. However, when I later ran the node server (with the Appium app server not running), again using just the command “appium” with no arguments, then started my test, I got this error in the console:

Bad app: /Users/some/path/MyApp.app. App paths need to be absolute, or relative to the appium server install dir, or a URL to compressed file, or a special app name.

The path shown in the error message is the old path to the app on my machine, before I changed it. QUESTION: Why? How did the node server know about the location of the app the first time I ever ran it (perhaps the node and app servers do NOT share a config flag)? Why did it not pick up the change I made to the path in the Appium app server settings?

Then I restarted the node server with
appium --app /Users/some/path/MyApp.app.
Got the same error message - still complaining about not finding the .app at the original location. After looking at appium --help, I found that the --app parameter for iOS specifies the absolute path to a simulator-compiled .app, and a bundle ID if testing on a device. So I tried starting Appium with
appium --app com.foo.bar
Got the same error.

What am I doing wrong? And where on my machine are the capabilities and other settings stored?