From f0e1e932e2dddef19eb406bd5655b8620c49d4b8 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Wed, 7 Oct 2026 02:19:53 +0600 Subject: [PATCH] =?UTF-8?q?[2026-10-07]=20eagle:=20work/zoom-transcripts/2?= =?UTF-8?q?026-10-06=20Apple=20Weekly=20Team=20Meeting=20-=20Zoom=20ID=202?= =?UTF-8?q?026-10-06=2020=2001(GMT+6=2000)=20280BehgySpW8LynSS473nQ/transc?= =?UTF-8?q?ript.json=20work/zoom-transcripts/2026-10-06=20Apple=20Weekly?= =?UTF-8?q?=20Team=20Meeting=20-=20Zoom=20ID=202026-10-06=2020=2001(GMT+6?= =?UTF-8?q?=2000)=20280BehgySpW8LynSS473nQ/transcript.md=20work/zoom-trans?= =?UTF-8?q?cripts/2026-10-06=20Dominik=20Kapusta's=20Personal=20Meeting=20?= =?UTF-8?q?Room=202026-10-06=2015=2012(GMT+6=2000)=20NtgNJ-Y-Qxy5sMGMjnguk?= =?UTF-8?q?w/transcript.json=20work/zoom-transcripts/2026-10-06=20Dominik?= =?UTF-8?q?=20Kapusta's=20Personal=20Meeting=20Room=202026-10-06=2015=2012?= =?UTF-8?q?(GMT+6=2000)=20NtgNJ-Y-Qxy5sMGMjngukw/transcript.md=20work/zoom?= =?UTF-8?q?-transcripts/2026-10-06=20Jacek=20=C5=81yp's=20Zoom=20Meeting?= =?UTF-8?q?=202026-10-06=2020=2044(GMT+6=2000)=20gUhtLoqRTfSsTbZsann73A/tr?= =?UTF-8?q?anscript.json=20work/zoom-transcripts/2026-10-06=20Jacek=20?= =?UTF-8?q?=C5=81yp's=20Zoom=20Meeting=202026-10-06=2020=2044(GMT+6=2000)?= =?UTF-8?q?=20gUhtLoqRTfSsTbZsann73A/transcript.md=20work/zoom-transcripts?= =?UTF-8?q?/2026-10-06=20O-E=202026=202026-10-06=2021=2055(GMT+6=2000)=20p?= =?UTF-8?q?EKfS6rcRlWzQyGKBbqqFw/transcript.json=20work/zoom-transcripts/2?= =?UTF-8?q?026-10-06=20O-E=202026=202026-10-06=2021=2055(GMT+6=2000)=20pEK?= =?UTF-8?q?fS6rcRlWzQyGKBbqqFw/transcript.md=20work/zoom-transcripts/2026-?= =?UTF-8?q?10-06=20SRE=20Incidents=202026-10-06=2021=2021(GMT+6=2000)=20Sr?= =?UTF-8?q?YbgHxMSlWioRrr4PGz2Q/transcript.json=20work/zoom-transcripts/20?= =?UTF-8?q?26-10-06=20SRE=20Incidents=202026-10-06=2021=2021(GMT+6=2000)?= =?UTF-8?q?=20SrYbgHxMSlWioRrr4PGz2Q/transcript.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transcript.json | 764 ++++++++ .../transcript.md | 164 ++ .../transcript.json | 1479 ++++++++++++++++ .../transcript.md | 307 ++++ .../transcript.json | 1534 +++++++++++++++++ .../transcript.md | 318 ++++ .../transcript.json | 349 ++++ .../transcript.md | 81 + .../transcript.json | 894 ++++++++++ .../transcript.md | 190 ++ work/zoom-transcripts/index.json | 40 + 11 files changed, 6120 insertions(+) create mode 100644 work/zoom-transcripts/2026-10-06 Apple Weekly Team Meeting - Zoom ID 2026-10-06 20 01(GMT+6 00) 280BehgySpW8LynSS473nQ/transcript.json create mode 100644 work/zoom-transcripts/2026-10-06 Apple Weekly Team Meeting - Zoom ID 2026-10-06 20 01(GMT+6 00) 280BehgySpW8LynSS473nQ/transcript.md create mode 100644 work/zoom-transcripts/2026-10-06 Dominik Kapusta's Personal Meeting Room 2026-10-06 15 12(GMT+6 00) NtgNJ-Y-Qxy5sMGMjngukw/transcript.json create mode 100644 work/zoom-transcripts/2026-10-06 Dominik Kapusta's Personal Meeting Room 2026-10-06 15 12(GMT+6 00) NtgNJ-Y-Qxy5sMGMjngukw/transcript.md create mode 100644 work/zoom-transcripts/2026-10-06 Jacek Łyp's Zoom Meeting 2026-10-06 20 44(GMT+6 00) gUhtLoqRTfSsTbZsann73A/transcript.json create mode 100644 work/zoom-transcripts/2026-10-06 Jacek Łyp's Zoom Meeting 2026-10-06 20 44(GMT+6 00) gUhtLoqRTfSsTbZsann73A/transcript.md create mode 100644 work/zoom-transcripts/2026-10-06 O-E 2026 2026-10-06 21 55(GMT+6 00) pEKfS6rcRlWzQyGKBbqqFw/transcript.json create mode 100644 work/zoom-transcripts/2026-10-06 O-E 2026 2026-10-06 21 55(GMT+6 00) pEKfS6rcRlWzQyGKBbqqFw/transcript.md create mode 100644 work/zoom-transcripts/2026-10-06 SRE Incidents 2026-10-06 21 21(GMT+6 00) SrYbgHxMSlWioRrr4PGz2Q/transcript.json create mode 100644 work/zoom-transcripts/2026-10-06 SRE Incidents 2026-10-06 21 21(GMT+6 00) SrYbgHxMSlWioRrr4PGz2Q/transcript.md mode change 100755 => 100644 work/zoom-transcripts/index.json diff --git a/work/zoom-transcripts/2026-10-06 Apple Weekly Team Meeting - Zoom ID 2026-10-06 20 01(GMT+6 00) 280BehgySpW8LynSS473nQ/transcript.json b/work/zoom-transcripts/2026-10-06 Apple Weekly Team Meeting - Zoom ID 2026-10-06 20 01(GMT+6 00) 280BehgySpW8LynSS473nQ/transcript.json new file mode 100644 index 00000000..186cc1d4 --- /dev/null +++ b/work/zoom-transcripts/2026-10-06 Apple Weekly Team Meeting - Zoom ID 2026-10-06 20 01(GMT+6 00) 280BehgySpW8LynSS473nQ/transcript.json @@ -0,0 +1,764 @@ +{ + "schema_version": 1, + "note_id": "280BehgySpW8LynSS473nQ", + "title": "Apple Weekly Team Meeting - Zoom ID 2026-10-06 20:01(GMT+6:00)", + "meeting_date": "2026-10-06", + "source_url": "https://us01mynotes.zoom.us/280BehgySpW8LynSS473nQ", + "transcript": [ + { + "time": "20:03:20", + "speaker": "Dan King", + "text": "Thank you, Jonathan. Appreciate the time. Uh, sorry if it is quiet because I'm here, new, uh, new guests and everything. Yeah! I got just a couple of slides to share. But. She go. fairly quickly, and then we can do some some Q&A at the end. If. I'm open for any any questions that you've got. And so, you know, we are getting into our performance review cycle, and so want to, give you a heads up on what to expect here." + }, + { + "time": "20:03:58", + "speaker": "Dan King", + "text": "And so, for this review, uh, first, you know, who… who's gonna be in it? And so, everyone who joined on or before April 26th is gonna be eligible for the performance review process. If you joined after this date, you will still, you know, go through the continuous feedback process. But the performance review process, will not be, will not be for you. Uh, it is going to cover the period from February 1st of this year to October 25th. And so it's obviously a shorter period than usual, less than a year. And, you know, this is an adjustment, you know, moving forward for, you know, when we can expect a performance review each year, you know. One of the. One of the years, uh, when we made the change, it was gonna be short, and so, uh, you know, it is this one. If you have any questions, you know, at the end about that, you know, let me know. uh… Again, yeah, if uh… So I hit on who was not gonna be on this round, and so. What you can be expecting from the timeline of this year is we are gonna have training, uh, you know, a more in-depth training, uh, that Kiara is going to lead. That's gonna be October 15th, 16th, and the 22nd. Uh, each of those days is gonna be the same training, and so, you know, pick the day and time that fits best for you. Uh, self-assessments will be due October 26th, and then, uh, CA assessments will be due, you know, October 27th through the 29th. It'll then go through functional calibration October 30 to November 3. The calibration committee will meet on, November 4 to the 6th. And conversations, uh, will happen, you know, between yourself and your CA, uh, November 9th through November 13th. Uh, it's a shorter timeline than usual, uh, to help support that. If you have anything that is due on that timeline, it will. Uh, it will be your one must that day. I've gotten some questions like, does that mean you should be canceling meetings and things like that? I I don't personally think that's what it means. You know, I wouldn't go and, like, proactively cancel your meetings on those days. But, you know, treat it like you would, your one must for the day. So, you know, make sure that you have time for it. I think self assessments potentially like an, you know, couple hours or an hour or 2 for that ca assessments potentially up to like 3 h. So just make sure that you have time for that day. But but, you know, we're gonna leave it up to you on on how you make that time. So what can you do now? Uh, we are getting into our continuous feedback, like, the second round of it. Um, it should be around this week, uh, but any time before, uh, the performance reviews, um, we are going to look for an update for growth areas and shoutouts. uh, don't clo- remember, don't close the task. All you have to do is replace the text that's in there, and then it'll automatically get saved, um, you know, into the history. Uh, we're looking for two pieces of peer feedback, uh, for each person, and so that does include the feedback that you, uh, may or may not have received in August. Um, so make sure that you are aiming for having two pieces of feedback going into your performance review. And then, you know, just a heads up to keep your work summaries up to date. Uh, everything may not be captured in there. Uh, you know, it could be a quick win, or what have you, that doesn't get captured. Um, put it in the notes. Uh, the notes do not get over, uh, you know, they don't get overwritten. each day. Okay. So just to reiterate, you know, next step, sign up for one of the training sessions. Kiara is having open hours, on Thursdays from 11 to 12, Eastern. And so, great time to ask any questions if anything comes up after this session, or you go to a training, and uh… you know, you're thinking about it, and a question pops up, um, you know, those open hours are a great time to, uh, to ask her something. Um, I'm also available if, you know, any questions. Uh, pop up for you. If I don't have an answer, you know, I can… I can definitely get you the answer, or point you in the right direction. Okay, I'm gonna stop sharing, uh… And, uh… open it up for any… any questions that anybody may have, uh, around either performance reviews or the continuous feedback process. Obviously, you know, it was continuous development for a while there." + }, + { + "time": "20:09:02", + "speaker": "Dan King", + "text": "Yep. Yeah, pre appreciate that question. So make sure that you have your. you put in your out-of-office, um, for those dates. Once you have your out-of-office in, uh, it should… it should trigger something on our side where we will, uh, adjust the dates for, um. For you, depending on who you are. So, uh, it could be your self-assessment, it could be your CA assessment. Uh, if it is a CA assessment. what that will trigger is for your advisees. We will also push that. Yeah, we'll push the self assessment for them forward a bit. Uh, as well." + }, + { + "time": "20:09:41", + "speaker": "Elle Sullivan", + "text": "Купить?" + }, + { + "time": "20:09:53", + "speaker": "Dan King", + "text": "I believe I believe everything should get pushed forward at that point. I know. Yeah, I know for sure. The Ca assessment and self assessment." + }, + { + "time": "20:09:56", + "speaker": "Jonathan Jackson", + "text": "Какая история?" + }, + { + "time": "20:10:02", + "speaker": "Dan King", + "text": "I I wanna say the functional calibration too. If for some reason that's not the case, I'll I'll get back. Yeah. Yeah. That makes sense. Uh, for sure." + }, + { + "time": "20:10:25", + "speaker": "Jonathan Jackson", + "text": "And then, I just sort of… I think I know the answer to this question, but maybe not everybody does. For our own self-assessments… Sorry, there's a video that's nearby. I hope you can hear it. Um, for our own self-assessments. Should we be doing that work primarily in the work summary doc in the notes section or is there somewhere else we should be putting that? Because I think a lot of people are going to get started on that like basically now. I actually recommend everybody start basically now so they have plenty of time to get that in good shape." + }, + { + "time": "20:10:46", + "speaker": "Dan King", + "text": "The, the self-assessment? Yeah, the self-assessments will be its own task. There'll be a self-assessment task. I would for sure leverage your work summaries for it." + }, + { + "time": "20:10:58", + "speaker": "Jonathan Jackson", + "text": "Okay." + }, + { + "time": "20:11:05", + "speaker": "Jonathan Jackson", + "text": "Okay." + }, + { + "time": "20:11:06", + "speaker": "Dan King", + "text": "But there'll be a self-assessment task that's assigned to everybody." + }, + { + "time": "20:11:09", + "speaker": "Jonathan Jackson", + "text": "Right, so anybody who wants to start now can just sort of keep their own notes somewhere and put it in that way." + }, + { + "time": "20:11:14", + "speaker": "Dan King", + "text": "Yeah, and also, in the performance review AOR, there are the tasks available there. Um… and and looks like Brendi can can share, but also in the Aor you can. You can go there, and you can." + }, + { + "time": "20:11:24", + "speaker": "Jonathan Jackson", + "text": "Sweet. Okay." + }, + { + "time": "20:11:29", + "speaker": "Dan King", + "text": "Try to duplicate it." + }, + { + "time": "20:11:30", + "speaker": "Jonathan Jackson", + "text": "Oh, awesome. Okay, thank you." + }, + { + "time": "20:11:42", + "speaker": "Pikor", + "text": "Джастфорда, Рефренс?" + }, + { + "time": "20:11:42", + "speaker": "Dan King", + "text": "Yep. Yeah. Absolutely. I can drop it into the, into your agenda task, so everybody has it." + }, + { + "time": "20:11:44", + "speaker": "Pikor", + "text": "Клуб, танц? Тэнкс?" + }, + { + "time": "20:11:50", + "speaker": "Dan King", + "text": "If that works." + }, + { + "time": "20:11:55", + "speaker": "Jonathan Jackson", + "text": "Yeah, that'd be perfect. Thank." + }, + { + "time": "20:11:57", + "speaker": "Dan King", + "text": "Okay. Any other any other questions? Definitely appreciate the ones I've got so far. Okay. I am gonna jump to, to the Android team meeting. So just give me a little bit of time, on dropping this into your agenda, but I'll I'll have definitely do, this morning." + }, + { + "time": "20:12:19", + "speaker": "Jonathan Jackson", + "text": "Cool. Thank you, Dad. Appreciate it. It's him. All right. So welcome, everyone. We'll move on with the regular meeting from here. Remember that next week is our next team retrospective. A link to that task is at the top of the current meeting agenda if you need it and want to drop stuff into the early. Um, do please try to populate that before the meeting, so that we can spend our time together talking about what's in the input for that, rather than coming up with that input. Uh, we got another week to think about what's happened in the last… The last, um… Eight weeks together. Uh, quick review of rotations. Uh, Yacek, you are on iOS Triage this week, uh, followed by Anya next week, and then El the week after that. For macOS triage, Fernando is on this week. James is covering next week and then on the week after that. I think we did a swap there because of Canadian Thanksgiving. Thank you all for that. We did a swap on iOS as well. Thanks for the flexibility, everybody. Um, for iOS release, Hanyu is this week, uh, followed by Marius, you're up next week, and then Sam the week after that. And for macOS release, Alex is on this week, followed by Dominic, and then Diego. Um… A couple of you have reached out about holiday interrupts towards the end of the year. I'm still planning in the next week or so to put together another post about release schedules around the holidays, and then we'll use that to figure out how we want to adjust schedules based on people's. out of office and the releases that we're doing and how we change that schedule. So I know that's coming. Um… Oh, and I actually was looking for a possible swap over the December to January week stretch. If anybody's willing to hop into that now, that would be great. But we'll do more coordinating around the holidays as well. Um… I'm going to hop down. Jacek, do you want to talk about your other time sensitive topic and then we'll go back to announcements and everything else?" + }, + { + "time": "20:14:45", + "speaker": "JŁ", + "text": "Yes, thank you. Uh… Yeah, so as you mentioned, I'm on triage this week. Sorry for bringing bad news, but we may have an incident on iOS. Uh, which is related to some changes to onboarding, and apparently you can now, uh. send a message to Duck AI, and then, like, run a fire over it, and it doesn't work, it keeps in the loop, so it sort of breaks trust in our firing capability, and also." + }, + { + "time": "20:15:16", + "speaker": "JŁ", + "text": "yeah, it's a bit annoying, I guess. So I've run it over the severity matrix, and it's actually, like, for me, it was on the edge of the major incident. So I think we should actually like jump on it right away. a bit of context. Some more reports came today. like they they allowed me to to calculate it better. Yeah. So so probably the the next obvious question would be whether it's behind some feature flag, whether whether we can turn it off like immediately. And so would be good to like gather a few people, perhaps like. Switch a room, uh… Yeah, I don't know, like… I think Alex knows more. Apparently, there's a fix, too, for it, so maybe, Alex, sorry for putting you in the spotlight, but maybe you know more about, like, what's the issue, and if you could say anything." + }, + { + "time": "20:16:18", + "speaker": "Bartek Waresiak", + "text": "Игнор. Инцидент?" + }, + { + "time": "20:16:20", + "speaker": "JŁ", + "text": "Yeah. Okay." + }, + { + "time": "20:16:44", + "speaker": "Alex Martemyanov", + "text": "Yeah, so, uh… Let me… let me bring this some clarity, uh, to try to be on the same page, so it's not, uh… the… FHIR loop, as may sound, at least as it is reproduced, it's a loop on a startup. So basically, we got a FHIR onboarding, and if you don't follow the next onboarding screen. Yeah, so the… onboarding page restoration would restore the same file onboarding on the next app relaunch. So it should not hopefully affect everybody, and just if you stay on that AI page and the app is relaunched. You will land to the fire onboarding and only in the case that you did not complete the onboarding normally. At least that's, uh, what… Uh, the fix is targeting." + }, + { + "time": "20:17:43", + "speaker": "Bartek Waresiak", + "text": "And like, is it controllable with the feature flag?" + }, + { + "time": "20:17:49", + "speaker": "Alex Martemyanov", + "text": "Oh. Sure. I think it should be controllable with the… Uh, onboarding, uh… The refined onboarding feature flag in the whole problem." + }, + { + "time": "20:18:05", + "speaker": "Bartek Waresiak", + "text": "So, yeah, so I would double-check. If it's controllable and we can mitigate that with the feature flag, let's do this as soon as possible, and then we can, uh… Depending on the importance of that onboarding step, treat it as a hot fix, or just… merged into the release. The thing is to reduce the chance of this happening to people right now." + }, + { + "time": "20:18:32", + "speaker": "Alex Martemyanov", + "text": "Yep, sounds good." + }, + { + "time": "20:18:40", + "speaker": "Jonathan Jackson", + "text": "Okay, so it sounds like Jacek, Alex, and Bartek, you're the group who's taking this on at the moment?" + }, + { + "time": "20:18:41", + "speaker": "JŁ", + "text": "So… Yeah, yeah, so do you all agree that we should, like, jump on it right away, like, skip the rest of the meeting, or should we, like, continue?" + }, + { + "time": "20:18:55", + "speaker": "Jonathan Jackson", + "text": "I think it's fine. I think you should make sure you get this dealt with. So if you want to add something else, that'd be great." + }, + { + "time": "20:18:57", + "speaker": "JŁ", + "text": "Okay. Okay, thank you." + }, + { + "time": "20:19:01", + "speaker": "Jonathan Jackson", + "text": "We'll miss you. Thank you. Um… Back up to the announcements section of our agenda. Mariusz, looking for some helper feedback." + }, + { + "time": "20:19:19", + "speaker": "M", + "text": "Yeah, thanks. I guess Jacek stole the show, so that's less important now. In a way, we are working on a new redesigned new tab page. And it's not yet in the internal… it's not yet enabled for internal users, but we'll… I'll be doing that in like a week. Um, and if you are working on some feature that is tangent to the new tab page, which is highly likely." + }, + { + "time": "20:19:51", + "speaker": "M", + "text": "Um… Please enable the flag. And you can feel free to just put any feedback you have on this. If you spot anything that's off, that's behaving in the wrong way, or maybe looking… Uh, looking, um… Not good enough. Feel free to just drop a comment, some screenshot, maybe screen recording." + }, + { + "time": "20:20:17", + "speaker": "Fernando Bunn", + "text": "Yes. Is the notepad page on iOS being done the same as macOS, or is it all native?" + }, + { + "time": "20:20:26", + "speaker": "M", + "text": "It's native." + }, + { + "time": "20:20:28", + "speaker": "Fernando Bunn", + "text": "Okay. Good to know. Is part of this project also adding the toggle for the KI and search?" + }, + { + "time": "20:20:40", + "speaker": "M", + "text": "the… Yes, on the NewsHub, like, in the center of the NewsHub page, if that's what you're asking." + }, + { + "time": "20:20:45", + "speaker": "Fernando Bunn", + "text": "Yep. Yeah. Yeah, because there's a lot of, uh, changes happening there. Small changes, but related to… Terms of services and warnings, other kind of boring stuff that we're working on. right now, and be good to validate if it's working there. So, yeah, I'll touch base with you." + }, + { + "time": "20:21:03", + "speaker": "M", + "text": "Cool, thanks. Yeah, the current input, Duck AI input is, not Duck AI, the…" + }, + { + "time": "20:21:11", + "speaker": "Fernando Bunn", + "text": "UTI." + }, + { + "time": "20:21:12", + "speaker": "M", + "text": "The current address bar input basically is reused, so it should be working without issues." + }, + { + "time": "20:21:17", + "speaker": "Fernando Bunn", + "text": "Cool." + }, + { + "time": "20:21:21", + "speaker": "M", + "text": "Thanks." + }, + { + "time": "20:21:29", + "speaker": "Jonathan Jackson", + "text": "Cool. Thank you. Uh… Is Alex still, no, Alex has dropped at this point. So Alex had the, oh, no, Alex is here." + }, + { + "time": "20:21:39", + "speaker": "Alex Martemyanov", + "text": "Not yet." + }, + { + "time": "20:21:40", + "speaker": "Jonathan Jackson", + "text": "Okay, do you want to, do you need to be working on the incident or is everything under control at this point?" + }, + { + "time": "20:21:46", + "speaker": "Alex Martemyanov", + "text": "Yes, I'll be working on currently investigating the feature flag issue in parallel. Yeah, got it." + }, + { + "time": "20:21:57", + "speaker": "Jonathan Jackson", + "text": "Um, you have the next two agenda items. Does it make sense for us to save those for next week? Do they need to have them this week? Like, where… how do you want to balance that?" + }, + { + "time": "20:22:06", + "speaker": "Alex Martemyanov", + "text": "I think… Hopefully, you save them the future talk, and they… And the PR is up with the fix, so…" + }, + { + "time": "20:22:15", + "speaker": "Jonathan Jackson", + "text": "All right, why don't we give you a few minutes?" + }, + { + "time": "20:22:16", + "speaker": "Alex Martemyanov", + "text": "Shouldn't take much time, I think." + }, + { + "time": "20:22:18", + "speaker": "Jonathan Jackson", + "text": "Anybody else have anything they'd like to discuss this week?" + }, + { + "time": "20:22:31", + "speaker": "SS", + "text": "I could do, I'm literally talking about it with Dominic as we speak. Uh, that PR is approved, we…" + }, + { + "time": "20:22:34", + "speaker": "Jonathan Jackson", + "text": "No, we can talk about 27.1 also." + }, + { + "time": "20:22:37", + "speaker": "SS", + "text": "Yeah, yeah, that PR is approved. I have just merged in. Changes remain to simplify the CI stuff that I was working on. Once the PR is green, I think we can merge it. I think we're good. I will probably do that and send out an Apple Diary task." + }, + { + "time": "20:22:51", + "speaker": "BA", + "text": "Is… Is this using new SDK, then, as well, presumably?" + }, + { + "time": "20:22:59", + "speaker": "SS", + "text": "Yes." + }, + { + "time": "20:23:00", + "speaker": "BA", + "text": "Is the experimental build already do it using this or?" + }, + { + "time": "20:23:05", + "speaker": "SS", + "text": "That's been using 27 for weeks, months." + }, + { + "time": "20:23:10", + "speaker": "BA", + "text": "All right, okay. I'll go test my shit there then. Thanks." + }, + { + "time": "20:23:10", + "speaker": "SS", + "text": "I've been using it for ages." + }, + { + "time": "20:23:15", + "speaker": "Dominik Kapusta", + "text": "Севен, Поинт, Оу, Райт, Эксперимент?" + }, + { + "time": "20:23:17", + "speaker": "SS", + "text": "Yep. Yes, yeah, we're not touching 27.1. I mean, it's just coming into release candidate, but we will be blocked from updating all that until OAE has done some work." + }, + { + "time": "20:23:20", + "speaker": "BA", + "text": "Right." + }, + { + "time": "20:23:29", + "speaker": "SS", + "text": "Good luck, Brendan." + }, + { + "time": "20:23:30", + "speaker": "BA", + "text": "Yeah. Yeah, thanks." + }, + { + "time": "20:23:31", + "speaker": "Dominik Kapusta", + "text": "Яс?" + }, + { + "time": "20:23:33", + "speaker": "BA", + "text": "Is that… you mean… is that related to the duo?" + }, + { + "time": "20:23:34", + "speaker": "Jonathan Jackson", + "text": "Brenda, are you figuring out what the 27th?" + }, + { + "time": "20:23:38", + "speaker": "BA", + "text": "All right. And do we have tests?" + }, + { + "time": "20:23:39", + "speaker": "SS", + "text": "As related to the Duo, exactly. Yep." + }, + { + "time": "20:23:40", + "speaker": "Jonathan Jackson", + "text": "Yes." + }, + { + "time": "20:23:43", + "speaker": "BA", + "text": "I mean, there's probably the task that I created already, right? That's sort of…" + }, + { + "time": "20:23:48", + "speaker": "BA", + "text": "I think my question really is, are people aware that there is actually some work that needs to be done for the Duo before we can upgrade to 27.1? I can make that clear in OA today. If it's not clear." + }, + { + "time": "20:24:00", + "speaker": "SS", + "text": "Yeah, I did make a task with screenshots of like, here's 27.0, here's 27.1, like 27.1 clearly has issues, we clearly need to do some work. I don't know if that's clear enough though, so do make noise about that in OA, please. That'd be good." + }, + { + "time": "20:24:11", + "speaker": "BA", + "text": "Yeah, alright, I can do that, yeah. Thanks." + }, + { + "time": "20:24:15", + "speaker": "SS", + "text": "Like we will be blocked from updating to any like 27.1 or above until we have done something about this effectively." + }, + { + "time": "20:24:16", + "speaker": "Fernando Bunn", + "text": "Okay." + }, + { + "time": "20:24:21", + "speaker": "Jonathan Jackson", + "text": "Yep." + }, + { + "time": "20:24:21", + "speaker": "BA", + "text": "Right." + }, + { + "time": "20:24:23", + "speaker": "Fernando Bunn", + "text": "I think we do have some deadlines from Apple. Not entirely sure about the dates, but I think it's April. We're going to need to start supporting… At the very least, the App Store screenshots are mandatory." + }, + { + "time": "20:24:35", + "speaker": "BA", + "text": "That's right. Yeah, I saw that today as well, yeah. So we've got no choice now but to deal with this stuff. The problem I'm having right now is like, I've got this task to try and measure Duo usage, and I wanted to fire a pixel." + }, + { + "time": "20:24:39", + "speaker": "SS", + "text": "Yes. That's good to know." + }, + { + "time": "20:24:43", + "speaker": "Fernando Bunn", + "text": "Yep." + }, + { + "time": "20:24:50", + "speaker": "BA", + "text": "But I'm getting pushed back in privacy triage, because it's… because we don't fire those pixels related to the device name or something. So, I'm trying to work around that at the moment, but um… sounds like we just need to do some work anyway, so…" + }, + { + "time": "20:25:07", + "speaker": "Jonathan Jackson", + "text": "Yeah, I think…" + }, + { + "time": "20:25:07", + "speaker": "BA", + "text": "Yeah, no worries. I can… I'll make a noise about that." + }, + { + "time": "20:25:10", + "speaker": "Jonathan Jackson", + "text": "Thank you. What I understand about the pixel piece is that. Chris basically wants to understand the adoption… the Duo adoption rate. 'Cause that will inform to what degree we invest more heavily in Duo support. But that I think is separate from the 27.1 puzzle of we have to be able to use 27.1 to be honest. So we have to do whatever the minimal set of work is to have our apps look good enough there, right? And that's the piece that we need to address and prioritize pretty quickly." + }, + { + "time": "20:25:39", + "speaker": "BA", + "text": "Yes." + }, + { + "time": "20:25:43", + "speaker": "Jonathan Jackson", + "text": "So I think both make sense." + }, + { + "time": "20:25:48", + "speaker": "BA", + "text": "Yeah, perfect." + }, + { + "time": "20:25:49", + "speaker": "Jonathan Jackson", + "text": "Cool. Thank you." + }, + { + "time": "20:25:50", + "speaker": "BA", + "text": "I found that task, so I'll start making noise about it now. Thanks, Sam." + }, + { + "time": "20:25:55", + "speaker": "Jonathan Jackson", + "text": "And yeah, thank you so much. Anybody else have anything they want to add or discuss here? While Alex is working on his pull request, it looks like." + }, + { + "time": "20:26:16", + "speaker": "Alex Martemyanov", + "text": "Uh, yes, I think I'm ready. I should… Should disable the feature flags before we start." + }, + { + "time": "20:26:24", + "speaker": "Jonathan Jackson", + "text": "Okay, if you're ready, that's great. If you need more time, that is also fine. Make sure you're giving the right time to the incident first." + }, + { + "time": "20:26:34", + "speaker": "Alex Martemyanov", + "text": "Yeah, so currently the… While the pull requests have been opened, I wanted to present the WebKit to macOS version tables. I just made today, so it was a kind of research task to understand which versions of WebKit are fixing which bugs, because it's not always obvious if a bug in WebKit is fixed, in which. macOS or iOS release it actually gets. So, uh, yeah, I, um… Made some research and, uh, ended up. Oh. making the instructions, the step instruction, how to get it. And how to validate it. And in the task attached, you can find the list of current iOS and macOS releases with matching WebKit versions. I think it can be useful for somebody. So I decided to share it. Oh… Yep. We're good with PR. Yeah, the next one, uh, the next one, the status update about the RDS Code project, and uh… current state of the code base. refactoring thing. So if you head to the migration project, I've updated the description a little bit. Uh, and, uh, I wanted to, um, share the timeline and what was done in scope and what is the project about, because I noticed there is some tension about whether the migration is actually needed, where do we want. to support VS Code, uh, or whatever. And, uh, so, uh, my judging here is, uh, that we have technical debt, basically a lot of tech debt. And here I'm trying to. I don't know. to address it. So basically, there is this refactoring going on. Um, moving code files around, getting rid of storyboards, um… Making unit tests independent from the app delegate dependencies. And there is also some iOS work ahead. Uh, so current, uh, question is whether to migrate, uh, the main DuckDuckGo browser for macOS module to an SPM package, which seems a logical decision, uh, having all this common BSK and so on as, uh, SPM packages. And, uh, in the task, there is a little, uh, comparison table on build times on current main branch for export and export build, and, uh, the updated SPM target. And we chose… Pretty good increase in build speeds. And also there is Vs code example. And. faster. It makes the day to day debugging and development for exploit for those who. consider switching. But it's totally optional, and in fact, the VS Code change is aside from the manufacturing, so it only includes, basically, the VS Code workspace file. And a special build script for it, and if anybody doesn't want to use it or update it, it's not required 100%. So yeah, that's a short update. I'll be preparing a tech design later on on the roadmap for modularization to speed up the builds and to make the 1,700 files per target. A little bit smaller. And yeah, I'll let you know. Probably at this point, at this point, I'll drop off to the… Uh, during the meeting of the incident. Yep, thanks." + }, + { + "time": "20:30:47", + "speaker": "Dominik Kapusta", + "text": "Thanks. Thanks, Alex. Thanks a lot. I just wanted to ask a clarifying question. Um, making the macOS app a Swift… module. That wouldn't change. how the binary is linked, right? Because the module would be a static library. linked with the update I got, I guess." + }, + { + "time": "20:31:15", + "speaker": "Alex Martemyanov", + "text": "Uh, yes. Yes, exactly, so let me share the screen and show what changes, actually. Uh, if you look at the Xcode project, so it mostly looks exactly the same, but instead of the Darkdigger folder, uh. You can find the DuckDuckGo package. Can you see my screen?" + }, + { + "time": "20:31:36", + "speaker": "Dominik Kapusta", + "text": "Yes." + }, + { + "time": "20:31:38", + "speaker": "Alex Martemyanov", + "text": "So basically, all the files are in place, they are not moved anywhere, and in fact, it benefits… we won't have VBX project merge conflicts anymore with this kind of structure, and all the assets and everything stays in place, and localizable stays in place. It just changes how the build is done and so package defines. Uh, the assets, those are changed by… checked by input file checker, and, uh, won't let you miss anything if you add a resource. It defines product, dependencies, so on. So basically, all done in package.swift, and it prepares a static library and links it to the main package. There is a dynamic library as well, but it's used only for the. We had called target and, does not affect the main browser. As well, as I found out, it… can be built for the App Store builds, and it can be used for iOS builds as well, but only from Simulator. For the device, there is a little bit more complicated process. Yeah, and by the way, VS Code will also allow the remote debugging session not available in Xcode, allowing to debug directly on macOS virtual machines or all the hardware without installing Xcode directly there." + }, + { + "time": "20:33:06", + "speaker": "Dominik Kapusta", + "text": "Great. And what's the… Yeah, just… was the DuckDuckGo browser dynamic? what's the…" + }, + { + "time": "20:33:15", + "speaker": "Alex Martemyanov", + "text": "Dynamic is basically, it's like the executable, but it's used for a small launcher app that is prepared and signed, and it's for VS Code." + }, + { + "time": "20:33:16", + "speaker": "Dominik Kapusta", + "text": "Good time. For the tests." + }, + { + "time": "20:33:30", + "speaker": "Alex Martemyanov", + "text": "And, uh, for… no, for the test, it's not actually required, because tests are run as a part of SPM package, so unit tests are migrated to… to SPM structure, and basically faster for…" + }, + { + "time": "20:33:31", + "speaker": "Dominik Kapusta", + "text": "Oh, okay. Okay. Right, of course. Hmm." + }, + { + "time": "20:33:44", + "speaker": "Alex Martemyanov", + "text": "CI and can be parallelized as well. After some manufacturing, of course, because they are mostly bound to the abdeligate and main thread." + }, + { + "time": "20:33:56", + "speaker": "Dominik Kapusta", + "text": "Okay, thanks. Juan had a question, right?" + }, + { + "time": "20:33:56", + "speaker": "Alex Martemyanov", + "text": "It's all good." + }, + { + "time": "20:33:59", + "speaker": "Juan Pereira", + "text": "No, my question is similar to what I… in the… in the project. Like, I understand some of the changes, but I… I don't… I do not understand the fully goal, because it's, like, migrating to VS Code, and it seems that only right now. Uh, for my… it's only you, Alex, using VS Code. I don't think anyone else is using VS Code. So, it's like, we're doing all these changes, you know, dropping storyboards that the other day we had an internal bug that was caused by it. Uh, we need to do, like, the project is not run with, uh." + }, + { + "time": "20:34:33", + "speaker": "Juan Pereira", + "text": "I don't know, a project advisor or someone, like, it's not running in any objective, so I wonder if there's any risk. And how can we mitigate those risks by doing this project? And it's like, it's 100% necessary, right? Because for now it seems a project we want to run because we want to do it in VS Code. There's some gains that we have from it, but I don't think we measure like the gains versus the… Uh, the risks. So, that's my only concern, because, yeah, if we… if we… let's say… We win, like, 20% build time, but we introduce two incidents. like…" + }, + { + "time": "20:35:07", + "speaker": "Alex Martemyanov", + "text": "Yep, that's a great question." + }, + { + "time": "20:35:08", + "speaker": "Juan Pereira", + "text": "like… that's, like, when… yeah, that's something that I don't think we want, like… uh… so, yeah, that's… that's my only concern, like… At the end, I think we need to do it as a team, and yeah." + }, + { + "time": "20:35:19", + "speaker": "Alex Martemyanov", + "text": "Yep. I understand the question and yeah, actually we had one tech design about this exact structure of the project, but yeah, I'm gonna run another one with extended roadmap and yeah, answering whether anybody would use VS Code. Or is it just Alex? So, first of all, I think that Alex is basically. Easy enough. Again, and it's already worth it. Uh, second, uh, we are not migrating to VS Code, so nobody's forced to use VS Code, and it's totally optional, and I really hope somebody would find some games for it, or Cursor, or whatever, or other build, uh, systems of their choice, so not only Xcode, so we're extending options here and not forcing anybody to change. Because for the one staying on Xcode, nothing changed, and you just keep building using Xcode. Uh, about the risks, so basically the app structure, the main app target, and the app build system, AI system, they all stay the same. Then the change is, uh, hitting our existing project about, uh, modularization that's been discussed on the. Uh, Apple Meetup that I, uh, unfortunately missed. Uh, but it's, yeah, kinda going… ongoing proposal and ongoing process, uh, because, uh, there is huge parts of browser requiring modularization, for example. Uh… E-I… AI kit, uh, adding… Hmm, where is it? Let me just see the numbers they were. They were… Right here. Yeah, AI chat, 24,000 and 0.7K lines. Tab and tab extension, 22,000K lines. Common, 18,000K, 80,000 lines. Navigation bar, 16,000 lines. Bookmarks, 14,000 lines. Preferences, 13,000 lines, and so on. So, it's a natural move to split those targets, and so the first step here is to make the browser main code target the SPM package itself. So, as Dominik pointed, we are. linking this SPM target as a static library, so basically it's code, uh, linked the same way it is now, and all the resources are bundled the same way they are bundled now, and localization, everything stays in place, and we are not even migrating the core data. managed object models, because Xcode 27 lets us just drop it into the Swift package, and they stay as they are. And nothing in the code changes here, it's just regular refactoring process, and handling the technical debt as. it should be. So, the VS Code is just two files that are made basically aside from this project, and they are 100% optional. So that's the reason of the change. If it answers the question, I'll probably drop off. And reason for the." + }, + { + "time": "20:38:46", + "speaker": "Jonathan Jackson", + "text": "Looks like Brendi's got another question." + }, + { + "time": "20:38:48", + "speaker": "Alex Martemyanov", + "text": "Thanks." + }, + { + "time": "20:38:49", + "speaker": "BA", + "text": "I mean, it can wait if you want to go to the incident thing. I was going to ask about iOS, because, like." + }, + { + "time": "20:38:50", + "speaker": "Alex Martemyanov", + "text": "Yep." + }, + { + "time": "20:38:54", + "speaker": "Jonathan Jackson", + "text": "Yep." + }, + { + "time": "20:38:56", + "speaker": "BA", + "text": "What's your plan there if you ever have to do any work on iOS? Who's gonna use Xcode? Basically. Or…" + }, + { + "time": "20:39:04", + "speaker": "Alex Martemyanov", + "text": "Yeah, basically the plan for iOS is the same with a big correction that the current VS Code migration path took already one year, so it started a year ago on 25th of October. 2025, and, uh, yeah, the first natural step for iOS is, uh… Oh. migration to navigation framework, and I know that probably nobody but me that's going to migrate it." + }, + { + "time": "20:39:35", + "speaker": "BA", + "text": "Yeah." + }, + { + "time": "20:39:35", + "speaker": "Alex Martemyanov", + "text": "And, uh, there is a lot of shared code that also… you can basically find this, uh, AI-generated roadmap. I didn't modify any part of it, it's just one-shot Claude-generated report, but I heavily agree with it. Uh, so it… suggests it found heavy intersections between iOS and macOS code bases and it suggested step by step small changes, small PRs plan on how this could proceed. But of course, yeah, I would need some time to finish this project first." + }, + { + "time": "20:40:11", + "speaker": "BA", + "text": "Well, I mean, I'm already migrating…" + }, + { + "time": "20:40:12", + "speaker": "Alex Martemyanov", + "text": "Free from supplier to GitHub." + }, + { + "time": "20:40:15", + "speaker": "BA", + "text": "I'm already working on migrating the storyboards away to code anyway, I'm just gradually doing that in the ground. I think these changes are good and welcome. It's just a shame you framed it as a VS Code thing. And, you know, if you'd framed it as just making things better. Maybe people wouldn't have been so bothered. I don't know." + }, + { + "time": "20:40:35", + "speaker": "Alex Martemyanov", + "text": "Yeah, basically it's all about…" + }, + { + "time": "20:40:35", + "speaker": "BA", + "text": "But I think they're good, so." + }, + { + "time": "20:40:37", + "speaker": "Alex Martemyanov", + "text": "It's all about making the things better, and VS Code is a nice bonus, at least nice for me. I hope nice for somebody else, but it's, uh…" + }, + { + "time": "20:40:37", + "speaker": "BA", + "text": "There." + }, + { + "time": "20:40:47", + "speaker": "Alex Martemyanov", + "text": "Side project, let's say." + }, + { + "time": "20:40:48", + "speaker": "Jonathan Jackson", + "text": "I mean, like, a couple of people pointed out that I don't… I think most people are not gonna end up using VS Code. Most people are trying to stop using an IDE, period, at this point. Um, if there are benefits here that really, you know, are benefiting the team in terms of build times, or…" + }, + { + "time": "20:40:49", + "speaker": "Alex Martemyanov", + "text": "Just an opportunity." + }, + { + "time": "20:41:02", + "speaker": "Jonathan Jackson", + "text": "architectural framing that makes us more reliable or makes the team more effective. I think those are the things to focus on. Kind of like what Bernie was saying. It's still not clear to me, to be perfectly honest, what… like, what alternatives we've considered here, and whether… like, what each of the steps are, and what the pros and cons for each piece are. Um, I'll leave some comments when I get a moment to… to sort of ask a few of those other questions. But I appreciate your sharing this with us, and. helping us to have a conversation about it. Diego, sorry to bump you there." + }, + { + "time": "20:41:35", + "speaker": "DR", + "text": "Um, yeah, I was thinking, like, what is probably, at least for me, what's making me uncomfortable, uh, isn't that I don't want things to change. It's mostly that it's easy to get. kind of lost into the things that are good about a change, uh, and it's not clear to me what we're trading off here. Um, I have zero idea what we're losing with this change. So if we can do some work to help clarify that in a conversation, maybe somewhere we can document it and discuss." + }, + { + "time": "20:42:09", + "speaker": "DR", + "text": "Oh. It would be great. I think it would help. Get people aligned on whether it's a good or bad change. That's all." + }, + { + "time": "20:42:18", + "speaker": "Alex Martemyanov", + "text": "Let me answer it all as well. What we are losing, we're already lost. storyboards, uh, we've lost plugs for, uh, alpha review and CI, and I really believe it's making the product better and more. I'm predictable, in ways. We are losing the direct connection between CI flag and debug flag, but it's resolved already on CI side by setting an environment variable. Wow. What else?" + }, + { + "time": "20:42:55", + "speaker": "DR", + "text": "I don't think… for what it's worth, I don't think we should discuss that here, because if anyone is not here, they're not gonna know. I think it would be great if we can lay this down somewhere that people can see. And I think…" + }, + { + "time": "20:43:05", + "speaker": "Alex Martemyanov", + "text": "Yep." + }, + { + "time": "20:43:07", + "speaker": "DR", + "text": "Uh, I don't wanna… As I understand it, there aren't a lot of things we're losing here, probably. I don't know. But I think it would be really good to really spend some time thinking about the things that may become more complicated for us. Like, I'm going to make something up. Maybe updates are going to be harder or whatever. Apple comes up with some new thing. So again. I don't know. I think it would be the kind of thing that if we can clarify, it's going to be so much easier." + }, + { + "time": "20:43:39", + "speaker": "Alex Martemyanov", + "text": "Okay, yeah, I'm gonna prepare a tech design, spend in this, but at this point, uh, it's generally nothing lost anymore, so… What could be lost is not already lost. So, this is basically the point of just moving files between the targets, and yeah, we are losing this ability to include. To mix the targets and point them to files that nobody knows where they are located. So… That's the real trade-off, the only trade-off that's remaining." + }, + { + "time": "20:44:18", + "speaker": "Jonathan Jackson", + "text": "All right, we'll watch for a tech design, and I hope everybody who has questions or other interests in this is going to be able to chime in." + }, + { + "time": "20:44:19", + "speaker": "Alex Martemyanov", + "text": "Please." + }, + { + "time": "20:44:26", + "speaker": "Jonathan Jackson", + "text": "the conversations that happened in Asana, and we can have further conversations in team meetings as we proceed, too, if we need real-time ones." + } + ] +} diff --git a/work/zoom-transcripts/2026-10-06 Apple Weekly Team Meeting - Zoom ID 2026-10-06 20 01(GMT+6 00) 280BehgySpW8LynSS473nQ/transcript.md b/work/zoom-transcripts/2026-10-06 Apple Weekly Team Meeting - Zoom ID 2026-10-06 20 01(GMT+6 00) 280BehgySpW8LynSS473nQ/transcript.md new file mode 100644 index 00000000..c29b3402 --- /dev/null +++ b/work/zoom-transcripts/2026-10-06 Apple Weekly Team Meeting - Zoom ID 2026-10-06 20 01(GMT+6 00) 280BehgySpW8LynSS473nQ/transcript.md @@ -0,0 +1,164 @@ +--- +title: "Apple Weekly Team Meeting - Zoom ID 2026-10-06 20:01(GMT+6:00)" +date: 2026-10-06 +zoom_note_id: "280BehgySpW8LynSS473nQ" +source: "https://us01mynotes.zoom.us/280BehgySpW8LynSS473nQ" +--- + +# Apple Weekly Team Meeting - Zoom ID 2026-10-06 20:01(GMT+6:00) + +[Zoom My Notes](https://us01mynotes.zoom.us/280BehgySpW8LynSS473nQ) + +## Transcript + +- **20:03:20 · Dan King:** Thank you, Jonathan. Appreciate the time. Uh, sorry if it is quiet because I'm here, new, uh, new guests and everything. Yeah! I got just a couple of slides to share. But. She go. fairly quickly, and then we can do some some Q&A at the end. If. I'm open for any any questions that you've got. And so, you know, we are getting into our performance review cycle, and so want to, give you a heads up on what to expect here. +- **20:03:58 · Dan King:** And so, for this review, uh, first, you know, who… who's gonna be in it? And so, everyone who joined on or before April 26th is gonna be eligible for the performance review process. If you joined after this date, you will still, you know, go through the continuous feedback process. But the performance review process, will not be, will not be for you. Uh, it is going to cover the period from February 1st of this year to October 25th. And so it's obviously a shorter period than usual, less than a year. And, you know, this is an adjustment, you know, moving forward for, you know, when we can expect a performance review each year, you know. One of the. One of the years, uh, when we made the change, it was gonna be short, and so, uh, you know, it is this one. If you have any questions, you know, at the end about that, you know, let me know. uh… Again, yeah, if uh… So I hit on who was not gonna be on this round, and so. What you can be expecting from the timeline of this year is we are gonna have training, uh, you know, a more in-depth training, uh, that Kiara is going to lead. That's gonna be October 15th, 16th, and the 22nd. Uh, each of those days is gonna be the same training, and so, you know, pick the day and time that fits best for you. Uh, self-assessments will be due October 26th, and then, uh, CA assessments will be due, you know, October 27th through the 29th. It'll then go through functional calibration October 30 to November 3. The calibration committee will meet on, November 4 to the 6th. And conversations, uh, will happen, you know, between yourself and your CA, uh, November 9th through November 13th. Uh, it's a shorter timeline than usual, uh, to help support that. If you have anything that is due on that timeline, it will. Uh, it will be your one must that day. I've gotten some questions like, does that mean you should be canceling meetings and things like that? I I don't personally think that's what it means. You know, I wouldn't go and, like, proactively cancel your meetings on those days. But, you know, treat it like you would, your one must for the day. So, you know, make sure that you have time for it. I think self assessments potentially like an, you know, couple hours or an hour or 2 for that ca assessments potentially up to like 3 h. So just make sure that you have time for that day. But but, you know, we're gonna leave it up to you on on how you make that time. So what can you do now? Uh, we are getting into our continuous feedback, like, the second round of it. Um, it should be around this week, uh, but any time before, uh, the performance reviews, um, we are going to look for an update for growth areas and shoutouts. uh, don't clo- remember, don't close the task. All you have to do is replace the text that's in there, and then it'll automatically get saved, um, you know, into the history. Uh, we're looking for two pieces of peer feedback, uh, for each person, and so that does include the feedback that you, uh, may or may not have received in August. Um, so make sure that you are aiming for having two pieces of feedback going into your performance review. And then, you know, just a heads up to keep your work summaries up to date. Uh, everything may not be captured in there. Uh, you know, it could be a quick win, or what have you, that doesn't get captured. Um, put it in the notes. Uh, the notes do not get over, uh, you know, they don't get overwritten. each day. Okay. So just to reiterate, you know, next step, sign up for one of the training sessions. Kiara is having open hours, on Thursdays from 11 to 12, Eastern. And so, great time to ask any questions if anything comes up after this session, or you go to a training, and uh… you know, you're thinking about it, and a question pops up, um, you know, those open hours are a great time to, uh, to ask her something. Um, I'm also available if, you know, any questions. Uh, pop up for you. If I don't have an answer, you know, I can… I can definitely get you the answer, or point you in the right direction. Okay, I'm gonna stop sharing, uh… And, uh… open it up for any… any questions that anybody may have, uh, around either performance reviews or the continuous feedback process. Obviously, you know, it was continuous development for a while there. +- **20:09:02 · Dan King:** Yep. Yeah, pre appreciate that question. So make sure that you have your. you put in your out-of-office, um, for those dates. Once you have your out-of-office in, uh, it should… it should trigger something on our side where we will, uh, adjust the dates for, um. For you, depending on who you are. So, uh, it could be your self-assessment, it could be your CA assessment. Uh, if it is a CA assessment. what that will trigger is for your advisees. We will also push that. Yeah, we'll push the self assessment for them forward a bit. Uh, as well. +- **20:09:41 · Elle Sullivan:** Купить? +- **20:09:53 · Dan King:** I believe I believe everything should get pushed forward at that point. I know. Yeah, I know for sure. The Ca assessment and self assessment. +- **20:09:56 · Jonathan Jackson:** Какая история? +- **20:10:02 · Dan King:** I I wanna say the functional calibration too. If for some reason that's not the case, I'll I'll get back. Yeah. Yeah. That makes sense. Uh, for sure. +- **20:10:25 · Jonathan Jackson:** And then, I just sort of… I think I know the answer to this question, but maybe not everybody does. For our own self-assessments… Sorry, there's a video that's nearby. I hope you can hear it. Um, for our own self-assessments. Should we be doing that work primarily in the work summary doc in the notes section or is there somewhere else we should be putting that? Because I think a lot of people are going to get started on that like basically now. I actually recommend everybody start basically now so they have plenty of time to get that in good shape. +- **20:10:46 · Dan King:** The, the self-assessment? Yeah, the self-assessments will be its own task. There'll be a self-assessment task. I would for sure leverage your work summaries for it. +- **20:10:58 · Jonathan Jackson:** Okay. +- **20:11:05 · Jonathan Jackson:** Okay. +- **20:11:06 · Dan King:** But there'll be a self-assessment task that's assigned to everybody. +- **20:11:09 · Jonathan Jackson:** Right, so anybody who wants to start now can just sort of keep their own notes somewhere and put it in that way. +- **20:11:14 · Dan King:** Yeah, and also, in the performance review AOR, there are the tasks available there. Um… and and looks like Brendi can can share, but also in the Aor you can. You can go there, and you can. +- **20:11:24 · Jonathan Jackson:** Sweet. Okay. +- **20:11:29 · Dan King:** Try to duplicate it. +- **20:11:30 · Jonathan Jackson:** Oh, awesome. Okay, thank you. +- **20:11:42 · Pikor:** Джастфорда, Рефренс? +- **20:11:42 · Dan King:** Yep. Yeah. Absolutely. I can drop it into the, into your agenda task, so everybody has it. +- **20:11:44 · Pikor:** Клуб, танц? Тэнкс? +- **20:11:50 · Dan King:** If that works. +- **20:11:55 · Jonathan Jackson:** Yeah, that'd be perfect. Thank. +- **20:11:57 · Dan King:** Okay. Any other any other questions? Definitely appreciate the ones I've got so far. Okay. I am gonna jump to, to the Android team meeting. So just give me a little bit of time, on dropping this into your agenda, but I'll I'll have definitely do, this morning. +- **20:12:19 · Jonathan Jackson:** Cool. Thank you, Dad. Appreciate it. It's him. All right. So welcome, everyone. We'll move on with the regular meeting from here. Remember that next week is our next team retrospective. A link to that task is at the top of the current meeting agenda if you need it and want to drop stuff into the early. Um, do please try to populate that before the meeting, so that we can spend our time together talking about what's in the input for that, rather than coming up with that input. Uh, we got another week to think about what's happened in the last… The last, um… Eight weeks together. Uh, quick review of rotations. Uh, Yacek, you are on iOS Triage this week, uh, followed by Anya next week, and then El the week after that. For macOS triage, Fernando is on this week. James is covering next week and then on the week after that. I think we did a swap there because of Canadian Thanksgiving. Thank you all for that. We did a swap on iOS as well. Thanks for the flexibility, everybody. Um, for iOS release, Hanyu is this week, uh, followed by Marius, you're up next week, and then Sam the week after that. And for macOS release, Alex is on this week, followed by Dominic, and then Diego. Um… A couple of you have reached out about holiday interrupts towards the end of the year. I'm still planning in the next week or so to put together another post about release schedules around the holidays, and then we'll use that to figure out how we want to adjust schedules based on people's. out of office and the releases that we're doing and how we change that schedule. So I know that's coming. Um… Oh, and I actually was looking for a possible swap over the December to January week stretch. If anybody's willing to hop into that now, that would be great. But we'll do more coordinating around the holidays as well. Um… I'm going to hop down. Jacek, do you want to talk about your other time sensitive topic and then we'll go back to announcements and everything else? +- **20:14:45 · JŁ:** Yes, thank you. Uh… Yeah, so as you mentioned, I'm on triage this week. Sorry for bringing bad news, but we may have an incident on iOS. Uh, which is related to some changes to onboarding, and apparently you can now, uh. send a message to Duck AI, and then, like, run a fire over it, and it doesn't work, it keeps in the loop, so it sort of breaks trust in our firing capability, and also. +- **20:15:16 · JŁ:** yeah, it's a bit annoying, I guess. So I've run it over the severity matrix, and it's actually, like, for me, it was on the edge of the major incident. So I think we should actually like jump on it right away. a bit of context. Some more reports came today. like they they allowed me to to calculate it better. Yeah. So so probably the the next obvious question would be whether it's behind some feature flag, whether whether we can turn it off like immediately. And so would be good to like gather a few people, perhaps like. Switch a room, uh… Yeah, I don't know, like… I think Alex knows more. Apparently, there's a fix, too, for it, so maybe, Alex, sorry for putting you in the spotlight, but maybe you know more about, like, what's the issue, and if you could say anything. +- **20:16:18 · Bartek Waresiak:** Игнор. Инцидент? +- **20:16:20 · JŁ:** Yeah. Okay. +- **20:16:44 · Alex Martemyanov:** Yeah, so, uh… Let me… let me bring this some clarity, uh, to try to be on the same page, so it's not, uh… the… FHIR loop, as may sound, at least as it is reproduced, it's a loop on a startup. So basically, we got a FHIR onboarding, and if you don't follow the next onboarding screen. Yeah, so the… onboarding page restoration would restore the same file onboarding on the next app relaunch. So it should not hopefully affect everybody, and just if you stay on that AI page and the app is relaunched. You will land to the fire onboarding and only in the case that you did not complete the onboarding normally. At least that's, uh, what… Uh, the fix is targeting. +- **20:17:43 · Bartek Waresiak:** And like, is it controllable with the feature flag? +- **20:17:49 · Alex Martemyanov:** Oh. Sure. I think it should be controllable with the… Uh, onboarding, uh… The refined onboarding feature flag in the whole problem. +- **20:18:05 · Bartek Waresiak:** So, yeah, so I would double-check. If it's controllable and we can mitigate that with the feature flag, let's do this as soon as possible, and then we can, uh… Depending on the importance of that onboarding step, treat it as a hot fix, or just… merged into the release. The thing is to reduce the chance of this happening to people right now. +- **20:18:32 · Alex Martemyanov:** Yep, sounds good. +- **20:18:40 · Jonathan Jackson:** Okay, so it sounds like Jacek, Alex, and Bartek, you're the group who's taking this on at the moment? +- **20:18:41 · JŁ:** So… Yeah, yeah, so do you all agree that we should, like, jump on it right away, like, skip the rest of the meeting, or should we, like, continue? +- **20:18:55 · Jonathan Jackson:** I think it's fine. I think you should make sure you get this dealt with. So if you want to add something else, that'd be great. +- **20:18:57 · JŁ:** Okay. Okay, thank you. +- **20:19:01 · Jonathan Jackson:** We'll miss you. Thank you. Um… Back up to the announcements section of our agenda. Mariusz, looking for some helper feedback. +- **20:19:19 · M:** Yeah, thanks. I guess Jacek stole the show, so that's less important now. In a way, we are working on a new redesigned new tab page. And it's not yet in the internal… it's not yet enabled for internal users, but we'll… I'll be doing that in like a week. Um, and if you are working on some feature that is tangent to the new tab page, which is highly likely. +- **20:19:51 · M:** Um… Please enable the flag. And you can feel free to just put any feedback you have on this. If you spot anything that's off, that's behaving in the wrong way, or maybe looking… Uh, looking, um… Not good enough. Feel free to just drop a comment, some screenshot, maybe screen recording. +- **20:20:17 · Fernando Bunn:** Yes. Is the notepad page on iOS being done the same as macOS, or is it all native? +- **20:20:26 · M:** It's native. +- **20:20:28 · Fernando Bunn:** Okay. Good to know. Is part of this project also adding the toggle for the KI and search? +- **20:20:40 · M:** the… Yes, on the NewsHub, like, in the center of the NewsHub page, if that's what you're asking. +- **20:20:45 · Fernando Bunn:** Yep. Yeah. Yeah, because there's a lot of, uh, changes happening there. Small changes, but related to… Terms of services and warnings, other kind of boring stuff that we're working on. right now, and be good to validate if it's working there. So, yeah, I'll touch base with you. +- **20:21:03 · M:** Cool, thanks. Yeah, the current input, Duck AI input is, not Duck AI, the… +- **20:21:11 · Fernando Bunn:** UTI. +- **20:21:12 · M:** The current address bar input basically is reused, so it should be working without issues. +- **20:21:17 · Fernando Bunn:** Cool. +- **20:21:21 · M:** Thanks. +- **20:21:29 · Jonathan Jackson:** Cool. Thank you. Uh… Is Alex still, no, Alex has dropped at this point. So Alex had the, oh, no, Alex is here. +- **20:21:39 · Alex Martemyanov:** Not yet. +- **20:21:40 · Jonathan Jackson:** Okay, do you want to, do you need to be working on the incident or is everything under control at this point? +- **20:21:46 · Alex Martemyanov:** Yes, I'll be working on currently investigating the feature flag issue in parallel. Yeah, got it. +- **20:21:57 · Jonathan Jackson:** Um, you have the next two agenda items. Does it make sense for us to save those for next week? Do they need to have them this week? Like, where… how do you want to balance that? +- **20:22:06 · Alex Martemyanov:** I think… Hopefully, you save them the future talk, and they… And the PR is up with the fix, so… +- **20:22:15 · Jonathan Jackson:** All right, why don't we give you a few minutes? +- **20:22:16 · Alex Martemyanov:** Shouldn't take much time, I think. +- **20:22:18 · Jonathan Jackson:** Anybody else have anything they'd like to discuss this week? +- **20:22:31 · SS:** I could do, I'm literally talking about it with Dominic as we speak. Uh, that PR is approved, we… +- **20:22:34 · Jonathan Jackson:** No, we can talk about 27.1 also. +- **20:22:37 · SS:** Yeah, yeah, that PR is approved. I have just merged in. Changes remain to simplify the CI stuff that I was working on. Once the PR is green, I think we can merge it. I think we're good. I will probably do that and send out an Apple Diary task. +- **20:22:51 · BA:** Is… Is this using new SDK, then, as well, presumably? +- **20:22:59 · SS:** Yes. +- **20:23:00 · BA:** Is the experimental build already do it using this or? +- **20:23:05 · SS:** That's been using 27 for weeks, months. +- **20:23:10 · BA:** All right, okay. I'll go test my shit there then. Thanks. +- **20:23:10 · SS:** I've been using it for ages. +- **20:23:15 · Dominik Kapusta:** Севен, Поинт, Оу, Райт, Эксперимент? +- **20:23:17 · SS:** Yep. Yes, yeah, we're not touching 27.1. I mean, it's just coming into release candidate, but we will be blocked from updating all that until OAE has done some work. +- **20:23:20 · BA:** Right. +- **20:23:29 · SS:** Good luck, Brendan. +- **20:23:30 · BA:** Yeah. Yeah, thanks. +- **20:23:31 · Dominik Kapusta:** Яс? +- **20:23:33 · BA:** Is that… you mean… is that related to the duo? +- **20:23:34 · Jonathan Jackson:** Brenda, are you figuring out what the 27th? +- **20:23:38 · BA:** All right. And do we have tests? +- **20:23:39 · SS:** As related to the Duo, exactly. Yep. +- **20:23:40 · Jonathan Jackson:** Yes. +- **20:23:43 · BA:** I mean, there's probably the task that I created already, right? That's sort of… +- **20:23:48 · BA:** I think my question really is, are people aware that there is actually some work that needs to be done for the Duo before we can upgrade to 27.1? I can make that clear in OA today. If it's not clear. +- **20:24:00 · SS:** Yeah, I did make a task with screenshots of like, here's 27.0, here's 27.1, like 27.1 clearly has issues, we clearly need to do some work. I don't know if that's clear enough though, so do make noise about that in OA, please. That'd be good. +- **20:24:11 · BA:** Yeah, alright, I can do that, yeah. Thanks. +- **20:24:15 · SS:** Like we will be blocked from updating to any like 27.1 or above until we have done something about this effectively. +- **20:24:16 · Fernando Bunn:** Okay. +- **20:24:21 · Jonathan Jackson:** Yep. +- **20:24:21 · BA:** Right. +- **20:24:23 · Fernando Bunn:** I think we do have some deadlines from Apple. Not entirely sure about the dates, but I think it's April. We're going to need to start supporting… At the very least, the App Store screenshots are mandatory. +- **20:24:35 · BA:** That's right. Yeah, I saw that today as well, yeah. So we've got no choice now but to deal with this stuff. The problem I'm having right now is like, I've got this task to try and measure Duo usage, and I wanted to fire a pixel. +- **20:24:39 · SS:** Yes. That's good to know. +- **20:24:43 · Fernando Bunn:** Yep. +- **20:24:50 · BA:** But I'm getting pushed back in privacy triage, because it's… because we don't fire those pixels related to the device name or something. So, I'm trying to work around that at the moment, but um… sounds like we just need to do some work anyway, so… +- **20:25:07 · Jonathan Jackson:** Yeah, I think… +- **20:25:07 · BA:** Yeah, no worries. I can… I'll make a noise about that. +- **20:25:10 · Jonathan Jackson:** Thank you. What I understand about the pixel piece is that. Chris basically wants to understand the adoption… the Duo adoption rate. 'Cause that will inform to what degree we invest more heavily in Duo support. But that I think is separate from the 27.1 puzzle of we have to be able to use 27.1 to be honest. So we have to do whatever the minimal set of work is to have our apps look good enough there, right? And that's the piece that we need to address and prioritize pretty quickly. +- **20:25:39 · BA:** Yes. +- **20:25:43 · Jonathan Jackson:** So I think both make sense. +- **20:25:48 · BA:** Yeah, perfect. +- **20:25:49 · Jonathan Jackson:** Cool. Thank you. +- **20:25:50 · BA:** I found that task, so I'll start making noise about it now. Thanks, Sam. +- **20:25:55 · Jonathan Jackson:** And yeah, thank you so much. Anybody else have anything they want to add or discuss here? While Alex is working on his pull request, it looks like. +- **20:26:16 · Alex Martemyanov:** Uh, yes, I think I'm ready. I should… Should disable the feature flags before we start. +- **20:26:24 · Jonathan Jackson:** Okay, if you're ready, that's great. If you need more time, that is also fine. Make sure you're giving the right time to the incident first. +- **20:26:34 · Alex Martemyanov:** Yeah, so currently the… While the pull requests have been opened, I wanted to present the WebKit to macOS version tables. I just made today, so it was a kind of research task to understand which versions of WebKit are fixing which bugs, because it's not always obvious if a bug in WebKit is fixed, in which. macOS or iOS release it actually gets. So, uh, yeah, I, um… Made some research and, uh, ended up. Oh. making the instructions, the step instruction, how to get it. And how to validate it. And in the task attached, you can find the list of current iOS and macOS releases with matching WebKit versions. I think it can be useful for somebody. So I decided to share it. Oh… Yep. We're good with PR. Yeah, the next one, uh, the next one, the status update about the RDS Code project, and uh… current state of the code base. refactoring thing. So if you head to the migration project, I've updated the description a little bit. Uh, and, uh, I wanted to, um, share the timeline and what was done in scope and what is the project about, because I noticed there is some tension about whether the migration is actually needed, where do we want. to support VS Code, uh, or whatever. And, uh, so, uh, my judging here is, uh, that we have technical debt, basically a lot of tech debt. And here I'm trying to. I don't know. to address it. So basically, there is this refactoring going on. Um, moving code files around, getting rid of storyboards, um… Making unit tests independent from the app delegate dependencies. And there is also some iOS work ahead. Uh, so current, uh, question is whether to migrate, uh, the main DuckDuckGo browser for macOS module to an SPM package, which seems a logical decision, uh, having all this common BSK and so on as, uh, SPM packages. And, uh, in the task, there is a little, uh, comparison table on build times on current main branch for export and export build, and, uh, the updated SPM target. And we chose… Pretty good increase in build speeds. And also there is Vs code example. And. faster. It makes the day to day debugging and development for exploit for those who. consider switching. But it's totally optional, and in fact, the VS Code change is aside from the manufacturing, so it only includes, basically, the VS Code workspace file. And a special build script for it, and if anybody doesn't want to use it or update it, it's not required 100%. So yeah, that's a short update. I'll be preparing a tech design later on on the roadmap for modularization to speed up the builds and to make the 1,700 files per target. A little bit smaller. And yeah, I'll let you know. Probably at this point, at this point, I'll drop off to the… Uh, during the meeting of the incident. Yep, thanks. +- **20:30:47 · Dominik Kapusta:** Thanks. Thanks, Alex. Thanks a lot. I just wanted to ask a clarifying question. Um, making the macOS app a Swift… module. That wouldn't change. how the binary is linked, right? Because the module would be a static library. linked with the update I got, I guess. +- **20:31:15 · Alex Martemyanov:** Uh, yes. Yes, exactly, so let me share the screen and show what changes, actually. Uh, if you look at the Xcode project, so it mostly looks exactly the same, but instead of the Darkdigger folder, uh. You can find the DuckDuckGo package. Can you see my screen? +- **20:31:36 · Dominik Kapusta:** Yes. +- **20:31:38 · Alex Martemyanov:** So basically, all the files are in place, they are not moved anywhere, and in fact, it benefits… we won't have VBX project merge conflicts anymore with this kind of structure, and all the assets and everything stays in place, and localizable stays in place. It just changes how the build is done and so package defines. Uh, the assets, those are changed by… checked by input file checker, and, uh, won't let you miss anything if you add a resource. It defines product, dependencies, so on. So basically, all done in package.swift, and it prepares a static library and links it to the main package. There is a dynamic library as well, but it's used only for the. We had called target and, does not affect the main browser. As well, as I found out, it… can be built for the App Store builds, and it can be used for iOS builds as well, but only from Simulator. For the device, there is a little bit more complicated process. Yeah, and by the way, VS Code will also allow the remote debugging session not available in Xcode, allowing to debug directly on macOS virtual machines or all the hardware without installing Xcode directly there. +- **20:33:06 · Dominik Kapusta:** Great. And what's the… Yeah, just… was the DuckDuckGo browser dynamic? what's the… +- **20:33:15 · Alex Martemyanov:** Dynamic is basically, it's like the executable, but it's used for a small launcher app that is prepared and signed, and it's for VS Code. +- **20:33:16 · Dominik Kapusta:** Good time. For the tests. +- **20:33:30 · Alex Martemyanov:** And, uh, for… no, for the test, it's not actually required, because tests are run as a part of SPM package, so unit tests are migrated to… to SPM structure, and basically faster for… +- **20:33:31 · Dominik Kapusta:** Oh, okay. Okay. Right, of course. Hmm. +- **20:33:44 · Alex Martemyanov:** CI and can be parallelized as well. After some manufacturing, of course, because they are mostly bound to the abdeligate and main thread. +- **20:33:56 · Dominik Kapusta:** Okay, thanks. Juan had a question, right? +- **20:33:56 · Alex Martemyanov:** It's all good. +- **20:33:59 · Juan Pereira:** No, my question is similar to what I… in the… in the project. Like, I understand some of the changes, but I… I don't… I do not understand the fully goal, because it's, like, migrating to VS Code, and it seems that only right now. Uh, for my… it's only you, Alex, using VS Code. I don't think anyone else is using VS Code. So, it's like, we're doing all these changes, you know, dropping storyboards that the other day we had an internal bug that was caused by it. Uh, we need to do, like, the project is not run with, uh. +- **20:34:33 · Juan Pereira:** I don't know, a project advisor or someone, like, it's not running in any objective, so I wonder if there's any risk. And how can we mitigate those risks by doing this project? And it's like, it's 100% necessary, right? Because for now it seems a project we want to run because we want to do it in VS Code. There's some gains that we have from it, but I don't think we measure like the gains versus the… Uh, the risks. So, that's my only concern, because, yeah, if we… if we… let's say… We win, like, 20% build time, but we introduce two incidents. like… +- **20:35:07 · Alex Martemyanov:** Yep, that's a great question. +- **20:35:08 · Juan Pereira:** like… that's, like, when… yeah, that's something that I don't think we want, like… uh… so, yeah, that's… that's my only concern, like… At the end, I think we need to do it as a team, and yeah. +- **20:35:19 · Alex Martemyanov:** Yep. I understand the question and yeah, actually we had one tech design about this exact structure of the project, but yeah, I'm gonna run another one with extended roadmap and yeah, answering whether anybody would use VS Code. Or is it just Alex? So, first of all, I think that Alex is basically. Easy enough. Again, and it's already worth it. Uh, second, uh, we are not migrating to VS Code, so nobody's forced to use VS Code, and it's totally optional, and I really hope somebody would find some games for it, or Cursor, or whatever, or other build, uh, systems of their choice, so not only Xcode, so we're extending options here and not forcing anybody to change. Because for the one staying on Xcode, nothing changed, and you just keep building using Xcode. Uh, about the risks, so basically the app structure, the main app target, and the app build system, AI system, they all stay the same. Then the change is, uh, hitting our existing project about, uh, modularization that's been discussed on the. Uh, Apple Meetup that I, uh, unfortunately missed. Uh, but it's, yeah, kinda going… ongoing proposal and ongoing process, uh, because, uh, there is huge parts of browser requiring modularization, for example. Uh… E-I… AI kit, uh, adding… Hmm, where is it? Let me just see the numbers they were. They were… Right here. Yeah, AI chat, 24,000 and 0.7K lines. Tab and tab extension, 22,000K lines. Common, 18,000K, 80,000 lines. Navigation bar, 16,000 lines. Bookmarks, 14,000 lines. Preferences, 13,000 lines, and so on. So, it's a natural move to split those targets, and so the first step here is to make the browser main code target the SPM package itself. So, as Dominik pointed, we are. linking this SPM target as a static library, so basically it's code, uh, linked the same way it is now, and all the resources are bundled the same way they are bundled now, and localization, everything stays in place, and we are not even migrating the core data. managed object models, because Xcode 27 lets us just drop it into the Swift package, and they stay as they are. And nothing in the code changes here, it's just regular refactoring process, and handling the technical debt as. it should be. So, the VS Code is just two files that are made basically aside from this project, and they are 100% optional. So that's the reason of the change. If it answers the question, I'll probably drop off. And reason for the. +- **20:38:46 · Jonathan Jackson:** Looks like Brendi's got another question. +- **20:38:48 · Alex Martemyanov:** Thanks. +- **20:38:49 · BA:** I mean, it can wait if you want to go to the incident thing. I was going to ask about iOS, because, like. +- **20:38:50 · Alex Martemyanov:** Yep. +- **20:38:54 · Jonathan Jackson:** Yep. +- **20:38:56 · BA:** What's your plan there if you ever have to do any work on iOS? Who's gonna use Xcode? Basically. Or… +- **20:39:04 · Alex Martemyanov:** Yeah, basically the plan for iOS is the same with a big correction that the current VS Code migration path took already one year, so it started a year ago on 25th of October. 2025, and, uh, yeah, the first natural step for iOS is, uh… Oh. migration to navigation framework, and I know that probably nobody but me that's going to migrate it. +- **20:39:35 · BA:** Yeah. +- **20:39:35 · Alex Martemyanov:** And, uh, there is a lot of shared code that also… you can basically find this, uh, AI-generated roadmap. I didn't modify any part of it, it's just one-shot Claude-generated report, but I heavily agree with it. Uh, so it… suggests it found heavy intersections between iOS and macOS code bases and it suggested step by step small changes, small PRs plan on how this could proceed. But of course, yeah, I would need some time to finish this project first. +- **20:40:11 · BA:** Well, I mean, I'm already migrating… +- **20:40:12 · Alex Martemyanov:** Free from supplier to GitHub. +- **20:40:15 · BA:** I'm already working on migrating the storyboards away to code anyway, I'm just gradually doing that in the ground. I think these changes are good and welcome. It's just a shame you framed it as a VS Code thing. And, you know, if you'd framed it as just making things better. Maybe people wouldn't have been so bothered. I don't know. +- **20:40:35 · Alex Martemyanov:** Yeah, basically it's all about… +- **20:40:35 · BA:** But I think they're good, so. +- **20:40:37 · Alex Martemyanov:** It's all about making the things better, and VS Code is a nice bonus, at least nice for me. I hope nice for somebody else, but it's, uh… +- **20:40:37 · BA:** There. +- **20:40:47 · Alex Martemyanov:** Side project, let's say. +- **20:40:48 · Jonathan Jackson:** I mean, like, a couple of people pointed out that I don't… I think most people are not gonna end up using VS Code. Most people are trying to stop using an IDE, period, at this point. Um, if there are benefits here that really, you know, are benefiting the team in terms of build times, or… +- **20:40:49 · Alex Martemyanov:** Just an opportunity. +- **20:41:02 · Jonathan Jackson:** architectural framing that makes us more reliable or makes the team more effective. I think those are the things to focus on. Kind of like what Bernie was saying. It's still not clear to me, to be perfectly honest, what… like, what alternatives we've considered here, and whether… like, what each of the steps are, and what the pros and cons for each piece are. Um, I'll leave some comments when I get a moment to… to sort of ask a few of those other questions. But I appreciate your sharing this with us, and. helping us to have a conversation about it. Diego, sorry to bump you there. +- **20:41:35 · DR:** Um, yeah, I was thinking, like, what is probably, at least for me, what's making me uncomfortable, uh, isn't that I don't want things to change. It's mostly that it's easy to get. kind of lost into the things that are good about a change, uh, and it's not clear to me what we're trading off here. Um, I have zero idea what we're losing with this change. So if we can do some work to help clarify that in a conversation, maybe somewhere we can document it and discuss. +- **20:42:09 · DR:** Oh. It would be great. I think it would help. Get people aligned on whether it's a good or bad change. That's all. +- **20:42:18 · Alex Martemyanov:** Let me answer it all as well. What we are losing, we're already lost. storyboards, uh, we've lost plugs for, uh, alpha review and CI, and I really believe it's making the product better and more. I'm predictable, in ways. We are losing the direct connection between CI flag and debug flag, but it's resolved already on CI side by setting an environment variable. Wow. What else? +- **20:42:55 · DR:** I don't think… for what it's worth, I don't think we should discuss that here, because if anyone is not here, they're not gonna know. I think it would be great if we can lay this down somewhere that people can see. And I think… +- **20:43:05 · Alex Martemyanov:** Yep. +- **20:43:07 · DR:** Uh, I don't wanna… As I understand it, there aren't a lot of things we're losing here, probably. I don't know. But I think it would be really good to really spend some time thinking about the things that may become more complicated for us. Like, I'm going to make something up. Maybe updates are going to be harder or whatever. Apple comes up with some new thing. So again. I don't know. I think it would be the kind of thing that if we can clarify, it's going to be so much easier. +- **20:43:39 · Alex Martemyanov:** Okay, yeah, I'm gonna prepare a tech design, spend in this, but at this point, uh, it's generally nothing lost anymore, so… What could be lost is not already lost. So, this is basically the point of just moving files between the targets, and yeah, we are losing this ability to include. To mix the targets and point them to files that nobody knows where they are located. So… That's the real trade-off, the only trade-off that's remaining. +- **20:44:18 · Jonathan Jackson:** All right, we'll watch for a tech design, and I hope everybody who has questions or other interests in this is going to be able to chime in. +- **20:44:19 · Alex Martemyanov:** Please. +- **20:44:26 · Jonathan Jackson:** the conversations that happened in Asana, and we can have further conversations in team meetings as we proceed, too, if we need real-time ones. diff --git a/work/zoom-transcripts/2026-10-06 Dominik Kapusta's Personal Meeting Room 2026-10-06 15 12(GMT+6 00) NtgNJ-Y-Qxy5sMGMjngukw/transcript.json b/work/zoom-transcripts/2026-10-06 Dominik Kapusta's Personal Meeting Room 2026-10-06 15 12(GMT+6 00) NtgNJ-Y-Qxy5sMGMjngukw/transcript.json new file mode 100644 index 00000000..b8dc734e --- /dev/null +++ b/work/zoom-transcripts/2026-10-06 Dominik Kapusta's Personal Meeting Room 2026-10-06 15 12(GMT+6 00) NtgNJ-Y-Qxy5sMGMjngukw/transcript.json @@ -0,0 +1,1479 @@ +{ + "schema_version": 1, + "note_id": "NtgNJ-Y-Qxy5sMGMjngukw", + "title": "Dominik Kapusta's Personal Meeting Room 2026-10-06 15:12(GMT+6:00)", + "meeting_date": "2026-10-06", + "source_url": "https://us01mynotes.zoom.us/NtgNJ-Y-Qxy5sMGMjngukw", + "transcript": [ + { + "time": "15:12:26", + "speaker": "Alex Martemyanov", + "text": "Yeah, no problem." + }, + { + "time": "15:12:29", + "speaker": "Dominik Kapusta", + "text": "Райт. Хауинг?" + }, + { + "time": "15:12:34", + "speaker": "Alex Martemyanov", + "text": "I think I'm doing pretty good." + }, + { + "time": "15:12:37", + "speaker": "Dominik Kapusta", + "text": "Майс?" + }, + { + "time": "15:12:41", + "speaker": "Alex Martemyanov", + "text": "And I'm just doing a lot of stuff. Uh, recently… So, uh… Mainly, mainly, mainly what data priority is saying, the CPM. And, uh, release maintenance this week. to Liberace. It's gone. But I'm trying to go through the crashes that we have at least." + }, + { + "time": "15:13:10", + "speaker": "Alex Martemyanov", + "text": "Identified several web kits, probably related to macOS 27 update." + }, + { + "time": "15:13:15", + "speaker": "Dominik Kapusta", + "text": "Угу?" + }, + { + "time": "15:13:16", + "speaker": "Alex Martemyanov", + "text": "And, uh, trying to investigate deeper. For the top priority, the CPM crash, we started receiving the data, the attribution data and fixes results and well, surprise, surprise. Nothing helps. And the attribution data shows like regular normal initialization flow failure. Uh, and uh… nothing. So, yeah, we are…" + }, + { + "time": "15:13:48", + "speaker": "Dominik Kapusta", + "text": "Даже? Салют, Фикс Ди Донт Хэлп?" + }, + { + "time": "15:13:53", + "speaker": "Alex Martemyanov", + "text": "The fact that this didn't help, uh, the fix… I mean, the… the… Uh, the fixed, uh… The one that, uh, was released, that put to the release, it's not active yet. Uh, the… background process crash one. But… Probably… probably it's not the case, actually, because the pixel data does not identify the ground terminations. So… Well, it is the kind of… Lab reproduced issue. But it's probably not the case that users are experiencing and the cases. Actually, it is mitigated by WebKit itself after we release its navigation cycle, so it was only a prelude standard. special conditions that we are not… they are not proof, basically, so probably I'm gonna revert the fix." + }, + { + "time": "15:14:58", + "speaker": "Dominik Kapusta", + "text": "Окей?" + }, + { + "time": "15:15:01", + "speaker": "Alex Martemyanov", + "text": "And, uh… Yeah, there is some… Mmm… So, one fix, uh, was about the tab management, and, uh… It didn't show up as a…" + }, + { + "time": "15:15:18", + "speaker": "Dominik Kapusta", + "text": "Угу?" + }, + { + "time": "15:15:22", + "speaker": "Alex Martemyanov", + "text": "Something actually affecting a lot of users, and those cases were probably some single ones, if they were… Uh, at all. I mean, it's not the… Thousands that we are receiving. And, uh… At least we've, uh, leaned… Cleaned up this piece. And, uh… know the conditions. Uh, there is one hypothesis that I'm working on about the WebKit initialization race condition that was fixed. Uh, in macOS 27, but we are still receiving the reports from macOS 27, but there is… there is not a strong…" + }, + { + "time": "15:16:11", + "speaker": "Dominik Kapusta", + "text": "Ооо?" + }, + { + "time": "15:16:15", + "speaker": "Alex Martemyanov", + "text": "Uh, proof. that the fix… It was actually released in macOS 27.0. Uh, so, I… Started. I found out the… Well, actually, I've… Mainly with the help of codecs, but we managed to find the relation between macOS versions and. matching webkit releases. So I'm gonna publish it to Apple Documentation and talk about it in the Apple Weekly today." + }, + { + "time": "15:16:52", + "speaker": "Dominik Kapusta", + "text": "Угу? Угу?" + }, + { + "time": "15:16:56", + "speaker": "Alex Martemyanov", + "text": "Hopefully it could help somebody else in the investigation, in getting fit issues. Uh, the relationship between macOS versions and WebKit releases, so we could… so we could know exactly which bug was fixed where, because there is a fix in our web extensions system, and for sure it was there, uh…" + }, + { + "time": "15:17:08", + "speaker": "Dominik Kapusta", + "text": "Оу. Окей? Оу, найс?" + }, + { + "time": "15:17:19", + "speaker": "Alex Martemyanov", + "text": "before Mac OS 27. But, I still didn't finish this research and, have no, you know, proof that the fix. that the issue is affecting us, but it could. And it looks like a very good candidate, uh, to fix it, and, uh, if it's… If, uh, if it's proved, uh, it means the actual issue is found, and, uh… It's gonna be fixed." + }, + { + "time": "15:17:48", + "speaker": "Dominik Kapusta", + "text": "Найс. Гай." + }, + { + "time": "15:17:49", + "speaker": "Alex Martemyanov", + "text": "But if not, I will… I'll keep the research, probably send an update to the project, maybe a bit more time. Thank you. And keep trying to. To find the issue… maybe we'll have another iteration of some… Excel data attribution. Uh, especially having the most cases in this, like, normal workflow. So basically, we're not receiving the, uh, the response to the init event, and everything seems fine. No crashes, no… leakages, no…" + }, + { + "time": "15:18:28", + "speaker": "Dominik Kapusta", + "text": "Та?" + }, + { + "time": "15:18:29", + "speaker": "Alex Martemyanov", + "text": "Reloads, just regular launch, regular load, and… Silence. Those are, in most cases. Uh, but at least, uh, like, no data is still a data. Yeah, at least other cases are mostly filtered out. So, uh, another iteration is going on. Uh, yeah, I am investigating the crashes. that we have in Sentry. In scope of… Reduce maintenance. Um…" + }, + { + "time": "15:19:04", + "speaker": "Dominik Kapusta", + "text": "Гм?" + }, + { + "time": "15:19:06", + "speaker": "Alex Martemyanov", + "text": "So luckily everything else. Seems… and a good… And… And, uh, yeah. made some more efforts to. keep the VS Code migration project going. Um, so yeah, you've seen that, and, uh, I actually opened the draft PR, uh, that already works in VS Code, and, uh, yeah, I'm… I actually work in this branch and these changes and it just works. You just open the project file, and it loads, and indexes, and builds, and debugging in there, and yeah, it's… it's working fast, and, uh, there is version manager and everything else, so compared to Xcode, it's, like, really… step forward." + }, + { + "time": "15:19:53", + "speaker": "Dominik Kapusta", + "text": "Найс?" + }, + { + "time": "15:19:58", + "speaker": "Alex Martemyanov", + "text": "Especially having all these bugs in Xcode 27. I tried using it, it's unusable, basically. compared to Xcode 26. Its window blinks, it hangs." + }, + { + "time": "15:20:10", + "speaker": "Dominik Kapusta", + "text": "Интенько?" + }, + { + "time": "15:20:10", + "speaker": "Alex Martemyanov", + "text": "If you try to render some diffs for… A bit larger files, it just hangs, as usual." + }, + { + "time": "15:20:16", + "speaker": "Dominik Kapusta", + "text": "Угу?" + }, + { + "time": "15:20:17", + "speaker": "Alex Martemyanov", + "text": "I didn't crash yet, but anyways, I don't find it really usable product." + }, + { + "time": "15:20:21", + "speaker": "Dominik Kapusta", + "text": "Интростинг?" + }, + { + "time": "15:20:24", + "speaker": "Alex Martemyanov", + "text": "So hopefully it could. It could be a good product to show the commitment. And yeah, I made some measurements. Of course, I, uh… I understand it includes all these extra build steps like VPN and, DBP targets. And, uh, several extra steps that XcodeBuild includes and VS Code does not. But… Compared to the… Regular testing builds that we are… it's like… Those who don't use DBP or VPN are using it, like, twice speed up." + }, + { + "time": "15:21:07", + "speaker": "Dominik Kapusta", + "text": "Yeah, yeah, yeah. Um… Dots. Cool. Overall, that's cool. I'm also wondering… If we could use it. For AI agents in the cloud, for instance, like to speed them up. Uh, when it comes to… when it comes to, like, debugging issues, you know, like, I don't know, fixing crashes, things like that. We're… we don't do it at all right now, but just…" + }, + { + "time": "15:21:31", + "speaker": "Alex Martemyanov", + "text": "And…" + }, + { + "time": "15:21:41", + "speaker": "Dominik Kapusta", + "text": "just thinking about possible future users of this. Of course, Xcode build is the default build system, and so on and so on, but… If we can speed up a build. drastically by using Swift Package Manager essentially, right?" + }, + { + "time": "15:22:06", + "speaker": "Alex Martemyanov", + "text": "Well, it's the next step. I already started another work 3D from this, from VS Code main migration, so there is some corners." + }, + { + "time": "15:22:14", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:22:17", + "speaker": "Alex Martemyanov", + "text": "present. First of all, there is the files cleanup. Files by target cleanup is not complete yet. I just made it work by moving the files that are not included in the main browser target, but there is still some work to move. To the right places, to… make the shared packages used by several targets. It's like a… And… ideal picture that we'd like to see in the future, I think. But it's even blocking this stage. And the next stage is the tests. So first of all, the tests are not migrated at this step. It's only the main app. And, uh… but the next step is already made, uh, about the unit tests. So basically, those should not be tied to the app. Because we are supposed to be unit testing and not integration testing, so the app delegate was cut, the, uh, dependencies were moved away, and, uh, all these tab loading, uh." + }, + { + "time": "15:23:11", + "speaker": "Dominik Kapusta", + "text": "Yeah, of course, of course." + }, + { + "time": "15:23:21", + "speaker": "Alex Martemyanov", + "text": "There were many dependencies. added to the tab since the last screen up. It was made to unit tests, and, uh, they added some complexities. But, uh, so currently, at my next work three, uh." + }, + { + "time": "15:23:28", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:23:36", + "speaker": "Alex Martemyanov", + "text": "Unit tests are working under Swift build and Swift test. Integration tests are not touched yet, and they are kind of broken from if you run from VS Code, but they are still run from the Xcode target as before. Uh, so that's the state, so it's just, uh, the… Beginning of our… Clean up project, I'd say, and. I think it's worth doing it and. Just to keep, um… To keep the technical debt cleaned up. So yeah, I'm not sure yet about the integration tests, but uh… If… If it works out… Again, in the perfect world, there should be a delegate mock. in the test that's required. And there should be a window mocks in the test that are testing integration inside a window. And supposedly nothing should stop us from using Swift testing in the integration test as well." + }, + { + "time": "15:24:40", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:24:49", + "speaker": "Alex Martemyanov", + "text": "But of course, it would be much more work to handle all of that." + }, + { + "time": "15:24:56", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:24:57", + "speaker": "Alex Martemyanov", + "text": "But, uh, yeah, uh, speaking of, uh, the general speed up. I'm not sure if it would be the real case here, unless we want to… move further and, migrate the unit tests to Swift, to Swift tests. Essentially making them parallelized. Uh, if they don't depend on the main thread, because most of them do at the moment." + }, + { + "time": "15:25:24", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:25:32", + "speaker": "Alex Martemyanov", + "text": "But if, uh, if you just build the whole build with the DPP and VPN targets and so on, it's just… Essentially the same amount of work. Maybe there is a speed up, like… 2 to 5 seconds, but it's not, uh…" + }, + { + "time": "15:25:48", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:25:49", + "speaker": "Alex Martemyanov", + "text": "It's not very acceptable." + }, + { + "time": "15:25:51", + "speaker": "Dominik Kapusta", + "text": "You know. um… All right, that sounds… that all sounds good. There's one thing that I wanted to bring your attention to, which is, uh… how you're running this work, uh, these days, and what happened on the Apple Weekly recently, and that proposal that you had, uh, that was… mentioned in the Apple Weekly and then quickly closed. Uh… Let me bring it back. Code initialized, code data model, those… Yeah, okay, it's essentially a no-op, because Xcode 27, uh… handle that. Uh…" + }, + { + "time": "15:26:52", + "speaker": "Alex Martemyanov", + "text": "Yeah, so generally, I think it was a pretty good discussion happening there, yeah." + }, + { + "time": "15:26:57", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:27:01", + "speaker": "Alex Martemyanov", + "text": "So we… had a small talk with Sam and Bartek, basically, in the tech design, and so general agreement was that, yeah, it's worth doing, maybe, at some point, but we have a really good validation of. The migration is working and nothing breaks. So that would include testing on all the supported operating systems and migration prompt. I have some of the major browser releases, but… Again, I think it was doable, and maybe it's actually worth doing at some point, and maybe there is still some migration issues that we may experience from the older browser versions that we. Okay. As I remember, there's, uh, not… not much related to actual database migration, and it was mostly relying on the Core Data native migration system that." + }, + { + "time": "15:28:10", + "speaker": "Dominik Kapusta", + "text": "Hmm, yeah." + }, + { + "time": "15:28:11", + "speaker": "Alex Martemyanov", + "text": "It was only recently updated to some smart… migration techniques. In the recent, uh… I'll go to service assigning. So, uh, I won't tell it's, like, 100% closed, but yeah." + }, + { + "time": "15:28:28", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:28:30", + "speaker": "Alex Martemyanov", + "text": "using good judgment that it just works, and, uh, Expo 27 supports it, uh, building without problems, uh, just requiring a minor cleanup of the fact." + }, + { + "time": "15:28:33", + "speaker": "Dominik Kapusta", + "text": "Hmm. Mm-hmm." + }, + { + "time": "15:28:41", + "speaker": "Alex Martemyanov", + "text": "used to compile it in runtime, towards just letting it live as it is, along with the files that are not currently moved to shared packages and so on. So just to…" + }, + { + "time": "15:28:52", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:28:54", + "speaker": "Alex Martemyanov", + "text": "So just to reduce the amount of attention of other team members and my attention as well." + }, + { + "time": "15:29:01", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm. Yeah." + }, + { + "time": "15:29:02", + "speaker": "Alex Martemyanov", + "text": "in order to keep getting things done and not getting things perfect." + }, + { + "time": "15:29:12", + "speaker": "Dominik Kapusta", + "text": "Fine. One thing that I wanted to raise here is… You're doing this… Some people… could say for yourself, essentially. Because, uh, we aren't really… that much upset with Xcode, and people are just using Xcode and not trying to find, uh… alternatives. Uh, probably not as much. As they would… Be interested in it. Before Xcode MCP? Uh, but now, when… when agents can use Xcode MCP, it's probably not that much of a deal-breaker, uh, to have to continue using, uh, Xcode. And, uh… It seems to me, which can be seen also in some comments from the team, that. that people are not on board with… not… I mean, they are not as excited about it as you are, and they are asking questions, and one of them was from Juan on your project. Uh, ask last week, where he outlined a few… Doubts? And…" + }, + { + "time": "15:30:33", + "speaker": "Alex Martemyanov", + "text": "Yeah, and basically, I answered that question recently. Provide… updating the description, and uh… providing the benefits, and uh… metrics of, the build times." + }, + { + "time": "15:30:49", + "speaker": "Dominik Kapusta", + "text": "Okay, that's good, but… Well, are you aware that… No one gets a notification about that. So, if Juan asked a question and you put some… Additional description in the task." + }, + { + "time": "15:31:14", + "speaker": "Alex Martemyanov", + "text": "No, I mean, I did done sorts, didn't I?" + }, + { + "time": "15:31:20", + "speaker": "Dominik Kapusta", + "text": "I, I can't see your comment." + }, + { + "time": "15:31:23", + "speaker": "Alex Martemyanov", + "text": "Mmm…" + }, + { + "time": "15:31:24", + "speaker": "Dominik Kapusta", + "text": "Well, you mentioned updated the description, adding the benefits of the project, that's fine, but it's…" + }, + { + "time": "15:31:24", + "speaker": "Alex Martemyanov", + "text": "Here's the findings." + }, + { + "time": "15:31:32", + "speaker": "Dominik Kapusta", + "text": "Uh… how to say that? It could have been done more, uh… I mean, it's not clear that you're addressing Juan's doubt here. You could… you could have, as well, just ping Juan and say… and write, like. here you are, here's how things look like. You… you could steal, like, other command below your command, and uh… And ping one and mention that the benefits are now in the description. You can say I mentioned that in my previous comment, but maybe that wasn't too clear, so please have a look. Just to be sure that…" + }, + { + "time": "15:32:15", + "speaker": "Alex Martemyanov", + "text": "Mm-hmm. Oh, yeah." + }, + { + "time": "15:32:20", + "speaker": "Dominik Kapusta", + "text": "That they got the message, because you're doing a good job, but it may be misunderstood or not understood by some people on the team." + }, + { + "time": "15:32:33", + "speaker": "Alex Martemyanov", + "text": "Yeah, probably let me just use this Asana answer feature. Under the comments, and…" + }, + { + "time": "15:32:40", + "speaker": "Dominik Kapusta", + "text": "Yeah, that makes sense." + }, + { + "time": "15:32:41", + "speaker": "Alex Martemyanov", + "text": "Mention the… the update." + }, + { + "time": "15:32:44", + "speaker": "Dominik Kapusta", + "text": "Yeah, okay. Um… no. But also, it is something that… The team is overall uncertain about when it comes to… Complexity of your changes? And we may be in a sort of a bubble, the two of us, because I've reviewed a lot of your code, and I'm used to big changes, and I'm just reviewing them, and I understand what is changing most of the time. And if I see a, like, that pull request recently, which had 8,000 lines of code added, 17,000 removed, I didn't freak out, because I saw that the localizable strings. file, so that's all good, and you've verified with me that it's just… deleting some strings that were never used, so that's… that's good. But… the rest of the team… Maybe just not… maybe, like, more sensitive overall, and, um… And it's important to… To keep them calm, essentially, to…" + }, + { + "time": "15:33:55", + "speaker": "Alex Martemyanov", + "text": "And maybe should I, uh, have another… another talk during today's Apple Weekly? And, uh, go through the steps that were already completed and, uh, the ones that… remaining… Uh, kind of justifying the, uh, the path forward, and for those who are kind of hesitant or don't want to switch to… give an explanation of what is changing and the changes, not not as big as it." + }, + { + "time": "15:34:30", + "speaker": "Dominik Kapusta", + "text": "Yeah." + }, + { + "time": "15:34:30", + "speaker": "Alex Martemyanov", + "text": "May… as it may sound." + }, + { + "time": "15:34:32", + "speaker": "Dominik Kapusta", + "text": "Yeah. I think this… I think this is a good idea. Essentially… Making your work… more… approachable… by the rest of the team. So. If you have the time. to prepare some short talk about this on… for today's Apple Weekly, that's great. Um, but… But… Ideally. Ideally, make it so that… It shows a clear improvement. For those, also for those that… aren't looking to switch from Xcode to VS Code. Is there? Any improvement? Actually, I think there is, right?" + }, + { + "time": "15:35:31", + "speaker": "Alex Martemyanov", + "text": "Yes, so, yeah, basically edited to the… to the project benefits and section. So, basically, there is a fixed list of the tasks completed." + }, + { + "time": "15:35:36", + "speaker": "Dominik Kapusta", + "text": "Yeah, in that table, right? Mmhm." + }, + { + "time": "15:35:42", + "speaker": "Alex Martemyanov", + "text": "Like the code separation and clean up overall." + }, + { + "time": "15:35:46", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm. No." + }, + { + "time": "15:35:49", + "speaker": "Alex Martemyanov", + "text": "Moving to… Six packages, unifying the compile flags, dropping storyboards, and…" + }, + { + "time": "15:35:55", + "speaker": "Dominik Kapusta", + "text": "Mmhm." + }, + { + "time": "15:36:00", + "speaker": "Alex Martemyanov", + "text": "Moving to the UI test instead of the sandbox test tool. Dropping dead files and unifying asset access and core database models access after the discussion." + }, + { + "time": "15:36:07", + "speaker": "Dominik Kapusta", + "text": "I don't know." + }, + { + "time": "15:36:16", + "speaker": "Alex Martemyanov", + "text": "Um, they're localizable, clean up, and, uh, so basically nothing changed in that, but, uh, they are now. targeted to a bundle, which is, like, again, the unifying of the codebase, and maybe give a short glimpse about the tests and the further cleanup that remains." + }, + { + "time": "15:36:24", + "speaker": "Dominik Kapusta", + "text": "Yeah. Mmhm." + }, + { + "time": "15:36:35", + "speaker": "Alex Martemyanov", + "text": "after the project is dropped in. Again, there is, uh… Um, so we… Essentially, we eliminate the, uh, project file merge conflicts, because, uh, if we use SPM targets, they are just… Placed into the folder and match the target." + }, + { + "time": "15:37:02", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:37:03", + "speaker": "Alex Martemyanov", + "text": "What else? The dependency structure. Like, for some routing for… for storyboards and related crash reports when the app is removed. And… So, basically, those are little… Steps. that are improving this sequentially. And, uh… Probably should not be highlighted as a, like, hundred percent CS code migration required for everybody in the in this room." + }, + { + "time": "15:37:35", + "speaker": "Dominik Kapusta", + "text": "Mmhm." + }, + { + "time": "15:37:35", + "speaker": "Alex Martemyanov", + "text": "But general improvements that also bring the VS Code compatibility and as basically adding another build target and another workspace file that should not be. Uh, wouldn't… won't be required to manage manually, because it just works." + }, + { + "time": "15:37:58", + "speaker": "Dominik Kapusta", + "text": "Yeah, um… Yeah, yeah, that would be… that would be good, um… There's one… more thing that… Many people on the team would be interested. in I believe and that is the iOS app." + }, + { + "time": "15:38:25", + "speaker": "Alex Martemyanov", + "text": "Somebody needs to volunteer, I guess. Well, I was, uh, thinking… I was considering to…" + }, + { + "time": "15:38:27", + "speaker": "Dominik Kapusta", + "text": "Yeah." + }, + { + "time": "15:38:33", + "speaker": "Alex Martemyanov", + "text": "to take the iOS app after this project is complete, finished, and done, and closed. Uh, so I have, like, some time slots to… to make some iOS, uh… Impact. And the first thing to do about it is the navigation framework migration, of course, which was discussed, and I think it's being discussed, but nobody really. And he's approaching to it. Another thought I did have is the… the further Swift packages separation, because currently we have around 1,700 code files in the main target, and it takes really long to index and to build. And… Actually parallelizing it and separating the responsibilities is… May sound like a good idea. Of course, not as a single step, and not at this point in time. But maybe some some things could be moved out and unified again between iOS and macOS code base." + }, + { + "time": "15:39:50", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm. Mm." + }, + { + "time": "15:39:50", + "speaker": "Alex Martemyanov", + "text": "For example, UI components, like we have a lot of shared components. A lot of third. Mmm… Components in the design system, and we have a lot of. macOS unique components that can be moved to some package, for example, the buttons. address field as a separate package that could be like tested and so on and so on. Uh… no. So. I don't have a roadmap for it or a concrete plan." + }, + { + "time": "15:40:27", + "speaker": "Dominik Kapusta", + "text": "No." + }, + { + "time": "15:40:27", + "speaker": "Alex Martemyanov", + "text": "I don't know, but… Probably it would be a good AR maintenance project. As well. Just worth, uh…" + }, + { + "time": "15:40:36", + "speaker": "Dominik Kapusta", + "text": "Mmhm." + }, + { + "time": "15:40:39", + "speaker": "Alex Martemyanov", + "text": "reaching at some point." + }, + { + "time": "15:40:41", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:40:43", + "speaker": "Alex Martemyanov", + "text": "Certainly, certainly not, not today." + }, + { + "time": "15:40:46", + "speaker": "Dominik Kapusta", + "text": "Yeah, yeah, um." + }, + { + "time": "15:40:52", + "speaker": "Alex Martemyanov", + "text": "Yeah, maybe it's worth mentioning further. Improvement roadmap that just to give. people some thoughts about to to think about the perspectives. So… I'm not really into the iOS code base and can't say I understand how it works in a whole." + }, + { + "time": "15:41:14", + "speaker": "Dominik Kapusta", + "text": "Hmm. Sure. I agree. I mean, I understand that." + }, + { + "time": "15:41:20", + "speaker": "Alex Martemyanov", + "text": "So…" + }, + { + "time": "15:41:24", + "speaker": "Dominik Kapusta", + "text": "I understand that for sure." + }, + { + "time": "15:41:26", + "speaker": "Alex Martemyanov", + "text": "So, probably it's more of a iOS-dealized responsibility, I'd say, but yeah, I'm kinda open to help or to guide, to make some parity if there is anybody to…" + }, + { + "time": "15:41:31", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm. Mmhm." + }, + { + "time": "15:41:40", + "speaker": "Alex Martemyanov", + "text": "To work on it." + }, + { + "time": "15:41:42", + "speaker": "Dominik Kapusta", + "text": "Yeah. Yeah, yeah. Uh, yeah, sure. I'm, I'm, you know, I'm trying to…" + }, + { + "time": "15:41:43", + "speaker": "Alex Martemyanov", + "text": "But not something on my plate yet." + }, + { + "time": "15:41:49", + "speaker": "Dominik Kapusta", + "text": "Trying to make it easier to find… to ensure that the team is okay with this work, because as some of the people mentioned. Didn't. The consequences of mistakes during refactoring can be… can be very severe. Uh… I understand that we've dropped, uh… we've dropped the idea of… of initializing core data models in… in the code, which was probably the biggest, uh… the thing that started everything, really, the entire discussion, because otherwise… otherwise you're just refactoring the code. Uh, but that was… A big thing. So… So, where were we? Um… Just let me just understand it better. Quickly share this." + }, + { + "time": "15:43:02", + "speaker": "Alex Martemyanov", + "text": "Okay." + }, + { + "time": "15:43:04", + "speaker": "Dominik Kapusta", + "text": "So, in this table, we have, like, clean build, for instance. Xcode Main is what we have currently in Main, right?" + }, + { + "time": "15:43:13", + "speaker": "Alex Martemyanov", + "text": "Yep." + }, + { + "time": "15:43:14", + "speaker": "Dominik Kapusta", + "text": "And Xcode SPM, what is that exactly?" + }, + { + "time": "15:43:17", + "speaker": "Alex Martemyanov", + "text": "It's basically the migration that's happening in this branch. So we're moving the main app code to an SPM package." + }, + { + "time": "15:43:24", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm. Mmhm." + }, + { + "time": "15:43:31", + "speaker": "Alex Martemyanov", + "text": "And, uh, the three columns. after the main branch is basically V. This is basically the new approach where we use the main target as an SPM package." + }, + { + "time": "15:43:41", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm. Mm-hmm, mm-hmm, m." + }, + { + "time": "15:43:47", + "speaker": "Alex Martemyanov", + "text": "So yeah, I highlighted it in the comment before that…" + }, + { + "time": "15:43:47", + "speaker": "Dominik Kapusta", + "text": "Oh." + }, + { + "time": "15:43:54", + "speaker": "Alex Martemyanov", + "text": "Well, the main targets in SPM. Technology migrated to USPM." + }, + { + "time": "15:44:08", + "speaker": "Dominik Kapusta", + "text": "So I think, um… I think we should be realistically looking at this column. Maybe also this column, but it would be great to have Xcode build. Starts for main as well. Maybe there are… Closer to this. As well. Could you… could you get them for, like, Xcode build for main? What I'm getting at is… VS Code, realistically, I don't believe people on the Apple team will switch to VS Code. So they will stay with Xcode. But Xcode build is something that agents use. So if you make agents 20% faster to build the app. That's a significant improvement, and that's something that people should… Uh… understand, and should be aware of, that your work is making. Xcode build, 20% faster. This is also CI. I understand. And that… In my opinion, that should be the main selling point of your work." + }, + { + "time": "15:45:15", + "speaker": "Alex Martemyanov", + "text": "Mmhm. It's maybe not 100% accurate compared to the main branch. Because I suppose it would be the same for the main branch Xcode." + }, + { + "time": "15:45:30", + "speaker": "Dominik Kapusta", + "text": "I see, okay." + }, + { + "time": "15:45:31", + "speaker": "Alex Martemyanov", + "text": "So it's just comparing to the to the main branch. And, yeah, I probably should run just a comparison for the…" + }, + { + "time": "15:45:38", + "speaker": "Dominik Kapusta", + "text": "Yeah. Okay." + }, + { + "time": "15:45:38", + "speaker": "Alex Martemyanov", + "text": "Uh, main branch, and it's called… Mm-hmm. SPM… Xcode build on the main branch, yeah." + }, + { + "time": "15:45:49", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm. Um… All right, because then we essentially rebuild no changes, rebuild code change in main module. This is for some reason slower." + }, + { + "time": "15:46:03", + "speaker": "Alex Martemyanov", + "text": "Yeah. There is, so generally, export build, performs, this package resolution thing that is main slowdown during the everyday development, and that's why I." + }, + { + "time": "15:46:12", + "speaker": "Dominik Kapusta", + "text": "Mmhm. I see." + }, + { + "time": "15:46:17", + "speaker": "Alex Martemyanov", + "text": "did not really consider, uh, using it in VS Code, like a build system, because it's… essentially, it slows down compared to the main Xcode IDE, and does not give any… any speedups." + }, + { + "time": "15:46:21", + "speaker": "Dominik Kapusta", + "text": "Hmm. Mmhm." + }, + { + "time": "15:46:33", + "speaker": "Alex Martemyanov", + "text": "But, yeah, here we can see that this extra steps is giving extra ten. maybe six to ten seconds compared to the main Xcode that does not perform this package resolution every time you rebuild it." + }, + { + "time": "15:46:48", + "speaker": "Dominik Kapusta", + "text": "I see. Okay." + }, + { + "time": "15:46:49", + "speaker": "Alex Martemyanov", + "text": "And the VS code speed up is mainly because of the target difference that does not include this VPN and GBP. Yeah, so it's not some code change that causes it. It's not magic." + }, + { + "time": "15:46:58", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm. Oh, yeah. Okay. Okay. I see. Right." + }, + { + "time": "15:47:04", + "speaker": "Alex Martemyanov", + "text": "I'm just making another target for local builds of the main browser UI, and nothing else." + }, + { + "time": "15:47:14", + "speaker": "Dominik Kapusta", + "text": "All right. All right. Right, um… Okay. In this case… I'm… I'm unsure if… if this… It's worth, uh. Pursuing, unless the people on the team… would be interested in trying out VS Code. yeah, I… I realize it's harsh, but just wanted to tell you how I feel about it, and I… and how I believe. people will feel about it. I'm." + }, + { + "time": "15:48:02", + "speaker": "Alex Martemyanov", + "text": "You mean the SPM migration of the main target?" + }, + { + "time": "15:48:05", + "speaker": "Dominik Kapusta", + "text": "No. If it's… Because a lot of work that you've done for this is great to have overall, like all the cleanups, separating files by target, I like this very much, and it's great to have someone. Especially someone like you work on this and do this. Right. But then… There may be some, um… There is… there is this, like, infliction point at some… somewhere in this project where… The changes are not as… As easy ingestible, easily ingestible by everyone, and where they would be essentially… Questioning. Why are we doing them? So… Uh… so, um…" + }, + { + "time": "15:49:11", + "speaker": "Alex Martemyanov", + "text": "So, generally, the changes to… Move the files. Hmm, from… project file to… project to the ESPM folder, and the events mostly staying in the same place, and uh… accessible from there. So, just continuing the work of, uh… moving the files to SPM targets that were started, so… We're a while already. And basically, the VS Code step, the… I mean, the VS Code compatibility step itself, it's, uh… Not kinda. Related to it, it's just adding a workspace file and an extra target to the Swift package definition." + }, + { + "time": "15:50:02", + "speaker": "Dominik Kapusta", + "text": "Yeah, yeah, I see. Um." + }, + { + "time": "15:50:02", + "speaker": "Alex Martemyanov", + "text": "Right. So, I'd say, uh… the… adding the project. The VS Code workspace file itself should not meet any… Issues with the team or whoever, just… if you don't want, don't use it." + }, + { + "time": "15:50:24", + "speaker": "Dominik Kapusta", + "text": "Hmm, yeah." + }, + { + "time": "15:50:24", + "speaker": "Alex Martemyanov", + "text": "Uh, but the SPM package migration, it may, uh… It may be a discussion point here." + }, + { + "time": "15:50:32", + "speaker": "Dominik Kapusta", + "text": "Yeah, so, uh… What would you say to… Just open a tech design about it and lay out clearly. The benefits, the risks. the, um, build time, influence it has on build time, uh. Of course, there are clear benefits. There are clear, very clear benefits, like AppDelegate is not involved in unit tests. That's… the main, most important thing for me, I believe. Yeah, um… But… It feels to me like this needs to be clearly laid out and discussed within a team. And then you can just do it. Because otherwise, you're doing something that has not been truly agreed on, and it's… A significant change to the app." + }, + { + "time": "15:51:31", + "speaker": "Alex Martemyanov", + "text": "Boom. Well, I remember it was at some point, but probably…" + }, + { + "time": "15:51:38", + "speaker": "Dominik Kapusta", + "text": "It also… yeah, it also rings a bell. Like, I think that at some point there was a tech design on that, but I…" + }, + { + "time": "15:51:39", + "speaker": "Alex Martemyanov", + "text": "It was, um… There was a tech design and it was generally discussed in the meeting." + }, + { + "time": "15:51:46", + "speaker": "Dominik Kapusta", + "text": "Yeah." + }, + { + "time": "15:51:50", + "speaker": "Alex Martemyanov", + "text": "the point." + }, + { + "time": "15:51:51", + "speaker": "Dominik Kapusta", + "text": "Yeah." + }, + { + "time": "15:51:52", + "speaker": "Alex Martemyanov", + "text": "That's, uh… There was no really real complaints about this migration to perform. Let me find it where it was." + }, + { + "time": "15:52:05", + "speaker": "Dominik Kapusta", + "text": "Convert all macOS modules to Swift package." + }, + { + "time": "15:52:08", + "speaker": "Alex Martemyanov", + "text": "Yes, I think it was." + }, + { + "time": "15:52:10", + "speaker": "Dominik Kapusta", + "text": "Mmhm." + }, + { + "time": "15:52:11", + "speaker": "Alex Martemyanov", + "text": "Is it…" + }, + { + "time": "15:52:12", + "speaker": "Dominik Kapusta", + "text": "I was a, I was a reviewer there." + }, + { + "time": "15:52:15", + "speaker": "Alex Martemyanov", + "text": "Yeah. And…" + }, + { + "time": "15:52:24", + "speaker": "Dominik Kapusta", + "text": "But… Yeah, okay." + }, + { + "time": "15:52:28", + "speaker": "Alex Martemyanov", + "text": "Doing design, yeah, convert. Yeah, so generally, it includes pretty much everyone, and uh… Recommended approach was the. Yeah, it's basically…" + }, + { + "time": "15:52:40", + "speaker": "Dominik Kapusta", + "text": "Mmhm." + }, + { + "time": "15:52:41", + "speaker": "Alex Martemyanov", + "text": "That one, October 24th, a year ago." + }, + { + "time": "15:52:43", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm. A year ago… Yeah, a year ago. Em." + }, + { + "time": "15:52:54", + "speaker": "Alex Martemyanov", + "text": "So… Do you think I should reopen it for… Another round of discussion." + }, + { + "time": "15:53:04", + "speaker": "Dominik Kapusta", + "text": "I think it would make sense. I'm just having another look. There is a proposal linked there and proposal is called convert all macOS modules to Swift package." + }, + { + "time": "15:53:26", + "speaker": "Alex Martemyanov", + "text": "Yep." + }, + { + "time": "15:53:27", + "speaker": "Dominik Kapusta", + "text": "And there were some… some concerns will have essentially different linking. Yeah. I think it would be… Best to resurface this discussion, given that in the original tech design. Oh, okay, so you open the proposal, and then because of the comments on the proposal, you open the tech design, I think, because you're… In the tech design, in the comments, you're linking some comments from the, um…" + }, + { + "time": "15:54:05", + "speaker": "Alex Martemyanov", + "text": "Yeah." + }, + { + "time": "15:54:07", + "speaker": "Dominik Kapusta", + "text": "mentioning comments from the proposal. Is this 100% accurate? Is this tech design 100% accurate with the work you're doing right now?" + }, + { + "time": "15:54:26", + "speaker": "Alex Martemyanov", + "text": "And… It's, uh… Mostly, in main points. So there is, uh, this, uh…" + }, + { + "time": "15:54:32", + "speaker": "Dominik Kapusta", + "text": "Hmm. Okay." + }, + { + "time": "15:54:41", + "speaker": "Alex Martemyanov", + "text": "VS Code launcher implementation shipped into the repository step." + }, + { + "time": "15:54:41", + "speaker": "Dominik Kapusta", + "text": "Yeah, okay." + }, + { + "time": "15:54:48", + "speaker": "Alex Martemyanov", + "text": "And, uh, using the unsigned loader of, uh, dynamic libraries. So, essentially, it's the same, but, uh… Instead of it, the build script just creates a new PBX project file. a compact one, writes a single main function in C++, and, uh, signs it, and, uh, loads the dynamic library, so…" + }, + { + "time": "15:55:13", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:55:13", + "speaker": "Alex Martemyanov", + "text": "Most probably, it would even work for the App Store builds. And in the tech design, it's mentioned that it won't work with App Store builds. Oh. Otherwise, the idea is mostly the same. It's just some implementation detail." + }, + { + "time": "15:55:33", + "speaker": "Dominik Kapusta", + "text": "It doesn't support sandboxed builds, is that right?" + }, + { + "time": "15:55:36", + "speaker": "Alex Martemyanov", + "text": "Uh, it should, I guess. Because, uh, Sandbox builds… do support dynamic linking and since there is this." + }, + { + "time": "15:55:46", + "speaker": "Dominik Kapusta", + "text": "You know." + }, + { + "time": "15:55:47", + "speaker": "Alex Martemyanov", + "text": "Oh. I think they should. The only issue is the signature that should match. For both the app and the library. And since we signed both." + }, + { + "time": "15:55:56", + "speaker": "Dominik Kapusta", + "text": "But then again. Yeah, the dynamic linking is still just… to make it compatible with VS Code, is that right? Like, Xcode wouldn't use it. Yeah." + }, + { + "time": "15:56:09", + "speaker": "Alex Martemyanov", + "text": "Yes, so it's an extra target, only for the VS Code user, so it's not the main app target." + }, + { + "time": "15:56:13", + "speaker": "Dominik Kapusta", + "text": "Mmhm." + }, + { + "time": "15:56:16", + "speaker": "Alex Martemyanov", + "text": "The main app is compiled to this, static library as, it's mentioned in this schema here, macOS as a static library." + }, + { + "time": "15:56:23", + "speaker": "Dominik Kapusta", + "text": "Right, yes, yes, yes, yes." + }, + { + "time": "15:56:25", + "speaker": "Alex Martemyanov", + "text": "And, it's, either the Xcode project that uses it or the dynamic library that's linked." + }, + { + "time": "15:56:33", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm. Mm." + }, + { + "time": "15:56:33", + "speaker": "Alex Martemyanov", + "text": "Uh, the king suit. And the dynamic library is just kind of an empty placeholder that loads all the content on the static one." + }, + { + "time": "15:56:51", + "speaker": "Dominik Kapusta", + "text": "No. All right, well, so the tech design, as far as… converting the macOS app to a Swift package or. Yeah, it's… well, what I wanted to say is that as far as… Removing up delegate dependency from unit tests, which is the clearest benefit here. It's looking good. I… might… I might consider just… just… Opening… this one more time and asking for input if anyone has anything because we really didn't have much discussion on that one and it's been a year. Um… So. Just so it doesn't… I actually have to postpone my next one a little bit. Please give me." + }, + { + "time": "15:58:07", + "speaker": "Alex Martemyanov", + "text": "Well, uh, I may…" + }, + { + "time": "15:58:09", + "speaker": "Dominik Kapusta", + "text": "Give me a moment." + }, + { + "time": "15:58:11", + "speaker": "Alex Martemyanov", + "text": "I may redesign the tech design in, uh… In a way, to only include the… SPM migration." + }, + { + "time": "15:58:21", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "15:58:22", + "speaker": "Alex Martemyanov", + "text": "Without, uh, direct… VS Code. without directly mentioning the VS Code thing and the dynamic library that was essentially discussed already in that tech design and kind of approved. But yeah, just to keep it in the. Insight. Of, uh, everybody, um…" + }, + { + "time": "15:58:46", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm. Mm-hmm." + }, + { + "time": "15:58:48", + "speaker": "Alex Martemyanov", + "text": "So this step of migration may not go into the package and providing the benefits like tests and code separation. Oh, yeah. and maybe the build times that I'll. measure here." + }, + { + "time": "15:59:11", + "speaker": "Dominik Kapusta", + "text": "No." + }, + { + "time": "15:59:13", + "speaker": "Alex Martemyanov", + "text": "And…" + }, + { + "time": "15:59:14", + "speaker": "Dominik Kapusta", + "text": "I think that would be great, I think that would, uh… Help keep people calm about this. Um… Yeah, because even… even if…" + }, + { + "time": "15:59:27", + "speaker": "Alex Martemyanov", + "text": "And probably…" + }, + { + "time": "15:59:28", + "speaker": "Dominik Kapusta", + "text": "Yeah. Go on, go on." + }, + { + "time": "15:59:29", + "speaker": "Alex Martemyanov", + "text": "Probably it's worth making another roadmap that we discussed today before about the further separation and maybe unifying with iOS as well." + }, + { + "time": "15:59:43", + "speaker": "Dominik Kapusta", + "text": "It would be… it would be amazing. Yeah." + }, + { + "time": "15:59:43", + "speaker": "Alex Martemyanov", + "text": "I mean, moving. splitting the target into… into smaller… into smaller pieces." + }, + { + "time": "15:59:49", + "speaker": "Dominik Kapusta", + "text": "Yeah. I think it will be great." + }, + { + "time": "15:59:51", + "speaker": "Alex Martemyanov", + "text": "Because, uh… Because currently the indexation and build of 1,700 files is… What takes most, I believe." + }, + { + "time": "16:00:05", + "speaker": "Dominik Kapusta", + "text": "You know, there's also Apple modularization roadmap. which this… could potentially… fit into." + }, + { + "time": "16:00:17", + "speaker": "Alex Martemyanov", + "text": "Oh." + }, + { + "time": "16:00:17", + "speaker": "Dominik Kapusta", + "text": "And that roadmap is… Sounds like something in progress. Since… last year. And it's essentially about breaking down dependencies, but also… Well, it's called Apple Modularization Roadmap, so whatever… Whatever is related to… to Apple modularization." + }, + { + "time": "16:00:42", + "speaker": "Alex Martemyanov", + "text": "Basically… Basically, yes, it is essentially work in scope of regularization." + }, + { + "time": "16:00:44", + "speaker": "Dominik Kapusta", + "text": "Could fit there." + }, + { + "time": "16:00:50", + "speaker": "Alex Martemyanov", + "text": "And sharing code, and… Moving. Uh, moving forward, so… And the roadmap in the VS Code migration project does also have this separation of files to the shared packages." + }, + { + "time": "16:01:06", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "16:01:12", + "speaker": "Alex Martemyanov", + "text": "between DVP and VPN targets that are remaining shared code in the export project." + }, + { + "time": "16:01:20", + "speaker": "Dominik Kapusta", + "text": "Yeah, mm-hmm. So, I guess, for now… I have a pull request on me that is looking fine. I'll have to… I just have to build the app and test the VPN." + }, + { + "time": "16:01:38", + "speaker": "Alex Martemyanov", + "text": "So it's… yeah, the pull request is just… it's just moving files away from the folder. It does not change the… the targets." + }, + { + "time": "16:01:43", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm, yeah, yeah, yeah, yeah, sure." + }, + { + "time": "16:01:47", + "speaker": "Alex Martemyanov", + "text": "But the rest, it's not done yet, and the rest is more heavy refactoring, and it's not planned in current iteration." + }, + { + "time": "16:01:47", + "speaker": "Dominik Kapusta", + "text": "The… Yeah, yeah, and I… And I suggest, if that… Makes sense to pause here, and uh… just present the idea to the team, somehow. If you want… I mean, it's completely fine if you want to draft something and have me review it before you share it with the team. You don't have to do it today, also. But… It also… it also makes sense… To just communicate that. In this. Migration project, by saying… I will prepare a tech design and share it with you soon. That would also make people feel heard and feel like we're not doing something behind the scenes. That could potentially harm…" + }, + { + "time": "16:02:58", + "speaker": "Alex Martemyanov", + "text": "Okay, so…" + }, + { + "time": "16:02:58", + "speaker": "Dominik Kapusta", + "text": "The product." + }, + { + "time": "16:03:00", + "speaker": "Alex Martemyanov", + "text": "So, do you think it's worth mentioning today's Apple Weekly, just to highlight what… what was done, what is actually… on the plate as of today, and how it's related to the existing modularization effort, and what are the. further plans, and kind of wrap it up with the tech design that I'm going on." + }, + { + "time": "16:03:23", + "speaker": "Dominik Kapusta", + "text": "I think so. I think that would be great. And that tech design, worst case, it will be open for a number of days, but we'll figure out…" + }, + { + "time": "16:03:23", + "speaker": "Alex Martemyanov", + "text": "Prepare for the for the migration." + }, + { + "time": "16:03:35", + "speaker": "Dominik Kapusta", + "text": "the right way forward that everyone is happy with." + }, + { + "time": "16:03:42", + "speaker": "Alex Martemyanov", + "text": "But it probably also can… or should include the further roadmap and the further code separation maybe." + }, + { + "time": "16:03:52", + "speaker": "Dominik Kapusta", + "text": "Yeah, why not? Why not? Uh, well… As long as the tech design is not getting too big, because if it's too many problems in a single tech design, then it should be multiple tech designs, probably." + }, + { + "time": "16:04:08", + "speaker": "Alex Martemyanov", + "text": "I mean, it can be like a framework for the roadmap. So first stage is to main article to an SPM package. The second step is to move like UI." + }, + { + "time": "16:04:08", + "speaker": "Dominik Kapusta", + "text": "But. Mmhm. Mm-hmm. Mm-hmm." + }, + { + "time": "16:04:19", + "speaker": "Alex Martemyanov", + "text": "The third step is to clean up the DBP and VPN to the shared code." + }, + { + "time": "16:04:24", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm." + }, + { + "time": "16:04:26", + "speaker": "Alex Martemyanov", + "text": "Packages and… Just mentioned this. These packages that would be moved. on each step." + }, + { + "time": "16:04:31", + "speaker": "Dominik Kapusta", + "text": "Yeah, and…" + }, + { + "time": "16:04:32", + "speaker": "Alex Martemyanov", + "text": "So to make it a part of a bigger project in the mobilization effort." + }, + { + "time": "16:04:38", + "speaker": "Dominik Kapusta", + "text": "And try thinking about iOS, and I understand that iOS can't be done because of blockers, and some of the blockers are probably just… they use storyboards, still, so if they would like to… Follow this… this roadmap, they should… Essentially fix their stuff. Um… If they want to." + }, + { + "time": "16:05:00", + "speaker": "Alex Martemyanov", + "text": "Well, storyboards are not a big deal really, because I did all this remaining storyboard migration in a single day, just putting it to cloud and asking, okay, do it correctly and don't make mistakes." + }, + { + "time": "16:05:06", + "speaker": "Dominik Kapusta", + "text": "Thank you. Bye." + }, + { + "time": "16:05:15", + "speaker": "Alex Martemyanov", + "text": "There were a couple of mistakes, although, but anyways, it's much better than it used to be a year ago, when I had to manually go through the conversion tool and validate every constraint it adds." + }, + { + "time": "16:05:16", + "speaker": "Dominik Kapusta", + "text": "Yes. Right. Mm-hmm. Mmhm. Mmhm." + }, + { + "time": "16:05:27", + "speaker": "Alex Martemyanov", + "text": "Because currently, it took only… several dozen of iterations in the cloud. And that's all that it took." + }, + { + "time": "16:05:35", + "speaker": "Dominik Kapusta", + "text": "No. Okay, okay, sounds great. Sounds great. Thanks for listening to me and for taking action going forward. Yeah, if you want… I can help you prepare the message if you want to just speak at Apple Weekly, be my guest. I'm here to help anyway. And that's it." + }, + { + "time": "16:06:01", + "speaker": "Alex Martemyanov", + "text": "Yeah, I think if… if we could… if you could join the… the discussion, or maybe support the… the further movement, that could be, uh…" + }, + { + "time": "16:06:07", + "speaker": "Dominik Kapusta", + "text": "Mm-hmm. I'll try. I'll… I'll definitely try." + }, + { + "time": "16:06:13", + "speaker": "Alex Martemyanov", + "text": "Everything." + }, + { + "time": "16:06:14", + "speaker": "Dominik Kapusta", + "text": "Yeah. Like, the most important things are… For political reasons, don't make it… oriented around VS Code. But. Mention iOS. And, uh… and that's actually it. And make it essentially clear, like, working in the open, asking for feedback, and so on, so that you could do via tech design. And if you could reply to Juan in his comment on your project, that would also be great." + }, + { + "time": "16:06:55", + "speaker": "Alex Martemyanov", + "text": "of…" + }, + { + "time": "16:06:56", + "speaker": "Dominik Kapusta", + "text": "Or not to Juan, but to everyone." + }, + { + "time": "16:06:58", + "speaker": "Alex Martemyanov", + "text": "Yeah, maybe it was just mentioning, highlighting it during the weekly talk." + }, + { + "time": "16:07:01", + "speaker": "Dominik Kapusta", + "text": "Yeah. Yeah. Yeah, yeah, yeah. Or you can just post a comment that… But yeah, we'll share more at the Apple Weekly today or something like that. Um… fine." + }, + { + "time": "16:07:14", + "speaker": "Alex Martemyanov", + "text": "Okay." + }, + { + "time": "16:07:15", + "speaker": "Dominik Kapusta", + "text": "We're done with this, we're over time, but one last thing that we should talk about is the… continuous development check-in. We won't have time for this today, so we can do it next week, even though the deadline is in two days, but that's fine. And I guess we can just keep it as is. Or we could do it… We could do it async. Let's see. I'll try to think about your growth areas. Uh, if you have… Any thoughts? Do you have time to look at your growth areas recently?" + }, + { + "time": "16:07:59", + "speaker": "Alex Martemyanov", + "text": "Mmhm." + }, + { + "time": "16:08:04", + "speaker": "Dominik Kapusta", + "text": "I think things are going well with the project communication with OE, but…" + }, + { + "time": "16:08:05", + "speaker": "Alex Martemyanov", + "text": "I think it's, uh… It's mainly the project communication, the AOR and team work, the tech designs and…" + }, + { + "time": "16:08:15", + "speaker": "Dominik Kapusta", + "text": "Mmhm." + }, + { + "time": "16:08:19", + "speaker": "Alex Martemyanov", + "text": "Again, keeping things visible that we are working on." + }, + { + "time": "16:08:21", + "speaker": "Dominik Kapusta", + "text": "Yeah, I saw your comment on tech designs as well, um… Yeah, I made it… happen that you are assigned to some code reviews for the permissions, UI at least." + }, + { + "time": "16:08:38", + "speaker": "Alex Martemyanov", + "text": "Yeah, we're working on with Andrea." + }, + { + "time": "16:08:38", + "speaker": "Dominik Kapusta", + "text": "Permission changes." + }, + { + "time": "16:08:41", + "speaker": "Alex Martemyanov", + "text": "On it, and yeah, actually we had some… Uh, some changes on these, on his last, um… Pull request, the one that you assigned to me because of all this swizzling that was originally made by me, and yeah, I think we… I basically opened another pull request, refactoring all this stuff and making it lots of easier to digest and…" + }, + { + "time": "16:08:55", + "speaker": "Dominik Kapusta", + "text": "Yeah. Right. Yeah. Okay, that's really great. That's really great." + }, + { + "time": "16:09:07", + "speaker": "Alex Martemyanov", + "text": "Better documented." + }, + { + "time": "16:09:10", + "speaker": "Dominik Kapusta", + "text": "Let's… okay, for one last thing, because I have to switch to another call, but… We should request feedback from someone. Steve, Gary… is missing in action. I think he's going on a paternity leave. Now, or next week, or I don't know. I pinged him, I created him a task. And, okay, he's not… He's preparing for paternity leave, anyway. Um, and uh… I created him a task, he didn't respond on the task. I know people ops are chasing people on feedback tasks, so maybe he'll get to it, maybe not. We have some material from the Doug Bill award, so we can… make the case for your good project management, at least. But… some other people that you could request feedback from. Uh, I think we were, uh, talking about that briefly last week. Uh, you mentioned Max. And Mihao as well." + }, + { + "time": "16:10:16", + "speaker": "Alex Martemyanov", + "text": "Just…" + }, + { + "time": "16:10:18", + "speaker": "Dominik Kapusta", + "text": "Huh-huh. Good. Uh, is there anything in particular that you would like to ask them about? Because this feedback needs to be oriented around some events. So, this is, like, this is your project." + }, + { + "time": "16:10:30", + "speaker": "Alex Martemyanov", + "text": "So, basically, CPM breakage… CPM breakage work, yeah." + }, + { + "time": "16:10:32", + "speaker": "Dominik Kapusta", + "text": "Yeah. Okay. Um… All right, uh… I can send out that feedback, actually. And let's see. Good. Okay, um… All right, let's talk more about it next week and that will be it. Fine. Thank you. Thank you so much, and see you at the Apple Weekly." + }, + { + "time": "16:11:04", + "speaker": "Alex Martemyanov", + "text": "Okay." + }, + { + "time": "16:11:10", + "speaker": "Dominik Kapusta", + "text": "That's it. Let's talk about that next week as well." + }, + { + "time": "16:11:17", + "speaker": "Alex Martemyanov", + "text": "Ah, yeah, and I got numbers for Xcode build, just let me quickly check it, if it gets any difference. Uh, for the main, yes, and there is 35-second decline, I mean, increase. improvement over the…" + }, + { + "time": "16:11:33", + "speaker": "Dominik Kapusta", + "text": "Improvement, okay." + }, + { + "time": "16:11:35", + "speaker": "Alex Martemyanov", + "text": "was the main main branch so yeah." + }, + { + "time": "16:11:37", + "speaker": "Dominik Kapusta", + "text": "That's good. That's great to hear." + }, + { + "time": "16:11:38", + "speaker": "Alex Martemyanov", + "text": "24% on the clean build." + }, + { + "time": "16:11:42", + "speaker": "Dominik Kapusta", + "text": "Does it build VPN?" + }, + { + "time": "16:11:45", + "speaker": "Alex Martemyanov", + "text": "Uh, yes." + }, + { + "time": "16:11:46", + "speaker": "Dominik Kapusta", + "text": "Nice." + }, + { + "time": "16:11:46", + "speaker": "Alex Martemyanov", + "text": "I mean, the full… the full package… the full package rebuilt with export build, just with the main target refactor to SPM, instead of the main project." + }, + { + "time": "16:11:48", + "speaker": "Dominik Kapusta", + "text": "Yeah, okay, that's great. Cool. Cool, cool. Okay, that's great to hear. Thank you and see you around." + }, + { + "time": "16:12:05", + "speaker": "Alex Martemyanov", + "text": "Yep." + } + ] +} diff --git a/work/zoom-transcripts/2026-10-06 Dominik Kapusta's Personal Meeting Room 2026-10-06 15 12(GMT+6 00) NtgNJ-Y-Qxy5sMGMjngukw/transcript.md b/work/zoom-transcripts/2026-10-06 Dominik Kapusta's Personal Meeting Room 2026-10-06 15 12(GMT+6 00) NtgNJ-Y-Qxy5sMGMjngukw/transcript.md new file mode 100644 index 00000000..ac463447 --- /dev/null +++ b/work/zoom-transcripts/2026-10-06 Dominik Kapusta's Personal Meeting Room 2026-10-06 15 12(GMT+6 00) NtgNJ-Y-Qxy5sMGMjngukw/transcript.md @@ -0,0 +1,307 @@ +--- +title: "Dominik Kapusta's Personal Meeting Room 2026-10-06 15:12(GMT+6:00)" +date: 2026-10-06 +zoom_note_id: "NtgNJ-Y-Qxy5sMGMjngukw" +source: "https://us01mynotes.zoom.us/NtgNJ-Y-Qxy5sMGMjngukw" +--- + +# Dominik Kapusta's Personal Meeting Room 2026-10-06 15:12(GMT+6:00) + +[Zoom My Notes](https://us01mynotes.zoom.us/NtgNJ-Y-Qxy5sMGMjngukw) + +## Transcript + +- **15:12:26 · Alex Martemyanov:** Yeah, no problem. +- **15:12:29 · Dominik Kapusta:** Райт. Хауинг? +- **15:12:34 · Alex Martemyanov:** I think I'm doing pretty good. +- **15:12:37 · Dominik Kapusta:** Майс? +- **15:12:41 · Alex Martemyanov:** And I'm just doing a lot of stuff. Uh, recently… So, uh… Mainly, mainly, mainly what data priority is saying, the CPM. And, uh, release maintenance this week. to Liberace. It's gone. But I'm trying to go through the crashes that we have at least. +- **15:13:10 · Alex Martemyanov:** Identified several web kits, probably related to macOS 27 update. +- **15:13:15 · Dominik Kapusta:** Угу? +- **15:13:16 · Alex Martemyanov:** And, uh, trying to investigate deeper. For the top priority, the CPM crash, we started receiving the data, the attribution data and fixes results and well, surprise, surprise. Nothing helps. And the attribution data shows like regular normal initialization flow failure. Uh, and uh… nothing. So, yeah, we are… +- **15:13:48 · Dominik Kapusta:** Даже? Салют, Фикс Ди Донт Хэлп? +- **15:13:53 · Alex Martemyanov:** The fact that this didn't help, uh, the fix… I mean, the… the… Uh, the fixed, uh… The one that, uh, was released, that put to the release, it's not active yet. Uh, the… background process crash one. But… Probably… probably it's not the case, actually, because the pixel data does not identify the ground terminations. So… Well, it is the kind of… Lab reproduced issue. But it's probably not the case that users are experiencing and the cases. Actually, it is mitigated by WebKit itself after we release its navigation cycle, so it was only a prelude standard. special conditions that we are not… they are not proof, basically, so probably I'm gonna revert the fix. +- **15:14:58 · Dominik Kapusta:** Окей? +- **15:15:01 · Alex Martemyanov:** And, uh… Yeah, there is some… Mmm… So, one fix, uh, was about the tab management, and, uh… It didn't show up as a… +- **15:15:18 · Dominik Kapusta:** Угу? +- **15:15:22 · Alex Martemyanov:** Something actually affecting a lot of users, and those cases were probably some single ones, if they were… Uh, at all. I mean, it's not the… Thousands that we are receiving. And, uh… At least we've, uh, leaned… Cleaned up this piece. And, uh… know the conditions. Uh, there is one hypothesis that I'm working on about the WebKit initialization race condition that was fixed. Uh, in macOS 27, but we are still receiving the reports from macOS 27, but there is… there is not a strong… +- **15:16:11 · Dominik Kapusta:** Ооо? +- **15:16:15 · Alex Martemyanov:** Uh, proof. that the fix… It was actually released in macOS 27.0. Uh, so, I… Started. I found out the… Well, actually, I've… Mainly with the help of codecs, but we managed to find the relation between macOS versions and. matching webkit releases. So I'm gonna publish it to Apple Documentation and talk about it in the Apple Weekly today. +- **15:16:52 · Dominik Kapusta:** Угу? Угу? +- **15:16:56 · Alex Martemyanov:** Hopefully it could help somebody else in the investigation, in getting fit issues. Uh, the relationship between macOS versions and WebKit releases, so we could… so we could know exactly which bug was fixed where, because there is a fix in our web extensions system, and for sure it was there, uh… +- **15:17:08 · Dominik Kapusta:** Оу. Окей? Оу, найс? +- **15:17:19 · Alex Martemyanov:** before Mac OS 27. But, I still didn't finish this research and, have no, you know, proof that the fix. that the issue is affecting us, but it could. And it looks like a very good candidate, uh, to fix it, and, uh, if it's… If, uh, if it's proved, uh, it means the actual issue is found, and, uh… It's gonna be fixed. +- **15:17:48 · Dominik Kapusta:** Найс. Гай. +- **15:17:49 · Alex Martemyanov:** But if not, I will… I'll keep the research, probably send an update to the project, maybe a bit more time. Thank you. And keep trying to. To find the issue… maybe we'll have another iteration of some… Excel data attribution. Uh, especially having the most cases in this, like, normal workflow. So basically, we're not receiving the, uh, the response to the init event, and everything seems fine. No crashes, no… leakages, no… +- **15:18:28 · Dominik Kapusta:** Та? +- **15:18:29 · Alex Martemyanov:** Reloads, just regular launch, regular load, and… Silence. Those are, in most cases. Uh, but at least, uh, like, no data is still a data. Yeah, at least other cases are mostly filtered out. So, uh, another iteration is going on. Uh, yeah, I am investigating the crashes. that we have in Sentry. In scope of… Reduce maintenance. Um… +- **15:19:04 · Dominik Kapusta:** Гм? +- **15:19:06 · Alex Martemyanov:** So luckily everything else. Seems… and a good… And… And, uh, yeah. made some more efforts to. keep the VS Code migration project going. Um, so yeah, you've seen that, and, uh, I actually opened the draft PR, uh, that already works in VS Code, and, uh, yeah, I'm… I actually work in this branch and these changes and it just works. You just open the project file, and it loads, and indexes, and builds, and debugging in there, and yeah, it's… it's working fast, and, uh, there is version manager and everything else, so compared to Xcode, it's, like, really… step forward. +- **15:19:53 · Dominik Kapusta:** Найс? +- **15:19:58 · Alex Martemyanov:** Especially having all these bugs in Xcode 27. I tried using it, it's unusable, basically. compared to Xcode 26. Its window blinks, it hangs. +- **15:20:10 · Dominik Kapusta:** Интенько? +- **15:20:10 · Alex Martemyanov:** If you try to render some diffs for… A bit larger files, it just hangs, as usual. +- **15:20:16 · Dominik Kapusta:** Угу? +- **15:20:17 · Alex Martemyanov:** I didn't crash yet, but anyways, I don't find it really usable product. +- **15:20:21 · Dominik Kapusta:** Интростинг? +- **15:20:24 · Alex Martemyanov:** So hopefully it could. It could be a good product to show the commitment. And yeah, I made some measurements. Of course, I, uh… I understand it includes all these extra build steps like VPN and, DBP targets. And, uh, several extra steps that XcodeBuild includes and VS Code does not. But… Compared to the… Regular testing builds that we are… it's like… Those who don't use DBP or VPN are using it, like, twice speed up. +- **15:21:07 · Dominik Kapusta:** Yeah, yeah, yeah. Um… Dots. Cool. Overall, that's cool. I'm also wondering… If we could use it. For AI agents in the cloud, for instance, like to speed them up. Uh, when it comes to… when it comes to, like, debugging issues, you know, like, I don't know, fixing crashes, things like that. We're… we don't do it at all right now, but just… +- **15:21:31 · Alex Martemyanov:** And… +- **15:21:41 · Dominik Kapusta:** just thinking about possible future users of this. Of course, Xcode build is the default build system, and so on and so on, but… If we can speed up a build. drastically by using Swift Package Manager essentially, right? +- **15:22:06 · Alex Martemyanov:** Well, it's the next step. I already started another work 3D from this, from VS Code main migration, so there is some corners. +- **15:22:14 · Dominik Kapusta:** Mm-hmm. +- **15:22:17 · Alex Martemyanov:** present. First of all, there is the files cleanup. Files by target cleanup is not complete yet. I just made it work by moving the files that are not included in the main browser target, but there is still some work to move. To the right places, to… make the shared packages used by several targets. It's like a… And… ideal picture that we'd like to see in the future, I think. But it's even blocking this stage. And the next stage is the tests. So first of all, the tests are not migrated at this step. It's only the main app. And, uh… but the next step is already made, uh, about the unit tests. So basically, those should not be tied to the app. Because we are supposed to be unit testing and not integration testing, so the app delegate was cut, the, uh, dependencies were moved away, and, uh, all these tab loading, uh. +- **15:23:11 · Dominik Kapusta:** Yeah, of course, of course. +- **15:23:21 · Alex Martemyanov:** There were many dependencies. added to the tab since the last screen up. It was made to unit tests, and, uh, they added some complexities. But, uh, so currently, at my next work three, uh. +- **15:23:28 · Dominik Kapusta:** Mm-hmm. +- **15:23:36 · Alex Martemyanov:** Unit tests are working under Swift build and Swift test. Integration tests are not touched yet, and they are kind of broken from if you run from VS Code, but they are still run from the Xcode target as before. Uh, so that's the state, so it's just, uh, the… Beginning of our… Clean up project, I'd say, and. I think it's worth doing it and. Just to keep, um… To keep the technical debt cleaned up. So yeah, I'm not sure yet about the integration tests, but uh… If… If it works out… Again, in the perfect world, there should be a delegate mock. in the test that's required. And there should be a window mocks in the test that are testing integration inside a window. And supposedly nothing should stop us from using Swift testing in the integration test as well. +- **15:24:40 · Dominik Kapusta:** Mm-hmm. +- **15:24:49 · Alex Martemyanov:** But of course, it would be much more work to handle all of that. +- **15:24:56 · Dominik Kapusta:** Mm-hmm. +- **15:24:57 · Alex Martemyanov:** But, uh, yeah, uh, speaking of, uh, the general speed up. I'm not sure if it would be the real case here, unless we want to… move further and, migrate the unit tests to Swift, to Swift tests. Essentially making them parallelized. Uh, if they don't depend on the main thread, because most of them do at the moment. +- **15:25:24 · Dominik Kapusta:** Mm-hmm. +- **15:25:32 · Alex Martemyanov:** But if, uh, if you just build the whole build with the DPP and VPN targets and so on, it's just… Essentially the same amount of work. Maybe there is a speed up, like… 2 to 5 seconds, but it's not, uh… +- **15:25:48 · Dominik Kapusta:** Mm-hmm. +- **15:25:49 · Alex Martemyanov:** It's not very acceptable. +- **15:25:51 · Dominik Kapusta:** You know. um… All right, that sounds… that all sounds good. There's one thing that I wanted to bring your attention to, which is, uh… how you're running this work, uh, these days, and what happened on the Apple Weekly recently, and that proposal that you had, uh, that was… mentioned in the Apple Weekly and then quickly closed. Uh… Let me bring it back. Code initialized, code data model, those… Yeah, okay, it's essentially a no-op, because Xcode 27, uh… handle that. Uh… +- **15:26:52 · Alex Martemyanov:** Yeah, so generally, I think it was a pretty good discussion happening there, yeah. +- **15:26:57 · Dominik Kapusta:** Mm-hmm. +- **15:27:01 · Alex Martemyanov:** So we… had a small talk with Sam and Bartek, basically, in the tech design, and so general agreement was that, yeah, it's worth doing, maybe, at some point, but we have a really good validation of. The migration is working and nothing breaks. So that would include testing on all the supported operating systems and migration prompt. I have some of the major browser releases, but… Again, I think it was doable, and maybe it's actually worth doing at some point, and maybe there is still some migration issues that we may experience from the older browser versions that we. Okay. As I remember, there's, uh, not… not much related to actual database migration, and it was mostly relying on the Core Data native migration system that. +- **15:28:10 · Dominik Kapusta:** Hmm, yeah. +- **15:28:11 · Alex Martemyanov:** It was only recently updated to some smart… migration techniques. In the recent, uh… I'll go to service assigning. So, uh, I won't tell it's, like, 100% closed, but yeah. +- **15:28:28 · Dominik Kapusta:** Mm-hmm. +- **15:28:30 · Alex Martemyanov:** using good judgment that it just works, and, uh, Expo 27 supports it, uh, building without problems, uh, just requiring a minor cleanup of the fact. +- **15:28:33 · Dominik Kapusta:** Hmm. Mm-hmm. +- **15:28:41 · Alex Martemyanov:** used to compile it in runtime, towards just letting it live as it is, along with the files that are not currently moved to shared packages and so on. So just to… +- **15:28:52 · Dominik Kapusta:** Mm-hmm. +- **15:28:54 · Alex Martemyanov:** So just to reduce the amount of attention of other team members and my attention as well. +- **15:29:01 · Dominik Kapusta:** Mm-hmm. Yeah. +- **15:29:02 · Alex Martemyanov:** in order to keep getting things done and not getting things perfect. +- **15:29:12 · Dominik Kapusta:** Fine. One thing that I wanted to raise here is… You're doing this… Some people… could say for yourself, essentially. Because, uh, we aren't really… that much upset with Xcode, and people are just using Xcode and not trying to find, uh… alternatives. Uh, probably not as much. As they would… Be interested in it. Before Xcode MCP? Uh, but now, when… when agents can use Xcode MCP, it's probably not that much of a deal-breaker, uh, to have to continue using, uh, Xcode. And, uh… It seems to me, which can be seen also in some comments from the team, that. that people are not on board with… not… I mean, they are not as excited about it as you are, and they are asking questions, and one of them was from Juan on your project. Uh, ask last week, where he outlined a few… Doubts? And… +- **15:30:33 · Alex Martemyanov:** Yeah, and basically, I answered that question recently. Provide… updating the description, and uh… providing the benefits, and uh… metrics of, the build times. +- **15:30:49 · Dominik Kapusta:** Okay, that's good, but… Well, are you aware that… No one gets a notification about that. So, if Juan asked a question and you put some… Additional description in the task. +- **15:31:14 · Alex Martemyanov:** No, I mean, I did done sorts, didn't I? +- **15:31:20 · Dominik Kapusta:** I, I can't see your comment. +- **15:31:23 · Alex Martemyanov:** Mmm… +- **15:31:24 · Dominik Kapusta:** Well, you mentioned updated the description, adding the benefits of the project, that's fine, but it's… +- **15:31:24 · Alex Martemyanov:** Here's the findings. +- **15:31:32 · Dominik Kapusta:** Uh… how to say that? It could have been done more, uh… I mean, it's not clear that you're addressing Juan's doubt here. You could… you could have, as well, just ping Juan and say… and write, like. here you are, here's how things look like. You… you could steal, like, other command below your command, and uh… And ping one and mention that the benefits are now in the description. You can say I mentioned that in my previous comment, but maybe that wasn't too clear, so please have a look. Just to be sure that… +- **15:32:15 · Alex Martemyanov:** Mm-hmm. Oh, yeah. +- **15:32:20 · Dominik Kapusta:** That they got the message, because you're doing a good job, but it may be misunderstood or not understood by some people on the team. +- **15:32:33 · Alex Martemyanov:** Yeah, probably let me just use this Asana answer feature. Under the comments, and… +- **15:32:40 · Dominik Kapusta:** Yeah, that makes sense. +- **15:32:41 · Alex Martemyanov:** Mention the… the update. +- **15:32:44 · Dominik Kapusta:** Yeah, okay. Um… no. But also, it is something that… The team is overall uncertain about when it comes to… Complexity of your changes? And we may be in a sort of a bubble, the two of us, because I've reviewed a lot of your code, and I'm used to big changes, and I'm just reviewing them, and I understand what is changing most of the time. And if I see a, like, that pull request recently, which had 8,000 lines of code added, 17,000 removed, I didn't freak out, because I saw that the localizable strings. file, so that's all good, and you've verified with me that it's just… deleting some strings that were never used, so that's… that's good. But… the rest of the team… Maybe just not… maybe, like, more sensitive overall, and, um… And it's important to… To keep them calm, essentially, to… +- **15:33:55 · Alex Martemyanov:** And maybe should I, uh, have another… another talk during today's Apple Weekly? And, uh, go through the steps that were already completed and, uh, the ones that… remaining… Uh, kind of justifying the, uh, the path forward, and for those who are kind of hesitant or don't want to switch to… give an explanation of what is changing and the changes, not not as big as it. +- **15:34:30 · Dominik Kapusta:** Yeah. +- **15:34:30 · Alex Martemyanov:** May… as it may sound. +- **15:34:32 · Dominik Kapusta:** Yeah. I think this… I think this is a good idea. Essentially… Making your work… more… approachable… by the rest of the team. So. If you have the time. to prepare some short talk about this on… for today's Apple Weekly, that's great. Um, but… But… Ideally. Ideally, make it so that… It shows a clear improvement. For those, also for those that… aren't looking to switch from Xcode to VS Code. Is there? Any improvement? Actually, I think there is, right? +- **15:35:31 · Alex Martemyanov:** Yes, so, yeah, basically edited to the… to the project benefits and section. So, basically, there is a fixed list of the tasks completed. +- **15:35:36 · Dominik Kapusta:** Yeah, in that table, right? Mmhm. +- **15:35:42 · Alex Martemyanov:** Like the code separation and clean up overall. +- **15:35:46 · Dominik Kapusta:** Mm-hmm. No. +- **15:35:49 · Alex Martemyanov:** Moving to… Six packages, unifying the compile flags, dropping storyboards, and… +- **15:35:55 · Dominik Kapusta:** Mmhm. +- **15:36:00 · Alex Martemyanov:** Moving to the UI test instead of the sandbox test tool. Dropping dead files and unifying asset access and core database models access after the discussion. +- **15:36:07 · Dominik Kapusta:** I don't know. +- **15:36:16 · Alex Martemyanov:** Um, they're localizable, clean up, and, uh, so basically nothing changed in that, but, uh, they are now. targeted to a bundle, which is, like, again, the unifying of the codebase, and maybe give a short glimpse about the tests and the further cleanup that remains. +- **15:36:24 · Dominik Kapusta:** Yeah. Mmhm. +- **15:36:35 · Alex Martemyanov:** after the project is dropped in. Again, there is, uh… Um, so we… Essentially, we eliminate the, uh, project file merge conflicts, because, uh, if we use SPM targets, they are just… Placed into the folder and match the target. +- **15:37:02 · Dominik Kapusta:** Mm-hmm. +- **15:37:03 · Alex Martemyanov:** What else? The dependency structure. Like, for some routing for… for storyboards and related crash reports when the app is removed. And… So, basically, those are little… Steps. that are improving this sequentially. And, uh… Probably should not be highlighted as a, like, hundred percent CS code migration required for everybody in the in this room. +- **15:37:35 · Dominik Kapusta:** Mmhm. +- **15:37:35 · Alex Martemyanov:** But general improvements that also bring the VS Code compatibility and as basically adding another build target and another workspace file that should not be. Uh, wouldn't… won't be required to manage manually, because it just works. +- **15:37:58 · Dominik Kapusta:** Yeah, um… Yeah, yeah, that would be… that would be good, um… There's one… more thing that… Many people on the team would be interested. in I believe and that is the iOS app. +- **15:38:25 · Alex Martemyanov:** Somebody needs to volunteer, I guess. Well, I was, uh, thinking… I was considering to… +- **15:38:27 · Dominik Kapusta:** Yeah. +- **15:38:33 · Alex Martemyanov:** to take the iOS app after this project is complete, finished, and done, and closed. Uh, so I have, like, some time slots to… to make some iOS, uh… Impact. And the first thing to do about it is the navigation framework migration, of course, which was discussed, and I think it's being discussed, but nobody really. And he's approaching to it. Another thought I did have is the… the further Swift packages separation, because currently we have around 1,700 code files in the main target, and it takes really long to index and to build. And… Actually parallelizing it and separating the responsibilities is… May sound like a good idea. Of course, not as a single step, and not at this point in time. But maybe some some things could be moved out and unified again between iOS and macOS code base. +- **15:39:50 · Dominik Kapusta:** Mm-hmm. Mm. +- **15:39:50 · Alex Martemyanov:** For example, UI components, like we have a lot of shared components. A lot of third. Mmm… Components in the design system, and we have a lot of. macOS unique components that can be moved to some package, for example, the buttons. address field as a separate package that could be like tested and so on and so on. Uh… no. So. I don't have a roadmap for it or a concrete plan. +- **15:40:27 · Dominik Kapusta:** No. +- **15:40:27 · Alex Martemyanov:** I don't know, but… Probably it would be a good AR maintenance project. As well. Just worth, uh… +- **15:40:36 · Dominik Kapusta:** Mmhm. +- **15:40:39 · Alex Martemyanov:** reaching at some point. +- **15:40:41 · Dominik Kapusta:** Mm-hmm. +- **15:40:43 · Alex Martemyanov:** Certainly, certainly not, not today. +- **15:40:46 · Dominik Kapusta:** Yeah, yeah, um. +- **15:40:52 · Alex Martemyanov:** Yeah, maybe it's worth mentioning further. Improvement roadmap that just to give. people some thoughts about to to think about the perspectives. So… I'm not really into the iOS code base and can't say I understand how it works in a whole. +- **15:41:14 · Dominik Kapusta:** Hmm. Sure. I agree. I mean, I understand that. +- **15:41:20 · Alex Martemyanov:** So… +- **15:41:24 · Dominik Kapusta:** I understand that for sure. +- **15:41:26 · Alex Martemyanov:** So, probably it's more of a iOS-dealized responsibility, I'd say, but yeah, I'm kinda open to help or to guide, to make some parity if there is anybody to… +- **15:41:31 · Dominik Kapusta:** Mm-hmm. Mmhm. +- **15:41:40 · Alex Martemyanov:** To work on it. +- **15:41:42 · Dominik Kapusta:** Yeah. Yeah, yeah. Uh, yeah, sure. I'm, I'm, you know, I'm trying to… +- **15:41:43 · Alex Martemyanov:** But not something on my plate yet. +- **15:41:49 · Dominik Kapusta:** Trying to make it easier to find… to ensure that the team is okay with this work, because as some of the people mentioned. Didn't. The consequences of mistakes during refactoring can be… can be very severe. Uh… I understand that we've dropped, uh… we've dropped the idea of… of initializing core data models in… in the code, which was probably the biggest, uh… the thing that started everything, really, the entire discussion, because otherwise… otherwise you're just refactoring the code. Uh, but that was… A big thing. So… So, where were we? Um… Just let me just understand it better. Quickly share this. +- **15:43:02 · Alex Martemyanov:** Okay. +- **15:43:04 · Dominik Kapusta:** So, in this table, we have, like, clean build, for instance. Xcode Main is what we have currently in Main, right? +- **15:43:13 · Alex Martemyanov:** Yep. +- **15:43:14 · Dominik Kapusta:** And Xcode SPM, what is that exactly? +- **15:43:17 · Alex Martemyanov:** It's basically the migration that's happening in this branch. So we're moving the main app code to an SPM package. +- **15:43:24 · Dominik Kapusta:** Mm-hmm. Mmhm. +- **15:43:31 · Alex Martemyanov:** And, uh, the three columns. after the main branch is basically V. This is basically the new approach where we use the main target as an SPM package. +- **15:43:41 · Dominik Kapusta:** Mm-hmm. Mm-hmm, mm-hmm, m. +- **15:43:47 · Alex Martemyanov:** So yeah, I highlighted it in the comment before that… +- **15:43:47 · Dominik Kapusta:** Oh. +- **15:43:54 · Alex Martemyanov:** Well, the main targets in SPM. Technology migrated to USPM. +- **15:44:08 · Dominik Kapusta:** So I think, um… I think we should be realistically looking at this column. Maybe also this column, but it would be great to have Xcode build. Starts for main as well. Maybe there are… Closer to this. As well. Could you… could you get them for, like, Xcode build for main? What I'm getting at is… VS Code, realistically, I don't believe people on the Apple team will switch to VS Code. So they will stay with Xcode. But Xcode build is something that agents use. So if you make agents 20% faster to build the app. That's a significant improvement, and that's something that people should… Uh… understand, and should be aware of, that your work is making. Xcode build, 20% faster. This is also CI. I understand. And that… In my opinion, that should be the main selling point of your work. +- **15:45:15 · Alex Martemyanov:** Mmhm. It's maybe not 100% accurate compared to the main branch. Because I suppose it would be the same for the main branch Xcode. +- **15:45:30 · Dominik Kapusta:** I see, okay. +- **15:45:31 · Alex Martemyanov:** So it's just comparing to the to the main branch. And, yeah, I probably should run just a comparison for the… +- **15:45:38 · Dominik Kapusta:** Yeah. Okay. +- **15:45:38 · Alex Martemyanov:** Uh, main branch, and it's called… Mm-hmm. SPM… Xcode build on the main branch, yeah. +- **15:45:49 · Dominik Kapusta:** Mm-hmm. Um… All right, because then we essentially rebuild no changes, rebuild code change in main module. This is for some reason slower. +- **15:46:03 · Alex Martemyanov:** Yeah. There is, so generally, export build, performs, this package resolution thing that is main slowdown during the everyday development, and that's why I. +- **15:46:12 · Dominik Kapusta:** Mmhm. I see. +- **15:46:17 · Alex Martemyanov:** did not really consider, uh, using it in VS Code, like a build system, because it's… essentially, it slows down compared to the main Xcode IDE, and does not give any… any speedups. +- **15:46:21 · Dominik Kapusta:** Hmm. Mmhm. +- **15:46:33 · Alex Martemyanov:** But, yeah, here we can see that this extra steps is giving extra ten. maybe six to ten seconds compared to the main Xcode that does not perform this package resolution every time you rebuild it. +- **15:46:48 · Dominik Kapusta:** I see. Okay. +- **15:46:49 · Alex Martemyanov:** And the VS code speed up is mainly because of the target difference that does not include this VPN and GBP. Yeah, so it's not some code change that causes it. It's not magic. +- **15:46:58 · Dominik Kapusta:** Mm-hmm. Oh, yeah. Okay. Okay. I see. Right. +- **15:47:04 · Alex Martemyanov:** I'm just making another target for local builds of the main browser UI, and nothing else. +- **15:47:14 · Dominik Kapusta:** All right. All right. Right, um… Okay. In this case… I'm… I'm unsure if… if this… It's worth, uh. Pursuing, unless the people on the team… would be interested in trying out VS Code. yeah, I… I realize it's harsh, but just wanted to tell you how I feel about it, and I… and how I believe. people will feel about it. I'm. +- **15:48:02 · Alex Martemyanov:** You mean the SPM migration of the main target? +- **15:48:05 · Dominik Kapusta:** No. If it's… Because a lot of work that you've done for this is great to have overall, like all the cleanups, separating files by target, I like this very much, and it's great to have someone. Especially someone like you work on this and do this. Right. But then… There may be some, um… There is… there is this, like, infliction point at some… somewhere in this project where… The changes are not as… As easy ingestible, easily ingestible by everyone, and where they would be essentially… Questioning. Why are we doing them? So… Uh… so, um… +- **15:49:11 · Alex Martemyanov:** So, generally, the changes to… Move the files. Hmm, from… project file to… project to the ESPM folder, and the events mostly staying in the same place, and uh… accessible from there. So, just continuing the work of, uh… moving the files to SPM targets that were started, so… We're a while already. And basically, the VS Code step, the… I mean, the VS Code compatibility step itself, it's, uh… Not kinda. Related to it, it's just adding a workspace file and an extra target to the Swift package definition. +- **15:50:02 · Dominik Kapusta:** Yeah, yeah, I see. Um. +- **15:50:02 · Alex Martemyanov:** Right. So, I'd say, uh… the… adding the project. The VS Code workspace file itself should not meet any… Issues with the team or whoever, just… if you don't want, don't use it. +- **15:50:24 · Dominik Kapusta:** Hmm, yeah. +- **15:50:24 · Alex Martemyanov:** Uh, but the SPM package migration, it may, uh… It may be a discussion point here. +- **15:50:32 · Dominik Kapusta:** Yeah, so, uh… What would you say to… Just open a tech design about it and lay out clearly. The benefits, the risks. the, um, build time, influence it has on build time, uh. Of course, there are clear benefits. There are clear, very clear benefits, like AppDelegate is not involved in unit tests. That's… the main, most important thing for me, I believe. Yeah, um… But… It feels to me like this needs to be clearly laid out and discussed within a team. And then you can just do it. Because otherwise, you're doing something that has not been truly agreed on, and it's… A significant change to the app. +- **15:51:31 · Alex Martemyanov:** Boom. Well, I remember it was at some point, but probably… +- **15:51:38 · Dominik Kapusta:** It also… yeah, it also rings a bell. Like, I think that at some point there was a tech design on that, but I… +- **15:51:39 · Alex Martemyanov:** It was, um… There was a tech design and it was generally discussed in the meeting. +- **15:51:46 · Dominik Kapusta:** Yeah. +- **15:51:50 · Alex Martemyanov:** the point. +- **15:51:51 · Dominik Kapusta:** Yeah. +- **15:51:52 · Alex Martemyanov:** That's, uh… There was no really real complaints about this migration to perform. Let me find it where it was. +- **15:52:05 · Dominik Kapusta:** Convert all macOS modules to Swift package. +- **15:52:08 · Alex Martemyanov:** Yes, I think it was. +- **15:52:10 · Dominik Kapusta:** Mmhm. +- **15:52:11 · Alex Martemyanov:** Is it… +- **15:52:12 · Dominik Kapusta:** I was a, I was a reviewer there. +- **15:52:15 · Alex Martemyanov:** Yeah. And… +- **15:52:24 · Dominik Kapusta:** But… Yeah, okay. +- **15:52:28 · Alex Martemyanov:** Doing design, yeah, convert. Yeah, so generally, it includes pretty much everyone, and uh… Recommended approach was the. Yeah, it's basically… +- **15:52:40 · Dominik Kapusta:** Mmhm. +- **15:52:41 · Alex Martemyanov:** That one, October 24th, a year ago. +- **15:52:43 · Dominik Kapusta:** Mm-hmm. A year ago… Yeah, a year ago. Em. +- **15:52:54 · Alex Martemyanov:** So… Do you think I should reopen it for… Another round of discussion. +- **15:53:04 · Dominik Kapusta:** I think it would make sense. I'm just having another look. There is a proposal linked there and proposal is called convert all macOS modules to Swift package. +- **15:53:26 · Alex Martemyanov:** Yep. +- **15:53:27 · Dominik Kapusta:** And there were some… some concerns will have essentially different linking. Yeah. I think it would be… Best to resurface this discussion, given that in the original tech design. Oh, okay, so you open the proposal, and then because of the comments on the proposal, you open the tech design, I think, because you're… In the tech design, in the comments, you're linking some comments from the, um… +- **15:54:05 · Alex Martemyanov:** Yeah. +- **15:54:07 · Dominik Kapusta:** mentioning comments from the proposal. Is this 100% accurate? Is this tech design 100% accurate with the work you're doing right now? +- **15:54:26 · Alex Martemyanov:** And… It's, uh… Mostly, in main points. So there is, uh, this, uh… +- **15:54:32 · Dominik Kapusta:** Hmm. Okay. +- **15:54:41 · Alex Martemyanov:** VS Code launcher implementation shipped into the repository step. +- **15:54:41 · Dominik Kapusta:** Yeah, okay. +- **15:54:48 · Alex Martemyanov:** And, uh, using the unsigned loader of, uh, dynamic libraries. So, essentially, it's the same, but, uh… Instead of it, the build script just creates a new PBX project file. a compact one, writes a single main function in C++, and, uh, signs it, and, uh, loads the dynamic library, so… +- **15:55:13 · Dominik Kapusta:** Mm-hmm. +- **15:55:13 · Alex Martemyanov:** Most probably, it would even work for the App Store builds. And in the tech design, it's mentioned that it won't work with App Store builds. Oh. Otherwise, the idea is mostly the same. It's just some implementation detail. +- **15:55:33 · Dominik Kapusta:** It doesn't support sandboxed builds, is that right? +- **15:55:36 · Alex Martemyanov:** Uh, it should, I guess. Because, uh, Sandbox builds… do support dynamic linking and since there is this. +- **15:55:46 · Dominik Kapusta:** You know. +- **15:55:47 · Alex Martemyanov:** Oh. I think they should. The only issue is the signature that should match. For both the app and the library. And since we signed both. +- **15:55:56 · Dominik Kapusta:** But then again. Yeah, the dynamic linking is still just… to make it compatible with VS Code, is that right? Like, Xcode wouldn't use it. Yeah. +- **15:56:09 · Alex Martemyanov:** Yes, so it's an extra target, only for the VS Code user, so it's not the main app target. +- **15:56:13 · Dominik Kapusta:** Mmhm. +- **15:56:16 · Alex Martemyanov:** The main app is compiled to this, static library as, it's mentioned in this schema here, macOS as a static library. +- **15:56:23 · Dominik Kapusta:** Right, yes, yes, yes, yes. +- **15:56:25 · Alex Martemyanov:** And, it's, either the Xcode project that uses it or the dynamic library that's linked. +- **15:56:33 · Dominik Kapusta:** Mm-hmm. Mm. +- **15:56:33 · Alex Martemyanov:** Uh, the king suit. And the dynamic library is just kind of an empty placeholder that loads all the content on the static one. +- **15:56:51 · Dominik Kapusta:** No. All right, well, so the tech design, as far as… converting the macOS app to a Swift package or. Yeah, it's… well, what I wanted to say is that as far as… Removing up delegate dependency from unit tests, which is the clearest benefit here. It's looking good. I… might… I might consider just… just… Opening… this one more time and asking for input if anyone has anything because we really didn't have much discussion on that one and it's been a year. Um… So. Just so it doesn't… I actually have to postpone my next one a little bit. Please give me. +- **15:58:07 · Alex Martemyanov:** Well, uh, I may… +- **15:58:09 · Dominik Kapusta:** Give me a moment. +- **15:58:11 · Alex Martemyanov:** I may redesign the tech design in, uh… In a way, to only include the… SPM migration. +- **15:58:21 · Dominik Kapusta:** Mm-hmm. +- **15:58:22 · Alex Martemyanov:** Without, uh, direct… VS Code. without directly mentioning the VS Code thing and the dynamic library that was essentially discussed already in that tech design and kind of approved. But yeah, just to keep it in the. Insight. Of, uh, everybody, um… +- **15:58:46 · Dominik Kapusta:** Mm-hmm. Mm-hmm. +- **15:58:48 · Alex Martemyanov:** So this step of migration may not go into the package and providing the benefits like tests and code separation. Oh, yeah. and maybe the build times that I'll. measure here. +- **15:59:11 · Dominik Kapusta:** No. +- **15:59:13 · Alex Martemyanov:** And… +- **15:59:14 · Dominik Kapusta:** I think that would be great, I think that would, uh… Help keep people calm about this. Um… Yeah, because even… even if… +- **15:59:27 · Alex Martemyanov:** And probably… +- **15:59:28 · Dominik Kapusta:** Yeah. Go on, go on. +- **15:59:29 · Alex Martemyanov:** Probably it's worth making another roadmap that we discussed today before about the further separation and maybe unifying with iOS as well. +- **15:59:43 · Dominik Kapusta:** It would be… it would be amazing. Yeah. +- **15:59:43 · Alex Martemyanov:** I mean, moving. splitting the target into… into smaller… into smaller pieces. +- **15:59:49 · Dominik Kapusta:** Yeah. I think it will be great. +- **15:59:51 · Alex Martemyanov:** Because, uh… Because currently the indexation and build of 1,700 files is… What takes most, I believe. +- **16:00:05 · Dominik Kapusta:** You know, there's also Apple modularization roadmap. which this… could potentially… fit into. +- **16:00:17 · Alex Martemyanov:** Oh. +- **16:00:17 · Dominik Kapusta:** And that roadmap is… Sounds like something in progress. Since… last year. And it's essentially about breaking down dependencies, but also… Well, it's called Apple Modularization Roadmap, so whatever… Whatever is related to… to Apple modularization. +- **16:00:42 · Alex Martemyanov:** Basically… Basically, yes, it is essentially work in scope of regularization. +- **16:00:44 · Dominik Kapusta:** Could fit there. +- **16:00:50 · Alex Martemyanov:** And sharing code, and… Moving. Uh, moving forward, so… And the roadmap in the VS Code migration project does also have this separation of files to the shared packages. +- **16:01:06 · Dominik Kapusta:** Mm-hmm. +- **16:01:12 · Alex Martemyanov:** between DVP and VPN targets that are remaining shared code in the export project. +- **16:01:20 · Dominik Kapusta:** Yeah, mm-hmm. So, I guess, for now… I have a pull request on me that is looking fine. I'll have to… I just have to build the app and test the VPN. +- **16:01:38 · Alex Martemyanov:** So it's… yeah, the pull request is just… it's just moving files away from the folder. It does not change the… the targets. +- **16:01:43 · Dominik Kapusta:** Mm-hmm, yeah, yeah, yeah, yeah, sure. +- **16:01:47 · Alex Martemyanov:** But the rest, it's not done yet, and the rest is more heavy refactoring, and it's not planned in current iteration. +- **16:01:47 · Dominik Kapusta:** The… Yeah, yeah, and I… And I suggest, if that… Makes sense to pause here, and uh… just present the idea to the team, somehow. If you want… I mean, it's completely fine if you want to draft something and have me review it before you share it with the team. You don't have to do it today, also. But… It also… it also makes sense… To just communicate that. In this. Migration project, by saying… I will prepare a tech design and share it with you soon. That would also make people feel heard and feel like we're not doing something behind the scenes. That could potentially harm… +- **16:02:58 · Alex Martemyanov:** Okay, so… +- **16:02:58 · Dominik Kapusta:** The product. +- **16:03:00 · Alex Martemyanov:** So, do you think it's worth mentioning today's Apple Weekly, just to highlight what… what was done, what is actually… on the plate as of today, and how it's related to the existing modularization effort, and what are the. further plans, and kind of wrap it up with the tech design that I'm going on. +- **16:03:23 · Dominik Kapusta:** I think so. I think that would be great. And that tech design, worst case, it will be open for a number of days, but we'll figure out… +- **16:03:23 · Alex Martemyanov:** Prepare for the for the migration. +- **16:03:35 · Dominik Kapusta:** the right way forward that everyone is happy with. +- **16:03:42 · Alex Martemyanov:** But it probably also can… or should include the further roadmap and the further code separation maybe. +- **16:03:52 · Dominik Kapusta:** Yeah, why not? Why not? Uh, well… As long as the tech design is not getting too big, because if it's too many problems in a single tech design, then it should be multiple tech designs, probably. +- **16:04:08 · Alex Martemyanov:** I mean, it can be like a framework for the roadmap. So first stage is to main article to an SPM package. The second step is to move like UI. +- **16:04:08 · Dominik Kapusta:** But. Mmhm. Mm-hmm. Mm-hmm. +- **16:04:19 · Alex Martemyanov:** The third step is to clean up the DBP and VPN to the shared code. +- **16:04:24 · Dominik Kapusta:** Mm-hmm. +- **16:04:26 · Alex Martemyanov:** Packages and… Just mentioned this. These packages that would be moved. on each step. +- **16:04:31 · Dominik Kapusta:** Yeah, and… +- **16:04:32 · Alex Martemyanov:** So to make it a part of a bigger project in the mobilization effort. +- **16:04:38 · Dominik Kapusta:** And try thinking about iOS, and I understand that iOS can't be done because of blockers, and some of the blockers are probably just… they use storyboards, still, so if they would like to… Follow this… this roadmap, they should… Essentially fix their stuff. Um… If they want to. +- **16:05:00 · Alex Martemyanov:** Well, storyboards are not a big deal really, because I did all this remaining storyboard migration in a single day, just putting it to cloud and asking, okay, do it correctly and don't make mistakes. +- **16:05:06 · Dominik Kapusta:** Thank you. Bye. +- **16:05:15 · Alex Martemyanov:** There were a couple of mistakes, although, but anyways, it's much better than it used to be a year ago, when I had to manually go through the conversion tool and validate every constraint it adds. +- **16:05:16 · Dominik Kapusta:** Yes. Right. Mm-hmm. Mmhm. Mmhm. +- **16:05:27 · Alex Martemyanov:** Because currently, it took only… several dozen of iterations in the cloud. And that's all that it took. +- **16:05:35 · Dominik Kapusta:** No. Okay, okay, sounds great. Sounds great. Thanks for listening to me and for taking action going forward. Yeah, if you want… I can help you prepare the message if you want to just speak at Apple Weekly, be my guest. I'm here to help anyway. And that's it. +- **16:06:01 · Alex Martemyanov:** Yeah, I think if… if we could… if you could join the… the discussion, or maybe support the… the further movement, that could be, uh… +- **16:06:07 · Dominik Kapusta:** Mm-hmm. I'll try. I'll… I'll definitely try. +- **16:06:13 · Alex Martemyanov:** Everything. +- **16:06:14 · Dominik Kapusta:** Yeah. Like, the most important things are… For political reasons, don't make it… oriented around VS Code. But. Mention iOS. And, uh… and that's actually it. And make it essentially clear, like, working in the open, asking for feedback, and so on, so that you could do via tech design. And if you could reply to Juan in his comment on your project, that would also be great. +- **16:06:55 · Alex Martemyanov:** of… +- **16:06:56 · Dominik Kapusta:** Or not to Juan, but to everyone. +- **16:06:58 · Alex Martemyanov:** Yeah, maybe it was just mentioning, highlighting it during the weekly talk. +- **16:07:01 · Dominik Kapusta:** Yeah. Yeah. Yeah, yeah, yeah. Or you can just post a comment that… But yeah, we'll share more at the Apple Weekly today or something like that. Um… fine. +- **16:07:14 · Alex Martemyanov:** Okay. +- **16:07:15 · Dominik Kapusta:** We're done with this, we're over time, but one last thing that we should talk about is the… continuous development check-in. We won't have time for this today, so we can do it next week, even though the deadline is in two days, but that's fine. And I guess we can just keep it as is. Or we could do it… We could do it async. Let's see. I'll try to think about your growth areas. Uh, if you have… Any thoughts? Do you have time to look at your growth areas recently? +- **16:07:59 · Alex Martemyanov:** Mmhm. +- **16:08:04 · Dominik Kapusta:** I think things are going well with the project communication with OE, but… +- **16:08:05 · Alex Martemyanov:** I think it's, uh… It's mainly the project communication, the AOR and team work, the tech designs and… +- **16:08:15 · Dominik Kapusta:** Mmhm. +- **16:08:19 · Alex Martemyanov:** Again, keeping things visible that we are working on. +- **16:08:21 · Dominik Kapusta:** Yeah, I saw your comment on tech designs as well, um… Yeah, I made it… happen that you are assigned to some code reviews for the permissions, UI at least. +- **16:08:38 · Alex Martemyanov:** Yeah, we're working on with Andrea. +- **16:08:38 · Dominik Kapusta:** Permission changes. +- **16:08:41 · Alex Martemyanov:** On it, and yeah, actually we had some… Uh, some changes on these, on his last, um… Pull request, the one that you assigned to me because of all this swizzling that was originally made by me, and yeah, I think we… I basically opened another pull request, refactoring all this stuff and making it lots of easier to digest and… +- **16:08:55 · Dominik Kapusta:** Yeah. Right. Yeah. Okay, that's really great. That's really great. +- **16:09:07 · Alex Martemyanov:** Better documented. +- **16:09:10 · Dominik Kapusta:** Let's… okay, for one last thing, because I have to switch to another call, but… We should request feedback from someone. Steve, Gary… is missing in action. I think he's going on a paternity leave. Now, or next week, or I don't know. I pinged him, I created him a task. And, okay, he's not… He's preparing for paternity leave, anyway. Um, and uh… I created him a task, he didn't respond on the task. I know people ops are chasing people on feedback tasks, so maybe he'll get to it, maybe not. We have some material from the Doug Bill award, so we can… make the case for your good project management, at least. But… some other people that you could request feedback from. Uh, I think we were, uh, talking about that briefly last week. Uh, you mentioned Max. And Mihao as well. +- **16:10:16 · Alex Martemyanov:** Just… +- **16:10:18 · Dominik Kapusta:** Huh-huh. Good. Uh, is there anything in particular that you would like to ask them about? Because this feedback needs to be oriented around some events. So, this is, like, this is your project. +- **16:10:30 · Alex Martemyanov:** So, basically, CPM breakage… CPM breakage work, yeah. +- **16:10:32 · Dominik Kapusta:** Yeah. Okay. Um… All right, uh… I can send out that feedback, actually. And let's see. Good. Okay, um… All right, let's talk more about it next week and that will be it. Fine. Thank you. Thank you so much, and see you at the Apple Weekly. +- **16:11:04 · Alex Martemyanov:** Okay. +- **16:11:10 · Dominik Kapusta:** That's it. Let's talk about that next week as well. +- **16:11:17 · Alex Martemyanov:** Ah, yeah, and I got numbers for Xcode build, just let me quickly check it, if it gets any difference. Uh, for the main, yes, and there is 35-second decline, I mean, increase. improvement over the… +- **16:11:33 · Dominik Kapusta:** Improvement, okay. +- **16:11:35 · Alex Martemyanov:** was the main main branch so yeah. +- **16:11:37 · Dominik Kapusta:** That's good. That's great to hear. +- **16:11:38 · Alex Martemyanov:** 24% on the clean build. +- **16:11:42 · Dominik Kapusta:** Does it build VPN? +- **16:11:45 · Alex Martemyanov:** Uh, yes. +- **16:11:46 · Dominik Kapusta:** Nice. +- **16:11:46 · Alex Martemyanov:** I mean, the full… the full package… the full package rebuilt with export build, just with the main target refactor to SPM, instead of the main project. +- **16:11:48 · Dominik Kapusta:** Yeah, okay, that's great. Cool. Cool, cool. Okay, that's great to hear. Thank you and see you around. +- **16:12:05 · Alex Martemyanov:** Yep. diff --git a/work/zoom-transcripts/2026-10-06 Jacek Łyp's Zoom Meeting 2026-10-06 20 44(GMT+6 00) gUhtLoqRTfSsTbZsann73A/transcript.json b/work/zoom-transcripts/2026-10-06 Jacek Łyp's Zoom Meeting 2026-10-06 20 44(GMT+6 00) gUhtLoqRTfSsTbZsann73A/transcript.json new file mode 100644 index 00000000..834ffe19 --- /dev/null +++ b/work/zoom-transcripts/2026-10-06 Jacek Łyp's Zoom Meeting 2026-10-06 20 44(GMT+6 00) gUhtLoqRTfSsTbZsann73A/transcript.json @@ -0,0 +1,1534 @@ +{ + "schema_version": 1, + "note_id": "gUhtLoqRTfSsTbZsann73A", + "title": "Jacek Łyp's Zoom Meeting 2026-10-06 20:44(GMT+6:00)", + "meeting_date": "2026-10-06", + "source_url": "https://us01mynotes.zoom.us/gUhtLoqRTfSsTbZsann73A", + "transcript": [ + { + "time": "20:44:49", + "speaker": "JŁ", + "text": "Hello." + }, + { + "time": "20:44:51", + "speaker": "Alex Martemyanov", + "text": "Yeah, so… But I think… There should be a PR open for the… Privacy config files. For Jacek…" + }, + { + "time": "20:45:03", + "speaker": "JŁ", + "text": "Yeah, just. Just one one thing when when you are fixing Alex this, have you been able to reproduce it or not?" + }, + { + "time": "20:45:10", + "speaker": "Alex Martemyanov", + "text": "Yes, there is exact testing steps in the PR. So, basically, you have to skip the… got it. button press, and it puts you to the NTS restore loop. Uh, because the flag is set on when the button is clicked. Uh, so, the next time you open Duck AI, and you restart the app from that point, it will restart to the FHIR onboarding, locking in, uh, the Duck AI burning. So it's not a kind of blocking user experience, but it's a regression of user experience for sure." + }, + { + "time": "20:45:48", + "speaker": "JŁ", + "text": "Okay, let me check it." + }, + { + "time": "20:45:49", + "speaker": "Alex Martemyanov", + "text": "Uh, and, uh, disabling, there is no, there is no dedicated feature flag for this, uh, for this exact feature, but this is the whole, uh, tailored DACA AI. Onboarding flow. If we want to disable it, or maybe it's just easier to go with the…" + }, + { + "time": "20:46:07", + "speaker": "JŁ", + "text": "So sorry, if we disable it, what happens?" + }, + { + "time": "20:46:10", + "speaker": "Alex Martemyanov", + "text": "The whole dark AI onboarding vanishes." + }, + { + "time": "20:46:14", + "speaker": "JŁ", + "text": "Okay." + }, + { + "time": "20:46:17", + "speaker": "Alex Martemyanov", + "text": "So we learned to the old, uh, onboarding without the Duckinghide part." + }, + { + "time": "20:46:20", + "speaker": "JŁ", + "text": "Mmhm." + }, + { + "time": "20:46:22", + "speaker": "Alex Martemyanov", + "text": "So it kind of hurts the Duck AI, uh, product. But if we… if we push it to the hotfix or internal release, it just mitigates it right… right away." + }, + { + "time": "20:46:22", + "speaker": "JŁ", + "text": "Okay. Yeah, yeah, so I think we need to…" + }, + { + "time": "20:46:33", + "speaker": "Alex Martemyanov", + "text": "So maybe it's easier, it's an easier option not to disable the feature flag. And just push it to the release. If it makes sense." + }, + { + "time": "20:46:44", + "speaker": "JŁ", + "text": "I mean, uh. Not doing the hotfix or doing the hotfix." + }, + { + "time": "20:46:50", + "speaker": "Alex Martemyanov", + "text": "I mean doing default fix without changing the feature flag." + }, + { + "time": "20:46:54", + "speaker": "JŁ", + "text": "Okay." + }, + { + "time": "20:46:57", + "speaker": "Bartek Waresiak", + "text": "Again… What's the plan? Sorry, I got lost because I just got into the infinite loop on my browser." + }, + { + "time": "20:47:05", + "speaker": "JŁ", + "text": "Yeah, the… Okay, so like, you mean representation." + }, + { + "time": "20:47:09", + "speaker": "Alex Martemyanov", + "text": "To release it. Related to 240 iOS release, so these…" + }, + { + "time": "20:47:14", + "speaker": "JŁ", + "text": "And…" + }, + { + "time": "20:47:18", + "speaker": "Alex Martemyanov", + "text": "This week's public release and make an assisted app store review. Right. How does it work?" + }, + { + "time": "20:47:35", + "speaker": "Hanyu Tang", + "text": "Okay, I can reproduce it on me." + }, + { + "time": "20:47:41", + "speaker": "Alex Martemyanov", + "text": "Hmm? Sorry." + }, + { + "time": "20:47:43", + "speaker": "Hanyu Tang", + "text": "I can reproduce it on me using the testing steps." + }, + { + "time": "20:47:49", + "speaker": "Alex Martemyanov", + "text": "Cannot reproduce it. Why? On the broad branch." + }, + { + "time": "20:47:54", + "speaker": "Hanyu Tang", + "text": "Yeah, I can refer to you soon. Uh, not your branch, on me." + }, + { + "time": "20:47:57", + "speaker": "Alex Martemyanov", + "text": "Ah, you're good to be list. Okay." + }, + { + "time": "20:48:00", + "speaker": "Hanyu Tang", + "text": "Yeah." + }, + { + "time": "20:48:02", + "speaker": "Alex Martemyanov", + "text": "Yeah, it's not even produced, just exactly with the steps. So there is two main points, not pressing the button, and uh… staying on the CAI page when the app is, um… They're too dumb." + }, + { + "time": "20:48:24", + "speaker": "Bartek Waresiak", + "text": "Again, not pressing which button." + }, + { + "time": "20:48:25", + "speaker": "Alex Martemyanov", + "text": "The got it button. When there is a… you've got this screen. if you… Turn… turn down the app. If you turn it in the app at that stage, it won't record the correct state for the parallel marking. Then you have to ignore the… Final. the final onboarding button on one more thing that marks the onboarding as completed. and directly head to the address bar and start AI chat. So we detectively, uh… kind of lays over two issues that we stay in the state restoration, in the onboarding state restoration for the FHIR onboarding state, and the onboarding incomplete state. Because you didn't complete the onboarding in a normal way, and uh… instead of. completing the onboarding, the app considers the onboarding not finished and restores it to the FHIR onboarding state, because the DACA AI page was… There, when it was took down. So there is three factors activating this bug. And it should not have a huge effect on the users. Yes, I suppose." + }, + { + "time": "20:50:02", + "speaker": "Bartek Waresiak", + "text": "Can I share my screen? Because I want to make sure that we are on the same page with this. So, basically… This is my application right now, okay?" + }, + { + "time": "20:50:16", + "speaker": "Alex Martemyanov", + "text": "Yep." + }, + { + "time": "20:50:18", + "speaker": "Bartek Waresiak", + "text": "This is my application. And… they'll. If I kill it… And open it. I see this." + }, + { + "time": "20:50:35", + "speaker": "Alex Martemyanov", + "text": "Yes. This is exactly the stage." + }, + { + "time": "20:50:39", + "speaker": "Bartek Waresiak", + "text": "And… Pressing that… And I'll and starting any new new chat. And leaving this means that every restart I see that." + }, + { + "time": "20:50:57", + "speaker": "Alex Martemyanov", + "text": "Yes." + }, + { + "time": "20:51:00", + "speaker": "Bartek Waresiak", + "text": "And this is on the 240." + }, + { + "time": "20:51:00", + "speaker": "Jonathan Jackson", + "text": "So if you would. So if you leave now, what happens?" + }, + { + "time": "20:51:03", + "speaker": "Bartek Waresiak", + "text": "Like the… And if I leave now…" + }, + { + "time": "20:51:06", + "speaker": "Jonathan Jackson", + "text": "Yep." + }, + { + "time": "20:51:07", + "speaker": "Bartek Waresiak", + "text": "And come back, I'm back to onboarding." + }, + { + "time": "20:51:12", + "speaker": "Alex Martemyanov", + "text": "Yep." + }, + { + "time": "20:51:20", + "speaker": "Bartek Waresiak", + "text": "Can we control this with feature flag?" + }, + { + "time": "20:51:24", + "speaker": "Alex Martemyanov", + "text": "Uh, we can disable the docker, yeah, onboarding." + }, + { + "time": "20:51:29", + "speaker": "Bartek Waresiak", + "text": "Like, I would say, like, I would disable it." + }, + { + "time": "20:51:35", + "speaker": "JŁ", + "text": "The the question is disabling. It fixes it for the future users, or if someone is in the loop. It's going to fix it for them as well." + }, + { + "time": "20:51:43", + "speaker": "Bartek Waresiak", + "text": "I would say eventually it should fix. This is not fully blocking the UI. I can press this. It's like the shitty experience. I can still use the app." + }, + { + "time": "20:51:51", + "speaker": "Alex Martemyanov", + "text": "Yeah." + }, + { + "time": "20:51:53", + "speaker": "Bartek Waresiak", + "text": "Right? If I kill this and resurface. it works, but if I, for any reason, end in the… And the flow in this. And kill." + }, + { + "time": "20:52:11", + "speaker": "Jonathan Jackson", + "text": "So if you're in Duck AI when the app is quit, it brings you back with AI onboarding." + }, + { + "time": "20:52:14", + "speaker": "Bartek Waresiak", + "text": "Yeah, this is insane loop. So every time I end up in the state that I've used Duck AI, I'm back to this annoying onboarding step." + }, + { + "time": "20:52:26", + "speaker": "Jonathan Jackson", + "text": "Is that true for everybody who uses Duck AI at this point?" + }, + { + "time": "20:52:31", + "speaker": "Bartek Waresiak", + "text": "No, I think this is true for everyone that has onboarding state that is broken." + }, + { + "time": "20:52:38", + "speaker": "Alex Martemyanov", + "text": "Yeah, so the ones who did not push the button." + }, + { + "time": "20:52:38", + "speaker": "Jonathan Jackson", + "text": "So they stopped in the middle of the morning, basically. Okay." + }, + { + "time": "20:52:42", + "speaker": "Bartek Waresiak", + "text": "Yep. So the friction." + }, + { + "time": "20:52:44", + "speaker": "Jonathan Jackson", + "text": "So it's only for our new users who we're trying to push towards Duck AI." + }, + { + "time": "20:52:48", + "speaker": "Bartek Waresiak", + "text": "Yes, exactly. That's the… that's exactly the impression I have. So, my… my intention here, like, intuitive intention would be to figure out." + }, + { + "time": "20:52:50", + "speaker": "Alex Martemyanov", + "text": "Hmm. Okay." + }, + { + "time": "20:52:52", + "speaker": "Jonathan Jackson", + "text": "Okay." + }, + { + "time": "20:53:00", + "speaker": "Bartek Waresiak", + "text": "can feature flag. disable this. What kind of feature flag do we have for us for this?" + }, + { + "time": "20:53:08", + "speaker": "Alex Martemyanov", + "text": "We have, uh…" + }, + { + "time": "20:53:08", + "speaker": "Jonathan Jackson", + "text": "Yep." + }, + { + "time": "20:53:10", + "speaker": "Bartek Waresiak", + "text": "Oh, I don't. For some reason." + }, + { + "time": "20:53:12", + "speaker": "Alex Martemyanov", + "text": "Custom product page deck AI onboarding flow." + }, + { + "time": "20:53:16", + "speaker": "Jonathan Jackson", + "text": "So we would disable the entire onboarding flow." + }, + { + "time": "20:53:17", + "speaker": "Bartek Waresiak", + "text": "I don't have." + }, + { + "time": "20:53:21", + "speaker": "Jonathan Jackson", + "text": "For Dec AI." + }, + { + "time": "20:53:21", + "speaker": "Alex Martemyanov", + "text": "Yeah, try setting the flag." + }, + { + "time": "20:53:24", + "speaker": "Bartek Waresiak", + "text": "Yeah, I need to log in to…" + }, + { + "time": "20:53:28", + "speaker": "Jonathan Jackson", + "text": "I don't know if that's necessarily better." + }, + { + "time": "20:53:32", + "speaker": "Bartek Waresiak", + "text": "Not necessarily better what?" + }, + { + "time": "20:53:32", + "speaker": "Jonathan Jackson", + "text": "Because we wouldn't be giving, it sounds like we wouldn't be giving them a decade onboarding at all. Based on the flag name anyway." + }, + { + "time": "20:53:41", + "speaker": "Alex Martemyanov", + "text": "That's… That depends." + }, + { + "time": "20:53:46", + "speaker": "Jonathan Jackson", + "text": "Or is it only for people coming from a custom product page?" + }, + { + "time": "20:53:51", + "speaker": "Bartek Waresiak", + "text": "Like, this is the onboarding when you install the app." + }, + { + "time": "20:53:51", + "speaker": "Alex Martemyanov", + "text": "You know." + }, + { + "time": "20:53:54", + "speaker": "Jonathan Jackson", + "text": "Yeah, but Alex just shared the… what I think is the feature flag name, right, Alex?" + }, + { + "time": "20:53:59", + "speaker": "Alex Martemyanov", + "text": "On boarding. Hmm." + }, + { + "time": "20:54:05", + "speaker": "Jonathan Jackson", + "text": "Okay." + }, + { + "time": "20:54:06", + "speaker": "Bartek Waresiak", + "text": "Like the question is." + }, + { + "time": "20:54:08", + "speaker": "Jonathan Jackson", + "text": "Do we have a mitigation?" + }, + { + "time": "20:54:08", + "speaker": "Bartek Waresiak", + "text": "This onboarding can effectively set people in this broken state." + }, + { + "time": "20:54:14", + "speaker": "Jonathan Jackson", + "text": "Right." + }, + { + "time": "20:54:14", + "speaker": "Bartek Waresiak", + "text": "Plus, we have people in this broken state that basically cannot recover." + }, + { + "time": "20:54:20", + "speaker": "Jonathan Jackson", + "text": "Yeah. Mm-hmm." + }, + { + "time": "20:54:22", + "speaker": "Bartek Waresiak", + "text": "So the question is. What's more important, to fix that on the actual users right now or to still keep presenting this onboarding? Potentially bringing in more bleeding." + }, + { + "time": "20:54:35", + "speaker": "Jonathan Jackson", + "text": "Thank you. Yeah, yeah, yeah." + }, + { + "time": "20:54:39", + "speaker": "JŁ", + "text": "Yeah, but… So I think we don't know if again, like the question I asked, if. disabling the flag fixes it for like fixes the people that are in the loop. you know, because if if it doesn't, then. I think we should just go with the hot fix as soon as possible, and if it does, then yeah, we could. We could turn the flag for today and still go with a hot fix. Probably like." + }, + { + "time": "20:55:04", + "speaker": "Jonathan Jackson", + "text": "Yeah, I think we have parallel work streams here. We have one looking into what feature flag we have and what we can do to mitigate as quickly as possible. And we have another looking at what's the right hotfix." + }, + { + "time": "20:55:17", + "speaker": "Alex Martemyanov", + "text": "No, basically the flags won't fix it. They will only fix it for the new users by not showing the onboarding step." + }, + { + "time": "20:55:28", + "speaker": "Jonathan Jackson", + "text": "But the users would be stuck still." + }, + { + "time": "20:55:30", + "speaker": "Alex Martemyanov", + "text": "Yep. who already have this issue, it's not gonna fix it." + }, + { + "time": "20:55:34", + "speaker": "Jonathan Jackson", + "text": "Yeah. So then, Bartek, your question, I think, is right. Does disabling it and preventing new people from ending up in this position make sense or not?" + }, + { + "time": "20:55:46", + "speaker": "Bartek Waresiak", + "text": "Like, the question is, can we expedite the code fix to… have it rolled out as soon as possible. Like, basically, this is what we need. If we cannot fix this. With…" + }, + { + "time": "20:56:05", + "speaker": "Jonathan Jackson", + "text": "I mean, do we have a sense of what an actual fix looks like yet?" + }, + { + "time": "20:56:11", + "speaker": "Alex Martemyanov", + "text": "Yes, the pull request is open for the actual fix. It's basically resetting this log." + }, + { + "time": "20:56:22", + "speaker": "Jonathan Jackson", + "text": "Okay. And this is iOS only, is that right?" + }, + { + "time": "20:56:26", + "speaker": "Alex Martemyanov", + "text": "Yes." + }, + { + "time": "20:56:31", + "speaker": "JŁ", + "text": "Oh, okay, I think…" + }, + { + "time": "20:56:32", + "speaker": "Hassaan Elgarem", + "text": "So I I want to. Yeah, I want to share my screen and show like, I think, Jonathan and Alex, you're in there when we talked about that. But I I came across a different issue. I'm not sure if it's related or not. Let me show you. um… Okay. It's this one. So when going through the onboarding flow and then choosing like one of the pre-filled prompts, I reach the stuck. State. and it takes a very long time like we did it on the call before you joined, and we waited. Maybe I'm not sure, like more than a minute till something actually happened." + }, + { + "time": "20:57:25", + "speaker": "Jonathan Jackson", + "text": "Fun." + }, + { + "time": "20:57:25", + "speaker": "Hassaan Elgarem", + "text": "And only the only the only thing that's. Interactive is the Firebolt. Right now." + }, + { + "time": "20:57:31", + "speaker": "Alex Martemyanov", + "text": "It's basically a known issue if you have a connection loss or a weak connection. It would behave like this, yes, and it's kind of intended behavior." + }, + { + "time": "20:57:42", + "speaker": "Jonathan Jackson", + "text": "Do you have a reconnection?" + }, + { + "time": "20:57:42", + "speaker": "Alex Martemyanov", + "text": "So, they will fire buttons and… Yes, it's, uh, it's loading. Because it starts loading. Maybe there is, like… I don't know. There shouldn't be CPM compilation, but if it takes to one minute to load, it means that it's, yeah, it's loaded, basically." + }, + { + "time": "20:57:55", + "speaker": "Bartek Waresiak", + "text": "Do we…" + }, + { + "time": "20:57:58", + "speaker": "JŁ", + "text": "Wait. Wait. It's crazy if it's intended, sorry." + }, + { + "time": "20:58:05", + "speaker": "Bartek Waresiak", + "text": "Yeah, like, okay, like, I can buy it is acceptable. But… I would only make it acceptable if we have metrics to understand that this is not a problem on a wider scale. Do we have metrics? For how long does it take this initial load?" + }, + { + "time": "20:58:23", + "speaker": "Alex Martemyanov", + "text": "Nope, we don't." + }, + { + "time": "20:58:27", + "speaker": "JŁ", + "text": "Probably some." + }, + { + "time": "20:58:27", + "speaker": "Alex Martemyanov", + "text": "Okay." + }, + { + "time": "20:58:28", + "speaker": "JŁ", + "text": "Someone would be good person to address it like he. He was doing some. And… SLIs. Air." + }, + { + "time": "20:58:38", + "speaker": "Hassaan Elgarem", + "text": "So my my question here is to Alex like, if this problem is like an existing problem. But if this problem became more frequent, would it trigger more issues? Of the actual, like, loop that we are discussing." + }, + { + "time": "20:58:54", + "speaker": "Alex Martemyanov", + "text": "Nope, it's just long loading. There is probably nothing to do on the native side about it." + }, + { + "time": "20:58:58", + "speaker": "Jonathan Jackson", + "text": "Okay. Hassan, was that in a link condition scenario so your network was slow, or was that just a normal load?" + }, + { + "time": "20:59:07", + "speaker": "JŁ", + "text": "Sorry, sorry, I'm not, I'm not, I'm not buying it, like, it's, it's, it's a site, right? What does it mean? It's an intended behavior, and…" + }, + { + "time": "20:59:09", + "speaker": "Hassaan Elgarem", + "text": "No, I'm good." + }, + { + "time": "20:59:14", + "speaker": "Jonathan Jackson", + "text": "Yeah." + }, + { + "time": "20:59:18", + "speaker": "Alex Martemyanov", + "text": "We don't show the, uh… We don't show the content until it is completely loaded with all the contents." + }, + { + "time": "20:59:26", + "speaker": "JŁ", + "text": "Okay, but… but, like, Hassan's on a Zoom here with great connectivity, like, how… I… I don't get it, like… Probably any site would load immediately, like." + }, + { + "time": "20:59:39", + "speaker": "Alex Martemyanov", + "text": "Maybe there is a signal… But yeah, so we just seen the appearance of the text started after it appeared." + }, + { + "time": "20:59:50", + "speaker": "Jonathan Jackson", + "text": "Yeah, but it looks like a broken state. It looks like the page has failed to render." + }, + { + "time": "20:59:50", + "speaker": "Alex Martemyanov", + "text": "So, basically, the loading." + }, + { + "time": "20:59:55", + "speaker": "Jonathan Jackson", + "text": "And so maybe that's the implementation right now, but I thought it was very broken." + }, + { + "time": "20:59:58", + "speaker": "Alex Martemyanov", + "text": "No, it's, uh, it's not… it's not the… it's not the rendering failure, it's loading, because, uh, it's…" + }, + { + "time": "21:00:04", + "speaker": "Jonathan Jackson", + "text": "Yeah but the user clicks the user goes to that page on a good connection and they have to wait thirty seconds to a minute for anything to happen." + }, + { + "time": "21:00:10", + "speaker": "Alex Martemyanov", + "text": "There is a signal." + }, + { + "time": "21:00:10", + "speaker": "Jonathan Jackson", + "text": "That doesn't look…" + }, + { + "time": "21:00:11", + "speaker": "Bartek Waresiak", + "text": "One moment." + }, + { + "time": "21:00:12", + "speaker": "Jonathan Jackson", + "text": "Yep." + }, + { + "time": "21:00:13", + "speaker": "Bartek Waresiak", + "text": "What I would expect to happen when the button is pressed is that the question is transferred to the bubble, chat bubble. is sent to the backend. And we render the question that is being asked. Then we see generating response prompt that is ongoing and this didn't happen." + }, + { + "time": "21:00:37", + "speaker": "Alex Martemyanov", + "text": "This is logical, but it's not the implementation. It's, uh… it's done this way to…" + }, + { + "time": "21:00:41", + "speaker": "Jonathan Jackson", + "text": "So…" + }, + { + "time": "21:00:45", + "speaker": "Alex Martemyanov", + "text": "show the blank screen until the answer is ready. So when the connection is final and the signal arrives in time, it should render just in time and appear without all this page flickering." + }, + { + "time": "21:01:01", + "speaker": "Bartek Waresiak", + "text": "Was that raised in ship review and presented in such way?" + }, + { + "time": "21:01:01", + "speaker": "Alex Martemyanov", + "text": "But there was… Nope. during the ship review, there… the issue was not reproduced, and basically it appears during 2 seconds. And yes, it was, uh… this way during the ship review. So there was no bubble, nothing animated, and so on." + }, + { + "time": "21:01:21", + "speaker": "JŁ", + "text": "I called Fernando. to this meeting. I just, it's hard for me to believe like." + }, + { + "time": "21:01:26", + "speaker": "Jonathan Jackson", + "text": "Well, so, I mean, it sounds like… it sounds like that's maybe a separate user experience issue, which we should have a task for and address. Hasan, your question is still valid, though, related to the incident here." + }, + { + "time": "21:01:29", + "speaker": "JŁ", + "text": "But." + }, + { + "time": "21:01:30", + "speaker": "Alex Martemyanov", + "text": "Thank you." + }, + { + "time": "21:01:32", + "speaker": "Bartek Waresiak", + "text": "Yeah, yeah." + }, + { + "time": "21:01:37", + "speaker": "Jonathan Jackson", + "text": "Does that behavior put us into a position where more users are at risk of ending up in this loop state?" + }, + { + "time": "21:01:47", + "speaker": "Alex Martemyanov", + "text": "So there may be an issue with this front-end signal from Duck AI page that we used to start rendering, but as we've seen, the actual animation has started after a significant delay, so it means the signal is." + }, + { + "time": "21:01:58", + "speaker": "Bartek Waresiak", + "text": "Okay." + }, + { + "time": "21:02:01", + "speaker": "Alex Martemyanov", + "text": "synchronized with this appearance, this presentation slide." + }, + { + "time": "21:02:01", + "speaker": "Jonathan Jackson", + "text": "Right. But if that's happening during onboarding, and the entry to the loop is hitting the fire button." + }, + { + "time": "21:02:03", + "speaker": "Bartek Waresiak", + "text": "I, I have, I have…" + }, + { + "time": "21:02:07", + "speaker": "Jonathan Jackson", + "text": "It's going to encourage more people to hit the fire button than might otherwise." + }, + { + "time": "21:02:11", + "speaker": "Alex Martemyanov", + "text": "Maybe." + }, + { + "time": "21:02:12", + "speaker": "Bartek Waresiak", + "text": "I have one question." + }, + { + "time": "21:02:12", + "speaker": "Hassaan Elgarem", + "text": "hitting the firewalls and and killing the app like killing the app like, if I'm in that state. I would think of killing the app, and that's what like triggers the loop. So." + }, + { + "time": "21:02:14", + "speaker": "Jonathan Jackson", + "text": "Right. Because they think it's stuck. Yeah." + }, + { + "time": "21:02:23", + "speaker": "Hassaan Elgarem", + "text": "I think they are related." + }, + { + "time": "21:02:24", + "speaker": "Jonathan Jackson", + "text": "I don't know that we need a fix for the user experience issue we're talking about, but it is a factor in putting people into that state. From a behavior perspective, I'd buy that." + }, + { + "time": "21:02:26", + "speaker": "Bartek Waresiak", + "text": "Yeah, like, the… from the perspective on onboarding, when I select Duck AI onboarding, when I select some random prompt. And it loads. When I delete this… When I use the fire button. It should work okay from that point onwards. Or is the condition flux set somewhere else? That's what I don't really follow." + }, + { + "time": "21:03:15", + "speaker": "Alex Martemyanov", + "text": "The condition set, the flag is, the flag for the fire onboarding is set on the… Prior. Screen. I mean, when do you have this AI answer presented? Uh, it sets the state restoration, the onboarding set restoration plug. to… Awaited. So basically, yes, it may… It may indicate this." + }, + { + "time": "21:03:45", + "speaker": "Bartek Waresiak", + "text": "So when I got the response." + }, + { + "time": "21:03:49", + "speaker": "Alex Martemyanov", + "text": "When you get the response, the flag is turned on. And when you… Push the got it button, it's, uh, removed." + }, + { + "time": "21:03:59", + "speaker": "Bartek Waresiak", + "text": "Okay, so I'm I'm trying to reproduce it right now. And I'm… Question to AI." + }, + { + "time": "21:04:10", + "speaker": "JŁ", + "text": "In the meantime, Hassan, could you show Fernando the finding that you have as well? Another was was working on the Ki." + }, + { + "time": "21:04:19", + "speaker": "Hassaan Elgarem", + "text": "Give me a minute to prepare it and I'll share my screen." + }, + { + "time": "21:04:24", + "speaker": "JŁ", + "text": "Thank you. Okay, I'm going to focus now on the official part, so I will officially start the incident, okay, because… Yeah, I have issues with multitasking. So yeah, so I will leave you like I'll be here. But I will leave you guys to to questions, answers, and more investigation. And just ping me if anything." + }, + { + "time": "21:05:03", + "speaker": "Bartek Waresiak", + "text": "No, like, it's like, sorry, but all of that just doesn't make sense to me. It's like super easy to trigger for me to enter the loop." + }, + { + "time": "21:05:20", + "speaker": "Fernando Bunn", + "text": "What it is." + }, + { + "time": "21:05:22", + "speaker": "Bartek Waresiak", + "text": "Like, I…" + }, + { + "time": "21:05:22", + "speaker": "Fernando Bunn", + "text": "Sorry, I don't know exactly what is going on." + }, + { + "time": "21:05:24", + "speaker": "Bartek Waresiak", + "text": "Let me reinstall the app and share my screen again, so I will show you what I mean by super easy." + }, + { + "time": "21:05:29", + "speaker": "Fernando Bunn", + "text": "Okay." + }, + { + "time": "21:05:31", + "speaker": "Jonathan Jackson", + "text": "While you're doing that, the short version is, if you go through the Duck AI onboarding, it gets you to the point where it's given a random prompt to Duck AI. You hit the fire button, and then you quit the app. And from that point on, anytime you leave… anytime you quit the app while you're in the Duck AI experience, it will bring you back to the random prompt happening when you come back to the app. So it feels like you're stuck on onboarding and it basically keeps bringing you back to that. I don't know if you have to quit the app for that to happen or if it's like when you leave and come back after a while, if you were in Duck AI at that point." + }, + { + "time": "21:05:56", + "speaker": "Fernando Bunn", + "text": "Mmhm." + }, + { + "time": "21:06:06", + "speaker": "Jonathan Jackson", + "text": "I think it happens again. I'm not sure about that piece. But at the very least, when people relaunch the app at that point, they keep getting the Duck AI out." + }, + { + "time": "21:06:13", + "speaker": "Fernando Bunn", + "text": "Okay. So if we relaunch the IPS2… Okay, let me… Yeah, yeah, yeah, you can see it." + }, + { + "time": "21:06:17", + "speaker": "Bartek Waresiak", + "text": "Yeah, can you… Yeah, okay. Can you hear me as well?" + }, + { + "time": "21:06:22", + "speaker": "Fernando Bunn", + "text": "Yep." + }, + { + "time": "21:06:23", + "speaker": "Bartek Waresiak", + "text": "Excellent. So this is like, I ignore this. It's in Polish, but it doesn't really matter. I ignore this." + }, + { + "time": "21:06:29", + "speaker": "Fernando Bunn", + "text": "Mm-hmm." + }, + { + "time": "21:06:29", + "speaker": "Bartek Waresiak", + "text": "I ignore the color, whatever, top, and now I want to. Check the AI about the stock market. Okay, so I'm waiting here. This looks good to me, right? I look nice. I'm supposed to clear it. Okay, so I'm clearing this. Excellent. This looks okay. I want to chat. Okay. I accept the terms. Everything looks good. Perfect. So I move away. And I'm in the loop." + }, + { + "time": "21:07:14", + "speaker": "Alex Martemyanov", + "text": "So. Ah, you're telling there is no… you've got this step at that point?" + }, + { + "time": "21:07:18", + "speaker": "Bartek Waresiak", + "text": "Yeah, exactly." + }, + { + "time": "21:07:20", + "speaker": "Alex Martemyanov", + "text": "Ah…" + }, + { + "time": "21:07:20", + "speaker": "Bartek Waresiak", + "text": "This is everything here." + }, + { + "time": "21:07:22", + "speaker": "Alex Martemyanov", + "text": "That is the change. And when was it done?" + }, + { + "time": "21:07:26", + "speaker": "Bartek Waresiak", + "text": "This is the current production." + }, + { + "time": "21:07:30", + "speaker": "Alex Martemyanov", + "text": "When was it changed? Maybe there is a phishing flag." + }, + { + "time": "21:07:35", + "speaker": "Bartek Waresiak", + "text": "Like, this is, like, I'm hitting this literally every time I install the app." + }, + { + "time": "21:07:40", + "speaker": "Alex Martemyanov", + "text": "Hmm, that changes things, and that explains why we started seeing it just now." + }, + { + "time": "21:07:46", + "speaker": "Bartek Waresiak", + "text": "Oops, sorry, I'm…" + }, + { + "time": "21:07:47", + "speaker": "Alex Martemyanov", + "text": "If the onboarding was changed, so this…" + }, + { + "time": "21:07:51", + "speaker": "Bartek Waresiak", + "text": "Uh, I just real…" + }, + { + "time": "21:07:52", + "speaker": "Alex Martemyanov", + "text": "I think made of those." + }, + { + "time": "21:07:52", + "speaker": "JŁ", + "text": "My pleasure." + }, + { + "time": "21:07:53", + "speaker": "Fernando Bunn", + "text": "Just one thing, just to — sorry, just help me. OK." + }, + { + "time": "21:07:53", + "speaker": "JŁ", + "text": "Can you…" + }, + { + "time": "21:07:55", + "speaker": "Bartek Waresiak", + "text": "Sorry, I have another call I need to jump on, but I believe this is a problem that needs to be surfaced, okay? So…" + }, + { + "time": "21:08:03", + "speaker": "JŁ", + "text": "Bartek, one more thing. Can you record the thing and upload it? Send me so we can have like a." + }, + { + "time": "21:08:12", + "speaker": "Bartek Waresiak", + "text": "I, I can, like, give me, like, 2 minutes, okay?" + }, + { + "time": "21:08:12", + "speaker": "Fernando Bunn", + "text": "I'll try to do it here in the simulator, yeah." + }, + { + "time": "21:08:13", + "speaker": "JŁ", + "text": "For experience. Thank you. Okay, sure." + }, + { + "time": "21:08:16", + "speaker": "Fernando Bunn", + "text": "Just one thing, I don't know if it… like, it could give a hint on what's going on, okay? When I saw the onboarding thing, what it did, I didn't see the terms and conditions. anywhere…" + }, + { + "time": "21:08:28", + "speaker": "JŁ", + "text": "it…" + }, + { + "time": "21:08:29", + "speaker": "Fernando Bunn", + "text": "Is this expected?" + }, + { + "time": "21:08:31", + "speaker": "JŁ", + "text": "There… there were, like, I think, when the chat appeared. I think for the first chat, it didn't appear. I think there was a discussion on Mattermost today on OJ Channel about it. I think Picor asked about it. Let me search quickly." + }, + { + "time": "21:08:35", + "speaker": "Fernando Bunn", + "text": "Yep. Yep. Okay. No, yeah, I saw the discussion, but…" + }, + { + "time": "21:08:48", + "speaker": "JŁ", + "text": "Shouldn't we already have a privacy information at this stage? And Chuck answered, we have dispensation to allow one prompt here without asking users to agree to the TOS." + }, + { + "time": "21:08:59", + "speaker": "Fernando Bunn", + "text": "Oh, what prompts? Okay." + }, + { + "time": "21:08:59", + "speaker": "JŁ", + "text": "So after… Yeah, so Bartek prompted again, and there was a button. So, so did this one work?" + }, + { + "time": "21:09:05", + "speaker": "Fernando Bunn", + "text": "Yeah, okay, so that's fine, okay, so that's fine." + }, + { + "time": "21:09:08", + "speaker": "JŁ", + "text": "Yeah, but do you have?" + }, + { + "time": "21:09:09", + "speaker": "Fernando Bunn", + "text": "of…" + }, + { + "time": "21:09:10", + "speaker": "Hassaan Elgarem", + "text": "Fernando? Yeah, I have it ready. Let me show you." + }, + { + "time": "21:09:11", + "speaker": "JŁ", + "text": "that that." + }, + { + "time": "21:09:15", + "speaker": "Hassaan Elgarem", + "text": "The other thing." + }, + { + "time": "21:09:17", + "speaker": "Fernando Bunn", + "text": "Audrey's name?" + }, + { + "time": "21:09:18", + "speaker": "Hassaan Elgarem", + "text": "Okay, so I went through the onboarding." + }, + { + "time": "21:09:19", + "speaker": "Fernando Bunn", + "text": "Okay." + }, + { + "time": "21:09:19", + "speaker": "JŁ", + "text": "Thank you. The other thing." + }, + { + "time": "21:09:26", + "speaker": "Hassaan Elgarem", + "text": "And then ask AI, and then… And then I'm stuck in this state. for a while, like it normally takes like 30 to 30 seconds to one minute. And the only thing that I can I can interact with is the fire button. And once I do, actually, it starts pulsing. So it's a weird thing." + }, + { + "time": "21:09:50", + "speaker": "Alex Martemyanov", + "text": "Okay, just go, just go on deleting it." + }, + { + "time": "21:09:51", + "speaker": "Fernando Bunn", + "text": "And this is… and… And this is not… you're not using, kind of, uh…" + }, + { + "time": "21:09:58", + "speaker": "Hassaan Elgarem", + "text": "Natural condition or anything? Nothing." + }, + { + "time": "21:09:58", + "speaker": "Fernando Bunn", + "text": "Uh…" + }, + { + "time": "21:10:00", + "speaker": "JŁ", + "text": "No, no, not using custom chat." + }, + { + "time": "21:10:00", + "speaker": "Fernando Bunn", + "text": "Okay, it's vanilla, okay." + }, + { + "time": "21:10:02", + "speaker": "JŁ", + "text": "Yes." + }, + { + "time": "21:10:03", + "speaker": "Hassaan Elgarem", + "text": "No." + }, + { + "time": "21:10:04", + "speaker": "JŁ", + "text": "And, yeah, and…" + }, + { + "time": "21:10:04", + "speaker": "Alex Martemyanov", + "text": "Maybe it's…" + }, + { + "time": "21:10:06", + "speaker": "JŁ", + "text": "I think Alex was mentioning that this is by design." + }, + { + "time": "21:10:09", + "speaker": "Fernando Bunn", + "text": "What?" + }, + { + "time": "21:10:11", + "speaker": "JŁ", + "text": "that…" + }, + { + "time": "21:10:11", + "speaker": "Alex Martemyanov", + "text": "No, it's… basically, I don't see this behavior at my place, and… Even from Kyrgyzstan, it loads fast enough, and I don't think it's, uh… Frequent problem. Because it actually indicates it's not loading." + }, + { + "time": "21:10:28", + "speaker": "JŁ", + "text": "Yeah, yeah, bye. Right. But am I right that you are saying that it's basically like the the connectivity issue. And." + }, + { + "time": "21:10:36", + "speaker": "Alex Martemyanov", + "text": "It looks mostly like the connectivity issue." + }, + { + "time": "21:10:37", + "speaker": "Fernando Bunn", + "text": "So how… I'll do it for those who just… Go to SKI and use a pre-filled answer there." + }, + { + "time": "21:10:47", + "speaker": "Hassaan Elgarem", + "text": "Yeah. Okay." + }, + { + "time": "21:10:51", + "speaker": "Fernando Bunn", + "text": "Yeah, it works fine here." + }, + { + "time": "21:10:51", + "speaker": "Alex Martemyanov", + "text": "Yes, so we just loaded. It's either some routing issue, or DACRIA issue, or… And frankly, I don't know. How would you fix it without redesigning it really?" + }, + { + "time": "21:11:11", + "speaker": "Fernando Bunn", + "text": "So if I close this now…" + }, + { + "time": "21:11:11", + "speaker": "Alex Martemyanov", + "text": "With some lighting bubbling." + }, + { + "time": "21:11:14", + "speaker": "Fernando Bunn", + "text": "I'm gonna see the look again." + }, + { + "time": "21:11:15", + "speaker": "Alex Martemyanov", + "text": "Yeah, so that screen was high-five Bartek. When Bartek showed, demoed it, there was no high-five screen." + }, + { + "time": "21:11:27", + "speaker": "Fernando Bunn", + "text": "Wait, I killed the app, and I went back, and I… I'm not on the KI anymore, so what… what happened with Barton." + }, + { + "time": "21:11:28", + "speaker": "Hassaan Elgarem", + "text": "the…" + }, + { + "time": "21:11:34", + "speaker": "Alex Martemyanov", + "text": "Yeah, you just killed the app now." + }, + { + "time": "21:11:36", + "speaker": "Fernando Bunn", + "text": "Yeah." + }, + { + "time": "21:11:38", + "speaker": "Alex Martemyanov", + "text": "And you go back." + }, + { + "time": "21:11:40", + "speaker": "Hassaan Elgarem", + "text": "But now it's fast, like now, like I don't have to wait or anything." + }, + { + "time": "21:11:45", + "speaker": "Alex Martemyanov", + "text": "You're weird." + }, + { + "time": "21:11:48", + "speaker": "Hassaan Elgarem", + "text": "So it's not really like a connection thing. Like, I think something is off." + }, + { + "time": "21:11:55", + "speaker": "JŁ", + "text": "Hassan, can you actually trace it in a debugger? like, what is going on in the meantime, like, like, perhaps with a debugger and some, you know, some proxy, whatever thing, like, checking if there are any requests going in and out, okay? Like…" + }, + { + "time": "21:12:03", + "speaker": "Hassaan Elgarem", + "text": "That's right. But, like, this is… Yeah, yeah, yeah, I'll do that. I'll do that." + }, + { + "time": "21:12:17", + "speaker": "JŁ", + "text": "Thank you so much." + }, + { + "time": "21:12:18", + "speaker": "Hassaan Elgarem", + "text": "But again, like, if I kill the app and reopen, I'm back in this state again. That's the cherry on top, you know." + }, + { + "time": "21:12:31", + "speaker": "JŁ", + "text": "So what you mean, like, you killed the app, and…" + }, + { + "time": "21:12:34", + "speaker": "Hassaan Elgarem", + "text": "like what I'm trying to reproduce the the original issue." + }, + { + "time": "21:12:37", + "speaker": "JŁ", + "text": "Okay." + }, + { + "time": "21:12:37", + "speaker": "Fernando Bunn", + "text": "But if you see the logs, what is happening there? Is the app actually trying to hit the KI and just latency or? Something else. Like, there's a lot to tell. Anything if you reopen it via Xcode?" + }, + { + "time": "21:12:52", + "speaker": "Hassaan Elgarem", + "text": "I'll try, I'll try, like, I'm… right now, the debugger is not attached, but, like, I'll try… I'll stop sharing. I'll try and let you know if I find something." + }, + { + "time": "21:13:03", + "speaker": "Fernando Bunn", + "text": "Try to reproduce vertex stuff, but it's not working here." + }, + { + "time": "21:13:04", + "speaker": "Alex Martemyanov", + "text": "What is this app? What's the app you're sharing? Some… It's not the simulator, is it?" + }, + { + "time": "21:13:22", + "speaker": "Hassaan Elgarem", + "text": "Sorry?" + }, + { + "time": "21:13:23", + "speaker": "Alex Martemyanov", + "text": "Vijay, what is the app you were sharing? It's not a simulator, is it?" + }, + { + "time": "21:13:27", + "speaker": "Hassaan Elgarem", + "text": "Okay. It's the new devices hub. Xcode 27, I think." + }, + { + "time": "21:13:35", + "speaker": "Alex Martemyanov", + "text": "Is it the same on the regular simulator?" + }, + { + "time": "21:13:41", + "speaker": "Hassaan Elgarem", + "text": "Yeah, it should be, yeah." + }, + { + "time": "21:13:41", + "speaker": "Alex Martemyanov", + "text": "Or a real device." + }, + { + "time": "21:13:43", + "speaker": "Hassaan Elgarem", + "text": "It's like, uh…" + }, + { + "time": "21:13:44", + "speaker": "JŁ", + "text": "The same." + }, + { + "time": "21:13:45", + "speaker": "Hassaan Elgarem", + "text": "Yep." + }, + { + "time": "21:14:08", + "speaker": "Fernando Bunn", + "text": "Was anyone able to produce vertex stuff through Xcode or just from the App Store?" + }, + { + "time": "21:14:29", + "speaker": "Hassaan Elgarem", + "text": "Fernando, can you repeat your question? Sorry." + }, + { + "time": "21:14:33", + "speaker": "Fernando Bunn", + "text": "I'm asking if anyone was able to reproduce bar type issue using Xcode or just via App Store. Just to see if the bug release has anything to do with it." + }, + { + "time": "21:14:46", + "speaker": "Hassaan Elgarem", + "text": "Uh, yeah, like, I'm testing from the Xcode, and I'm able to reproduce the loop, but it's a loop plus the delay, like, I'm getting both issues." + }, + { + "time": "21:14:55", + "speaker": "Fernando Bunn", + "text": "Oh, okay. Okay, so it's not just a release thing. Okay." + }, + { + "time": "21:14:59", + "speaker": "Hassaan Elgarem", + "text": "Okay." + }, + { + "time": "21:15:06", + "speaker": "Fernando Bunn", + "text": "Moving forward… Short story, uh… Skip. Excuse me. Next. Okay. Bago. So I go to Tokyo, explain the stock market. So at this moment, if I… First, close the app and kill it. I'll be on the loop, right? Like, I do not interact with the thing, or it doesn't matter." + }, + { + "time": "21:15:43", + "speaker": "Alex Martemyanov", + "text": "You interact with it, you burn it. Use the fire button. Yeah, and then you kill it." + }, + { + "time": "21:15:47", + "speaker": "Fernando Bunn", + "text": "Oh, I need to burn. Okay, then I see this. Should I go to…" + }, + { + "time": "21:16:02", + "speaker": "Alex Martemyanov", + "text": "Yes, and you enter… you activate the address bar, DACAI. And then you killed it again, and you got in the hoop." + }, + { + "time": "21:16:11", + "speaker": "Fernando Bunn", + "text": "So we'll go to new chat." + }, + { + "time": "21:16:13", + "speaker": "Hassaan Elgarem", + "text": "Start a new chat and then kill the app." + }, + { + "time": "21:16:16", + "speaker": "Fernando Bunn", + "text": "Cool, again. Okay." + }, + { + "time": "21:16:24", + "speaker": "JŁ", + "text": "You got it?" + }, + { + "time": "21:16:26", + "speaker": "Fernando Bunn", + "text": "Yep. Just want to see if I call from Xcode now. Seems bad. So I need to get to the loop. I need to do the same thing again, like fire button, kill the app, and…" + }, + { + "time": "21:16:45", + "speaker": "Alex Martemyanov", + "text": "Uh, yes, you fire button… Then you start Duck AI Chat again, and then you kill it up." + }, + { + "time": "21:16:52", + "speaker": "Fernando Bunn", + "text": "Done." + }, + { + "time": "21:16:53", + "speaker": "Alex Martemyanov", + "text": "It's only if you… if you give it 12, the exact AI chat is active." + }, + { + "time": "21:16:53", + "speaker": "Fernando Bunn", + "text": "Queued up. Oh, I need to kill while he's acting." + }, + { + "time": "21:17:00", + "speaker": "Alex Martemyanov", + "text": "Yes. So, uh… So what's the resolution we have? We need to rebase the PR to the current release, right? Two seven point. to… 4… 0… and have an expedited review, right? Basically, that's the only option." + }, + { + "time": "21:17:28", + "speaker": "Fernando Bunn", + "text": "Can I just remove… Is this specific, the KI part and the onboarding behind FeatureFlight?" + }, + { + "time": "21:17:35", + "speaker": "Alex Martemyanov", + "text": "Yes." + }, + { + "time": "21:17:37", + "speaker": "Fernando Bunn", + "text": "So it's already off." + }, + { + "time": "21:17:37", + "speaker": "Alex Martemyanov", + "text": "The specific… It's… It's already off." + }, + { + "time": "21:17:43", + "speaker": "Fernando Bunn", + "text": "But I just reproducing the episode. Okay, so maybe it didn't…" + }, + { + "time": "21:17:48", + "speaker": "Alex Martemyanov", + "text": "Yeah, we cannot disable it." + }, + { + "time": "21:17:54", + "speaker": "Fernando Bunn", + "text": "Sorry, is it available in production or not?" + }, + { + "time": "21:17:58", + "speaker": "Alex Martemyanov", + "text": "Hmm?" + }, + { + "time": "21:17:59", + "speaker": "Fernando Bunn", + "text": "The onboarding… the Deck AI onboarding step is disabled in production right now, or not? Like, did we disable using a feature flag?" + }, + { + "time": "21:18:04", + "speaker": "Alex Martemyanov", + "text": "Mm-hmm. There is no feature flag." + }, + { + "time": "21:18:07", + "speaker": "Fernando Bunn", + "text": "Oh." + }, + { + "time": "21:18:09", + "speaker": "Alex Martemyanov", + "text": "I mean, there was, but it's… Not a thing already. And. So I didn't get it if, uh… Was there… you've got the screen or not?" + }, + { + "time": "21:18:30", + "speaker": "Fernando Bunn", + "text": "I'm going to see if I can reproduce from Axcode catalog. Let's try and compile it for a second. I don't have… Morocco." + } + ] +} diff --git a/work/zoom-transcripts/2026-10-06 Jacek Łyp's Zoom Meeting 2026-10-06 20 44(GMT+6 00) gUhtLoqRTfSsTbZsann73A/transcript.md b/work/zoom-transcripts/2026-10-06 Jacek Łyp's Zoom Meeting 2026-10-06 20 44(GMT+6 00) gUhtLoqRTfSsTbZsann73A/transcript.md new file mode 100644 index 00000000..a6fdb5f8 --- /dev/null +++ b/work/zoom-transcripts/2026-10-06 Jacek Łyp's Zoom Meeting 2026-10-06 20 44(GMT+6 00) gUhtLoqRTfSsTbZsann73A/transcript.md @@ -0,0 +1,318 @@ +--- +title: "Jacek Łyp's Zoom Meeting 2026-10-06 20:44(GMT+6:00)" +date: 2026-10-06 +zoom_note_id: "gUhtLoqRTfSsTbZsann73A" +source: "https://us01mynotes.zoom.us/gUhtLoqRTfSsTbZsann73A" +--- + +# Jacek Łyp's Zoom Meeting 2026-10-06 20:44(GMT+6:00) + +[Zoom My Notes](https://us01mynotes.zoom.us/gUhtLoqRTfSsTbZsann73A) + +## Transcript + +- **20:44:49 · JŁ:** Hello. +- **20:44:51 · Alex Martemyanov:** Yeah, so… But I think… There should be a PR open for the… Privacy config files. For Jacek… +- **20:45:03 · JŁ:** Yeah, just. Just one one thing when when you are fixing Alex this, have you been able to reproduce it or not? +- **20:45:10 · Alex Martemyanov:** Yes, there is exact testing steps in the PR. So, basically, you have to skip the… got it. button press, and it puts you to the NTS restore loop. Uh, because the flag is set on when the button is clicked. Uh, so, the next time you open Duck AI, and you restart the app from that point, it will restart to the FHIR onboarding, locking in, uh, the Duck AI burning. So it's not a kind of blocking user experience, but it's a regression of user experience for sure. +- **20:45:48 · JŁ:** Okay, let me check it. +- **20:45:49 · Alex Martemyanov:** Uh, and, uh, disabling, there is no, there is no dedicated feature flag for this, uh, for this exact feature, but this is the whole, uh, tailored DACA AI. Onboarding flow. If we want to disable it, or maybe it's just easier to go with the… +- **20:46:07 · JŁ:** So sorry, if we disable it, what happens? +- **20:46:10 · Alex Martemyanov:** The whole dark AI onboarding vanishes. +- **20:46:14 · JŁ:** Okay. +- **20:46:17 · Alex Martemyanov:** So we learned to the old, uh, onboarding without the Duckinghide part. +- **20:46:20 · JŁ:** Mmhm. +- **20:46:22 · Alex Martemyanov:** So it kind of hurts the Duck AI, uh, product. But if we… if we push it to the hotfix or internal release, it just mitigates it right… right away. +- **20:46:22 · JŁ:** Okay. Yeah, yeah, so I think we need to… +- **20:46:33 · Alex Martemyanov:** So maybe it's easier, it's an easier option not to disable the feature flag. And just push it to the release. If it makes sense. +- **20:46:44 · JŁ:** I mean, uh. Not doing the hotfix or doing the hotfix. +- **20:46:50 · Alex Martemyanov:** I mean doing default fix without changing the feature flag. +- **20:46:54 · JŁ:** Okay. +- **20:46:57 · Bartek Waresiak:** Again… What's the plan? Sorry, I got lost because I just got into the infinite loop on my browser. +- **20:47:05 · JŁ:** Yeah, the… Okay, so like, you mean representation. +- **20:47:09 · Alex Martemyanov:** To release it. Related to 240 iOS release, so these… +- **20:47:14 · JŁ:** And… +- **20:47:18 · Alex Martemyanov:** This week's public release and make an assisted app store review. Right. How does it work? +- **20:47:35 · Hanyu Tang:** Okay, I can reproduce it on me. +- **20:47:41 · Alex Martemyanov:** Hmm? Sorry. +- **20:47:43 · Hanyu Tang:** I can reproduce it on me using the testing steps. +- **20:47:49 · Alex Martemyanov:** Cannot reproduce it. Why? On the broad branch. +- **20:47:54 · Hanyu Tang:** Yeah, I can refer to you soon. Uh, not your branch, on me. +- **20:47:57 · Alex Martemyanov:** Ah, you're good to be list. Okay. +- **20:48:00 · Hanyu Tang:** Yeah. +- **20:48:02 · Alex Martemyanov:** Yeah, it's not even produced, just exactly with the steps. So there is two main points, not pressing the button, and uh… staying on the CAI page when the app is, um… They're too dumb. +- **20:48:24 · Bartek Waresiak:** Again, not pressing which button. +- **20:48:25 · Alex Martemyanov:** The got it button. When there is a… you've got this screen. if you… Turn… turn down the app. If you turn it in the app at that stage, it won't record the correct state for the parallel marking. Then you have to ignore the… Final. the final onboarding button on one more thing that marks the onboarding as completed. and directly head to the address bar and start AI chat. So we detectively, uh… kind of lays over two issues that we stay in the state restoration, in the onboarding state restoration for the FHIR onboarding state, and the onboarding incomplete state. Because you didn't complete the onboarding in a normal way, and uh… instead of. completing the onboarding, the app considers the onboarding not finished and restores it to the FHIR onboarding state, because the DACA AI page was… There, when it was took down. So there is three factors activating this bug. And it should not have a huge effect on the users. Yes, I suppose. +- **20:50:02 · Bartek Waresiak:** Can I share my screen? Because I want to make sure that we are on the same page with this. So, basically… This is my application right now, okay? +- **20:50:16 · Alex Martemyanov:** Yep. +- **20:50:18 · Bartek Waresiak:** This is my application. And… they'll. If I kill it… And open it. I see this. +- **20:50:35 · Alex Martemyanov:** Yes. This is exactly the stage. +- **20:50:39 · Bartek Waresiak:** And… Pressing that… And I'll and starting any new new chat. And leaving this means that every restart I see that. +- **20:50:57 · Alex Martemyanov:** Yes. +- **20:51:00 · Bartek Waresiak:** And this is on the 240. +- **20:51:00 · Jonathan Jackson:** So if you would. So if you leave now, what happens? +- **20:51:03 · Bartek Waresiak:** Like the… And if I leave now… +- **20:51:06 · Jonathan Jackson:** Yep. +- **20:51:07 · Bartek Waresiak:** And come back, I'm back to onboarding. +- **20:51:12 · Alex Martemyanov:** Yep. +- **20:51:20 · Bartek Waresiak:** Can we control this with feature flag? +- **20:51:24 · Alex Martemyanov:** Uh, we can disable the docker, yeah, onboarding. +- **20:51:29 · Bartek Waresiak:** Like, I would say, like, I would disable it. +- **20:51:35 · JŁ:** The the question is disabling. It fixes it for the future users, or if someone is in the loop. It's going to fix it for them as well. +- **20:51:43 · Bartek Waresiak:** I would say eventually it should fix. This is not fully blocking the UI. I can press this. It's like the shitty experience. I can still use the app. +- **20:51:51 · Alex Martemyanov:** Yeah. +- **20:51:53 · Bartek Waresiak:** Right? If I kill this and resurface. it works, but if I, for any reason, end in the… And the flow in this. And kill. +- **20:52:11 · Jonathan Jackson:** So if you're in Duck AI when the app is quit, it brings you back with AI onboarding. +- **20:52:14 · Bartek Waresiak:** Yeah, this is insane loop. So every time I end up in the state that I've used Duck AI, I'm back to this annoying onboarding step. +- **20:52:26 · Jonathan Jackson:** Is that true for everybody who uses Duck AI at this point? +- **20:52:31 · Bartek Waresiak:** No, I think this is true for everyone that has onboarding state that is broken. +- **20:52:38 · Alex Martemyanov:** Yeah, so the ones who did not push the button. +- **20:52:38 · Jonathan Jackson:** So they stopped in the middle of the morning, basically. Okay. +- **20:52:42 · Bartek Waresiak:** Yep. So the friction. +- **20:52:44 · Jonathan Jackson:** So it's only for our new users who we're trying to push towards Duck AI. +- **20:52:48 · Bartek Waresiak:** Yes, exactly. That's the… that's exactly the impression I have. So, my… my intention here, like, intuitive intention would be to figure out. +- **20:52:50 · Alex Martemyanov:** Hmm. Okay. +- **20:52:52 · Jonathan Jackson:** Okay. +- **20:53:00 · Bartek Waresiak:** can feature flag. disable this. What kind of feature flag do we have for us for this? +- **20:53:08 · Alex Martemyanov:** We have, uh… +- **20:53:08 · Jonathan Jackson:** Yep. +- **20:53:10 · Bartek Waresiak:** Oh, I don't. For some reason. +- **20:53:12 · Alex Martemyanov:** Custom product page deck AI onboarding flow. +- **20:53:16 · Jonathan Jackson:** So we would disable the entire onboarding flow. +- **20:53:17 · Bartek Waresiak:** I don't have. +- **20:53:21 · Jonathan Jackson:** For Dec AI. +- **20:53:21 · Alex Martemyanov:** Yeah, try setting the flag. +- **20:53:24 · Bartek Waresiak:** Yeah, I need to log in to… +- **20:53:28 · Jonathan Jackson:** I don't know if that's necessarily better. +- **20:53:32 · Bartek Waresiak:** Not necessarily better what? +- **20:53:32 · Jonathan Jackson:** Because we wouldn't be giving, it sounds like we wouldn't be giving them a decade onboarding at all. Based on the flag name anyway. +- **20:53:41 · Alex Martemyanov:** That's… That depends. +- **20:53:46 · Jonathan Jackson:** Or is it only for people coming from a custom product page? +- **20:53:51 · Bartek Waresiak:** Like, this is the onboarding when you install the app. +- **20:53:51 · Alex Martemyanov:** You know. +- **20:53:54 · Jonathan Jackson:** Yeah, but Alex just shared the… what I think is the feature flag name, right, Alex? +- **20:53:59 · Alex Martemyanov:** On boarding. Hmm. +- **20:54:05 · Jonathan Jackson:** Okay. +- **20:54:06 · Bartek Waresiak:** Like the question is. +- **20:54:08 · Jonathan Jackson:** Do we have a mitigation? +- **20:54:08 · Bartek Waresiak:** This onboarding can effectively set people in this broken state. +- **20:54:14 · Jonathan Jackson:** Right. +- **20:54:14 · Bartek Waresiak:** Plus, we have people in this broken state that basically cannot recover. +- **20:54:20 · Jonathan Jackson:** Yeah. Mm-hmm. +- **20:54:22 · Bartek Waresiak:** So the question is. What's more important, to fix that on the actual users right now or to still keep presenting this onboarding? Potentially bringing in more bleeding. +- **20:54:35 · Jonathan Jackson:** Thank you. Yeah, yeah, yeah. +- **20:54:39 · JŁ:** Yeah, but… So I think we don't know if again, like the question I asked, if. disabling the flag fixes it for like fixes the people that are in the loop. you know, because if if it doesn't, then. I think we should just go with the hot fix as soon as possible, and if it does, then yeah, we could. We could turn the flag for today and still go with a hot fix. Probably like. +- **20:55:04 · Jonathan Jackson:** Yeah, I think we have parallel work streams here. We have one looking into what feature flag we have and what we can do to mitigate as quickly as possible. And we have another looking at what's the right hotfix. +- **20:55:17 · Alex Martemyanov:** No, basically the flags won't fix it. They will only fix it for the new users by not showing the onboarding step. +- **20:55:28 · Jonathan Jackson:** But the users would be stuck still. +- **20:55:30 · Alex Martemyanov:** Yep. who already have this issue, it's not gonna fix it. +- **20:55:34 · Jonathan Jackson:** Yeah. So then, Bartek, your question, I think, is right. Does disabling it and preventing new people from ending up in this position make sense or not? +- **20:55:46 · Bartek Waresiak:** Like, the question is, can we expedite the code fix to… have it rolled out as soon as possible. Like, basically, this is what we need. If we cannot fix this. With… +- **20:56:05 · Jonathan Jackson:** I mean, do we have a sense of what an actual fix looks like yet? +- **20:56:11 · Alex Martemyanov:** Yes, the pull request is open for the actual fix. It's basically resetting this log. +- **20:56:22 · Jonathan Jackson:** Okay. And this is iOS only, is that right? +- **20:56:26 · Alex Martemyanov:** Yes. +- **20:56:31 · JŁ:** Oh, okay, I think… +- **20:56:32 · Hassaan Elgarem:** So I I want to. Yeah, I want to share my screen and show like, I think, Jonathan and Alex, you're in there when we talked about that. But I I came across a different issue. I'm not sure if it's related or not. Let me show you. um… Okay. It's this one. So when going through the onboarding flow and then choosing like one of the pre-filled prompts, I reach the stuck. State. and it takes a very long time like we did it on the call before you joined, and we waited. Maybe I'm not sure, like more than a minute till something actually happened. +- **20:57:25 · Jonathan Jackson:** Fun. +- **20:57:25 · Hassaan Elgarem:** And only the only the only thing that's. Interactive is the Firebolt. Right now. +- **20:57:31 · Alex Martemyanov:** It's basically a known issue if you have a connection loss or a weak connection. It would behave like this, yes, and it's kind of intended behavior. +- **20:57:42 · Jonathan Jackson:** Do you have a reconnection? +- **20:57:42 · Alex Martemyanov:** So, they will fire buttons and… Yes, it's, uh, it's loading. Because it starts loading. Maybe there is, like… I don't know. There shouldn't be CPM compilation, but if it takes to one minute to load, it means that it's, yeah, it's loaded, basically. +- **20:57:55 · Bartek Waresiak:** Do we… +- **20:57:58 · JŁ:** Wait. Wait. It's crazy if it's intended, sorry. +- **20:58:05 · Bartek Waresiak:** Yeah, like, okay, like, I can buy it is acceptable. But… I would only make it acceptable if we have metrics to understand that this is not a problem on a wider scale. Do we have metrics? For how long does it take this initial load? +- **20:58:23 · Alex Martemyanov:** Nope, we don't. +- **20:58:27 · JŁ:** Probably some. +- **20:58:27 · Alex Martemyanov:** Okay. +- **20:58:28 · JŁ:** Someone would be good person to address it like he. He was doing some. And… SLIs. Air. +- **20:58:38 · Hassaan Elgarem:** So my my question here is to Alex like, if this problem is like an existing problem. But if this problem became more frequent, would it trigger more issues? Of the actual, like, loop that we are discussing. +- **20:58:54 · Alex Martemyanov:** Nope, it's just long loading. There is probably nothing to do on the native side about it. +- **20:58:58 · Jonathan Jackson:** Okay. Hassan, was that in a link condition scenario so your network was slow, or was that just a normal load? +- **20:59:07 · JŁ:** Sorry, sorry, I'm not, I'm not, I'm not buying it, like, it's, it's, it's a site, right? What does it mean? It's an intended behavior, and… +- **20:59:09 · Hassaan Elgarem:** No, I'm good. +- **20:59:14 · Jonathan Jackson:** Yeah. +- **20:59:18 · Alex Martemyanov:** We don't show the, uh… We don't show the content until it is completely loaded with all the contents. +- **20:59:26 · JŁ:** Okay, but… but, like, Hassan's on a Zoom here with great connectivity, like, how… I… I don't get it, like… Probably any site would load immediately, like. +- **20:59:39 · Alex Martemyanov:** Maybe there is a signal… But yeah, so we just seen the appearance of the text started after it appeared. +- **20:59:50 · Jonathan Jackson:** Yeah, but it looks like a broken state. It looks like the page has failed to render. +- **20:59:50 · Alex Martemyanov:** So, basically, the loading. +- **20:59:55 · Jonathan Jackson:** And so maybe that's the implementation right now, but I thought it was very broken. +- **20:59:58 · Alex Martemyanov:** No, it's, uh, it's not… it's not the… it's not the rendering failure, it's loading, because, uh, it's… +- **21:00:04 · Jonathan Jackson:** Yeah but the user clicks the user goes to that page on a good connection and they have to wait thirty seconds to a minute for anything to happen. +- **21:00:10 · Alex Martemyanov:** There is a signal. +- **21:00:10 · Jonathan Jackson:** That doesn't look… +- **21:00:11 · Bartek Waresiak:** One moment. +- **21:00:12 · Jonathan Jackson:** Yep. +- **21:00:13 · Bartek Waresiak:** What I would expect to happen when the button is pressed is that the question is transferred to the bubble, chat bubble. is sent to the backend. And we render the question that is being asked. Then we see generating response prompt that is ongoing and this didn't happen. +- **21:00:37 · Alex Martemyanov:** This is logical, but it's not the implementation. It's, uh… it's done this way to… +- **21:00:41 · Jonathan Jackson:** So… +- **21:00:45 · Alex Martemyanov:** show the blank screen until the answer is ready. So when the connection is final and the signal arrives in time, it should render just in time and appear without all this page flickering. +- **21:01:01 · Bartek Waresiak:** Was that raised in ship review and presented in such way? +- **21:01:01 · Alex Martemyanov:** But there was… Nope. during the ship review, there… the issue was not reproduced, and basically it appears during 2 seconds. And yes, it was, uh… this way during the ship review. So there was no bubble, nothing animated, and so on. +- **21:01:21 · JŁ:** I called Fernando. to this meeting. I just, it's hard for me to believe like. +- **21:01:26 · Jonathan Jackson:** Well, so, I mean, it sounds like… it sounds like that's maybe a separate user experience issue, which we should have a task for and address. Hasan, your question is still valid, though, related to the incident here. +- **21:01:29 · JŁ:** But. +- **21:01:30 · Alex Martemyanov:** Thank you. +- **21:01:32 · Bartek Waresiak:** Yeah, yeah. +- **21:01:37 · Jonathan Jackson:** Does that behavior put us into a position where more users are at risk of ending up in this loop state? +- **21:01:47 · Alex Martemyanov:** So there may be an issue with this front-end signal from Duck AI page that we used to start rendering, but as we've seen, the actual animation has started after a significant delay, so it means the signal is. +- **21:01:58 · Bartek Waresiak:** Okay. +- **21:02:01 · Alex Martemyanov:** synchronized with this appearance, this presentation slide. +- **21:02:01 · Jonathan Jackson:** Right. But if that's happening during onboarding, and the entry to the loop is hitting the fire button. +- **21:02:03 · Bartek Waresiak:** I, I have, I have… +- **21:02:07 · Jonathan Jackson:** It's going to encourage more people to hit the fire button than might otherwise. +- **21:02:11 · Alex Martemyanov:** Maybe. +- **21:02:12 · Bartek Waresiak:** I have one question. +- **21:02:12 · Hassaan Elgarem:** hitting the firewalls and and killing the app like killing the app like, if I'm in that state. I would think of killing the app, and that's what like triggers the loop. So. +- **21:02:14 · Jonathan Jackson:** Right. Because they think it's stuck. Yeah. +- **21:02:23 · Hassaan Elgarem:** I think they are related. +- **21:02:24 · Jonathan Jackson:** I don't know that we need a fix for the user experience issue we're talking about, but it is a factor in putting people into that state. From a behavior perspective, I'd buy that. +- **21:02:26 · Bartek Waresiak:** Yeah, like, the… from the perspective on onboarding, when I select Duck AI onboarding, when I select some random prompt. And it loads. When I delete this… When I use the fire button. It should work okay from that point onwards. Or is the condition flux set somewhere else? That's what I don't really follow. +- **21:03:15 · Alex Martemyanov:** The condition set, the flag is, the flag for the fire onboarding is set on the… Prior. Screen. I mean, when do you have this AI answer presented? Uh, it sets the state restoration, the onboarding set restoration plug. to… Awaited. So basically, yes, it may… It may indicate this. +- **21:03:45 · Bartek Waresiak:** So when I got the response. +- **21:03:49 · Alex Martemyanov:** When you get the response, the flag is turned on. And when you… Push the got it button, it's, uh, removed. +- **21:03:59 · Bartek Waresiak:** Okay, so I'm I'm trying to reproduce it right now. And I'm… Question to AI. +- **21:04:10 · JŁ:** In the meantime, Hassan, could you show Fernando the finding that you have as well? Another was was working on the Ki. +- **21:04:19 · Hassaan Elgarem:** Give me a minute to prepare it and I'll share my screen. +- **21:04:24 · JŁ:** Thank you. Okay, I'm going to focus now on the official part, so I will officially start the incident, okay, because… Yeah, I have issues with multitasking. So yeah, so I will leave you like I'll be here. But I will leave you guys to to questions, answers, and more investigation. And just ping me if anything. +- **21:05:03 · Bartek Waresiak:** No, like, it's like, sorry, but all of that just doesn't make sense to me. It's like super easy to trigger for me to enter the loop. +- **21:05:20 · Fernando Bunn:** What it is. +- **21:05:22 · Bartek Waresiak:** Like, I… +- **21:05:22 · Fernando Bunn:** Sorry, I don't know exactly what is going on. +- **21:05:24 · Bartek Waresiak:** Let me reinstall the app and share my screen again, so I will show you what I mean by super easy. +- **21:05:29 · Fernando Bunn:** Okay. +- **21:05:31 · Jonathan Jackson:** While you're doing that, the short version is, if you go through the Duck AI onboarding, it gets you to the point where it's given a random prompt to Duck AI. You hit the fire button, and then you quit the app. And from that point on, anytime you leave… anytime you quit the app while you're in the Duck AI experience, it will bring you back to the random prompt happening when you come back to the app. So it feels like you're stuck on onboarding and it basically keeps bringing you back to that. I don't know if you have to quit the app for that to happen or if it's like when you leave and come back after a while, if you were in Duck AI at that point. +- **21:05:56 · Fernando Bunn:** Mmhm. +- **21:06:06 · Jonathan Jackson:** I think it happens again. I'm not sure about that piece. But at the very least, when people relaunch the app at that point, they keep getting the Duck AI out. +- **21:06:13 · Fernando Bunn:** Okay. So if we relaunch the IPS2… Okay, let me… Yeah, yeah, yeah, you can see it. +- **21:06:17 · Bartek Waresiak:** Yeah, can you… Yeah, okay. Can you hear me as well? +- **21:06:22 · Fernando Bunn:** Yep. +- **21:06:23 · Bartek Waresiak:** Excellent. So this is like, I ignore this. It's in Polish, but it doesn't really matter. I ignore this. +- **21:06:29 · Fernando Bunn:** Mm-hmm. +- **21:06:29 · Bartek Waresiak:** I ignore the color, whatever, top, and now I want to. Check the AI about the stock market. Okay, so I'm waiting here. This looks good to me, right? I look nice. I'm supposed to clear it. Okay, so I'm clearing this. Excellent. This looks okay. I want to chat. Okay. I accept the terms. Everything looks good. Perfect. So I move away. And I'm in the loop. +- **21:07:14 · Alex Martemyanov:** So. Ah, you're telling there is no… you've got this step at that point? +- **21:07:18 · Bartek Waresiak:** Yeah, exactly. +- **21:07:20 · Alex Martemyanov:** Ah… +- **21:07:20 · Bartek Waresiak:** This is everything here. +- **21:07:22 · Alex Martemyanov:** That is the change. And when was it done? +- **21:07:26 · Bartek Waresiak:** This is the current production. +- **21:07:30 · Alex Martemyanov:** When was it changed? Maybe there is a phishing flag. +- **21:07:35 · Bartek Waresiak:** Like, this is, like, I'm hitting this literally every time I install the app. +- **21:07:40 · Alex Martemyanov:** Hmm, that changes things, and that explains why we started seeing it just now. +- **21:07:46 · Bartek Waresiak:** Oops, sorry, I'm… +- **21:07:47 · Alex Martemyanov:** If the onboarding was changed, so this… +- **21:07:51 · Bartek Waresiak:** Uh, I just real… +- **21:07:52 · Alex Martemyanov:** I think made of those. +- **21:07:52 · JŁ:** My pleasure. +- **21:07:53 · Fernando Bunn:** Just one thing, just to — sorry, just help me. OK. +- **21:07:53 · JŁ:** Can you… +- **21:07:55 · Bartek Waresiak:** Sorry, I have another call I need to jump on, but I believe this is a problem that needs to be surfaced, okay? So… +- **21:08:03 · JŁ:** Bartek, one more thing. Can you record the thing and upload it? Send me so we can have like a. +- **21:08:12 · Bartek Waresiak:** I, I can, like, give me, like, 2 minutes, okay? +- **21:08:12 · Fernando Bunn:** I'll try to do it here in the simulator, yeah. +- **21:08:13 · JŁ:** For experience. Thank you. Okay, sure. +- **21:08:16 · Fernando Bunn:** Just one thing, I don't know if it… like, it could give a hint on what's going on, okay? When I saw the onboarding thing, what it did, I didn't see the terms and conditions. anywhere… +- **21:08:28 · JŁ:** it… +- **21:08:29 · Fernando Bunn:** Is this expected? +- **21:08:31 · JŁ:** There… there were, like, I think, when the chat appeared. I think for the first chat, it didn't appear. I think there was a discussion on Mattermost today on OJ Channel about it. I think Picor asked about it. Let me search quickly. +- **21:08:35 · Fernando Bunn:** Yep. Yep. Okay. No, yeah, I saw the discussion, but… +- **21:08:48 · JŁ:** Shouldn't we already have a privacy information at this stage? And Chuck answered, we have dispensation to allow one prompt here without asking users to agree to the TOS. +- **21:08:59 · Fernando Bunn:** Oh, what prompts? Okay. +- **21:08:59 · JŁ:** So after… Yeah, so Bartek prompted again, and there was a button. So, so did this one work? +- **21:09:05 · Fernando Bunn:** Yeah, okay, so that's fine, okay, so that's fine. +- **21:09:08 · JŁ:** Yeah, but do you have? +- **21:09:09 · Fernando Bunn:** of… +- **21:09:10 · Hassaan Elgarem:** Fernando? Yeah, I have it ready. Let me show you. +- **21:09:11 · JŁ:** that that. +- **21:09:15 · Hassaan Elgarem:** The other thing. +- **21:09:17 · Fernando Bunn:** Audrey's name? +- **21:09:18 · Hassaan Elgarem:** Okay, so I went through the onboarding. +- **21:09:19 · Fernando Bunn:** Okay. +- **21:09:19 · JŁ:** Thank you. The other thing. +- **21:09:26 · Hassaan Elgarem:** And then ask AI, and then… And then I'm stuck in this state. for a while, like it normally takes like 30 to 30 seconds to one minute. And the only thing that I can I can interact with is the fire button. And once I do, actually, it starts pulsing. So it's a weird thing. +- **21:09:50 · Alex Martemyanov:** Okay, just go, just go on deleting it. +- **21:09:51 · Fernando Bunn:** And this is… and… And this is not… you're not using, kind of, uh… +- **21:09:58 · Hassaan Elgarem:** Natural condition or anything? Nothing. +- **21:09:58 · Fernando Bunn:** Uh… +- **21:10:00 · JŁ:** No, no, not using custom chat. +- **21:10:00 · Fernando Bunn:** Okay, it's vanilla, okay. +- **21:10:02 · JŁ:** Yes. +- **21:10:03 · Hassaan Elgarem:** No. +- **21:10:04 · JŁ:** And, yeah, and… +- **21:10:04 · Alex Martemyanov:** Maybe it's… +- **21:10:06 · JŁ:** I think Alex was mentioning that this is by design. +- **21:10:09 · Fernando Bunn:** What? +- **21:10:11 · JŁ:** that… +- **21:10:11 · Alex Martemyanov:** No, it's… basically, I don't see this behavior at my place, and… Even from Kyrgyzstan, it loads fast enough, and I don't think it's, uh… Frequent problem. Because it actually indicates it's not loading. +- **21:10:28 · JŁ:** Yeah, yeah, bye. Right. But am I right that you are saying that it's basically like the the connectivity issue. And. +- **21:10:36 · Alex Martemyanov:** It looks mostly like the connectivity issue. +- **21:10:37 · Fernando Bunn:** So how… I'll do it for those who just… Go to SKI and use a pre-filled answer there. +- **21:10:47 · Hassaan Elgarem:** Yeah. Okay. +- **21:10:51 · Fernando Bunn:** Yeah, it works fine here. +- **21:10:51 · Alex Martemyanov:** Yes, so we just loaded. It's either some routing issue, or DACRIA issue, or… And frankly, I don't know. How would you fix it without redesigning it really? +- **21:11:11 · Fernando Bunn:** So if I close this now… +- **21:11:11 · Alex Martemyanov:** With some lighting bubbling. +- **21:11:14 · Fernando Bunn:** I'm gonna see the look again. +- **21:11:15 · Alex Martemyanov:** Yeah, so that screen was high-five Bartek. When Bartek showed, demoed it, there was no high-five screen. +- **21:11:27 · Fernando Bunn:** Wait, I killed the app, and I went back, and I… I'm not on the KI anymore, so what… what happened with Barton. +- **21:11:28 · Hassaan Elgarem:** the… +- **21:11:34 · Alex Martemyanov:** Yeah, you just killed the app now. +- **21:11:36 · Fernando Bunn:** Yeah. +- **21:11:38 · Alex Martemyanov:** And you go back. +- **21:11:40 · Hassaan Elgarem:** But now it's fast, like now, like I don't have to wait or anything. +- **21:11:45 · Alex Martemyanov:** You're weird. +- **21:11:48 · Hassaan Elgarem:** So it's not really like a connection thing. Like, I think something is off. +- **21:11:55 · JŁ:** Hassan, can you actually trace it in a debugger? like, what is going on in the meantime, like, like, perhaps with a debugger and some, you know, some proxy, whatever thing, like, checking if there are any requests going in and out, okay? Like… +- **21:12:03 · Hassaan Elgarem:** That's right. But, like, this is… Yeah, yeah, yeah, I'll do that. I'll do that. +- **21:12:17 · JŁ:** Thank you so much. +- **21:12:18 · Hassaan Elgarem:** But again, like, if I kill the app and reopen, I'm back in this state again. That's the cherry on top, you know. +- **21:12:31 · JŁ:** So what you mean, like, you killed the app, and… +- **21:12:34 · Hassaan Elgarem:** like what I'm trying to reproduce the the original issue. +- **21:12:37 · JŁ:** Okay. +- **21:12:37 · Fernando Bunn:** But if you see the logs, what is happening there? Is the app actually trying to hit the KI and just latency or? Something else. Like, there's a lot to tell. Anything if you reopen it via Xcode? +- **21:12:52 · Hassaan Elgarem:** I'll try, I'll try, like, I'm… right now, the debugger is not attached, but, like, I'll try… I'll stop sharing. I'll try and let you know if I find something. +- **21:13:03 · Fernando Bunn:** Try to reproduce vertex stuff, but it's not working here. +- **21:13:04 · Alex Martemyanov:** What is this app? What's the app you're sharing? Some… It's not the simulator, is it? +- **21:13:22 · Hassaan Elgarem:** Sorry? +- **21:13:23 · Alex Martemyanov:** Vijay, what is the app you were sharing? It's not a simulator, is it? +- **21:13:27 · Hassaan Elgarem:** Okay. It's the new devices hub. Xcode 27, I think. +- **21:13:35 · Alex Martemyanov:** Is it the same on the regular simulator? +- **21:13:41 · Hassaan Elgarem:** Yeah, it should be, yeah. +- **21:13:41 · Alex Martemyanov:** Or a real device. +- **21:13:43 · Hassaan Elgarem:** It's like, uh… +- **21:13:44 · JŁ:** The same. +- **21:13:45 · Hassaan Elgarem:** Yep. +- **21:14:08 · Fernando Bunn:** Was anyone able to produce vertex stuff through Xcode or just from the App Store? +- **21:14:29 · Hassaan Elgarem:** Fernando, can you repeat your question? Sorry. +- **21:14:33 · Fernando Bunn:** I'm asking if anyone was able to reproduce bar type issue using Xcode or just via App Store. Just to see if the bug release has anything to do with it. +- **21:14:46 · Hassaan Elgarem:** Uh, yeah, like, I'm testing from the Xcode, and I'm able to reproduce the loop, but it's a loop plus the delay, like, I'm getting both issues. +- **21:14:55 · Fernando Bunn:** Oh, okay. Okay, so it's not just a release thing. Okay. +- **21:14:59 · Hassaan Elgarem:** Okay. +- **21:15:06 · Fernando Bunn:** Moving forward… Short story, uh… Skip. Excuse me. Next. Okay. Bago. So I go to Tokyo, explain the stock market. So at this moment, if I… First, close the app and kill it. I'll be on the loop, right? Like, I do not interact with the thing, or it doesn't matter. +- **21:15:43 · Alex Martemyanov:** You interact with it, you burn it. Use the fire button. Yeah, and then you kill it. +- **21:15:47 · Fernando Bunn:** Oh, I need to burn. Okay, then I see this. Should I go to… +- **21:16:02 · Alex Martemyanov:** Yes, and you enter… you activate the address bar, DACAI. And then you killed it again, and you got in the hoop. +- **21:16:11 · Fernando Bunn:** So we'll go to new chat. +- **21:16:13 · Hassaan Elgarem:** Start a new chat and then kill the app. +- **21:16:16 · Fernando Bunn:** Cool, again. Okay. +- **21:16:24 · JŁ:** You got it? +- **21:16:26 · Fernando Bunn:** Yep. Just want to see if I call from Xcode now. Seems bad. So I need to get to the loop. I need to do the same thing again, like fire button, kill the app, and… +- **21:16:45 · Alex Martemyanov:** Uh, yes, you fire button… Then you start Duck AI Chat again, and then you kill it up. +- **21:16:52 · Fernando Bunn:** Done. +- **21:16:53 · Alex Martemyanov:** It's only if you… if you give it 12, the exact AI chat is active. +- **21:16:53 · Fernando Bunn:** Queued up. Oh, I need to kill while he's acting. +- **21:17:00 · Alex Martemyanov:** Yes. So, uh… So what's the resolution we have? We need to rebase the PR to the current release, right? Two seven point. to… 4… 0… and have an expedited review, right? Basically, that's the only option. +- **21:17:28 · Fernando Bunn:** Can I just remove… Is this specific, the KI part and the onboarding behind FeatureFlight? +- **21:17:35 · Alex Martemyanov:** Yes. +- **21:17:37 · Fernando Bunn:** So it's already off. +- **21:17:37 · Alex Martemyanov:** The specific… It's… It's already off. +- **21:17:43 · Fernando Bunn:** But I just reproducing the episode. Okay, so maybe it didn't… +- **21:17:48 · Alex Martemyanov:** Yeah, we cannot disable it. +- **21:17:54 · Fernando Bunn:** Sorry, is it available in production or not? +- **21:17:58 · Alex Martemyanov:** Hmm? +- **21:17:59 · Fernando Bunn:** The onboarding… the Deck AI onboarding step is disabled in production right now, or not? Like, did we disable using a feature flag? +- **21:18:04 · Alex Martemyanov:** Mm-hmm. There is no feature flag. +- **21:18:07 · Fernando Bunn:** Oh. +- **21:18:09 · Alex Martemyanov:** I mean, there was, but it's… Not a thing already. And. So I didn't get it if, uh… Was there… you've got the screen or not? +- **21:18:30 · Fernando Bunn:** I'm going to see if I can reproduce from Axcode catalog. Let's try and compile it for a second. I don't have… Morocco. diff --git a/work/zoom-transcripts/2026-10-06 O-E 2026 2026-10-06 21 55(GMT+6 00) pEKfS6rcRlWzQyGKBbqqFw/transcript.json b/work/zoom-transcripts/2026-10-06 O-E 2026 2026-10-06 21 55(GMT+6 00) pEKfS6rcRlWzQyGKBbqqFw/transcript.json new file mode 100644 index 00000000..2aa97c2f --- /dev/null +++ b/work/zoom-transcripts/2026-10-06 O-E 2026 2026-10-06 21 55(GMT+6 00) pEKfS6rcRlWzQyGKBbqqFw/transcript.json @@ -0,0 +1,349 @@ +{ + "schema_version": 1, + "note_id": "pEKfS6rcRlWzQyGKBbqqFw", + "title": "O-E 2026 2026-10-06 21:55(GMT+6:00)", + "meeting_date": "2026-10-06", + "source_url": "https://us01mynotes.zoom.us/pEKfS6rcRlWzQyGKBbqqFw", + "transcript": [ + { + "time": "21:55:16", + "speaker": "Peter Dolanjski", + "text": "I don't think you should change it anyway, what you're doing, but… You know, uh, I looked this guy up. He's based here in Ottawa, in Ontario. He currently works… for, like, Ottawa… Ottawa Transit. He's a relatively new… new grad." + }, + { + "time": "21:55:27", + "speaker": "russell holt", + "text": "What? No kidding. Oh, you wanna hire him? Let's hire him." + }, + { + "time": "21:55:34", + "speaker": "Peter Dolanjski", + "text": "We can just hire him. No, seriously, like, guarantee our salary is, like, 3x what he makes right now." + }, + { + "time": "21:55:36", + "speaker": "russell holt", + "text": "Again." + }, + { + "time": "21:55:40", + "speaker": "Peter Dolanjski", + "text": "And then just tell him, you can keep doing sponsor block, we're not, you know, we'll… you can keep building that, having it, whatever. We should seriously just consider, if we're gonna discuss all this stuff with him. Like, agree on, like, we could just hire him. You know, so anyway, just a thought. Oh." + }, + { + "time": "21:56:01", + "speaker": "Michal Smaga", + "text": "So. Basically, the wrong guy was doing the project. It should be hiring, doing the sponsor block." + }, + { + "time": "21:56:05", + "speaker": "russell holt", + "text": "Thank you, Peter." + }, + { + "time": "21:56:08", + "speaker": "Peter Dolanjski", + "text": "Mikael, I think all your work really helped us understand what's involved here and all this. But yeah, when I look at all this, I'm just like, OK, obviously, if we can't hire them or we're not going to do that, we're going to have to work through all this." + }, + { + "time": "21:56:21", + "speaker": "russell holt", + "text": "Yeah." + }, + { + "time": "21:56:23", + "speaker": "Peter Dolanjski", + "text": "So that's great. But then I look at all this, and I'm like, we gotta get to agreement with this one dude. Like, we could just have him work here, we pay him probably a lot more than he currently makes, he's working just as a software developer." + }, + { + "time": "21:56:33", + "speaker": "russell holt", + "text": "Yeah, his product is good." + }, + { + "time": "21:56:36", + "speaker": "Peter Dolanjski", + "text": "or… yeah, he… he works on analyzing transit system stuff for the City of Ottawa. Like, guaranteed, we're gonna pay way more than he makes now. Uh, so, yeah, it's… it's an option, um, I think." + }, + { + "time": "21:56:36", + "speaker": "russell holt", + "text": "We like his product. We went through, just as an aside, I remember going through this discussion about Raymond Hill, the guy behind Ublock Origin." + }, + { + "time": "21:56:54", + "speaker": "Peter Dolanjski", + "text": "Yeah. Yeah, yeah." + }, + { + "time": "21:56:56", + "speaker": "russell holt", + "text": "He's pretty like. political about stuff like this and does not want to work at DuckDuckGo, so… but yeah, it's really worth thinking about, it's a good point." + }, + { + "time": "21:57:00", + "speaker": "Peter Dolanjski", + "text": "Totally, totally. Yeah, so… this… this feels like it might be a little bit different, but I don't know, you know, it depends on what this person's like, and so on. But anyway, I wish you could think about it, um, but I don't want to disrupt the way you're doing, but I gotta drop to another meeting." + }, + { + "time": "21:57:10", + "speaker": "russell holt", + "text": "Yeah. Excellent idea. Noted." + }, + { + "time": "21:57:21", + "speaker": "Michal Smaga", + "text": "Thanks, Peter." + }, + { + "time": "21:57:27", + "speaker": "russell holt", + "text": "Okay. Floor is open. Oh, see you, Francis. Yeah. Anything else? Otherwise, I'm going to start digging in here. Um, okay. All right, Nico. Let's do it. One of the things that comes to mind here, maybe you mentioned it, is if we fork the extension. and start… oh, Alex is here! Alex, did you wanna… we're running through some detailed stuff for SponsorBlock." + }, + { + "time": "21:57:52", + "speaker": "Alex Martemyanov", + "text": "Hey." + }, + { + "time": "21:57:56", + "speaker": "russell holt", + "text": "Um… What's your time frame for your day?" + }, + { + "time": "21:58:02", + "speaker": "Alex Martemyanov", + "text": "Uh, it's 10 PM, and if we could just get a quick update on the CPM." + }, + { + "time": "21:58:09", + "speaker": "Michal Smaga", + "text": "Russell, I can… I can step… I can step down and stop sharing. I can hang out for, like, after the meeting, if you're free." + }, + { + "time": "21:58:09", + "speaker": "Alex Martemyanov", + "text": "Would be great." + }, + { + "time": "21:58:09", + "speaker": "russell holt", + "text": "Uh, Michael, what do you want to do? Okay, let's do that. Let's switch to Alex, your mid-mortem two, and then I'm gonna, then we'll go back into some detailed cost estimating for SponsorBlock. Okay, Alex." + }, + { + "time": "21:58:29", + "speaker": "Alex Martemyanov", + "text": "Yeah, uh…" + }, + { + "time": "21:58:31", + "speaker": "russell holt", + "text": "Thank you." + }, + { + "time": "21:58:31", + "speaker": "Alex Martemyanov", + "text": "So, uh… So the mid-mortem, I'm sorry, it's not really filled with the data, just inside." + }, + { + "time": "21:58:40", + "speaker": "russell holt", + "text": "That's okay. Just tell us where you are and what you want to do." + }, + { + "time": "21:58:41", + "speaker": "Alex Martemyanov", + "text": "Uh, the… So generally from during the last week, we've had several fixes merged. So it's tab management, the original bugs, but not causing the total breakage, but only per tab breakage that were affected by the moving between windows. And there was the restoration, state restoration fix. And today we've started receiving the data. And then there was a speculative graveyard fix that was supposedly fixing the… You're on mute. Sorry." + }, + { + "time": "21:59:20", + "speaker": "russell holt", + "text": "What, what, what data? I'm sorry. Yeah. What, what data and where?" + }, + { + "time": "21:59:24", + "speaker": "Alex Martemyanov", + "text": "Yeah, so… So generally, there was the third issue of the speculative fix that should supposedly fix the background process termination issue that was reproduced under." + }, + { + "time": "21:59:26", + "speaker": "russell holt", + "text": "Tell, tell us." + }, + { + "time": "21:59:40", + "speaker": "Alex Martemyanov", + "text": "special, uh, laboratory conditions. Yeah, and today we had, uh, we started receiving the data, basically the parameters attribution, and, uh, the second link in the chat shows that, yeah, nothing. Nothing from it, and total failure, I'd say, but it generally…" + }, + { + "time": "22:00:03", + "speaker": "russell holt", + "text": "Wait, wait a second. I'm not sure I'm seeing what you're seeing." + }, + { + "time": "22:00:07", + "speaker": "Alex Martemyanov", + "text": "This is the second chat, the second link in the chat. And the one not resolved in the mid-mortem." + }, + { + "time": "22:00:12", + "speaker": "russell holt", + "text": "Okay." + }, + { + "time": "22:00:17", + "speaker": "Alex Martemyanov", + "text": "Yeah, so basically, uh, we have, uh… have not received any proofs that the fixes are fixing anything, including the speculative fix, but, uh… The pillars we are receiving just indicate very clean and regular workflows just failing. And but that's actually simplifies the further approach to the project. Uh, a bit. Although making it, uh, still unresolved and, um… Hmm. I have still no vital hypothesis that can explain it." + }, + { + "time": "22:01:02", + "speaker": "russell holt", + "text": "Well, it looks like reloading worked, sort of." + }, + { + "time": "22:01:05", + "speaker": "Alex Martemyanov", + "text": "Reloading sort of works, and restate restoration fix. I mean, other fixes should. mitigate the issue at least partially. Uh, but the main breakage still is still unresolved, and probably we won't be releasing the, uh, the speculative graveyard fix, because it's, uh, according to the data, we are not receiving those, uh, in any. In any form. Uh, so I'll probably proceed removing the fix, since it's not really affecting users, and it was kinda shaky. Uh, but there's three… three issues that may be affecting. The one was resolved in macOS 27, but we got the data from macOS 27, so it's not the case for sure. And we've got the two others in it races. Uh, WebKit bugs that… that look very similar to what we have, so there is a neat messaging loss. Uh, if the process starts connecting to the extension before the service worker is up. And it could be mitigated with the fix to the web extension code. And we discussed it with Marc already, but he argued if it's really the case that could affect all the web extension over. all the tabs. But if it's repeated, for example, it gets too fast on the repeated, uh… Condition. it may be the issue, and it's mitigated relatively easily. So one change to the web extension code that waits for the service worker to get up. And we may just experiment with it and we even can try to take it to the current macOS internal release with a kind of release exception to get released next Monday publicly and check if it… changes anything, and it shouldn't… it shouldn't break things, at least. Let's give it a try." + }, + { + "time": "22:03:03", + "speaker": "russell holt", + "text": "All right." + }, + { + "time": "22:03:09", + "speaker": "Alex Martemyanov", + "text": "And, uh… I don't know, I'll try to see… the next days coming, maybe I'll find something else. So that's the plan." + }, + { + "time": "22:03:25", + "speaker": "russell holt", + "text": "Sounds good. I mean. Do we think that, just side question, do we think that we have a similar issue with the…" + }, + { + "time": "22:03:30", + "speaker": "Alex Martemyanov", + "text": "Okay." + }, + { + "time": "22:03:37", + "speaker": "russell holt", + "text": "YouTube ad blocking extension." + }, + { + "time": "22:03:39", + "speaker": "Alex Martemyanov", + "text": "Most probably. Because it's not the CPM only issue, I guess. It's the general WebKit bugs, if it is the case. Uh, it's the overall bug that affects everything." + }, + { + "time": "22:03:44", + "speaker": "russell holt", + "text": "Yes." + }, + { + "time": "22:03:52", + "speaker": "SM", + "text": "But this is an issue with, um… Content script to background messaging in the extension." + }, + { + "time": "22:03:58", + "speaker": "Alex Martemyanov", + "text": "Yes." + }, + { + "time": "22:03:59", + "speaker": "SM", + "text": "Yeah, so YouTube should be okay because it doesn't have a background, it's just a content script." + }, + { + "time": "22:04:04", + "speaker": "Alex Martemyanov", + "text": "Hello." + }, + { + "time": "22:04:06", + "speaker": "SM", + "text": "So it will. It will just run and." + }, + { + "time": "22:04:06", + "speaker": "Alex Martemyanov", + "text": "That's right. If, uh… Good. If it's the state restoration issue, and the script is not loading." + }, + { + "time": "22:04:15", + "speaker": "Michal Smaga", + "text": "Yes. Yeah, so I think it depends on, like, in which category of, like, WebKit bugs we land. Like, definitely it's not messaging dependent, so if it's, like, something messaging related, it shouldn't be affecting the Utah blocking, but if this is, like. some, like, background web extension background process, or, like, network process, like, like, dying underneath, and, like, something, like, disconnecting from the web extension. At some specific cases, it may be there, sure." + }, + { + "time": "22:04:46", + "speaker": "SM", + "text": "Is it… is it… for any of these issues, is it worth raising to the WebKit team? Because we've… We've had, like… Well, yeah, we've been at a couple of meetups and had, like, also direct calls with the WebKit extensions people. And… I think if we have direct feedback that we're, like, extensions are basically breaking quite badly here, then we can raise those issues with them, and they can maybe expedite fixes." + }, + { + "time": "22:05:17", + "speaker": "Alex Martemyanov", + "text": "Specifically, these issues that I've just mentioned, these are official WebKit radars, and they are stated as fixed, and they should be released in the upcoming macOS that's currently in beta. And if it's…" + }, + { + "time": "22:05:30", + "speaker": "russell holt", + "text": "Really? Which one is in beta? Like the, the, uh…" + }, + { + "time": "22:05:34", + "speaker": "Alex Martemyanov", + "text": "27.2, I think." + }, + { + "time": "22:05:35", + "speaker": "russell holt", + "text": "27.1 or whatever. And. Well, that's good." + }, + { + "time": "22:05:41", + "speaker": "SM", + "text": "But… but 27 is, like, as a… it takes a long time for all our user base to get there, right? Like, we can also ask for a backport. Maybe to 26." + }, + { + "time": "22:05:54", + "speaker": "Alex Martemyanov", + "text": "Uh, they should… I mean, the issues should be mitigated by the JS code fix if we wait, if it's really the case." + }, + { + "time": "22:06:03", + "speaker": "russell holt", + "text": "Yeah, thank you. I expect people to upgrade to 27 fast, because everyone wants that, um, liquid glass slider." + }, + { + "time": "22:06:12", + "speaker": "Alex Martemyanov", + "text": "Okay." + }, + { + "time": "22:06:13", + "speaker": "russell holt", + "text": "Okay." + }, + { + "time": "22:06:16", + "speaker": "Alex Martemyanov", + "text": "Yeah, sure. Okay, so let's try to… let's try to fix it by…" + }, + { + "time": "22:06:21", + "speaker": "russell holt", + "text": "Okay, good." + }, + { + "time": "22:06:26", + "speaker": "Alex Martemyanov", + "text": "against those, uh, those bugs that are officially in WebKit, uh, Bug Tracker." + }, + { + "time": "22:06:43", + "speaker": "russell holt", + "text": "Excellent. Thank you, Alex." + } + ] +} diff --git a/work/zoom-transcripts/2026-10-06 O-E 2026 2026-10-06 21 55(GMT+6 00) pEKfS6rcRlWzQyGKBbqqFw/transcript.md b/work/zoom-transcripts/2026-10-06 O-E 2026 2026-10-06 21 55(GMT+6 00) pEKfS6rcRlWzQyGKBbqqFw/transcript.md new file mode 100644 index 00000000..38013d7d --- /dev/null +++ b/work/zoom-transcripts/2026-10-06 O-E 2026 2026-10-06 21 55(GMT+6 00) pEKfS6rcRlWzQyGKBbqqFw/transcript.md @@ -0,0 +1,81 @@ +--- +title: "O-E 2026 2026-10-06 21:55(GMT+6:00)" +date: 2026-10-06 +zoom_note_id: "pEKfS6rcRlWzQyGKBbqqFw" +source: "https://us01mynotes.zoom.us/pEKfS6rcRlWzQyGKBbqqFw" +--- + +# O-E 2026 2026-10-06 21:55(GMT+6:00) + +[Zoom My Notes](https://us01mynotes.zoom.us/pEKfS6rcRlWzQyGKBbqqFw) + +## Transcript + +- **21:55:16 · Peter Dolanjski:** I don't think you should change it anyway, what you're doing, but… You know, uh, I looked this guy up. He's based here in Ottawa, in Ontario. He currently works… for, like, Ottawa… Ottawa Transit. He's a relatively new… new grad. +- **21:55:27 · russell holt:** What? No kidding. Oh, you wanna hire him? Let's hire him. +- **21:55:34 · Peter Dolanjski:** We can just hire him. No, seriously, like, guarantee our salary is, like, 3x what he makes right now. +- **21:55:36 · russell holt:** Again. +- **21:55:40 · Peter Dolanjski:** And then just tell him, you can keep doing sponsor block, we're not, you know, we'll… you can keep building that, having it, whatever. We should seriously just consider, if we're gonna discuss all this stuff with him. Like, agree on, like, we could just hire him. You know, so anyway, just a thought. Oh. +- **21:56:01 · Michal Smaga:** So. Basically, the wrong guy was doing the project. It should be hiring, doing the sponsor block. +- **21:56:05 · russell holt:** Thank you, Peter. +- **21:56:08 · Peter Dolanjski:** Mikael, I think all your work really helped us understand what's involved here and all this. But yeah, when I look at all this, I'm just like, OK, obviously, if we can't hire them or we're not going to do that, we're going to have to work through all this. +- **21:56:21 · russell holt:** Yeah. +- **21:56:23 · Peter Dolanjski:** So that's great. But then I look at all this, and I'm like, we gotta get to agreement with this one dude. Like, we could just have him work here, we pay him probably a lot more than he currently makes, he's working just as a software developer. +- **21:56:33 · russell holt:** Yeah, his product is good. +- **21:56:36 · Peter Dolanjski:** or… yeah, he… he works on analyzing transit system stuff for the City of Ottawa. Like, guaranteed, we're gonna pay way more than he makes now. Uh, so, yeah, it's… it's an option, um, I think. +- **21:56:36 · russell holt:** We like his product. We went through, just as an aside, I remember going through this discussion about Raymond Hill, the guy behind Ublock Origin. +- **21:56:54 · Peter Dolanjski:** Yeah. Yeah, yeah. +- **21:56:56 · russell holt:** He's pretty like. political about stuff like this and does not want to work at DuckDuckGo, so… but yeah, it's really worth thinking about, it's a good point. +- **21:57:00 · Peter Dolanjski:** Totally, totally. Yeah, so… this… this feels like it might be a little bit different, but I don't know, you know, it depends on what this person's like, and so on. But anyway, I wish you could think about it, um, but I don't want to disrupt the way you're doing, but I gotta drop to another meeting. +- **21:57:10 · russell holt:** Yeah. Excellent idea. Noted. +- **21:57:21 · Michal Smaga:** Thanks, Peter. +- **21:57:27 · russell holt:** Okay. Floor is open. Oh, see you, Francis. Yeah. Anything else? Otherwise, I'm going to start digging in here. Um, okay. All right, Nico. Let's do it. One of the things that comes to mind here, maybe you mentioned it, is if we fork the extension. and start… oh, Alex is here! Alex, did you wanna… we're running through some detailed stuff for SponsorBlock. +- **21:57:52 · Alex Martemyanov:** Hey. +- **21:57:56 · russell holt:** Um… What's your time frame for your day? +- **21:58:02 · Alex Martemyanov:** Uh, it's 10 PM, and if we could just get a quick update on the CPM. +- **21:58:09 · Michal Smaga:** Russell, I can… I can step… I can step down and stop sharing. I can hang out for, like, after the meeting, if you're free. +- **21:58:09 · Alex Martemyanov:** Would be great. +- **21:58:09 · russell holt:** Uh, Michael, what do you want to do? Okay, let's do that. Let's switch to Alex, your mid-mortem two, and then I'm gonna, then we'll go back into some detailed cost estimating for SponsorBlock. Okay, Alex. +- **21:58:29 · Alex Martemyanov:** Yeah, uh… +- **21:58:31 · russell holt:** Thank you. +- **21:58:31 · Alex Martemyanov:** So, uh… So the mid-mortem, I'm sorry, it's not really filled with the data, just inside. +- **21:58:40 · russell holt:** That's okay. Just tell us where you are and what you want to do. +- **21:58:41 · Alex Martemyanov:** Uh, the… So generally from during the last week, we've had several fixes merged. So it's tab management, the original bugs, but not causing the total breakage, but only per tab breakage that were affected by the moving between windows. And there was the restoration, state restoration fix. And today we've started receiving the data. And then there was a speculative graveyard fix that was supposedly fixing the… You're on mute. Sorry. +- **21:59:20 · russell holt:** What, what, what data? I'm sorry. Yeah. What, what data and where? +- **21:59:24 · Alex Martemyanov:** Yeah, so… So generally, there was the third issue of the speculative fix that should supposedly fix the background process termination issue that was reproduced under. +- **21:59:26 · russell holt:** Tell, tell us. +- **21:59:40 · Alex Martemyanov:** special, uh, laboratory conditions. Yeah, and today we had, uh, we started receiving the data, basically the parameters attribution, and, uh, the second link in the chat shows that, yeah, nothing. Nothing from it, and total failure, I'd say, but it generally… +- **22:00:03 · russell holt:** Wait, wait a second. I'm not sure I'm seeing what you're seeing. +- **22:00:07 · Alex Martemyanov:** This is the second chat, the second link in the chat. And the one not resolved in the mid-mortem. +- **22:00:12 · russell holt:** Okay. +- **22:00:17 · Alex Martemyanov:** Yeah, so basically, uh, we have, uh… have not received any proofs that the fixes are fixing anything, including the speculative fix, but, uh… The pillars we are receiving just indicate very clean and regular workflows just failing. And but that's actually simplifies the further approach to the project. Uh, a bit. Although making it, uh, still unresolved and, um… Hmm. I have still no vital hypothesis that can explain it. +- **22:01:02 · russell holt:** Well, it looks like reloading worked, sort of. +- **22:01:05 · Alex Martemyanov:** Reloading sort of works, and restate restoration fix. I mean, other fixes should. mitigate the issue at least partially. Uh, but the main breakage still is still unresolved, and probably we won't be releasing the, uh, the speculative graveyard fix, because it's, uh, according to the data, we are not receiving those, uh, in any. In any form. Uh, so I'll probably proceed removing the fix, since it's not really affecting users, and it was kinda shaky. Uh, but there's three… three issues that may be affecting. The one was resolved in macOS 27, but we got the data from macOS 27, so it's not the case for sure. And we've got the two others in it races. Uh, WebKit bugs that… that look very similar to what we have, so there is a neat messaging loss. Uh, if the process starts connecting to the extension before the service worker is up. And it could be mitigated with the fix to the web extension code. And we discussed it with Marc already, but he argued if it's really the case that could affect all the web extension over. all the tabs. But if it's repeated, for example, it gets too fast on the repeated, uh… Condition. it may be the issue, and it's mitigated relatively easily. So one change to the web extension code that waits for the service worker to get up. And we may just experiment with it and we even can try to take it to the current macOS internal release with a kind of release exception to get released next Monday publicly and check if it… changes anything, and it shouldn't… it shouldn't break things, at least. Let's give it a try. +- **22:03:03 · russell holt:** All right. +- **22:03:09 · Alex Martemyanov:** And, uh… I don't know, I'll try to see… the next days coming, maybe I'll find something else. So that's the plan. +- **22:03:25 · russell holt:** Sounds good. I mean. Do we think that, just side question, do we think that we have a similar issue with the… +- **22:03:30 · Alex Martemyanov:** Okay. +- **22:03:37 · russell holt:** YouTube ad blocking extension. +- **22:03:39 · Alex Martemyanov:** Most probably. Because it's not the CPM only issue, I guess. It's the general WebKit bugs, if it is the case. Uh, it's the overall bug that affects everything. +- **22:03:44 · russell holt:** Yes. +- **22:03:52 · SM:** But this is an issue with, um… Content script to background messaging in the extension. +- **22:03:58 · Alex Martemyanov:** Yes. +- **22:03:59 · SM:** Yeah, so YouTube should be okay because it doesn't have a background, it's just a content script. +- **22:04:04 · Alex Martemyanov:** Hello. +- **22:04:06 · SM:** So it will. It will just run and. +- **22:04:06 · Alex Martemyanov:** That's right. If, uh… Good. If it's the state restoration issue, and the script is not loading. +- **22:04:15 · Michal Smaga:** Yes. Yeah, so I think it depends on, like, in which category of, like, WebKit bugs we land. Like, definitely it's not messaging dependent, so if it's, like, something messaging related, it shouldn't be affecting the Utah blocking, but if this is, like. some, like, background web extension background process, or, like, network process, like, like, dying underneath, and, like, something, like, disconnecting from the web extension. At some specific cases, it may be there, sure. +- **22:04:46 · SM:** Is it… is it… for any of these issues, is it worth raising to the WebKit team? Because we've… We've had, like… Well, yeah, we've been at a couple of meetups and had, like, also direct calls with the WebKit extensions people. And… I think if we have direct feedback that we're, like, extensions are basically breaking quite badly here, then we can raise those issues with them, and they can maybe expedite fixes. +- **22:05:17 · Alex Martemyanov:** Specifically, these issues that I've just mentioned, these are official WebKit radars, and they are stated as fixed, and they should be released in the upcoming macOS that's currently in beta. And if it's… +- **22:05:30 · russell holt:** Really? Which one is in beta? Like the, the, uh… +- **22:05:34 · Alex Martemyanov:** 27.2, I think. +- **22:05:35 · russell holt:** 27.1 or whatever. And. Well, that's good. +- **22:05:41 · SM:** But… but 27 is, like, as a… it takes a long time for all our user base to get there, right? Like, we can also ask for a backport. Maybe to 26. +- **22:05:54 · Alex Martemyanov:** Uh, they should… I mean, the issues should be mitigated by the JS code fix if we wait, if it's really the case. +- **22:06:03 · russell holt:** Yeah, thank you. I expect people to upgrade to 27 fast, because everyone wants that, um, liquid glass slider. +- **22:06:12 · Alex Martemyanov:** Okay. +- **22:06:13 · russell holt:** Okay. +- **22:06:16 · Alex Martemyanov:** Yeah, sure. Okay, so let's try to… let's try to fix it by… +- **22:06:21 · russell holt:** Okay, good. +- **22:06:26 · Alex Martemyanov:** against those, uh, those bugs that are officially in WebKit, uh, Bug Tracker. +- **22:06:43 · russell holt:** Excellent. Thank you, Alex. diff --git a/work/zoom-transcripts/2026-10-06 SRE Incidents 2026-10-06 21 21(GMT+6 00) SrYbgHxMSlWioRrr4PGz2Q/transcript.json b/work/zoom-transcripts/2026-10-06 SRE Incidents 2026-10-06 21 21(GMT+6 00) SrYbgHxMSlWioRrr4PGz2Q/transcript.json new file mode 100644 index 00000000..c4255ab3 --- /dev/null +++ b/work/zoom-transcripts/2026-10-06 SRE Incidents 2026-10-06 21 21(GMT+6 00) SrYbgHxMSlWioRrr4PGz2Q/transcript.json @@ -0,0 +1,894 @@ +{ + "schema_version": 1, + "note_id": "SrYbgHxMSlWioRrr4PGz2Q", + "title": "SRE Incidents 2026-10-06 21:21(GMT+6:00)", + "meeting_date": "2026-10-06", + "source_url": "https://us01mynotes.zoom.us/SrYbgHxMSlWioRrr4PGz2Q", + "transcript": [ + { + "time": "21:21:52", + "speaker": "JŁ", + "text": "Basically, it breaks trust in our capability of fire things, even though it fires for people, it gives perception it is the same chat, while it's not. It's actually like the same prompt being sent over and over again. And so so that that that's the short context. There, there is additional issue that one of our teammates can reproduce. so when they open the chat from onboarding it. it loads for a long time. It's not something that was reported by users, but this is what they see. Like, it takes up to one minute for the chat to load, and we don't know whether it's because of his location. Like, it's Hassan, who's located in Egypt." + }, + { + "time": "21:22:38", + "speaker": "JŁ", + "text": "So maybe it's some kind of connectivity thing like we we don't know. But but this is what we were able to to to see why they're reproducing. But yeah, so from our findings it's not possible to to be mitigated by disabling some feature flag." + }, + { + "time": "21:23:00", + "speaker": "Tomasz Patrzykat", + "text": "Угу?" + }, + { + "time": "21:23:01", + "speaker": "JŁ", + "text": "Uh, so we will need to go with a hotfix route, and with some expedite review, probably, uh… and given our experience, it it usually takes up to like half a day for the review, sometimes like even even quicker. So, as far as I'm aware." + }, + { + "time": "21:23:14", + "speaker": "Tomasz Patrzykat", + "text": "Угу? Он Айос. Сайт, Онли? Лайк, Ноу Одер, Платформ?" + }, + { + "time": "21:23:26", + "speaker": "JŁ", + "text": "Yeah, yeah, yeah, definitely. Definitely, iOS. Yeah, it's a native thing." + }, + { + "time": "21:23:28", + "speaker": "Tomasz Patrzykat", + "text": "Дэфнетли, Окей?" + }, + { + "time": "21:23:33", + "speaker": "JŁ", + "text": "So I…" + }, + { + "time": "21:23:33", + "speaker": "Tomasz Patrzykat", + "text": "Он. Он, фиксинг?" + }, + { + "time": "21:23:37", + "speaker": "JŁ", + "text": "Yeah, Alex, Alex is working on it here in the call." + }, + { + "time": "21:23:45", + "speaker": "Fernando Bunn", + "text": "Ангел, Кимятый Сезон?" + }, + { + "time": "21:23:45", + "speaker": "JŁ", + "text": "Bye. Sorry? Yeah, as far as I'm aware, Alex has a fix already. We we just don't know if it if it fixes all the things like I. I know that. Bartek was was on a call before, and he managed to like reproduce it even in a in a like simpler scenario like, if if it still fixes the whole thing, then I I guess we we can." + }, + { + "time": "21:24:15", + "speaker": "Tomasz Patrzykat", + "text": "Угу?" + }, + { + "time": "21:24:16", + "speaker": "JŁ", + "text": "safely say that we have a fix. So we we are just now trying to to to to check on the other thing. I I guess the the thing that Hassan found. And. Yep. Anything I missed, Alex?" + }, + { + "time": "21:24:34", + "speaker": "Alex Martemyanov", + "text": "На стрели? Для следствие бирри бэйс?" + }, + { + "time": "21:24:55", + "speaker": "Tomasz Patrzykat", + "text": "Фикс, райт?" + }, + { + "time": "21:24:55", + "speaker": "Fernando Bunn", + "text": "Okay, sorry." + }, + { + "time": "21:25:03", + "speaker": "Tomasz Patrzykat", + "text": "Дэнни Шелфикс?" + }, + { + "time": "21:25:03", + "speaker": "Fernando Bunn", + "text": "Go ahead, Alex." + }, + { + "time": "21:25:04", + "speaker": "Alex Martemyanov", + "text": "Игос?" + }, + { + "time": "21:25:06", + "speaker": "Fernando Bunn", + "text": "Alexis, I'm just happy." + }, + { + "time": "21:25:06", + "speaker": "Tomasz Patrzykat", + "text": "Окей, Алекс, Окей?" + }, + { + "time": "21:25:14", + "speaker": "Fernando Bunn", + "text": "All right, so yeah, I'm looking at the logs here. Yeah, okay. There's a step that keeps replaying, the KI answer step. Is that the thing you saw, Alex, the fix you have there?" + }, + { + "time": "21:25:21", + "speaker": "Tomasz Patrzykat", + "text": "Дуй." + }, + { + "time": "21:25:30", + "speaker": "Fernando Bunn", + "text": "Apparently, it's failing to get on an exit path. Like it always keeps that state no matter what. Do you have the, um… The PR? Ready?" + }, + { + "time": "21:25:43", + "speaker": "Fernando Bunn", + "text": "Депюар Бари?" + }, + { + "time": "21:25:45", + "speaker": "Fernando Bunn", + "text": "Where's the fix?" + }, + { + "time": "21:25:45", + "speaker": "Fernando Bunn", + "text": "Автофикс?" + }, + { + "time": "21:25:45", + "speaker": "Alex Martemyanov", + "text": "Не отопляры, Все?" + }, + { + "time": "21:25:50", + "speaker": "Fernando Bunn", + "text": "Yes, indeed." + }, + { + "time": "21:25:50", + "speaker": "Fernando Bunn", + "text": "Санги? Mmhm. Okay, we're gonna try it here." + }, + { + "time": "21:26:49", + "speaker": "Alex Martemyanov", + "text": "It was always there, but… I didn't completely get it, because one of the demos that Bartek held, he had no guided screen at all. Basically, the screen that sets the, uh, the flag. the fire onboarding was complete is is made by the. You've got Express. You've got it button pressed. And if there is no button, the flag is never set and the loop is always there." + }, + { + "time": "21:27:23", + "speaker": "Alex Martemyanov", + "text": "But I didn't yet understand why the screen may be missing." + }, + { + "time": "21:27:24", + "speaker": "Tomasz Patrzykat", + "text": "Окей?" + }, + { + "time": "21:27:30", + "speaker": "Alex Martemyanov", + "text": "Maybe it was recent change and I'm not aware of. Yeah, and uh… On-screen path. On the before I forget, choose to restore from sync. Resume onboarding, choose Duck AI, send the prompt, and go through the fire onboarding. And after the fire… There would be no, you've got this thing, yeah, and that's why it's synchronized, exactly. Foundation. And that's why all the users start experiencing." + }, + { + "time": "21:28:13", + "speaker": "JŁ", + "text": "Sorry. So what was the culprit? Hello!" + }, + { + "time": "21:28:16", + "speaker": "Alex Martemyanov", + "text": "The sync restoration path that was enabled recently, and that's why it's mentioned in the task. Uh, right. In the… in the bug task. And if you choose the sync restoration path. Uh, you… Got… now you've got this screen presented. Meaning the flag is never set. So that was the activating issue. Because the bug with the button was always there, but the users were always pressing the button. And now the button is gone, because when you…" + }, + { + "time": "21:28:45", + "speaker": "JŁ", + "text": "Okay, and do you have a… do you do one…" + }, + { + "time": "21:28:54", + "speaker": "Alex Martemyanov", + "text": "Choose, uh, sync, restore from sync, restore using sync. On the \"Oh, before I forget\" screen. Right? So probably you choose the search path and restore from using sync." + }, + { + "time": "21:29:44", + "speaker": "Fernando Bunn", + "text": "Yeah, I'm gonna… installing our… I'm starting our fix here. See if I can… I could do station again. Um… And also I'm spinning an agent review because I previous think that my phone is just like." + }, + { + "time": "21:30:22", + "speaker": "Alex Martemyanov", + "text": "Yes, uh, it seems like it. Or I forget. Mmhmm. It's not the validated… the validated path, I'm just… Copying steps found. Yeah, here in the charts. At least, as it's said by Codex." + }, + { + "time": "21:31:50", + "speaker": "Tomasz Patrzykat", + "text": "Эй Тэнкс?" + }, + { + "time": "21:33:05", + "speaker": "Fernando Bunn", + "text": "What is the behavior we want here? Like, if the user did not… Tap the fire button. Should that step be… repeated, as well? Like, we never want this to happen, right? Like, it doesn't matter what the user did or did not…" + }, + { + "time": "21:33:19", + "speaker": "Alex Martemyanov", + "text": "You… the user… The user cannot miss that step. Every other controller is locked in that state." + }, + { + "time": "21:33:30", + "speaker": "Fernando Bunn", + "text": "What if I… what if I kill the mid without…" + }, + { + "time": "21:33:33", + "speaker": "Alex Martemyanov", + "text": "You would just return to the same screen." + }, + { + "time": "21:33:36", + "speaker": "Fernando Bunn", + "text": "Okay. All right, yeah, so I can't… I can't reproduce the issue again with Alex Pierre. Gonna try from scratch." + }, + { + "time": "21:33:46", + "speaker": "Alex Martemyanov", + "text": "Yeah, it's basically cleared as soon as you press the fire button." + }, + { + "time": "21:33:50", + "speaker": "Fernando Bunn", + "text": "Yeah, I saw the change there. But I'm trying from scratch again." + }, + { + "time": "21:33:58", + "speaker": "Alex Martemyanov", + "text": "Yeah, maybe the steps I just sent are not correct steps. I'm just trying to figure it out via cloud. The Sync Restore screen is called \"Let's Pick Up Where You Left Off\"." + }, + { + "time": "21:34:28", + "speaker": "Fernando Bunn", + "text": "Yeah, the two things the review here is saying, but I'll let you decide if it makes sense or not. One is the one that I called before. It found the same thing, but basically… If for some reason there's another entry point. um…" + }, + { + "time": "21:34:47", + "speaker": "Alex Martemyanov", + "text": "Yeah, it's the same thing, anyways." + }, + { + "time": "21:34:47", + "speaker": "Fernando Bunn", + "text": "On that screen, it's gonna miss it, yeah." + }, + { + "time": "21:34:50", + "speaker": "Alex Martemyanov", + "text": "Because when you get to the fire onboarding state, it sets the flag, and when you hit the fire button, it resets the flag. So that's the entry and exit." + }, + { + "time": "21:34:50", + "speaker": "Fernando Bunn", + "text": "And one of… And. Okay. And another one is just this saying that it's missing tests from the call points. I don't really mind this one." + }, + { + "time": "21:34:59", + "speaker": "Alex Martemyanov", + "text": "I would say. Yeah, it just makes the bug obvious for… it's just…" + }, + { + "time": "21:35:08", + "speaker": "Fernando Bunn", + "text": "Okay, but…" + }, + { + "time": "21:35:12", + "speaker": "Alex Martemyanov", + "text": "Makes the bug inevitable for all the users who use the sync feature." + }, + { + "time": "21:35:21", + "speaker": "Fernando Bunn", + "text": "Okay, I'm trying again. So skip. Skip. Next. Type. Bye. Maybe it's the KI." + }, + { + "time": "21:35:35", + "speaker": "Alex Martemyanov", + "text": "Yeah, so set to returning user. Restart, press restore my stuff. And get through the onboarding. Um, whatever. I need to…" + }, + { + "time": "21:36:03", + "speaker": "Fernando Bunn", + "text": "Okay, seems to be… I did the steps from scratch, at least the ones that Bortek reproduced seems to be working here." + }, + { + "time": "21:36:11", + "speaker": "Alex Martemyanov", + "text": "Yeah, that exact scenario is reproduced, if you omit the… We've got this button, we've got the screen, but if there is no screen, yeah, it's 100% reproducible, and it's obvious, and the fix should just fix the file onboarding." + }, + { + "time": "21:36:16", + "speaker": "Fernando Bunn", + "text": "Mm-mm." + }, + { + "time": "21:36:25", + "speaker": "Alex Martemyanov", + "text": "And uh… probably it's not up to us to fix the flow itself, it's just the… the flag issue. So, should I rebase it to the current release branch? Origin, release, iOS." + }, + { + "time": "21:36:42", + "speaker": "JŁ", + "text": "One, all right. I was talking to Thomas, and. a… If we reverted that same thing, would it fix it, or would it just make it…" + }, + { + "time": "21:36:56", + "speaker": "Alex Martemyanov", + "text": "No, it won't fix it. It would, uh, prevent the new users to get in. But if there is a feature flag for that flow, it should, uh… Make it." + }, + { + "time": "21:37:13", + "speaker": "JŁ", + "text": "But would it still be valuable to do so? So…" + }, + { + "time": "21:37:18", + "speaker": "Alex Martemyanov", + "text": "Maybe. If there is a fish or flock, that's… So I don't know, I haven't produced the second path for the returning user." + }, + { + "time": "21:37:32", + "speaker": "JŁ", + "text": "Okay, would you be able to check that if there's a feature flag for that like, perhaps we could do it like 2 ways like we could disable the flag. To help. Like, new users not to get into the state, and we would, like, release the hotfix too. Uh, to fix the state for users that already are in the loop." + }, + { + "time": "21:37:58", + "speaker": "Alex Martemyanov", + "text": "No, the users that are already in the loop, they are… they cannot be…" + }, + { + "time": "21:38:02", + "speaker": "JŁ", + "text": "I know, I know. So for them, we'll release the hotfix. I'm just talking about new users, like whether like…" + }, + { + "time": "21:38:03", + "speaker": "Alex Martemyanov", + "text": "fixed, but…" + }, + { + "time": "21:38:07", + "speaker": "Tomasz Patrzykat", + "text": "Я Эленто, Нью, Юзерс?" + }, + { + "time": "21:38:08", + "speaker": "JŁ", + "text": "Whether changing like switching the flag would actually make it for for better for them, or." + }, + { + "time": "21:38:43", + "speaker": "Fernando Bunn", + "text": "Okay, uh, do you still need me for anything here? All good?" + }, + { + "time": "21:38:48", + "speaker": "Alex Martemyanov", + "text": "Yes, there is Sync Auto Restore. And it's… Is it mentioned there?" + }, + { + "time": "21:38:58", + "speaker": "Fernando Bunn", + "text": "What is the problem with sync?" + }, + { + "time": "21:38:58", + "speaker": "Alex Martemyanov", + "text": "Report it. Hmm?" + }, + { + "time": "21:39:02", + "speaker": "Fernando Bunn", + "text": "What is the problem with sync?" + }, + { + "time": "21:39:05", + "speaker": "Alex Martemyanov", + "text": "The second path that restores the data and the sink was mentioned as a trigger for the issue. The fixed app now uses the sync server. For chat history, only one sync is actually on. Fix context. Accumulated AI charts deleted. And… Sync Auto Restore." + }, + { + "time": "21:40:09", + "speaker": "Fernando Bunn", + "text": "Sorry, I'm not pulling. What is the issue related with syncing?" + }, + { + "time": "21:40:13", + "speaker": "Alex Martemyanov", + "text": "Sync restore, the sync restoration prompt, if we disable this feature flag, the sync restoration prompt should not appear. So, it means the user won't get through the sync restoration flow, and they won't get. the. Yes. Yes, but it's… But it's the common feature flag for all these encoders, not only for the onboarding." + }, + { + "time": "21:40:45", + "speaker": "Tomasz Patrzykat", + "text": "О?" + }, + { + "time": "21:40:46", + "speaker": "Alex Martemyanov", + "text": "It does not disable sync, it disables automatic recovery of previously preserved sync account. Hide the \"Let's pick up where we left off\" button. And restore my stuff during onboarding. Remove the automatic restore path from sync settings. User must use QR code or recovery code or manual setup. So basically, this is automatic keychain recovery from keychain for reinstallers, and they have to… They have to sync up manually again. We can disable the whole flow, and it will mitigate this issue. But disabled synchro. They're restored with SYNCFLOW." + }, + { + "time": "21:41:37", + "speaker": "Tomasz Patrzykat", + "text": "Возраисков. Дизайн Фул Сынг?" + }, + { + "time": "21:41:41", + "speaker": "Alex Martemyanov", + "text": "The loss of the restoration we are seeing from the keychain item for installers." + }, + { + "time": "21:41:44", + "speaker": "Tomasz Patrzykat", + "text": "Угу?" + }, + { + "time": "21:41:53", + "speaker": "Alex Martemyanov", + "text": "So they will have to manually restore things. Or lose data, if… They have no access to the QR code anymore. At least until the next… Reinstall. That's not the case. So I'd say, uh, since… my opinion, that since it's not the really everyday use case scenario when… where you left off. The Duck or Yea chat. It may… it may be… And not a good user experience, but it's not a user breakage. And we should not remove, we should not lose user data." + }, + { + "time": "21:42:46", + "speaker": "Fernando Bunn", + "text": "Yeah, so. The the. Just make sure I understand here, like, we have two different problems, right? Like, one is this onboarding thing that keeps getting into a loop. This is the incident thing that we… like, you have the PR and it's done, right? Another one is this sync issue that I didn't understand very well, but basically, if you reinstall the app, there's still sync information there that it shouldn't be. Right? The second one." + }, + { + "time": "21:43:08", + "speaker": "Alex Martemyanov", + "text": "No." + }, + { + "time": "21:43:09", + "speaker": "Fernando Bunn", + "text": "Is it an incident as well? Is it something that needs to be part of this?" + }, + { + "time": "21:43:12", + "speaker": "Alex Martemyanov", + "text": "No, it's, uh, it's the same, it's the same issue." + }, + { + "time": "21:43:16", + "speaker": "Fernando Bunn", + "text": "So it's related to onboarding as well?" + }, + { + "time": "21:43:19", + "speaker": "Alex Martemyanov", + "text": "Yes, so when you have… so how would they use… how the new users are getting into the loop? Because normally, and the issue was there for a while already, it was half a year since it was merged, but we've started receiving this incident only recently, with this sink restoration. It's a reaction, because…" + }, + { + "time": "21:43:40", + "speaker": "Fernando Bunn", + "text": "Okay, so it… Okay, it feels like the other one is way more… pressing time-related, like, for us to fix as soon as possible, and this one is not. I don't know if I'm wrong here." + }, + { + "time": "21:43:51", + "speaker": "Tomasz Patrzykat", + "text": "Депендских? Дат. С. Мои андрестанников Да Ищи? Инту, Дис? Он, ореваясь?" + }, + { + "time": "21:44:10", + "speaker": "Alex Martemyanov", + "text": "Everybody who is doing this in restoration." + }, + { + "time": "21:44:21", + "speaker": "Tomasz Patrzykat", + "text": "Генджек?" + }, + { + "time": "21:44:23", + "speaker": "Fernando Bunn", + "text": "So… Yeah, so to reproduce this, I need to have, like, sync enable, and then… Delete the app, install the app again." + }, + { + "time": "21:44:34", + "speaker": "Alex Martemyanov", + "text": "No, uh, yes. Yes." + }, + { + "time": "21:44:39", + "speaker": "Fernando Bunn", + "text": "Okay." + }, + { + "time": "21:44:39", + "speaker": "Alex Martemyanov", + "text": "Delete the app and reinstall again and restore from sync." + }, + { + "time": "21:44:47", + "speaker": "JŁ", + "text": "So it doesn't occur to completely new users to DuckDuckGo?" + }, + { + "time": "21:44:53", + "speaker": "Alex Martemyanov", + "text": "Hm?" + }, + { + "time": "21:44:54", + "speaker": "JŁ", + "text": "It doesn't even." + }, + { + "time": "21:44:54", + "speaker": "Alex Martemyanov", + "text": "Sure." + }, + { + "time": "21:44:56", + "speaker": "JŁ", + "text": "New users to DuckDuckGo who never had an app before on their phone. This is not gonna be triggered for them. You're saying?" + }, + { + "time": "21:45:04", + "speaker": "Alex Martemyanov", + "text": "Uh, they shouldn't, in general. So it's only the case when you… you kill the app and they got this screen. But it's been there for a while already, and we haven't received a lot of feedback about it. Before. So it's the condition that you have… that you should have three, uh… 3 consequences, 3 cases, 3 events in a row. So, missing this… button then. Entering the Dakaria chat and. Restarting the app with Duck AI Chart active." + }, + { + "time": "21:45:44", + "speaker": "JŁ", + "text": "So okay, okay, I need to double check. So you're saying, if I if I have a raw simulator. I shouldn't be able to even reproduce the issue." + }, + { + "time": "21:45:55", + "speaker": "Alex Martemyanov", + "text": "Perfect." + }, + { + "time": "21:45:57", + "speaker": "JŁ", + "text": "Okay. I can check. Just to be double sure." + }, + { + "time": "21:46:03", + "speaker": "Alex Martemyanov", + "text": "So, in general, if you just press the… you've got this button. It won't be there. Yes. Yes. That's the case." + }, + { + "time": "21:46:58", + "speaker": "Tomasz Patrzykat", + "text": "Ол. Пробэмс?" + }, + { + "time": "21:47:00", + "speaker": "JŁ", + "text": "I think, I think it fixes them. Uh, at least the one that… that incident reports were telling about right? Alex. And Fernando, like, you were checking it…" + }, + { + "time": "21:47:13", + "speaker": "Alex Martemyanov", + "text": "Yes, who is, uh… who is getting to the screen? They will have to do the fire button thing again, but the next time it's fixed. It won't appear anymore." + }, + { + "time": "21:47:26", + "speaker": "JŁ", + "text": "Okay." + }, + { + "time": "21:47:31", + "speaker": "Alex Martemyanov", + "text": "And there is sync auto restore success excel. Use parameter source equals onboarding. And for users who only tapped restore my stuff. There is another pixel. Let me just check it. And…" + }, + { + "time": "21:48:07", + "speaker": "Tomasz Patrzykat", + "text": "Okay, just to, like, double check, so the fix that was linked here, like, 20 minutes ago, the iOS fix.ai fire on board registration loop 7147. This fixes the root cause that was exposing this incident, correct?" + }, + { + "time": "21:48:24", + "speaker": "Alex Martemyanov", + "text": "Yes." + }, + { + "time": "21:48:25", + "speaker": "Tomasz Patrzykat", + "text": "Where are we with releasing this?" + }, + { + "time": "21:48:28", + "speaker": "Alex Martemyanov", + "text": "PR open against current internal orders." + }, + { + "time": "21:48:35", + "speaker": "Tomasz Patrzykat", + "text": "Okay, Joey, are you blocked, or do you need, like, any help with that, or just, like, try to engage more people if needed?" + }, + { + "time": "21:48:44", + "speaker": "JŁ", + "text": "No, we will need Haniel, who is on the release rotation this week." + }, + { + "time": "21:48:48", + "speaker": "Alex Martemyanov", + "text": "Increase." + }, + { + "time": "21:48:49", + "speaker": "Tomasz Patrzykat", + "text": "Mm-hmm." + }, + { + "time": "21:48:50", + "speaker": "JŁ", + "text": "To to to the hot fix process for us. So basically." + }, + { + "time": "21:48:56", + "speaker": "Tomasz Patrzykat", + "text": "Okay." + }, + { + "time": "21:48:57", + "speaker": "JŁ", + "text": "Okay." + }, + { + "time": "21:48:58", + "speaker": "Tomasz Patrzykat", + "text": "Could you ping him in the channel?" + }, + { + "time": "21:48:58", + "speaker": "Tomasz Patrzykat", + "text": "Включи, Пинхим, Индо, Инде, Ченнел?" + }, + { + "time": "21:48:59", + "speaker": "JŁ", + "text": "Thank you. Hanyu, Hanyu was on the previous Zoom call. He just had to escape to some other meeting, but we can, like, someone… someone heard back, and…" + }, + { + "time": "21:49:06", + "speaker": "Tomasz Patrzykat", + "text": "Okay?" + }, + { + "time": "21:49:11", + "speaker": "JŁ", + "text": "and like the the there, there is a clear process and instruction how to how to do it. And so like, yeah, it should all be documented. So it should be fine, I I guess." + }, + { + "time": "21:49:24", + "speaker": "Tomasz Patrzykat", + "text": "So who can derive this, like releasing this?" + }, + { + "time": "21:49:27", + "speaker": "JŁ", + "text": "Hanyu, I think. Like, that's the process, at least." + }, + { + "time": "21:49:30", + "speaker": "Tomasz Patrzykat", + "text": "Yeah, but he's not dead." + }, + { + "time": "21:49:32", + "speaker": "JŁ", + "text": "Uh, I will, I will summon her. Just, just…" + }, + { + "time": "21:49:35", + "speaker": "Tomasz Patrzykat", + "text": "Okay, thank you." + }, + { + "time": "21:50:02", + "speaker": "Fernando Bunn", + "text": "Okay, I'm gonna…" + }, + { + "time": "21:50:04", + "speaker": "Alex Martemyanov", + "text": "And for the…" + }, + { + "time": "21:50:04", + "speaker": "Fernando Bunn", + "text": "Drop." + }, + { + "time": "21:50:06", + "speaker": "Alex Martemyanov", + "text": "For the prompt shown, I'm just looking at the board. And we've got, uh… 800 for the prompt shown. and hundred and sixty-nine daily. And… Onboarding restored. Dot. Strong and boldly. Restore Tap to Nick. Still… Okay. Okay. Oh, it's absorption. Yeah, here we go. 400 daily. On both Android and iPhone, unique links. Hi, Alice. iOS tablet and phone, 258 daily users going through the flow, supposedly, but not finishing. I think auto restore success. I'll do those. Click on to restore success. Success. I'm nervous. iOS phone 272, which kind of matches the… And… Pretty sure. State chapter. The source." + }, + { + "time": "21:51:40", + "speaker": "Tomasz Patrzykat", + "text": "Could you share the board or what are you looking for?" + }, + { + "time": "21:51:40", + "speaker": "Alex Martemyanov", + "text": "Source. Uh, yes, one… one moment, any of these drinks? Next, uh… It's… Mm-hmm." + }, + { + "time": "21:51:59", + "speaker": "JŁ", + "text": "Honey, sorry, I brought you here. Quick context. So we have a fix." + }, + { + "time": "21:52:07", + "speaker": "Alex Martemyanov", + "text": "Thank you." + }, + { + "time": "21:52:07", + "speaker": "JŁ", + "text": "Um, it's been, like, reviewed." + }, + { + "time": "21:52:09", + "speaker": "Hanyu Tang", + "text": "Has it merged? No, it's not worked. Okay." + }, + { + "time": "21:52:10", + "speaker": "JŁ", + "text": "No, not yet. I think it's been reviewed by Fernando and Hassan. It's been proven to be working, and so we would be hot-fixing it." + }, + { + "time": "21:52:23", + "speaker": "Hanyu Tang", + "text": "Okay." + }, + { + "time": "21:52:24", + "speaker": "JŁ", + "text": "Since you're on the release rotation, could you be, like, would you be willing to do it? there's a process, there's a process, like, described in the documentation, I can share the task, like, even, like, here." + }, + { + "time": "21:52:33", + "speaker": "Hanyu Tang", + "text": "Yeah. Okay, sure." + }, + { + "time": "21:52:39", + "speaker": "JŁ", + "text": "And. to do it. Basically, it should be automated almost on every step. But yeah, like in in kind of case, like, feel free to like ping anyone for help." + }, + { + "time": "21:52:53", + "speaker": "Hanyu Tang", + "text": "Okay. Okay, yeah. Uh…" + }, + { + "time": "21:52:57", + "speaker": "Alex Martemyanov", + "text": "Yeah, just…" + }, + { + "time": "21:52:58", + "speaker": "Hanyu Tang", + "text": "Sorry, the PR is the fixed tax AI fire onboarding, right?" + }, + { + "time": "21:52:59", + "speaker": "Alex Martemyanov", + "text": "Good question. Yeah, but it's against the…" + }, + { + "time": "21:53:03", + "speaker": "Hanyu Tang", + "text": "It should be merged… It should be merged. It should not be merged into. 7241, right? It should be merged into me." + }, + { + "time": "21:53:13", + "speaker": "Alex Martemyanov", + "text": "Right." + }, + { + "time": "21:53:14", + "speaker": "Hanyu Tang", + "text": "Okay, yeah." + }, + { + "time": "21:53:14", + "speaker": "JŁ", + "text": "But…" + }, + { + "time": "21:53:14", + "speaker": "Alex Martemyanov", + "text": "It should be merged to the previous one, and I'm just trying to figure out how to…" + }, + { + "time": "21:53:16", + "speaker": "Hanyu Tang", + "text": "Yeah, yeah." + }, + { + "time": "21:53:18", + "speaker": "JŁ", + "text": "I think, basically, you need to start with the task, so, like, it tells you to, like, set up hotfix release branch from main, like, it happens all automatically, and then once it happens, once there's a branch." + }, + { + "time": "21:53:19", + "speaker": "Alex Martemyanov", + "text": "How to do this." + }, + { + "time": "21:53:32", + "speaker": "JŁ", + "text": "uh… done by… by CA… CI for you, you will basically, like, Alex will rebase his fix on top of that branch, which can be then merged, and… and, yeah, basically, then… And you can go step by step." + }, + { + "time": "21:53:48", + "speaker": "Alex Martemyanov", + "text": "Okay, so I'm waiting for the signal." + }, + { + "time": "21:53:48", + "speaker": "Hanyu Tang", + "text": "Okay, yeah, I already started the process." + }, + { + "time": "21:53:51", + "speaker": "Alex Martemyanov", + "text": "Okay, and the final question, so we have around 300 daily users, uh, getting to this state. Is it worth disabling the whole synchro restoration for those, or…" + }, + { + "time": "21:54:02", + "speaker": "Tomasz Patrzykat", + "text": "Yeah, I think we should disable it, and then we'll, like, after hotfix, we'll just re-enable it. That should work, right? Because it should be then fixed." + }, + { + "time": "21:54:12", + "speaker": "Alex Martemyanov", + "text": "Yes, and there should be a button in settings, I guess." + }, + { + "time": "21:54:16", + "speaker": "Tomasz Patrzykat", + "text": "So who can disable this?" + }, + { + "time": "21:54:16", + "speaker": "Alex Martemyanov", + "text": "Just in case. I can… Oh, pink, with a, with a. Where was the config? PR. In the chat, in the Metamorph later. I have to drop off for the mid-mortem now, and I'll do this. Disabling in parallel." + }, + { + "time": "21:54:39", + "speaker": "Tomasz Patrzykat", + "text": "Okay, so I can put you as a DRI for disabling the flow, right?" + }, + { + "time": "21:54:40", + "speaker": "Alex Martemyanov", + "text": "Sounds good. Yep, yep." + }, + { + "time": "21:54:46", + "speaker": "Tomasz Patrzykat", + "text": "Okay, thank you." + }, + { + "time": "21:54:47", + "speaker": "Alex Martemyanov", + "text": "And waiting for a signal from Konya. Okay, thank you." + } + ] +} diff --git a/work/zoom-transcripts/2026-10-06 SRE Incidents 2026-10-06 21 21(GMT+6 00) SrYbgHxMSlWioRrr4PGz2Q/transcript.md b/work/zoom-transcripts/2026-10-06 SRE Incidents 2026-10-06 21 21(GMT+6 00) SrYbgHxMSlWioRrr4PGz2Q/transcript.md new file mode 100644 index 00000000..14a50d5e --- /dev/null +++ b/work/zoom-transcripts/2026-10-06 SRE Incidents 2026-10-06 21 21(GMT+6 00) SrYbgHxMSlWioRrr4PGz2Q/transcript.md @@ -0,0 +1,190 @@ +--- +title: "SRE Incidents 2026-10-06 21:21(GMT+6:00)" +date: 2026-10-06 +zoom_note_id: "SrYbgHxMSlWioRrr4PGz2Q" +source: "https://us01mynotes.zoom.us/SrYbgHxMSlWioRrr4PGz2Q" +--- + +# SRE Incidents 2026-10-06 21:21(GMT+6:00) + +[Zoom My Notes](https://us01mynotes.zoom.us/SrYbgHxMSlWioRrr4PGz2Q) + +## Transcript + +- **21:21:52 · JŁ:** Basically, it breaks trust in our capability of fire things, even though it fires for people, it gives perception it is the same chat, while it's not. It's actually like the same prompt being sent over and over again. And so so that that that's the short context. There, there is additional issue that one of our teammates can reproduce. so when they open the chat from onboarding it. it loads for a long time. It's not something that was reported by users, but this is what they see. Like, it takes up to one minute for the chat to load, and we don't know whether it's because of his location. Like, it's Hassan, who's located in Egypt. +- **21:22:38 · JŁ:** So maybe it's some kind of connectivity thing like we we don't know. But but this is what we were able to to to see why they're reproducing. But yeah, so from our findings it's not possible to to be mitigated by disabling some feature flag. +- **21:23:00 · Tomasz Patrzykat:** Угу? +- **21:23:01 · JŁ:** Uh, so we will need to go with a hotfix route, and with some expedite review, probably, uh… and given our experience, it it usually takes up to like half a day for the review, sometimes like even even quicker. So, as far as I'm aware. +- **21:23:14 · Tomasz Patrzykat:** Угу? Он Айос. Сайт, Онли? Лайк, Ноу Одер, Платформ? +- **21:23:26 · JŁ:** Yeah, yeah, yeah, definitely. Definitely, iOS. Yeah, it's a native thing. +- **21:23:28 · Tomasz Patrzykat:** Дэфнетли, Окей? +- **21:23:33 · JŁ:** So I… +- **21:23:33 · Tomasz Patrzykat:** Он. Он, фиксинг? +- **21:23:37 · JŁ:** Yeah, Alex, Alex is working on it here in the call. +- **21:23:45 · Fernando Bunn:** Ангел, Кимятый Сезон? +- **21:23:45 · JŁ:** Bye. Sorry? Yeah, as far as I'm aware, Alex has a fix already. We we just don't know if it if it fixes all the things like I. I know that. Bartek was was on a call before, and he managed to like reproduce it even in a in a like simpler scenario like, if if it still fixes the whole thing, then I I guess we we can. +- **21:24:15 · Tomasz Patrzykat:** Угу? +- **21:24:16 · JŁ:** safely say that we have a fix. So we we are just now trying to to to to check on the other thing. I I guess the the thing that Hassan found. And. Yep. Anything I missed, Alex? +- **21:24:34 · Alex Martemyanov:** На стрели? Для следствие бирри бэйс? +- **21:24:55 · Tomasz Patrzykat:** Фикс, райт? +- **21:24:55 · Fernando Bunn:** Okay, sorry. +- **21:25:03 · Tomasz Patrzykat:** Дэнни Шелфикс? +- **21:25:03 · Fernando Bunn:** Go ahead, Alex. +- **21:25:04 · Alex Martemyanov:** Игос? +- **21:25:06 · Fernando Bunn:** Alexis, I'm just happy. +- **21:25:06 · Tomasz Patrzykat:** Окей, Алекс, Окей? +- **21:25:14 · Fernando Bunn:** All right, so yeah, I'm looking at the logs here. Yeah, okay. There's a step that keeps replaying, the KI answer step. Is that the thing you saw, Alex, the fix you have there? +- **21:25:21 · Tomasz Patrzykat:** Дуй. +- **21:25:30 · Fernando Bunn:** Apparently, it's failing to get on an exit path. Like it always keeps that state no matter what. Do you have the, um… The PR? Ready? +- **21:25:43 · Fernando Bunn:** Депюар Бари? +- **21:25:45 · Fernando Bunn:** Where's the fix? +- **21:25:45 · Fernando Bunn:** Автофикс? +- **21:25:45 · Alex Martemyanov:** Не отопляры, Все? +- **21:25:50 · Fernando Bunn:** Yes, indeed. +- **21:25:50 · Fernando Bunn:** Санги? Mmhm. Okay, we're gonna try it here. +- **21:26:49 · Alex Martemyanov:** It was always there, but… I didn't completely get it, because one of the demos that Bartek held, he had no guided screen at all. Basically, the screen that sets the, uh, the flag. the fire onboarding was complete is is made by the. You've got Express. You've got it button pressed. And if there is no button, the flag is never set and the loop is always there. +- **21:27:23 · Alex Martemyanov:** But I didn't yet understand why the screen may be missing. +- **21:27:24 · Tomasz Patrzykat:** Окей? +- **21:27:30 · Alex Martemyanov:** Maybe it was recent change and I'm not aware of. Yeah, and uh… On-screen path. On the before I forget, choose to restore from sync. Resume onboarding, choose Duck AI, send the prompt, and go through the fire onboarding. And after the fire… There would be no, you've got this thing, yeah, and that's why it's synchronized, exactly. Foundation. And that's why all the users start experiencing. +- **21:28:13 · JŁ:** Sorry. So what was the culprit? Hello! +- **21:28:16 · Alex Martemyanov:** The sync restoration path that was enabled recently, and that's why it's mentioned in the task. Uh, right. In the… in the bug task. And if you choose the sync restoration path. Uh, you… Got… now you've got this screen presented. Meaning the flag is never set. So that was the activating issue. Because the bug with the button was always there, but the users were always pressing the button. And now the button is gone, because when you… +- **21:28:45 · JŁ:** Okay, and do you have a… do you do one… +- **21:28:54 · Alex Martemyanov:** Choose, uh, sync, restore from sync, restore using sync. On the "Oh, before I forget" screen. Right? So probably you choose the search path and restore from using sync. +- **21:29:44 · Fernando Bunn:** Yeah, I'm gonna… installing our… I'm starting our fix here. See if I can… I could do station again. Um… And also I'm spinning an agent review because I previous think that my phone is just like. +- **21:30:22 · Alex Martemyanov:** Yes, uh, it seems like it. Or I forget. Mmhmm. It's not the validated… the validated path, I'm just… Copying steps found. Yeah, here in the charts. At least, as it's said by Codex. +- **21:31:50 · Tomasz Patrzykat:** Эй Тэнкс? +- **21:33:05 · Fernando Bunn:** What is the behavior we want here? Like, if the user did not… Tap the fire button. Should that step be… repeated, as well? Like, we never want this to happen, right? Like, it doesn't matter what the user did or did not… +- **21:33:19 · Alex Martemyanov:** You… the user… The user cannot miss that step. Every other controller is locked in that state. +- **21:33:30 · Fernando Bunn:** What if I… what if I kill the mid without… +- **21:33:33 · Alex Martemyanov:** You would just return to the same screen. +- **21:33:36 · Fernando Bunn:** Okay. All right, yeah, so I can't… I can't reproduce the issue again with Alex Pierre. Gonna try from scratch. +- **21:33:46 · Alex Martemyanov:** Yeah, it's basically cleared as soon as you press the fire button. +- **21:33:50 · Fernando Bunn:** Yeah, I saw the change there. But I'm trying from scratch again. +- **21:33:58 · Alex Martemyanov:** Yeah, maybe the steps I just sent are not correct steps. I'm just trying to figure it out via cloud. The Sync Restore screen is called "Let's Pick Up Where You Left Off". +- **21:34:28 · Fernando Bunn:** Yeah, the two things the review here is saying, but I'll let you decide if it makes sense or not. One is the one that I called before. It found the same thing, but basically… If for some reason there's another entry point. um… +- **21:34:47 · Alex Martemyanov:** Yeah, it's the same thing, anyways. +- **21:34:47 · Fernando Bunn:** On that screen, it's gonna miss it, yeah. +- **21:34:50 · Alex Martemyanov:** Because when you get to the fire onboarding state, it sets the flag, and when you hit the fire button, it resets the flag. So that's the entry and exit. +- **21:34:50 · Fernando Bunn:** And one of… And. Okay. And another one is just this saying that it's missing tests from the call points. I don't really mind this one. +- **21:34:59 · Alex Martemyanov:** I would say. Yeah, it just makes the bug obvious for… it's just… +- **21:35:08 · Fernando Bunn:** Okay, but… +- **21:35:12 · Alex Martemyanov:** Makes the bug inevitable for all the users who use the sync feature. +- **21:35:21 · Fernando Bunn:** Okay, I'm trying again. So skip. Skip. Next. Type. Bye. Maybe it's the KI. +- **21:35:35 · Alex Martemyanov:** Yeah, so set to returning user. Restart, press restore my stuff. And get through the onboarding. Um, whatever. I need to… +- **21:36:03 · Fernando Bunn:** Okay, seems to be… I did the steps from scratch, at least the ones that Bortek reproduced seems to be working here. +- **21:36:11 · Alex Martemyanov:** Yeah, that exact scenario is reproduced, if you omit the… We've got this button, we've got the screen, but if there is no screen, yeah, it's 100% reproducible, and it's obvious, and the fix should just fix the file onboarding. +- **21:36:16 · Fernando Bunn:** Mm-mm. +- **21:36:25 · Alex Martemyanov:** And uh… probably it's not up to us to fix the flow itself, it's just the… the flag issue. So, should I rebase it to the current release branch? Origin, release, iOS. +- **21:36:42 · JŁ:** One, all right. I was talking to Thomas, and. a… If we reverted that same thing, would it fix it, or would it just make it… +- **21:36:56 · Alex Martemyanov:** No, it won't fix it. It would, uh, prevent the new users to get in. But if there is a feature flag for that flow, it should, uh… Make it. +- **21:37:13 · JŁ:** But would it still be valuable to do so? So… +- **21:37:18 · Alex Martemyanov:** Maybe. If there is a fish or flock, that's… So I don't know, I haven't produced the second path for the returning user. +- **21:37:32 · JŁ:** Okay, would you be able to check that if there's a feature flag for that like, perhaps we could do it like 2 ways like we could disable the flag. To help. Like, new users not to get into the state, and we would, like, release the hotfix too. Uh, to fix the state for users that already are in the loop. +- **21:37:58 · Alex Martemyanov:** No, the users that are already in the loop, they are… they cannot be… +- **21:38:02 · JŁ:** I know, I know. So for them, we'll release the hotfix. I'm just talking about new users, like whether like… +- **21:38:03 · Alex Martemyanov:** fixed, but… +- **21:38:07 · Tomasz Patrzykat:** Я Эленто, Нью, Юзерс? +- **21:38:08 · JŁ:** Whether changing like switching the flag would actually make it for for better for them, or. +- **21:38:43 · Fernando Bunn:** Okay, uh, do you still need me for anything here? All good? +- **21:38:48 · Alex Martemyanov:** Yes, there is Sync Auto Restore. And it's… Is it mentioned there? +- **21:38:58 · Fernando Bunn:** What is the problem with sync? +- **21:38:58 · Alex Martemyanov:** Report it. Hmm? +- **21:39:02 · Fernando Bunn:** What is the problem with sync? +- **21:39:05 · Alex Martemyanov:** The second path that restores the data and the sink was mentioned as a trigger for the issue. The fixed app now uses the sync server. For chat history, only one sync is actually on. Fix context. Accumulated AI charts deleted. And… Sync Auto Restore. +- **21:40:09 · Fernando Bunn:** Sorry, I'm not pulling. What is the issue related with syncing? +- **21:40:13 · Alex Martemyanov:** Sync restore, the sync restoration prompt, if we disable this feature flag, the sync restoration prompt should not appear. So, it means the user won't get through the sync restoration flow, and they won't get. the. Yes. Yes, but it's… But it's the common feature flag for all these encoders, not only for the onboarding. +- **21:40:45 · Tomasz Patrzykat:** О? +- **21:40:46 · Alex Martemyanov:** It does not disable sync, it disables automatic recovery of previously preserved sync account. Hide the "Let's pick up where we left off" button. And restore my stuff during onboarding. Remove the automatic restore path from sync settings. User must use QR code or recovery code or manual setup. So basically, this is automatic keychain recovery from keychain for reinstallers, and they have to… They have to sync up manually again. We can disable the whole flow, and it will mitigate this issue. But disabled synchro. They're restored with SYNCFLOW. +- **21:41:37 · Tomasz Patrzykat:** Возраисков. Дизайн Фул Сынг? +- **21:41:41 · Alex Martemyanov:** The loss of the restoration we are seeing from the keychain item for installers. +- **21:41:44 · Tomasz Patrzykat:** Угу? +- **21:41:53 · Alex Martemyanov:** So they will have to manually restore things. Or lose data, if… They have no access to the QR code anymore. At least until the next… Reinstall. That's not the case. So I'd say, uh, since… my opinion, that since it's not the really everyday use case scenario when… where you left off. The Duck or Yea chat. It may… it may be… And not a good user experience, but it's not a user breakage. And we should not remove, we should not lose user data. +- **21:42:46 · Fernando Bunn:** Yeah, so. The the. Just make sure I understand here, like, we have two different problems, right? Like, one is this onboarding thing that keeps getting into a loop. This is the incident thing that we… like, you have the PR and it's done, right? Another one is this sync issue that I didn't understand very well, but basically, if you reinstall the app, there's still sync information there that it shouldn't be. Right? The second one. +- **21:43:08 · Alex Martemyanov:** No. +- **21:43:09 · Fernando Bunn:** Is it an incident as well? Is it something that needs to be part of this? +- **21:43:12 · Alex Martemyanov:** No, it's, uh, it's the same, it's the same issue. +- **21:43:16 · Fernando Bunn:** So it's related to onboarding as well? +- **21:43:19 · Alex Martemyanov:** Yes, so when you have… so how would they use… how the new users are getting into the loop? Because normally, and the issue was there for a while already, it was half a year since it was merged, but we've started receiving this incident only recently, with this sink restoration. It's a reaction, because… +- **21:43:40 · Fernando Bunn:** Okay, so it… Okay, it feels like the other one is way more… pressing time-related, like, for us to fix as soon as possible, and this one is not. I don't know if I'm wrong here. +- **21:43:51 · Tomasz Patrzykat:** Депендских? Дат. С. Мои андрестанников Да Ищи? Инту, Дис? Он, ореваясь? +- **21:44:10 · Alex Martemyanov:** Everybody who is doing this in restoration. +- **21:44:21 · Tomasz Patrzykat:** Генджек? +- **21:44:23 · Fernando Bunn:** So… Yeah, so to reproduce this, I need to have, like, sync enable, and then… Delete the app, install the app again. +- **21:44:34 · Alex Martemyanov:** No, uh, yes. Yes. +- **21:44:39 · Fernando Bunn:** Okay. +- **21:44:39 · Alex Martemyanov:** Delete the app and reinstall again and restore from sync. +- **21:44:47 · JŁ:** So it doesn't occur to completely new users to DuckDuckGo? +- **21:44:53 · Alex Martemyanov:** Hm? +- **21:44:54 · JŁ:** It doesn't even. +- **21:44:54 · Alex Martemyanov:** Sure. +- **21:44:56 · JŁ:** New users to DuckDuckGo who never had an app before on their phone. This is not gonna be triggered for them. You're saying? +- **21:45:04 · Alex Martemyanov:** Uh, they shouldn't, in general. So it's only the case when you… you kill the app and they got this screen. But it's been there for a while already, and we haven't received a lot of feedback about it. Before. So it's the condition that you have… that you should have three, uh… 3 consequences, 3 cases, 3 events in a row. So, missing this… button then. Entering the Dakaria chat and. Restarting the app with Duck AI Chart active. +- **21:45:44 · JŁ:** So okay, okay, I need to double check. So you're saying, if I if I have a raw simulator. I shouldn't be able to even reproduce the issue. +- **21:45:55 · Alex Martemyanov:** Perfect. +- **21:45:57 · JŁ:** Okay. I can check. Just to be double sure. +- **21:46:03 · Alex Martemyanov:** So, in general, if you just press the… you've got this button. It won't be there. Yes. Yes. That's the case. +- **21:46:58 · Tomasz Patrzykat:** Ол. Пробэмс? +- **21:47:00 · JŁ:** I think, I think it fixes them. Uh, at least the one that… that incident reports were telling about right? Alex. And Fernando, like, you were checking it… +- **21:47:13 · Alex Martemyanov:** Yes, who is, uh… who is getting to the screen? They will have to do the fire button thing again, but the next time it's fixed. It won't appear anymore. +- **21:47:26 · JŁ:** Okay. +- **21:47:31 · Alex Martemyanov:** And there is sync auto restore success excel. Use parameter source equals onboarding. And for users who only tapped restore my stuff. There is another pixel. Let me just check it. And… +- **21:48:07 · Tomasz Patrzykat:** Okay, just to, like, double check, so the fix that was linked here, like, 20 minutes ago, the iOS fix.ai fire on board registration loop 7147. This fixes the root cause that was exposing this incident, correct? +- **21:48:24 · Alex Martemyanov:** Yes. +- **21:48:25 · Tomasz Patrzykat:** Where are we with releasing this? +- **21:48:28 · Alex Martemyanov:** PR open against current internal orders. +- **21:48:35 · Tomasz Patrzykat:** Okay, Joey, are you blocked, or do you need, like, any help with that, or just, like, try to engage more people if needed? +- **21:48:44 · JŁ:** No, we will need Haniel, who is on the release rotation this week. +- **21:48:48 · Alex Martemyanov:** Increase. +- **21:48:49 · Tomasz Patrzykat:** Mm-hmm. +- **21:48:50 · JŁ:** To to to the hot fix process for us. So basically. +- **21:48:56 · Tomasz Patrzykat:** Okay. +- **21:48:57 · JŁ:** Okay. +- **21:48:58 · Tomasz Patrzykat:** Could you ping him in the channel? +- **21:48:58 · Tomasz Patrzykat:** Включи, Пинхим, Индо, Инде, Ченнел? +- **21:48:59 · JŁ:** Thank you. Hanyu, Hanyu was on the previous Zoom call. He just had to escape to some other meeting, but we can, like, someone… someone heard back, and… +- **21:49:06 · Tomasz Patrzykat:** Okay? +- **21:49:11 · JŁ:** and like the the there, there is a clear process and instruction how to how to do it. And so like, yeah, it should all be documented. So it should be fine, I I guess. +- **21:49:24 · Tomasz Patrzykat:** So who can derive this, like releasing this? +- **21:49:27 · JŁ:** Hanyu, I think. Like, that's the process, at least. +- **21:49:30 · Tomasz Patrzykat:** Yeah, but he's not dead. +- **21:49:32 · JŁ:** Uh, I will, I will summon her. Just, just… +- **21:49:35 · Tomasz Patrzykat:** Okay, thank you. +- **21:50:02 · Fernando Bunn:** Okay, I'm gonna… +- **21:50:04 · Alex Martemyanov:** And for the… +- **21:50:04 · Fernando Bunn:** Drop. +- **21:50:06 · Alex Martemyanov:** For the prompt shown, I'm just looking at the board. And we've got, uh… 800 for the prompt shown. and hundred and sixty-nine daily. And… Onboarding restored. Dot. Strong and boldly. Restore Tap to Nick. Still… Okay. Okay. Oh, it's absorption. Yeah, here we go. 400 daily. On both Android and iPhone, unique links. Hi, Alice. iOS tablet and phone, 258 daily users going through the flow, supposedly, but not finishing. I think auto restore success. I'll do those. Click on to restore success. Success. I'm nervous. iOS phone 272, which kind of matches the… And… Pretty sure. State chapter. The source. +- **21:51:40 · Tomasz Patrzykat:** Could you share the board or what are you looking for? +- **21:51:40 · Alex Martemyanov:** Source. Uh, yes, one… one moment, any of these drinks? Next, uh… It's… Mm-hmm. +- **21:51:59 · JŁ:** Honey, sorry, I brought you here. Quick context. So we have a fix. +- **21:52:07 · Alex Martemyanov:** Thank you. +- **21:52:07 · JŁ:** Um, it's been, like, reviewed. +- **21:52:09 · Hanyu Tang:** Has it merged? No, it's not worked. Okay. +- **21:52:10 · JŁ:** No, not yet. I think it's been reviewed by Fernando and Hassan. It's been proven to be working, and so we would be hot-fixing it. +- **21:52:23 · Hanyu Tang:** Okay. +- **21:52:24 · JŁ:** Since you're on the release rotation, could you be, like, would you be willing to do it? there's a process, there's a process, like, described in the documentation, I can share the task, like, even, like, here. +- **21:52:33 · Hanyu Tang:** Yeah. Okay, sure. +- **21:52:39 · JŁ:** And. to do it. Basically, it should be automated almost on every step. But yeah, like in in kind of case, like, feel free to like ping anyone for help. +- **21:52:53 · Hanyu Tang:** Okay. Okay, yeah. Uh… +- **21:52:57 · Alex Martemyanov:** Yeah, just… +- **21:52:58 · Hanyu Tang:** Sorry, the PR is the fixed tax AI fire onboarding, right? +- **21:52:59 · Alex Martemyanov:** Good question. Yeah, but it's against the… +- **21:53:03 · Hanyu Tang:** It should be merged… It should be merged. It should not be merged into. 7241, right? It should be merged into me. +- **21:53:13 · Alex Martemyanov:** Right. +- **21:53:14 · Hanyu Tang:** Okay, yeah. +- **21:53:14 · JŁ:** But… +- **21:53:14 · Alex Martemyanov:** It should be merged to the previous one, and I'm just trying to figure out how to… +- **21:53:16 · Hanyu Tang:** Yeah, yeah. +- **21:53:18 · JŁ:** I think, basically, you need to start with the task, so, like, it tells you to, like, set up hotfix release branch from main, like, it happens all automatically, and then once it happens, once there's a branch. +- **21:53:19 · Alex Martemyanov:** How to do this. +- **21:53:32 · JŁ:** uh… done by… by CA… CI for you, you will basically, like, Alex will rebase his fix on top of that branch, which can be then merged, and… and, yeah, basically, then… And you can go step by step. +- **21:53:48 · Alex Martemyanov:** Okay, so I'm waiting for the signal. +- **21:53:48 · Hanyu Tang:** Okay, yeah, I already started the process. +- **21:53:51 · Alex Martemyanov:** Okay, and the final question, so we have around 300 daily users, uh, getting to this state. Is it worth disabling the whole synchro restoration for those, or… +- **21:54:02 · Tomasz Patrzykat:** Yeah, I think we should disable it, and then we'll, like, after hotfix, we'll just re-enable it. That should work, right? Because it should be then fixed. +- **21:54:12 · Alex Martemyanov:** Yes, and there should be a button in settings, I guess. +- **21:54:16 · Tomasz Patrzykat:** So who can disable this? +- **21:54:16 · Alex Martemyanov:** Just in case. I can… Oh, pink, with a, with a. Where was the config? PR. In the chat, in the Metamorph later. I have to drop off for the mid-mortem now, and I'll do this. Disabling in parallel. +- **21:54:39 · Tomasz Patrzykat:** Okay, so I can put you as a DRI for disabling the flow, right? +- **21:54:40 · Alex Martemyanov:** Sounds good. Yep, yep. +- **21:54:46 · Tomasz Patrzykat:** Okay, thank you. +- **21:54:47 · Alex Martemyanov:** And waiting for a signal from Konya. Okay, thank you. diff --git a/work/zoom-transcripts/index.json b/work/zoom-transcripts/index.json old mode 100755 new mode 100644 index 2750aba1..c64e6616 --- a/work/zoom-transcripts/index.json +++ b/work/zoom-transcripts/index.json @@ -16,6 +16,46 @@ "folder": "2026-09-29 Dominik Kapusta's Personal Meeting Room 2026-09-29 15 01(GMT+6 00) R5c_MKJNQ9etRHXe5EwOCA", "sha256": "bd020dbb0c287fcd4dabf387518a5d640ceecfcc2740eaf86074200f974430da", "cues": 131 + }, + "pEKfS6rcRlWzQyGKBbqqFw": { + "title": "O-E 2026 2026-10-06 21:55(GMT+6:00)", + "meeting_date": "2026-10-06", + "source_url": "https://us01mynotes.zoom.us/pEKfS6rcRlWzQyGKBbqqFw", + "folder": "2026-10-06 O-E 2026 2026-10-06 21 55(GMT+6 00) pEKfS6rcRlWzQyGKBbqqFw", + "sha256": "a37c5149122de9e6cee1356e473ba243f8adc84c1c16b3f96348827fc47b66f1", + "cues": 68 + }, + "SrYbgHxMSlWioRrr4PGz2Q": { + "title": "SRE Incidents 2026-10-06 21:21(GMT+6:00)", + "meeting_date": "2026-10-06", + "source_url": "https://us01mynotes.zoom.us/SrYbgHxMSlWioRrr4PGz2Q", + "folder": "2026-10-06 SRE Incidents 2026-10-06 21 21(GMT+6 00) SrYbgHxMSlWioRrr4PGz2Q", + "sha256": "822c6b2a21cffc53cd58f34ce4cabf0d211da91e55e665e92573ac804a410bd9", + "cues": 177 + }, + "gUhtLoqRTfSsTbZsann73A": { + "title": "Jacek Łyp's Zoom Meeting 2026-10-06 20:44(GMT+6:00)", + "meeting_date": "2026-10-06", + "source_url": "https://us01mynotes.zoom.us/gUhtLoqRTfSsTbZsann73A", + "folder": "2026-10-06 Jacek Łyp's Zoom Meeting 2026-10-06 20 44(GMT+6 00) gUhtLoqRTfSsTbZsann73A", + "sha256": "96fadc249f284cacee21a5737d0fd568ba47e5a77ac7b420396ebc2360f59970", + "cues": 305 + }, + "280BehgySpW8LynSS473nQ": { + "title": "Apple Weekly Team Meeting - Zoom ID 2026-10-06 20:01(GMT+6:00)", + "meeting_date": "2026-10-06", + "source_url": "https://us01mynotes.zoom.us/280BehgySpW8LynSS473nQ", + "folder": "2026-10-06 Apple Weekly Team Meeting - Zoom ID 2026-10-06 20 01(GMT+6 00) 280BehgySpW8LynSS473nQ", + "sha256": "d3e615c24875d0a11382f8eda9f0066ec8af06e1dc94633a3e5699f0c3d0849b", + "cues": 151 + }, + "NtgNJ-Y-Qxy5sMGMjngukw": { + "title": "Dominik Kapusta's Personal Meeting Room 2026-10-06 15:12(GMT+6:00)", + "meeting_date": "2026-10-06", + "source_url": "https://us01mynotes.zoom.us/NtgNJ-Y-Qxy5sMGMjngukw", + "folder": "2026-10-06 Dominik Kapusta's Personal Meeting Room 2026-10-06 15 12(GMT+6 00) NtgNJ-Y-Qxy5sMGMjngukw", + "sha256": "212d398d41d23a40877f4336e383295e25293cc7d7e23341950e18eb42781265", + "cues": 294 } } }