 getting ready for the meeting, the first meeting to review the RFQ and in-depth is tonight with one of the CN's out of India. So we we've just kind of reviewed stuff and made sure we had all our questions together and everything. So I'll be doing that in a couple hours. So yeah, so I didn't really do much on the voice side things or anything like that today. All right, well, I'm just I'm working on the conversion of the wiki skill to become a common query skill. I spent the last couple of days understanding intent parsing and how things are passed off and what fallback queries are and all that good stuff. And I found a bug in the question and answer skill, which is I guess, basically the common fallback skill for queries, but it ends up I guess being a common query thing and it sends out the messages for fallbacks when it gets its turn. But I refactored the loop because right now it breaks on the first match found. And I just said, go ahead and, you know, run through them all. So I can see what intense one tent matches they return to confidence levels. I noticed that it's always timing out after the third or fourth. So it's kind of weird how it works. It actually works like you would expect because not because it's coded right. So what it's doing is it's actually timing out after the third or fourth, which is it never finds anything in fallback anyway, once it gets done, unknown fallback. And because it always returns null intent matches, why it bothers, I don't know. But it always says, I couldn't find that. Or I didn't, you know, whatever it is, I don't know about that, whatever, which is interesting because now that they're going through all of them, and it's timing out on every one, you'll hear the answer before or after it'll say, I couldn't find that. And then it'll repeat the answer or play the answer. So I looked and it's a very tight time. It's like one millisecond, which is ridiculous for these things to get back and sending stuff on the message bus and whatnot. So anyway, I can put it back. I'm just I always instrument line up to document and log so I can see what's going on and I sort my log so I can see in time. And yeah, so I'm working on that. I mean, really at the end of the day, the work product tomorrow will be I'll have the wiki skill converted to common play framework. And that'll be that. And then I'll move on to something else. But I wanted to understand why I was seeing so many intent clashes. I mean, I knew it because it wasn't basically disabling any intense ever. And they were all open to everything that I can see. Now that I understand the code, I can see exactly what's going on where. And yeah, Converse is a interesting concept. I'll leave it at that should be deprecated, but I'll leave it at that. And I'll move on. So whoever goes next. Well, actually, I'll go next because speaking I kind of follow on from what you're saying. So I've been down a small rabbit hole on for the last day because of intense and, you know, why certain time or 10 start hitting and stuff. So what I've done, and I started this back with the weather skill, but didn't do a great job of it. And now that I see I need it again, I'm doing it. I'm doing a better job of it. I created a debug logging branch of Adapt. And I'm putting a metric fuck ton of log logs in this branch. Because Adapt is kind of complex and the boardings of the very older kind of complex. So unless you really know what's going on, it's hard to follow. So so yeah, I've been doing that just so I can see what is happening in the intent parser when I have a question about whether or not intense working, the way it's supposed to, or if there's an intent clash, I can see the differences between the intense and see why the clash is happening. And I may do something similar with PDACIUS and I may do something similar with core even the intense service because more happens after I wouldn't waste my time with it. I wouldn't waste my time with PDACIUS. It matches rarely, if ever anything. And on top of that, it's not I haven't gotten into it. And it's not clear to me that it's not getting some sort of feedback because it is a neural network. And so it wouldn't surprise me that I could be but the thing is they're PDACIUS is actually our top a high PDACIUS intent match is will turn a higher in the hierarchy of intense PDACIUS intent match high is above an adapt match. Yeah, the next time you see a PDACIUS high intent match, let me know. But the thing is, I noticed also the fallback skills, there's only two of them right now, which is duck duck go and Wolfram. But they are prioritized based upon reverse append order to the array. So, you know, they basically all go in from the common play framework as a, I think it's either a five or a 50 priority. But then it says, well, if there's any others in here of the same priority, bump the priority by one, are there any of those will bump it by one. Any of those? No. Okay, now go ahead and instantiate. So they actually end up going in in the reverse append order. But yeah, I mean, the bottom line is what Josh said was absolutely true. And he's been saying it for years, evidently, which is you can only get so far with flat reg X intent matching. And I tried to address that a little bit with the original PR, where we would basically have that hierarchical state kind of enabled versus disabled so that you could reduce them. But you're going to see all sorts of intent matches. And the wrong way to go about it is to start, I know what everybody tries to do. So it's going to be interesting. I've seen it. And it's going to be, you know, for this, let's increase the confidence level, but that's just a finger in the dike kind of thing. So there's going to be a lot of that. You know, the other thing is, we've never ran with margin on. And that opens up a whole completely different set of behaviors from the system. So now that I know it better from the foundation and the guts, it doesn't surprise me that it was working just quite well the way it was because it could was really single threaded, it could do one thing at a time. You know, you had kind of maybe, you know, alarms and timers can interrupt, but really pretty much all these skills, once they got hold, they just didn't allow you to interrupt them. They didn't have to deal with being interrupted or anything like that. It was very simplistic and single level. Yeah, so we probably might want to go back to turning margin off. But anyway, yeah, you're going to find a lot of that, I wouldn't waste a lot of time in those intent parses. I would, what I did is I just focused on what they're reporting back regarding confidence levels on their intent matches to see what's going on. And you can just, that's in the intent service dot pi in the skills sub-directory where you can log that. Yeah, let me figure out how these things work really well. And I need to figure out what they're doing on the inside. And part of the problem is that, you know, some of the data structures they're passed around adapt are dictionaries of lists of lists of dictionaries of lists of dictionaries. So, you know, trying to figure out, you know, what is what, what's doing what and why is takes a lot more time than I want to say. Yeah, I don't even know why we have a fallback unknown skill and a fallback skill base class at all. There were two of them, one of them was deprecated. We have newer one now. But they both really, to the best of my knowledge, I don't know what purpose they serve. But anyway, and we hit it, like three times, we hit an unknown, like fallback high priority medium and low and they never return anything, it seems, except nuns or structures of nuns. So I don't know, maybe I'll look service announcements for all your developers out there. If you're going to nest dictionaries, don't go more than one or two deep or I might confine you and kill you. Yeah, well, that's a good point. Anyway, yeah, it's going to be interesting depends upon how complex our UI is going to get in our use cases. But the good news is from Derek that I think it's going to be pretty simplistic. We play down to our level of competition, we should be fine. But yeah, I wouldn't spend too much time in predation and adapt it pretty straightforward because adapt is just reg X matching, basically. And word, some of its word count, which is kind of crazy, like three of the four words match. So I have a higher confidence level and stuff like that. It's but I don't know, it's done a lot of time in there. That's not going to be where you're going to find your problems. They're going to be at a higher level where things are not getting or getting clashed, right? Or it could even be that converse is hanging around. And I haven't looked at the converse methods and those skills that that are seemingly always in there. But, you know, the last guy that was pushed into the active skills array is going to have first whack at everything. So anyway. All right. So yeah, that's pretty much been means figuring out intent parsing. I should finish that up today. And then once I have all this written, I should use it whenever I want to use it to figure out what's going on. And another plug that if there are things about intent parsing that are not included in the documentation, which is probably true, that we should, you know, add them. So any notes and stuff. And I still have that that confluence document out there for intent parsing that may or may not have good stuff in it for documentation. I don't know if you've had a look at it or not. But yeah, I'm sure that we can improve the one that you did. Yeah, I didn't comment. Yeah, I think yeah, I was talking again as far as including any parts of the documentation. Yeah, let's have a look. Cool. By the way, I won't actually kill anybody. I was a very thank you. Just throw that out there. The figure of speech. And in terms of the unknown fallback, you know, that that provides the the last layer of, you know, what Microsoft should do when it doesn't understand something. So, you know, but it always returns a null empty structure. I haven't I haven't looked at it. But, you know, obviously, we're not doing anything at the moment. But there's the whole persona project, which, you know, theoretically would would take in those things that don't get answered and then learn from that and slow again. Well, I mean, that's that's what you have with Padatius, I believe. Padatius is designed to have a feedback loop so that it can learn. It's a neural network and it seems like it gets trained via the message bus at boot and never again. Yeah. Yeah. Yeah. So there's currently no mechanism for it to actually like add in new new data and learn over time. But yeah, that there is there is a project that exists that was doing that. It's just not the priority at the moment. FYI also got an email from somebody not a well PR email where someone thinks we need to rename all of our pre-cups, so it's worth. Yeah. Yeah. If you're not going to respond, I'll I'll go in there and. Yeah, just don't kill anyone. Anyway, so for me, I empathize with them. I'm not a murderer, I promise. I have one that has the repository is one name. The skill name is another name or the director is another name, but the class instantiates is something different. And I think that's the question answer. Well, I think we have any problems with skills period. What are the three problems in computer science? Like naming things, naming things and naming things. No, I think it's naming things and off by one errors. Anyway, so today for me was we released adapt zero point four point two, which included some some bug fixes primarily and lots of documentation updates, you know, for the doc strings and things inside of it. I we've had an issue get raised around licensing of a third party package that I sent the email about. Derek, I didn't include you in that email, but it's boring stuff that you don't need to worry about. So don't. Anyway, I'm writing a response to the PR at the moment to the community you're aware about what's going on there. And what else are they? I started going back to the now that we've merged Microsoft now that we've released Microsoft Core 20102. I started going through the old PRs again that we might want to merge and fixed up fixed up a very old one that was like so close to merging that the community member just, you know, dropped off the radar. But essentially, it just checks for for ABX instruction set in the CPU info when installing because that's needed for precise. And so hopefully with this merged, it will just reduce the number of people that come to us saying their things broken when really their machine is just 10 years too old. Yeah. And I've also been in touch with well, reached out to Matamost so we can sort out some new licensing situation there. As we're hitting the limit on Matamost and that's about it for today, I think. My plan at the moment is to keep pushing through like do some PR merging in core because there's a whole bunch of stuff that's sitting there waiting for us. That's been waiting for the new major release. So I guess on the Matamost thing I brought that up a week or so ago. And there are several hundred people who haven't logged in since 2017 and several thousand who haven't logged in since 2018. So before we go paying a bunch of money for more licenses, I think I haven't been able to do it yet. But I got to go ahead and Michael. Yeah, I think Michael said just whack everybody that hasn't been in 2017. Right off the bat. Yeah, we're not whack. But by whack, of course, we mean disabled. So if they ever really need to come back, that their their ideas till they're really active. Right, right, right. No killing. Please. I watch Al Capone and be untouchable.