Is anything going on with browser session cookies that might cause this?

Do you get the same problem if you access the private webserver via FQDN from, say, Chrome and via unqualified hostname using, say, Firefox? Or use incognito mode?

If you set up a server-side-editing workspace accessing a namespace for which your class is the source control class, you should see these buttons at the top of an open class or routine:

Also these entries on the document's context menu:

Each will open a quickpick top-centre of your window. The "Server Source Control..." one will show menuitems from the %SourceMenu and %SourceContext menus in your XData block. The "Server Command Menu..." will show menuitems from all other menus in that block.

When you created the new file in the Explorer tree and named it (for example) foo.mac you should see a new file tab open with a first line like this:

I'm guessing you deleted or replaced that first line. Don't do that. Rather, start coding your routine at line 2. The first line is essential and should not normally be touched.

AFAIK the InterSystems ObjectScript extension for VS Code doesn't yet implement a convenient way of overriding an inherited method or property. I suggest you use VS Code's 'Report Issue' option from the Help menu to file a Feature Request on the extension. That dialog is a convenient way to route your request to the correct repo.

The ComplexDelete classmethod uses the FileSet query:

ClassMethod ComplexDelete(filename As %String, Output return As %Integer) As %Integer
    Set resultset=##class(%ResultSet).%New("%File:FileSet"),return=0
    Do resultset.Execute(..GetDirectory(filename),..GetFilename(filename))
    Set exit=1
    For {
        Set file=resultset.Data("Name")
        Set r=$$$FileDeleteRet(file) If r,exit Set exit=0,return=r
    Quit exit

The problem is, that query treats ";" as a delimiter separating multiple search patterns.

You could replicate the method but specify another delimiter (e.g. comma) when you Execute the query to get the resultset (untested code):

Do resultset.Execute(..GetDirectory(filename),..GetFilename(filename),,,",")

Maybe someday ISC will enhance ComplexDelete to take an optional delimiter argument.

My guess is this is on Windows, and the Windows service that HealthShare runs as is configured to Log On As a specific Windows account. Check those credentials. Perhaps the password has been changed, or the account has expired, or been disabled. Look in the Windows event logs (probably the Application one). Another source of info is the cconsole.log file in the mgr subfolder of wherever you installed HealthShare.

Your problem doesn't seem likely to be specifically related to Cache Studio.

Answering my own question. It looks like /multicompile=0 does the trick.