Google Assistant Hello World Draft Project not updating - actions-on-google

Very new to Google Actions. Testing out tutorial stuff.
I have tried this in a couple of test projects just to double check. After initial run of any project I do not get any updates on draft projects. No changes show up in draft projects for me for both simulator and real device.
Started new project
Even blank project has basic conversation telling you where to add things next.
Change text.
Notice prompt does not change in testing environment.
In below pictures I have changed the words "hello world" with "Hey Dude" for both fulfillment and console output. I would expect Testing Prompt to respond with "Hey Dude from fulfillment and Hey Dude from the console!" But it does not. Instead it does not reflect any recent changes.

I think there may be two slightly different (but sometimes related) issues going on here.
The first is that there are known problems with the simulator being slow to pick up on updates, or them not seeming to show up. The second has to do with making sure you're deploying changes from the build-in code editor.
I don't have a clear answer to the first problem, although I know they're looking into it. I find that I can make some changes and they may not be noticed, but I know they have been picked up if I see the "Your preview is being updated..." spinner appear. There are other spinners that sometimes appear, but unless it explicitly says that it is being updated - the updates aren't always picked up. (Sometimes they are, however.)
Usually, if I don't see this, I'll go back and force an apparent change (delete a character from a webhook handler name, then add it back) and go back to the simulator. In general, this time it will say it is updating.
If you're using the Cloud Functions editor, you need to do three things:
Save the changes. You'll do this by clicking the "Save Fulfillment" button, but this only saves it so you can leave the editor. It doesn't mean that the simulator has access to it yet.
Deploy the changes. This deploys your code to Cloud Functions so they can be run. Note in the illustration that it says the code is saved, but not yet deployed.
Wait till the changes are fully deployed. Deploying takes time, and until it is completed, it won't be available in the simulator. While deploying, it lets you know.
Once it has deployed, however, the message changes, and you the impacts should be available through the simulator (although you may still need to see the "being updated" message to be sure).
Remember, however, that you don't need to use the "Cloud Functions editor" in order to deploy a webhook. You can deploy a webhook on any web server where
The host is public (so has a public IP address that Google can reach)
It can handle HTTPS with a non-self-signed certificate
You can even deploy yourself to Cloud Functions for Firebase, which is the same service that the Actions Builder uses. This way you have the URL set once in the Actions Builder and, once it is set, you won't need to change it.
But you'll still be able to change your code by managing your own deployment separate from Actions Builder.

Related

Problems with MS TFS 2018's Dashboards, Build Pipelines, and Icons

I am having some recent problems with TFS 2018 that have escaped my ability to troubleshoot. The application runs on a Hyper-V VM hosting Server 2019 and connects to a separate MS SQL 2016 database over on a separate Windows 2019 VM.
A few weeks ago we migrated our database server over to a new machine which, over the course of setting our existing TFS server up to use the new database, required us to run though the TFS setup wizard again.
Everything was fine for about a week when we started to have issues, specifically with the TFS web front-end we use. First we lost various icons on the webpage, with the browsers (Chrome, Firefox, etc). replacing them with rectangles:
A little while after that we lost our project Dashboards, and the whole dashboard page is just blank now. A little while after that, our WIP build/test automation feature also lost its management section of the site.
Other than these things not displaying, things generally "work" - the source control stuff functions, work items can be interacted with, etc. It's just that the interface is clumsier without the icons (which extends to every icon within every work item type, not just the banner I shared) and we can't get our automated test reports without the site's front-end for it. The latter is the real show stopper.
I spent some time troubleshooting and at best was able to figure out a maybe solution for the icon problem: https://social.msdn.microsoft.com/Forums/en-US/c1038468-9d94-473d-a020-254789e9a19b/tfs-2015-update-2-missing-icons?forum=tfsgeneral
This seemed to do the trick for just the icon problem, though some time later they disappeared and reappeared when people were refreshing pages. I'm still unsure if the re-failure was a fluke or not, as we rolled back the VM snapshot the changes were made on shortly after.
Using Chrome's developer tools, it seems like the lack of dashboard data is related to issues retrieving content on the host server for a cause we cannot determine.
Here is what shows up on the DevTool in Chrome for our main project's Dashboard:
What's interesting is the error claims widget.css is either not present or empty. Neither of these are the case as I can find the file and read data in it.
I recognize MIME types as a thing that shows up in IIS but I don't know what to do with the information. Should I be adding .css to the MIME Types list within IIS? Maybe that was set and the wizard reverted it?
Here's what shows up in the Builds section:
Thing is, I don't know what to do with this information. I found some vague hints online from people having similar issues with sites they were themselves coding (which stated the errors in question were red herrings), but this TFS front end is not something I've created and I had not any idea what to do with the information shared.
Does anyone have an idea of what might have gone wrong with the dashboards here? I have run out of ideas and can't figure out a different attack angle to approach this from.

Forced to make intents global when used as custom intents in scenes

I'm currently migrating from Dialogflow to Actions Builder, things have gone well so far however after adding custom intents to my scenes the test simulator prompts me with the warning "Intent 'intent_name' is used as an action, but not added as a global event." blocking my ability to test the action until I configure the intent as global.
Since configuring intents as global enables implicit invocation it seems inappropriate to apply it to all intents, especially those which have no business being accessed implicitly.
Has anyone experienced this warning? Any tips to get past this error without configuring the intent as global?
Cheers
Additional info on scenes and deep link actions:
On enter -> Welcome intent:
Enter condition: Call 'Welcome' webhook.
User intent handling: When 'intent_name' is matched -> call webhook 'intent_name'. No transition, no web based send prompts.
Launch test simulator, try to enable test, get prompted to make 'intent_name' a global event.
Within the intent, 'is this a global event' no is selected as it's mid conversation not suitable for implicit/deep-linked entry. No errors/warnings reported in the sdk for the intent.
Additional project info:
Initially created the project last year by using the built in migration tool; migration efforts stalled as the test simulator ran into other issues which eventually resolved themselves https://github.com/actions-on-google/assistant-conversation-nodejs/issues/9
After the above blockage I had continued Dialogflow development, so a new migration was necessary due to significant changes. Rather than use the built in migration tool I chose to delete the previously imported intents & types then manually imported the data using the Gactions CLI tool.
Perhaps it'd be easier to just use a new Google project? I don't see any misconfiguration in the intent nor scene, so perhaps the project is corrupted somehow?

Actions on Google launch custom action (not main actions.intent.MAIN)

I have an Actions on Google agent built with DialogFlow with several actions (e.g. actions.intent.MAIN and get_day_of_week).
When I created my agent 3+ months ago, I could invoke the agent in two ways:
With the agent's name (e.g. "Talk to My Agent"), which would launch the actions.intent.MAIN intent.
With the grammar specific to an action (e.g. "Ask My Agent what day of the week is it"), which would launch the get_day_of_week action.
Without changing anything, launching the agent with a custom action (#2 above) stopped working. Is there a way to debug this?
In the simulator, when I type "Ask My agent what day of the week is it", the request and response are empty, and the dialog in the simulator says, "The agent returned an empty TTS". I'm not sure if the request and response are empty because the simulator doesn't support launching custom actions, because Actions on Google stopped supporting launching custom actions, or because my agent broke (even though I didn't change anything). For what it's worth, this same problem happened to two distinct agents that I have.
I'm guessing there's nothing for you to debug; this appears to be a Google bug. I had the exact same thing happen to me on an action we have in production. There's no way I could have changed anything.
Here's my Reddit post, if you wanna follow.
Interestingly, the deep links don't work for me (and several others), but do work for my co-worker. And one of the commenters says deep links don't work for him unless he types it in the console. 🤷‍♂️

Dataprep Dashboard slow

I am having problems with performing actions on the Dataprep dashboard. In particular, when I try to merge two datasets, its just loading there for >20 minutes without a result. I tried to also add a new receipe or dataset and I only get that it gets stuck at 99%.
What is wrong with Dataprep Dashboard?
While I can't provide a specific reference, I've found that this can happen when you have a bad cache entry in your browser (either from a recent update to Dataprep or something related to the Flow itself).
Our team has found that this can often be resolved, but you can test that theory by opening a new Incognito window in Chrome (or another browser altogether) and loading your recipe there. If the problem goes away, it's likely that it was a caching issue—so you can just clear your cache for the Dataprep domain. (This has the advantage of also isolating things like LocalStorage.)
If you don't want to have to log in to your account from another window, you can also try hard-refreshing the page (Windows/Linux: Ctrl+F5, Mac: ⌘ Cmd+Shift+R)—or opening the Chrome Dev Tools, switching to the Network panel, checking the "Disable cache" button, and reloading the page. The plus here is that it allows you to test the issue without breaking your ability to recreate it (like if you want to submit a bug report).
Best of luck!

Old version of Unity WebPlayer binary gets loaded from cache, using Facebook Unity integration

We are in the process of switching our game from our own canvas page, to using the Unity integration on Facebook. However, during our development tests we have occasionally run into a problem where the webplayer binary gets loaded from the browser cache, even though a newer version was uploaded to the server.
Manually clearing the browser cache solves the problem, but that's not exactly a solution we want to present to our users all the time. Previously, when we embedded the unity object ourselves, we also passed in a ?version flag with the url, which would keep it up to date, but we can't exactly do that anymore with integration turned on, unless we manually update the binary location link in our app settings every time we do a build (Kind of a pain in the butt, since the rest of our build process is automated)
Is there any way around this?
Thanks.
We have exactly same problem and I can say only solution is to change the binary file name everytime you made a build but only for your production environment. Here is our solution:
We have development (sandbox mode)and production environment and one app for each one.
For development, we ran everything locally, we have buildpipeline that builds and copies the binary file to appropriate place with the same name always like MyGame.unity3d, and we have set our browsers not to cache anything, that solves the problem for testing.
For production, our buildpipeline constructs the binary name with:
YourGameNameMainVersion.SubVersion.TimeStamp like: MyGame0.3.1006-1004.unity3d and this one is manually set from facebook's app settings page in every build. But this is not a big problem as you won't want to make a new build more than once/twice a day for production.
We've found that all that needs to be done is to add "?version=xxxx"
This works, and perfectly fine. I do now, is only change version (?version=1.52) in main link:
<a href="http://cometoplaynow.com/Labyrinth3D/Labyrinth3D.html?version=1.52">
Have advantages using it:
Changing only 1 number - link is still the same (if people open game from your site)
Savings will stay as it was (if you change .unity3d you will lost PlayerPrefs).