Meeting Title: AI Platform - Linear - Slack Automation Work Session Date: 2026-01-28 Meeting participants: Gabriel Lam, Samuel Roberts
WEBVTT
1 00:00:25.990 ⇒ 00:00:28.530 Gabriel Lam: Sorry about that.
2 00:00:32.310 ⇒ 00:00:41.119 Gabriel Lam: I was when it scheduled, and then it opened my personal email, I was like, that’s the wrong email.
3 00:00:41.980 ⇒ 00:00:46.610 Gabriel Lam: And then I realized, Sometimes it just bugs. And so I just sent two links.
4 00:00:46.610 ⇒ 00:00:48.249 Samuel Roberts: Oh, is this me? I don’t know.
5 00:00:48.810 ⇒ 00:00:49.550 Gabriel Lam: Hello?
6 00:00:51.660 ⇒ 00:00:53.139 Samuel Roberts: Probably me, yep.
7 00:00:59.220 ⇒ 00:01:00.620 Samuel Roberts: Yep, okay.
8 00:01:00.740 ⇒ 00:01:01.219 Samuel Roberts: There we go.
9 00:01:01.220 ⇒ 00:01:02.350 Gabriel Lam: Alright.
10 00:01:03.310 ⇒ 00:01:07.230 Samuel Roberts: I need… I need to figure this out. I need… I need to figure this out. It’s…
11 00:01:07.890 ⇒ 00:01:12.790 Samuel Roberts: I forgot ones, but I had plugged them into charge, and that reset them, and so then it repaired to my phone, and…
12 00:01:13.050 ⇒ 00:01:14.210 Gabriel Lam: Oh, man.
13 00:01:14.380 ⇒ 00:01:20.950 Samuel Roberts: I need a better setup. It’s so many ways… it’s funny, because at least this uses the mic properly most of the time.
14 00:01:21.430 ⇒ 00:01:27.309 Samuel Roberts: FaceTime just half the time doesn’t use it when I’m trying to, like, call my parents, and it’s so annoying.
15 00:01:27.920 ⇒ 00:01:34.560 Gabriel Lam: I know, I’ve come to terms by having… A crappier setup for…
16 00:01:35.290 ⇒ 00:01:41.699 Gabriel Lam: My computer, and then just not blinking my earphones to my computer at all.
17 00:01:42.140 ⇒ 00:01:53.239 Samuel Roberts: Oh, yeah, yeah, no, I… I have two different pairs of headphones, though, that I use sometimes. So, like, I have my Bose, like, over-ear ones when I’m at the desk, and then I’ve got my, like.
18 00:01:53.340 ⇒ 00:01:56.760 Samuel Roberts: What are they called? Bone conduction…
19 00:01:56.760 ⇒ 00:01:59.759 Gabriel Lam: Oh, yeah, yeah, yeah. I’ve been looking at the shocks, actually.
20 00:01:59.760 ⇒ 00:02:06.999 Samuel Roberts: They’re great. I use them all around the house, especially with the baby now. Like, I like being able to have something playing, but also not just…
21 00:02:07.400 ⇒ 00:02:08.410 Gabriel Lam: Not to zone you out.
22 00:02:08.419 ⇒ 00:02:14.469 Samuel Roberts: Yeah. And they’re great for running and everything, too. That’s why I originally got them in London. Okay.
23 00:02:14.470 ⇒ 00:02:15.960 Gabriel Lam: I’ll look into them for sure.
24 00:02:16.110 ⇒ 00:02:18.100 Samuel Roberts: Yeah, they’re, they’re great.
25 00:02:18.550 ⇒ 00:02:25.500 Samuel Roberts: You know, it… they… they come with, like, earplugs and stuff, too, so you could, like, theoretically, like, use them normally, and just, like… not normally, but…
26 00:02:25.870 ⇒ 00:02:28.920 Samuel Roberts: They’re… they don’t get quite as loud, if you imagine, but…
27 00:02:29.600 ⇒ 00:02:30.240 Gabriel Lam: Yeah.
28 00:02:30.480 ⇒ 00:02:32.220 Samuel Roberts: Still, I love them, so…
29 00:02:32.670 ⇒ 00:02:33.490 Gabriel Lam: Okay.
30 00:02:33.880 ⇒ 00:02:35.520 Samuel Roberts: Anyway, I,
31 00:02:36.020 ⇒ 00:02:47.679 Samuel Roberts: let cursor just run, and I’m gonna see what happens here. Yeah. It gave me a… I basically had to do it, like, fully in isolation. So, it just recreated everything.
32 00:02:47.830 ⇒ 00:02:52.680 Samuel Roberts: It gave me… I asked it for a script so that I can run it and just see what the outputs to linear would have been.
33 00:02:53.610 ⇒ 00:02:53.940 Gabriel Lam: Yep.
34 00:02:56.490 ⇒ 00:03:01.940 Samuel Roberts: But I haven’t done it yet, it just finished, so… Do you have a meeting you were testing against, or anything like that?
35 00:03:02.850 ⇒ 00:03:06.740 Gabriel Lam: I don’t have a meeting I was testing against.
36 00:03:07.140 ⇒ 00:03:15.769 Gabriel Lam: The main issue with testing with meetings is the sort of team match. If there isn’t a default sort of fallback.
37 00:03:16.420 ⇒ 00:03:24.949 Gabriel Lam: Right. It, like, just kind of bugs out, because I think what it has been doing is it looks at the participants, and then it tries to match.
38 00:03:25.430 ⇒ 00:03:25.860 Samuel Roberts: and TV.
39 00:03:25.860 ⇒ 00:03:29.640 Gabriel Lam: between participants, but if it’s just one participant, if it’s just me, like.
40 00:03:29.900 ⇒ 00:03:36.000 Gabriel Lam: rambling for, like, 2 minutes, just to put something… get something ingested, then it’s like, I don’t know what to do with it.
41 00:03:36.600 ⇒ 00:03:38.980 Samuel Roberts: Yeah, you’re absolutely right. That is a…
42 00:03:39.380 ⇒ 00:03:42.589 Samuel Roberts: law in the system in general.
43 00:03:43.190 ⇒ 00:03:49.130 Samuel Roberts: Alright, well, let me… I have a meeting here from the ABC working session earlier, let me see what it does with that.
44 00:03:49.770 ⇒ 00:03:50.980 Samuel Roberts: So.
45 00:03:52.680 ⇒ 00:03:55.980 Gabriel Lam: But it might be a sort of, like, the way that I’ve been…
46 00:03:57.260 ⇒ 00:04:00.979 Gabriel Lam: Thinking of it as, like, upon ingestion, the only…
47 00:04:01.260 ⇒ 00:04:05.160 Gabriel Lam: Way to test it is to put a new meeting into ingestion, as opposed to, like.
48 00:04:05.160 ⇒ 00:04:05.800 Samuel Roberts: Right.
49 00:04:05.800 ⇒ 00:04:08.459 Gabriel Lam: Running an old meeting that exists.
50 00:04:10.870 ⇒ 00:04:12.160 Gabriel Lam: As an alternative.
51 00:04:15.730 ⇒ 00:04:23.630 Samuel Roberts: Oh, hold on the wrong directory. Let me run this real quick, and then I’ll share if it… Yeah. We’ll see which way it goes, but I gotta get in the right directory…
52 00:04:27.690 ⇒ 00:04:31.830 Samuel Roberts: I am just getting fried already, and it’s not even the end of the day Wednesday.
53 00:04:31.830 ⇒ 00:04:32.680 Gabriel Lam: I feel you.
54 00:04:32.680 ⇒ 00:04:34.009 Samuel Roberts: See, we’re full, like…
55 00:04:34.690 ⇒ 00:04:40.339 Samuel Roberts: I’m pretty good now at remembering where I’ve got things in my massive, like, Brainforge AI folder system.
56 00:04:40.540 ⇒ 00:04:45.950 Samuel Roberts: But sometimes I’m just like, what’s the… where am I trying to go here? And this one is Brainforge Platform, right?
57 00:04:47.010 ⇒ 00:04:47.650 Gabriel Lam: Oh, yeah.
58 00:04:48.950 ⇒ 00:04:53.039 Samuel Roberts: And of course, both platform and playbook begin with PLA, so it’s funny.
59 00:04:53.040 ⇒ 00:04:59.840 Gabriel Lam: Yeah, I begin to recognize the desire for a monorepo, except…
60 00:05:00.790 ⇒ 00:05:05.630 Gabriel Lam: I also understand why the platform isn’t its own separate refo.
61 00:05:06.640 ⇒ 00:05:11.159 Samuel Roberts: Yeah, I mean, yeah, I think… the way…
62 00:05:12.640 ⇒ 00:05:17.150 Samuel Roberts: I think we can put other things in the platform, other apps we wanna… we wanna push out and stuff.
63 00:05:18.580 ⇒ 00:05:20.480 Samuel Roberts: But I… yeah, all this other stuff…
64 00:05:21.130 ⇒ 00:05:25.970 Samuel Roberts: I feel like it would get… I actually just keep everything open, so I just open my massive Brainforge folder.
65 00:05:26.420 ⇒ 00:05:34.680 Samuel Roberts: And then everything is in cursor. The problem with that, as I’m running into, is that, one, managing Git in the UI is a little annoying when there’s…
66 00:05:35.500 ⇒ 00:05:43.360 Samuel Roberts: a ton of different repos in the folder. It does handle it pretty well, but you can’t run multiple models at once.
67 00:05:44.190 ⇒ 00:05:48.199 Samuel Roberts: I think that’s what it is. Multiple models, am I doing that right? Yeah.
68 00:05:49.440 ⇒ 00:05:52.669 Samuel Roberts: So there’s… I don’t know if you’ve used that in cursor at all, but…
69 00:05:53.160 ⇒ 00:05:59.720 Samuel Roberts: You can, like, give it a task and say, run this against… Opus and GPT-5.
70 00:06:00.170 ⇒ 00:06:01.060 Gabriel Lam: Oh…
71 00:06:01.300 ⇒ 00:06:06.270 Samuel Roberts: But the only… the way that works is by using Git, work trees?
72 00:06:06.820 ⇒ 00:06:14.330 Samuel Roberts: Which is a feature that Git has that I don’t fully understand, because I’ve never really utilized it, but I guess it, like, lets you just have several things checked out at once.
73 00:06:14.670 ⇒ 00:06:17.939 Gabriel Lam: I also know Cursor came out with sub-agents not too long ago.
74 00:06:17.940 ⇒ 00:06:23.210 Samuel Roberts: I saw that, I saw that update, yeah, sub-agents, and they updated the CLI as well, so you can use it, like, spot code.
75 00:06:25.450 ⇒ 00:06:31.240 Samuel Roberts: I gotta dig into a lot of that, though. I haven’t needed to go that deep yet, but… It’s…
76 00:06:31.240 ⇒ 00:06:33.319 Gabriel Lam: It’s a little hard to keep up, I feel.
77 00:06:33.320 ⇒ 00:06:36.369 Samuel Roberts: It… honestly, it really is, like…
78 00:06:37.610 ⇒ 00:06:40.700 Samuel Roberts: just in general, everything’s so… and I feel…
79 00:06:41.050 ⇒ 00:06:43.790 Samuel Roberts: it’s a little bit of the Wild West right now.
80 00:06:44.520 ⇒ 00:06:52.910 Samuel Roberts: And it… it will settle. It has to settle at some point. Like, I feel like cursor and Claude Code have kind of settled on those, but for a while, there was so many…
81 00:06:53.060 ⇒ 00:06:55.700 Samuel Roberts: And there still are so many, and people are bouncing around.
82 00:06:55.700 ⇒ 00:06:56.410 Gabriel Lam: Oh, yeah.
83 00:06:56.720 ⇒ 00:06:57.579 Samuel Roberts: I just, like…
84 00:06:57.960 ⇒ 00:07:06.789 Samuel Roberts: I want the tool, I want the tool that’s the right tool. You know, like, VS Code was the right editor for a long time, and there were plenty of others, but that’s what it was, and so…
85 00:07:06.980 ⇒ 00:07:10.620 Samuel Roberts: It was nice that everyone was using the same thing, and it was easy to share stuff, and…
86 00:07:11.080 ⇒ 00:07:13.449 Samuel Roberts: now with the AI, everything is, like…
87 00:07:13.650 ⇒ 00:07:23.799 Samuel Roberts: you know, I remember seeing a talk by Sam Altman a while back, where he likened the models to, like, the transistor, and how at some point, it’ll be a commodity.
88 00:07:23.940 ⇒ 00:07:28.710 Samuel Roberts: It’ll just be AI everywhere, and it doesn’t matter what models you’re running against.
89 00:07:29.230 ⇒ 00:07:33.669 Samuel Roberts: You know, you don’t know what kind of transistors are in your cell phone. You don’t really care what brand they are.
90 00:07:34.200 ⇒ 00:07:35.290 Samuel Roberts: They just work.
91 00:07:35.890 ⇒ 00:07:39.929 Samuel Roberts: But we’re not there yet, and it seems like it’s gonna be a messy path to get there, is what I’m worried about.
92 00:07:39.930 ⇒ 00:07:40.420 Gabriel Lam: Yeah.
93 00:07:40.420 ⇒ 00:07:41.010 Samuel Roberts: huh?
94 00:07:42.430 ⇒ 00:07:43.999 Samuel Roberts: See if this runs right.
95 00:07:45.230 ⇒ 00:07:52.860 Samuel Roberts: It did not. I’m missing… Zoom’s superbase Environment Variables? No, you’re there.
96 00:07:54.000 ⇒ 00:07:55.349 Samuel Roberts: Oh, man, okay.
97 00:08:01.050 ⇒ 00:08:03.880 Samuel Roberts: Why is that not… Oh, I know what I meant.
98 00:08:04.070 ⇒ 00:08:07.930 Samuel Roberts: So… One sec.
99 00:08:14.350 ⇒ 00:08:19.070 Gabriel Lam: Yeah, I think quick, just read through of the plan.
100 00:08:19.560 ⇒ 00:08:20.080 Samuel Roberts: Yeah.
101 00:08:20.080 ⇒ 00:08:29.409 Gabriel Lam: I think I… didn’t see a updater agent, and so I was like, oh… Is that something…
102 00:08:29.790 ⇒ 00:08:32.460 Gabriel Lam: That, like, it just didn’t capture…
103 00:08:32.730 ⇒ 00:08:37.600 Gabriel Lam: And the other thing I was thinking of was, like, there’s…
104 00:08:37.880 ⇒ 00:08:47.660 Gabriel Lam: I think what has existed in the sort of N8N workflow was, like, the client hubs, and… than bringing…
105 00:08:49.000 ⇒ 00:08:58.460 Gabriel Lam: Like, if a ticket was… attached to…
106 00:08:59.200 ⇒ 00:09:03.589 Gabriel Lam: A team that was a client team, then it would retrieve
107 00:09:04.570 ⇒ 00:09:07.269 Gabriel Lam: But at the same time, I’m also feeling like…
108 00:09:07.930 ⇒ 00:09:09.910 Gabriel Lam: You’re at a point in which
109 00:09:10.220 ⇒ 00:09:13.670 Gabriel Lam: Teams are big enough, or there’s enough context where
110 00:09:15.070 ⇒ 00:09:21.070 Gabriel Lam: it’s not really just client hubs, if that makes sense. I think the groomer sort of exists at a state where
111 00:09:21.870 ⇒ 00:09:26.449 Gabriel Lam: It still believes that only some tickets deserve to be groomed.
112 00:09:27.720 ⇒ 00:09:37.780 Gabriel Lam: And maybe my question is… Is that still the case? Or does the groomer agent sort of automatically… like…
113 00:09:37.930 ⇒ 00:09:41.670 Gabriel Lam: Part… is that not automatically part of the generator?
114 00:09:42.500 ⇒ 00:09:44.670 Samuel Roberts: I think it is part of the generator, as it is right now.
115 00:09:44.900 ⇒ 00:09:49.120 Samuel Roberts: What I saw here was that there were some options for that.
116 00:09:49.450 ⇒ 00:09:51.160 Samuel Roberts: Oh, where was I?
117 00:09:52.530 ⇒ 00:09:55.769 Samuel Roberts: And it ran this, you could kind of pass in…
118 00:09:56.060 ⇒ 00:09:59.920 Samuel Roberts: Options, like, if you want to skip the groomer, Let me share my support.
119 00:10:03.340 ⇒ 00:10:04.600 Samuel Roberts: Excuse me.
120 00:10:07.400 ⇒ 00:10:16.800 Gabriel Lam: I do also feel like maybe it’ll be rougher at the start, but… Depending on how tickets are… Maid?
121 00:10:17.950 ⇒ 00:10:30.490 Gabriel Lam: If updates are just comments, then is it as necessary that there is RAG to that same… Level?
122 00:10:30.490 ⇒ 00:10:32.639 Samuel Roberts: That’s a really good point.
123 00:10:33.680 ⇒ 00:10:38.959 Gabriel Lam: I guess I’m also just trying to minimize the, like… Token usage and…
124 00:10:39.520 ⇒ 00:10:40.110 Samuel Roberts: Yeah.
125 00:10:40.110 ⇒ 00:10:45.999 Gabriel Lam: have to do. I don’t want to just say, like, oh, we’re gonna put RAG on everything just because we can, and I’m like, well, we could, but…
126 00:10:46.860 ⇒ 00:10:54.389 Samuel Roberts: The thing with the rag, I think, was it was saying it might do that if there are lots of tickets, like, too many tickets to pull in.
127 00:10:54.390 ⇒ 00:10:55.310 Gabriel Lam: Hmm…
128 00:10:57.530 ⇒ 00:11:03.060 Samuel Roberts: I think in the chat, I don’t know if that ended up in the plan, I don’t see it, but it mentioned
129 00:11:06.760 ⇒ 00:11:11.390 Samuel Roberts: It mentioned, like, if you have more than 50 tickets, and you don’t want to just pull them all into context.
130 00:11:12.430 ⇒ 00:11:14.139 Samuel Roberts: then the rag might be important.
131 00:11:17.140 ⇒ 00:11:20.349 Samuel Roberts: Otherwise, like, we can just pull it into context, probably.
132 00:11:26.040 ⇒ 00:11:30.330 Samuel Roberts: Yeah… Okay.
133 00:11:30.580 ⇒ 00:11:32.179 Samuel Roberts: Sorry, I was just reading what I…
134 00:11:32.180 ⇒ 00:11:36.879 Gabriel Lam: You’re good. So this is… this is skipping the linear generated tickets.
135 00:11:36.990 ⇒ 00:11:41.629 Gabriel Lam: a ticket generation table completely, which I think… Yeah. …may helpful, yeah.
136 00:11:41.630 ⇒ 00:11:43.939 Samuel Roberts: I think, yeah, for now, definitely. We can always, like.
137 00:11:44.470 ⇒ 00:11:55.740 Samuel Roberts: Basically, I was just like, let’s… I had it make a whole plan that was kind of retrofitting what we had, and I ran with that for a little while. I actually tried to share the…
138 00:11:56.870 ⇒ 00:12:00.680 Samuel Roberts: transcript, and there’s a way to share transcripts, not just export them, I guess?
139 00:12:00.840 ⇒ 00:12:03.490 Samuel Roberts: But we got to enable it on linear, and I was…
140 00:12:04.750 ⇒ 00:12:06.940 Samuel Roberts: Oh, I could probably do that, but I don’t know.
141 00:12:07.700 ⇒ 00:12:12.220 Samuel Roberts: Where that is, but, back in this chat.
142 00:12:14.990 ⇒ 00:12:18.389 Samuel Roberts: Yeah, I pointed to the linear MCP and was like, is this helpful?
143 00:12:21.800 ⇒ 00:12:23.210 Samuel Roberts: Somewhere in here…
144 00:12:24.120 ⇒ 00:12:38.180 Samuel Roberts: Yeah, does it make sense? Yeah, it’s pretty good. It’s like, you can do some other things, and I was like, okay, what else could we do? And eventually, I was just like, forget everything that already exists, you know what I want, let’s just start over. And that’s where I got this greenfield design, which…
145 00:12:38.530 ⇒ 00:12:41.659 Samuel Roberts: From what I… You can’t see this, hold on, I gotta share my screen down.
146 00:12:47.470 ⇒ 00:12:49.040 Samuel Roberts: I can’t just train and stop.
147 00:12:51.160 ⇒ 00:12:53.789 Samuel Roberts: So this is what it spit out.
148 00:12:54.940 ⇒ 00:12:58.799 Samuel Roberts: It did not update any existing linear issues.
149 00:13:01.530 ⇒ 00:13:05.850 Samuel Roberts: Which is not… a great sign. It also took a minute.
150 00:13:09.610 ⇒ 00:13:14.230 Samuel Roberts: But… This might have just been a bad example of a meeting.
151 00:13:16.000 ⇒ 00:13:19.099 Samuel Roberts: Maybe I’ll pull the AI meeting from this morning.
152 00:13:21.940 ⇒ 00:13:25.789 Samuel Roberts: At least I know what the context there is for testing. Yeah, I just pulled this one here.
153 00:13:25.980 ⇒ 00:13:30.619 Samuel Roberts: Which… all these tickets look, you know, decent. This is exactly what we discussed.
154 00:13:31.490 ⇒ 00:13:38.679 Samuel Roberts: But some of these things didn’t match, so I’m wondering if it’s either not… Doing this right? Or…
155 00:13:39.880 ⇒ 00:13:43.249 Samuel Roberts: It was just a bad example. So let’s try another one, and
156 00:13:58.940 ⇒ 00:14:01.200 Samuel Roberts: Oh, there it is, okay, I was like, wait, what?
157 00:14:02.740 ⇒ 00:14:07.849 Samuel Roberts: This is the ID… and so the way it’s working right now is I can just call this script…
158 00:14:08.370 ⇒ 00:14:12.559 Samuel Roberts: I’m passing me an D… And then it runs…
159 00:14:14.210 ⇒ 00:14:21.270 Samuel Roberts: finds who was there, it’s the same one. That’s not… no, Amber was there, it was all those names. I… did I misspace? I don’t know.
160 00:14:25.410 ⇒ 00:14:27.950 Samuel Roberts: Why is it only those four of us? That’s not good.
161 00:14:40.130 ⇒ 00:14:42.370 Samuel Roberts: Let’s see where that’s being… Okay.
162 00:14:43.510 ⇒ 00:14:45.730 Samuel Roberts: Sorry, this has just become me just working, so…
163 00:14:45.730 ⇒ 00:14:51.490 Gabriel Lam: You’re good. I think this is also helpful for me to just be like, hey, I noticed something, is that something we should…
164 00:14:51.840 ⇒ 00:14:54.809 Samuel Roberts: Yeah, yeah, no, no, no, this is… this is good, you’re right.
165 00:14:55.160 ⇒ 00:14:56.240 Samuel Roberts: I’m logging.
166 00:15:04.600 ⇒ 00:15:06.620 Samuel Roberts: Yeah, so I did the same thing here.
167 00:15:08.190 ⇒ 00:15:11.980 Samuel Roberts: Just created. No client found with team ID.
168 00:15:12.600 ⇒ 00:15:15.710 Samuel Roberts: Plus, I didn’t find everyone that was in that meeting this morning.
169 00:15:16.580 ⇒ 00:15:17.940 Samuel Roberts: That’s not good.
170 00:15:20.460 ⇒ 00:15:24.630 Samuel Roberts: What else was here? Yeah, Pranav… You…
171 00:15:24.630 ⇒ 00:15:25.130 Gabriel Lam: Okay.
172 00:15:25.130 ⇒ 00:15:26.349 Samuel Roberts: Clarence, we’re not…
173 00:15:33.790 ⇒ 00:15:40.190 Samuel Roberts: Okay, well, either way, it’s not updating, because there are definitely tickets that should have been updated there.
174 00:15:48.660 ⇒ 00:15:53.720 Samuel Roberts: Okay, so this is not good. Maybe I shouldn’t just try to one-shot it like this, but that’s okay.
175 00:15:57.270 ⇒ 00:15:58.710 Samuel Roberts: Maybe I do need to take a…
176 00:15:59.090 ⇒ 00:16:09.319 Samuel Roberts: a broader, higher-up view of it, but I really thought it was doing what I wanted. So, let’s see. Process main, how’s it doing it? Is it run linear ticket pipeline? That’s the whole input, isn’t it? Okay.
177 00:16:09.870 ⇒ 00:16:11.530 Samuel Roberts: Let’s just walk through this.
178 00:16:14.290 ⇒ 00:16:15.849 Samuel Roberts: Mass users.
179 00:16:17.190 ⇒ 00:16:22.000 Samuel Roberts: Where are those coming from? CTX? Wait… Load contacts…
180 00:16:25.110 ⇒ 00:16:26.710 Samuel Roberts: Oh, okay.
181 00:16:28.070 ⇒ 00:16:31.620 Samuel Roberts: It writes too much code, man. I can’t keep it all on straight.
182 00:16:37.920 ⇒ 00:16:38.700 Samuel Roberts: Yeah.
183 00:16:41.930 ⇒ 00:16:44.140 Samuel Roberts: Ignore emails, that’s funny.
184 00:16:44.580 ⇒ 00:16:46.680 Samuel Roberts: Is this already something we have?
185 00:16:50.880 ⇒ 00:16:58.110 Gabriel Lam: I think that… I don’t know if that was a relic from when Utam would be called multiple times, because his name was on multiple emails.
186 00:16:58.390 ⇒ 00:17:01.629 Samuel Roberts: Yeah, I think that is, because that’s… yeah, that’s probably exactly what it is.
187 00:17:02.410 ⇒ 00:17:06.199 Samuel Roberts: But I’m trying to think, filtered users, linear users…
188 00:17:18.079 ⇒ 00:17:19.930 Samuel Roberts: Does that sound me or you?
189 00:17:20.940 ⇒ 00:17:21.400 Gabriel Lam: Oh, I mean…
190 00:17:21.400 ⇒ 00:17:21.839 Samuel Roberts: Are you hearing that?
191 00:17:21.849 ⇒ 00:17:24.519 Gabriel Lam: I mean, my… my cough is…
192 00:17:24.520 ⇒ 00:17:28.220 Samuel Roberts: No, no, it was… It was like a… boop-boop, boop-boop.
193 00:17:32.450 ⇒ 00:17:33.970 Gabriel Lam: That is not me.
194 00:17:34.440 ⇒ 00:17:36.409 Samuel Roberts: Do you hear that, or is it just me?
195 00:17:37.260 ⇒ 00:17:41.059 Gabriel Lam: Well, my Slack is going a little haywire right now, so…
196 00:17:41.270 ⇒ 00:17:48.220 Samuel Roberts: I… I’m also getting intermittent Slack notification noises. Oh, okay, maybe that’s what I’m hearing then, I’m just losing it.
197 00:17:49.410 ⇒ 00:17:53.059 Samuel Roberts: Builder users, and then… okay, let’s just do this real quick.
198 00:17:56.970 ⇒ 00:18:02.130 Samuel Roberts: Oh, is that your Slack sound? Is that what I’m hearing? Okay. Is your slack sound not the regular knock brush one?
199 00:18:04.010 ⇒ 00:18:07.509 Gabriel Lam: What’s the… okay, I… I don’t know of it.
200 00:18:07.510 ⇒ 00:18:08.300 Samuel Roberts: Yeah, it doesn’t matter.
201 00:18:09.930 ⇒ 00:18:12.350 Samuel Roberts: Not even, not even important, I don’t know why, I’m like…
202 00:18:12.750 ⇒ 00:18:14.430 Samuel Roberts: Alright, let’s just see what happens here.
203 00:18:17.800 ⇒ 00:18:21.630 Gabriel Lam: I also… that Azure embedding base URL
204 00:18:21.890 ⇒ 00:18:27.050 Gabriel Lam: Yeah. I have no… I believe this was… like…
205 00:18:28.060 ⇒ 00:18:35.059 Gabriel Lam: Something that happened during the master migration that was just, like, never implemented.
206 00:18:40.310 ⇒ 00:18:41.280 Samuel Roberts: Sure.
207 00:18:41.750 ⇒ 00:18:43.040 Samuel Roberts: It’s creepy. Yeah.
208 00:18:45.220 ⇒ 00:18:57.620 Samuel Roberts: I see a bunch of ABC stuff, I don’t see… Azure embedding, Azure Model… Client vector tools…
209 00:18:58.740 ⇒ 00:19:01.240 Samuel Roberts: Generate embeds for query for Zoom.
210 00:19:01.930 ⇒ 00:19:03.669 Samuel Roberts: Honestly, I don’t know.
211 00:19:04.840 ⇒ 00:19:09.819 Samuel Roberts: Doesn’t matter right now. Let’s, what timed out here?
212 00:19:12.310 ⇒ 00:19:13.240 Samuel Roberts: 41…
213 00:19:26.730 ⇒ 00:19:29.899 Samuel Roberts: Oh, the linear API just… didn’t respond. Okay, make me aware.
214 00:19:33.520 ⇒ 00:19:34.650 Samuel Roberts: Cool, okay.
215 00:19:34.860 ⇒ 00:19:39.599 Samuel Roberts: So these are all the user… alright, good, so let’s see real quick here.
216 00:19:40.720 ⇒ 00:19:44.665 Samuel Roberts: connection… Oh…
217 00:19:51.930 ⇒ 00:19:54.480 Samuel Roberts: Oh… Okay.
218 00:19:55.460 ⇒ 00:20:00.120 Samuel Roberts: So there are people that have names as their emails, or emails as their names.
219 00:20:01.520 ⇒ 00:20:04.980 Gabriel Lam: But I think that’s… external.
220 00:20:05.920 ⇒ 00:20:08.030 Samuel Roberts: This is coming from linear, yeah.
221 00:20:10.100 ⇒ 00:20:11.770 Samuel Roberts: But the issue here is, like.
222 00:20:13.210 ⇒ 00:20:16.359 Samuel Roberts: Clarence was in this meeting, and it doesn’t show him as a participant.
223 00:20:18.310 ⇒ 00:20:19.889 Samuel Roberts: Trying to match against.
224 00:20:27.040 ⇒ 00:20:27.730 Samuel Roberts: Okay.
225 00:20:29.950 ⇒ 00:20:30.830 Samuel Roberts: You can…
226 00:20:32.460 ⇒ 00:20:41.760 Samuel Roberts: every time I feel like we’re making progress, I’m like, oh, there’s, like, 3 other things that have to happen to make this work, and that would also help other things, and I’m like, it’s such a… such a tangled web of things to improve.
227 00:20:45.660 ⇒ 00:20:46.640 Samuel Roberts: Okay.
228 00:20:50.810 ⇒ 00:20:52.359 Samuel Roberts: Okay, let’s forget about that then.
229 00:20:53.170 ⇒ 00:20:55.349 Samuel Roberts: Cause, like, are you even in here?
230 00:20:59.410 ⇒ 00:21:01.919 Samuel Roberts: Is this only a few? Hold on, what did I even log here?
231 00:21:03.620 ⇒ 00:21:09.340 Samuel Roberts: Filtered users, it’s just linear users ignoring That one email.
232 00:21:11.390 ⇒ 00:21:13.990 Samuel Roberts: Let’s just log linear users. Okay.
233 00:21:14.760 ⇒ 00:21:19.370 Samuel Roberts: You’re seeing how the sausage is made in my debugging world?
234 00:21:19.500 ⇒ 00:21:23.460 Samuel Roberts: Alright, so there’s the Utam, that’s the only other one that looks like it got added to the end there.
235 00:21:25.030 ⇒ 00:21:32.460 Samuel Roberts: I should have been the only one… Filter out animation… Yeah, okay.
236 00:21:33.110 ⇒ 00:21:35.839 Samuel Roberts: I… think that is a problem.
237 00:21:38.020 ⇒ 00:21:40.019 Samuel Roberts: I think it’s a big problem.
238 00:21:41.390 ⇒ 00:21:43.550 Samuel Roberts: Not a problem I want to solve right now.
239 00:21:47.100 ⇒ 00:21:48.339 Samuel Roberts: So maybe it’s not…
240 00:22:06.760 ⇒ 00:22:08.229 Samuel Roberts: Alright, let’s real quick and seen.
241 00:22:16.830 ⇒ 00:22:22.720 Samuel Roberts: That does match users, then it should do the teams, and then it should… Long Island.
242 00:22:31.010 ⇒ 00:22:37.100 Samuel Roberts: This takes a bit of time, too, and there’s not a lot of… Logging going on.
243 00:22:38.670 ⇒ 00:22:41.810 Samuel Roberts: Okay, wood update has nothing, ever. That’s not good.
244 00:22:50.640 ⇒ 00:22:51.480 Samuel Roberts: Alright.
245 00:22:57.480 ⇒ 00:22:59.760 Samuel Roberts: I’m trying to think what the next steps here would be.
246 00:23:02.200 ⇒ 00:23:04.540 Samuel Roberts: Because this isn’t getting anything.
247 00:23:09.390 ⇒ 00:23:15.169 Samuel Roberts: So, planned… Actions, nothing gets updated, let’s just…
248 00:23:19.440 ⇒ 00:23:24.999 Samuel Roberts: Planned is the output of results… Dump result to a file.
249 00:23:35.730 ⇒ 00:23:37.110 Samuel Roberts: Let’s run a second.
250 00:23:37.640 ⇒ 00:23:38.730 Samuel Roberts: Ugh.
251 00:23:38.860 ⇒ 00:23:39.945 Samuel Roberts: Nooooo!
252 00:23:42.510 ⇒ 00:23:44.969 Samuel Roberts: Oh, that’s just me doing something stupid, isn’t it?
253 00:23:44.970 ⇒ 00:23:46.300 Gabriel Lam: That was just an extra.
254 00:23:46.460 ⇒ 00:23:47.040 Samuel Roberts: Yeah.
255 00:23:55.100 ⇒ 00:23:59.150 Samuel Roberts: That failed again. Oh no, I wonder if we’re just abusing the linear API.
256 00:24:00.190 ⇒ 00:24:01.670 Samuel Roberts: Could be my internet, too.
257 00:24:11.420 ⇒ 00:24:12.090 Samuel Roberts: Oops.
258 00:24:14.140 ⇒ 00:24:14.980 Samuel Roberts: Oops.
259 00:24:18.070 ⇒ 00:24:18.780 Samuel Roberts: Alright.
260 00:24:38.980 ⇒ 00:24:46.619 Samuel Roberts: Okay, so created, updated errors, planned actions, create, create, create, create, create, yep, so that’s his right, okay.
261 00:24:47.300 ⇒ 00:24:48.880 Samuel Roberts: So it’s not working. Okay.
262 00:24:49.000 ⇒ 00:24:52.299 Samuel Roberts: I am inclined to say this was a failure.
263 00:24:52.300 ⇒ 00:24:53.380 Gabriel Lam: But.
264 00:24:54.130 ⇒ 00:25:02.630 Samuel Roberts: I think the plan is right. I think the execution was wrong, and I can dig into it a little bit, or we could try it in more… more than just, like, one-shotting it.
265 00:25:04.930 ⇒ 00:25:08.249 Gabriel Lam: I guess, what would either approach look like?
266 00:25:09.770 ⇒ 00:25:10.929 Samuel Roberts: So, I mean, I can…
267 00:25:11.190 ⇒ 00:25:16.620 Samuel Roberts: try to debug this now and see. The other side of it is this is very hard to test, right?
268 00:25:17.320 ⇒ 00:25:25.740 Samuel Roberts: So… what I would also consider doing is maybe… No, maybe not.
269 00:25:30.300 ⇒ 00:25:38.449 Samuel Roberts: we could try to debug this and just see, like, why is this not updating? Like, why is nothing getting put into update? Like, I can dig into that a little bit and see. Maybe we’re just…
270 00:25:38.670 ⇒ 00:25:45.320 Samuel Roberts: Hitting, you know, like, maybe it’s this, these issues, like, what are these… team IDs, these are…
271 00:25:45.320 ⇒ 00:25:47.929 Gabriel Lam: That’s the internal team ID, I believe.
272 00:25:48.010 ⇒ 00:25:49.089 Samuel Roberts: Got it, okay.
273 00:25:49.090 ⇒ 00:25:50.779 Gabriel Lam: Is that… no, that’s Lilo.
274 00:25:53.990 ⇒ 00:25:55.969 Samuel Roberts: And Lilo probably doesn’t have a…
275 00:25:56.310 ⇒ 00:25:57.520 Gabriel Lam: client ID.
276 00:25:57.740 ⇒ 00:25:58.870 Samuel Roberts: Client ID.
277 00:26:01.560 ⇒ 00:26:03.650 Samuel Roberts: Did you just recognize this idea as Lilo?
278 00:26:03.650 ⇒ 00:26:07.160 Gabriel Lam: It’s just cause I was looking down to see if there was anything.
279 00:26:07.330 ⇒ 00:26:09.329 Gabriel Lam: It might be, like, that…
280 00:26:09.330 ⇒ 00:26:12.110 Samuel Roberts: No, it has Leela Social here. Lilo Social’s here.
281 00:26:13.500 ⇒ 00:26:18.640 Samuel Roberts: So why isn’t no client found? Oh, because there’s no client… sorry, okay, never mind. Linear has it…
282 00:26:19.440 ⇒ 00:26:21.060 Samuel Roberts: Yes. The platform does not.
283 00:26:21.060 ⇒ 00:26:21.870 Gabriel Lam: Yes.
284 00:26:23.880 ⇒ 00:26:25.480 Samuel Roberts: Okay, thank you.
285 00:26:25.810 ⇒ 00:26:33.359 Samuel Roberts: I thought you just, like, straight up recognized this from, like, messing around in Linear. I was gonna be so impressed with you. Oh, man.
286 00:26:33.360 ⇒ 00:26:36.300 Gabriel Lam: Should’ve kept quiet.
287 00:26:36.300 ⇒ 00:26:40.059 Samuel Roberts: Yeah, exactly, be like, yeah, no, I just… I have a head for that sort of stuff, you know?
288 00:26:41.140 ⇒ 00:26:43.489 Samuel Roberts: That would have been great. Okay.
289 00:26:43.610 ⇒ 00:26:47.020 Samuel Roberts: Let’s, let’s, let’s dig in a little bit, then. I got a little bit of time left.
290 00:26:47.410 ⇒ 00:26:48.330 Gabriel Lam: I do too, I have.
291 00:26:49.000 ⇒ 00:26:51.110 Gabriel Lam: I’ve got nothing for the next hour, so I was gonna…
292 00:26:51.110 ⇒ 00:26:51.930 Samuel Roberts: Okay.
293 00:26:51.930 ⇒ 00:26:53.199 Gabriel Lam: I was gonna run with it.
294 00:26:53.610 ⇒ 00:26:58.120 Samuel Roberts: Alright, so this is load, and the instructions… I also have the instructions loading from
295 00:26:58.350 ⇒ 00:27:00.640 Samuel Roberts: not from BlankFuse anymore, but…
296 00:27:00.640 ⇒ 00:27:01.310 Gabriel Lam: Okay.
297 00:27:01.940 ⇒ 00:27:04.679 Samuel Roberts: That’s just pulled in. I pulled this down earlier when we were…
298 00:27:04.680 ⇒ 00:27:05.190 Gabriel Lam: Yeah.
299 00:27:05.560 ⇒ 00:27:12.649 Samuel Roberts: Not on the call, but that’s good. Okay, so now let’s go here, build generator prompt, this is a run ticket pipe logger.
300 00:27:13.080 ⇒ 00:27:18.280 Samuel Roberts: Execute ticket actions. If dry run, don’t do it… Okay…
301 00:27:19.660 ⇒ 00:27:23.279 Samuel Roberts: Actions. Run generator generates actions. Okay.
302 00:27:32.370 ⇒ 00:27:36.350 Samuel Roberts: So this is the ticket genre… oh, that’s… is that really why? That’s stupid.
303 00:27:39.520 ⇒ 00:27:40.350 Samuel Roberts: Oops.
304 00:27:44.790 ⇒ 00:27:53.579 Samuel Roberts: Get agent… But where is that? Oh! That’s why! That’s really stupid of you.
305 00:27:53.880 ⇒ 00:27:55.819 Samuel Roberts: Come on, cursor, do better than that.
306 00:27:56.020 ⇒ 00:27:59.750 Samuel Roberts: This is one thing I don’t like about these models, is sometimes…
307 00:28:00.510 ⇒ 00:28:04.599 Samuel Roberts: it’s like, oh, I see you already did this, I’m gonna just use that same code, and I’m like.
308 00:28:04.600 ⇒ 00:28:05.250 Gabriel Lam: Oh, yeah.
309 00:28:05.250 ⇒ 00:28:06.570 Samuel Roberts: was asking for.
310 00:28:06.570 ⇒ 00:28:07.170 Gabriel Lam: Oh, yeah.
311 00:28:07.170 ⇒ 00:28:12.409 Samuel Roberts: Pretty sure that’s what it’s doing here, and that’s why we’re not getting… we just basically wrapped it around, like, wrapped something around it.
312 00:28:12.770 ⇒ 00:28:13.560 Gabriel Lam: Yep.
313 00:28:13.560 ⇒ 00:28:15.359 Samuel Roberts: That’s the same thing, okay.
314 00:28:16.650 ⇒ 00:28:22.440 Samuel Roberts: Alright, that’s… that explains it. Bad work, cursor.
315 00:28:25.210 ⇒ 00:28:35.650 Samuel Roberts: Okay, so maybe if we… Find the… ticket… Generator instructions…
316 00:28:36.770 ⇒ 00:28:47.450 Samuel Roberts: Our run generator was back here… With these instructions, load instructions… Load generator instructions…
317 00:28:48.470 ⇒ 00:28:51.689 Samuel Roberts: Yeah, it’s just… yeah, that’s why. Okay, it just didn’t even change that.
318 00:28:52.320 ⇒ 00:28:54.320 Samuel Roberts: Oh, that’s so frustrating, okay.
319 00:29:01.270 ⇒ 00:29:05.540 Samuel Roberts: Yeah, that’s because it’s just using the exact same generation prompt. So maybe…
320 00:29:08.200 ⇒ 00:29:10.280 Samuel Roberts: This would work if we rewrote this prompt.
321 00:29:12.680 ⇒ 00:29:14.349 Samuel Roberts: So let’s, let’s just ask Cursor.
322 00:29:14.480 ⇒ 00:29:15.479 Samuel Roberts: When in doubt.
323 00:29:19.200 ⇒ 00:29:24.679 Samuel Roberts: Let’s see… It looks like we need to update this prompt in order to handle…
324 00:29:24.850 ⇒ 00:29:27.730 Samuel Roberts: Updating tickets, as well as generating new tickets.
325 00:29:28.080 ⇒ 00:29:28.710 Gabriel Lam: Yup.
326 00:29:30.660 ⇒ 00:29:33.229 Samuel Roberts: Does that seem like a good… what else should I add to this?
327 00:29:38.590 ⇒ 00:29:39.690 Samuel Roberts: Might just do that.
328 00:29:46.270 ⇒ 00:29:47.940 Gabriel Lam: I guess my question would be…
329 00:29:50.750 ⇒ 00:29:56.899 Gabriel Lam: At this point, like, what separates the groomer from the generator, and is the groomer still necessary?
330 00:29:57.510 ⇒ 00:30:01.250 Samuel Roberts: Might not be. I mean, I’m not sure exactly… so the output of this looked like…
331 00:30:01.700 ⇒ 00:30:07.480 Samuel Roberts: Title, team, assignee, description, The groomer, I think, builds this out more.
332 00:30:07.690 ⇒ 00:30:12.629 Gabriel Lam: Yeah. When we had done it previously, the groomer happened
333 00:30:12.800 ⇒ 00:30:18.270 Gabriel Lam: Because client hubs would sort of, like, override what the generator would do.
334 00:30:18.570 ⇒ 00:30:21.770 Gabriel Lam: And so the groomer was basically the generator pump.
335 00:30:23.020 ⇒ 00:30:29.770 Gabriel Lam: But for… But for tickets addressed to client hubs?
336 00:30:30.830 ⇒ 00:30:37.329 Gabriel Lam: So, like, all… all the AI internal tickets would be great, but, like, ABC tickets would…
337 00:30:37.840 ⇒ 00:30:40.549 Gabriel Lam: Be overridden in some way, or…
338 00:30:41.330 ⇒ 00:30:43.009 Samuel Roberts: Oh, interesting. Okay.
339 00:30:44.480 ⇒ 00:30:49.340 Gabriel Lam: And I think the original goal for the groomer was that sort of rag adjustment.
340 00:30:49.530 ⇒ 00:30:50.720 Gabriel Lam: Right.
341 00:30:52.690 ⇒ 00:30:57.859 Gabriel Lam: But last time, I remember talking to Casey, he was like, yeah, that hasn’t really been working.
342 00:30:58.180 ⇒ 00:30:59.380 Samuel Roberts: Yeah, okay.
343 00:30:59.840 ⇒ 00:31:03.529 Samuel Roberts: Alright, well, I’m just gonna… I think right now, it might not be running.
344 00:31:06.410 ⇒ 00:31:07.700 Gabriel Lam: One step at a time.
345 00:31:07.960 ⇒ 00:31:12.249 Samuel Roberts: Yeah, yeah, exactly. I think even if… if I’m looking at this right…
346 00:31:18.430 ⇒ 00:31:22.330 Samuel Roberts: Meeting ID, dry run skip groomer is false. Okay, so maybe it is grooming it, I don’t know.
347 00:31:22.440 ⇒ 00:31:26.030 Samuel Roberts: Actually, we can turn that on. Skip groomer, screw, and just see what it outputs.
348 00:31:26.460 ⇒ 00:31:27.529 Samuel Roberts: While I have it.
349 00:31:29.390 ⇒ 00:31:32.810 Samuel Roberts: Maybe that prob- maybe this isn’t… I don’t know.
350 00:31:34.310 ⇒ 00:31:36.300 Samuel Roberts: Maybe. Hopefully this will be faster, though.
351 00:31:41.280 ⇒ 00:31:46.640 Samuel Roberts: I probably need to take a day and just think about all these different interconnected pieces, like I was saying before.
352 00:31:48.390 ⇒ 00:31:49.949 Samuel Roberts: And really just start.
353 00:31:51.950 ⇒ 00:31:53.550 Samuel Roberts: Going in…
354 00:31:56.960 ⇒ 00:31:58.400 Samuel Roberts: How different is this?
355 00:32:03.020 ⇒ 00:32:04.370 Samuel Roberts: Pretty much the same.
356 00:32:05.140 ⇒ 00:32:05.840 Samuel Roberts: Okay.
357 00:32:07.800 ⇒ 00:32:11.120 Samuel Roberts: Alright, well, anyway, I’m gonna… no, hold on, okay.
358 00:32:19.430 ⇒ 00:32:23.830 Samuel Roberts: Yeah, let’s… let’s run this and see if it updates the prompt to update tanks as well.
359 00:32:24.480 ⇒ 00:32:27.100 Samuel Roberts: See if it even recognizes it made that mistake.
360 00:32:30.040 ⇒ 00:32:34.619 Samuel Roberts: Anyway, what I was just thinking as I was looking at this is that, like, we have people in…
361 00:32:34.860 ⇒ 00:32:36.120 Samuel Roberts: the platform.
362 00:32:36.810 ⇒ 00:32:39.599 Samuel Roberts: And I think we’re syncing to Slack right now?
363 00:32:41.330 ⇒ 00:32:43.620 Samuel Roberts: But we should also probably sync to linear.
364 00:32:46.750 ⇒ 00:32:49.539 Samuel Roberts: And then this whole lookup would be much easier.
365 00:32:50.570 ⇒ 00:32:51.560 Gabriel Lam: Hmm…
366 00:32:53.470 ⇒ 00:32:58.679 Samuel Roberts: And that’s where I was like, every time I think of something, there’s 3 other things that need to change to make this work better.
367 00:33:06.390 ⇒ 00:33:07.740 Samuel Roberts: So that’s gonna update.
368 00:33:09.740 ⇒ 00:33:12.549 Samuel Roberts: Cool. Maybe that’s all it needed to be. We’ll see.
369 00:33:17.170 ⇒ 00:33:24.110 Samuel Roberts: It’s funny, the first time I was using AI to do stuff was, like, right after ChatGPT came out, and I had a,
370 00:33:25.670 ⇒ 00:33:29.680 Samuel Roberts: a, like, plugin that I needed that was written in some other framework.
371 00:33:29.790 ⇒ 00:33:32.880 Samuel Roberts: And it was… it was still JavaScript, but it was just, like, not React.
372 00:33:33.170 ⇒ 00:33:40.670 Samuel Roberts: And I had ChatGPT try to do it, and it did it really great. But I had to sit there waiting for it to generate for so long, because even then it was so slow.
373 00:33:41.270 ⇒ 00:33:44.319 Samuel Roberts: And it felt like I was waiting for code to compile, like, back in the day.
374 00:33:45.680 ⇒ 00:33:49.689 Samuel Roberts: I was like, yep, this is just what I do now, I just tell the machine to do things, and I wait.
375 00:33:51.180 ⇒ 00:33:51.900 Gabriel Lam: Oh, yeah.
376 00:33:51.900 ⇒ 00:33:56.550 Samuel Roberts: And then everything got faster, and then models got bigger, and then, you know, wait, now it’s all this, and…
377 00:33:57.110 ⇒ 00:33:58.190 Samuel Roberts: I’ll just wait.
378 00:34:12.730 ⇒ 00:34:21.080 Samuel Roberts: Well, let’s see how this goes. If this goes okay, maybe I’ll throw it up on a branch and you can play with it. I’ll see if I can share the chat, too.
379 00:34:23.670 ⇒ 00:34:25.019 Gabriel Lam: That’d be great.
380 00:34:25.300 ⇒ 00:34:26.550 Samuel Roberts: And then…
381 00:34:27.239 ⇒ 00:34:33.709 Samuel Roberts: If it doesn’t go great, maybe it doesn’t matter, but still maybe a starting point. I think what would be…
382 00:34:36.239 ⇒ 00:34:39.700 Samuel Roberts: Useful is to really map out all these little pieces that, like.
383 00:34:39.949 ⇒ 00:34:43.730 Samuel Roberts: You know, the users in the platform tied to linear would help this.
384 00:34:44.190 ⇒ 00:34:50.410 Samuel Roberts: help us also send Slack messages, like, I think… I go into super…
385 00:34:53.380 ⇒ 00:34:56.509 Samuel Roberts: Super Base… I think it’s this one.
386 00:34:58.370 ⇒ 00:35:02.620 Samuel Roberts: Table editor… Team. Yeah, here is…
387 00:35:04.030 ⇒ 00:35:05.690 Samuel Roberts: I don’t know if you’ve been in here much.
388 00:35:05.690 ⇒ 00:35:07.260 Gabriel Lam: I have, like…
389 00:35:07.480 ⇒ 00:35:12.750 Samuel Roberts: Okay, so I ended up doing something so that the Slack IDs would pull, which is how we got the…
390 00:35:13.210 ⇒ 00:35:17.070 Samuel Roberts: Notifications to work with the case study assistant?
391 00:35:17.070 ⇒ 00:35:17.630 Gabriel Lam: Yeah.
392 00:35:18.280 ⇒ 00:35:21.560 Samuel Roberts: But there’s no reason… in fact, there might even be…
393 00:35:22.470 ⇒ 00:35:29.679 Samuel Roberts: No, it’s not, okay. There should be a linear ID here. There’s no reason… if we’re gonna really tie all these things together, we need to have that there, too.
394 00:35:29.830 ⇒ 00:35:30.470 Gabriel Lam: Yeah.
395 00:35:31.340 ⇒ 00:35:37.280 Gabriel Lam: And are we currently reading… Is this currently reading from this superbase table?
396 00:35:38.110 ⇒ 00:35:42.770 Samuel Roberts: No, that’s what I’m saying. It’s matching names, it’s doing, like, a lookup.
397 00:35:42.970 ⇒ 00:35:43.590 Gabriel Lam: I see.
398 00:35:43.590 ⇒ 00:35:51.899 Samuel Roberts: like… and that’s why I think it was finding people like me, because my name on linear is different than my email, but some people, their email is their linear name.
399 00:35:51.900 ⇒ 00:35:52.420 Gabriel Lam: Yup.
400 00:35:53.050 ⇒ 00:35:55.640 Samuel Roberts: And so I think if we can maybe fix that.
401 00:35:56.570 ⇒ 00:36:01.330 Samuel Roberts: Which we can probably do pretty easily. I think I even have something, and I could probably… adapt that.
402 00:36:03.220 ⇒ 00:36:06.730 Samuel Roberts: So maybe that’s a thing we need to do, because, like, this Slack thing…
403 00:36:07.180 ⇒ 00:36:12.190 Samuel Roberts: When you first log into the… platform, it basically was like.
404 00:36:12.650 ⇒ 00:36:15.989 Samuel Roberts: Is there a Slack user with this email and stores it here?
405 00:36:18.000 ⇒ 00:36:20.310 Samuel Roberts: So I could probably do that for linear, too.
406 00:36:21.520 ⇒ 00:36:23.560 Samuel Roberts: That might solve a few things.
407 00:36:25.250 ⇒ 00:36:26.839 Samuel Roberts: Anyway, let’s see what happened here.
408 00:36:33.210 ⇒ 00:36:33.930 Samuel Roberts: Right.
409 00:36:37.560 ⇒ 00:36:38.940 Samuel Roberts: It does anything different.
410 00:36:39.500 ⇒ 00:36:41.390 Samuel Roberts: I didn’t even look at what the changes were.
411 00:36:42.740 ⇒ 00:36:45.830 Gabriel Lam: I think we just added a couple extra fields, really.
412 00:36:46.030 ⇒ 00:36:54.730 Samuel Roberts: Okay, yeah, transform the meeting… Actually, I can pull… Create versus update. Okay, cool.
413 00:36:55.710 ⇒ 00:36:57.720 Samuel Roberts: And then for each ticket, action…
414 00:37:04.840 ⇒ 00:37:05.610 Samuel Roberts: Cool.
415 00:37:16.060 ⇒ 00:37:17.629 Samuel Roberts: We got an update.
416 00:37:22.490 ⇒ 00:37:27.120 Samuel Roberts: Update the Gantt chart… Why is Ganttrak in the working session?
417 00:37:28.990 ⇒ 00:37:30.629 Samuel Roberts: Is this a real ticking?
418 00:37:33.560 ⇒ 00:37:35.869 Samuel Roberts: Existing issue ID, let’s go find out.
419 00:37:43.960 ⇒ 00:37:49.129 Samuel Roberts: Alright, if I just click on a ticket, it doesn’t have… so how would I even find that now? That’s not good. Okay.
420 00:37:49.430 ⇒ 00:37:59.279 Samuel Roberts: I need the actual, issue ID, not the… Wait… What is that?
421 00:38:01.340 ⇒ 00:38:03.869 Samuel Roberts: This must be the, like, internal ID, not the…
422 00:38:05.970 ⇒ 00:38:07.929 Samuel Roberts: Oh, wait, we wrote this to a file, didn’t we?
423 00:38:16.820 ⇒ 00:38:20.990 Samuel Roberts: Oh, what was it? It was wrote filed to the city.
424 00:38:25.980 ⇒ 00:38:28.749 Samuel Roberts: Update, title, ID.
425 00:38:29.030 ⇒ 00:38:31.959 Samuel Roberts: Sign the existing… it didn’t… hmm.
426 00:38:37.060 ⇒ 00:38:41.830 Samuel Roberts: Is there a… Oh, because it’s in Team Default.
427 00:38:46.900 ⇒ 00:38:48.690 Samuel Roberts: Okay, so this didn’t work very well.
428 00:39:00.440 ⇒ 00:39:01.150 Samuel Roberts: Okay.
429 00:39:01.660 ⇒ 00:39:05.600 Samuel Roberts: I may have to call it a day here on this.
430 00:39:11.350 ⇒ 00:39:13.169 Samuel Roberts: This is the issue with names like Default.
431 00:39:21.490 ⇒ 00:39:22.170 Samuel Roberts: Okay.
432 00:39:23.900 ⇒ 00:39:27.020 Samuel Roberts: Let’s see if this ticket actually exists, and see if it did something right.
433 00:39:28.320 ⇒ 00:39:30.190 Samuel Roberts: Time C…
434 00:39:35.770 ⇒ 00:39:38.199 Samuel Roberts: I don’t even know if I… yep, there’s default.
435 00:39:39.380 ⇒ 00:39:40.720 Samuel Roberts: What are issues.
436 00:39:43.420 ⇒ 00:39:44.449 Samuel Roberts: That’s all I wanted.
437 00:39:49.600 ⇒ 00:39:53.629 Samuel Roberts: There it is! Revised Gantt chart! Nice! Okay.
438 00:39:54.030 ⇒ 00:39:56.590 Samuel Roberts: So I did something right, that’s a good start.
439 00:39:56.590 ⇒ 00:40:02.590 Gabriel Lam: It was looking at… it was just looking at the wrong… Ticket.
440 00:40:02.870 ⇒ 00:40:06.660 Samuel Roberts: Yeah, well, I’ve had this issue in the past with the name Default.
441 00:40:06.840 ⇒ 00:40:09.619 Samuel Roberts: Like, it doesn’t know to filter that out, which is…
442 00:40:09.620 ⇒ 00:40:10.180 Gabriel Lam: Yeah.
443 00:40:10.920 ⇒ 00:40:15.880 Samuel Roberts: Very annoying. Okay, well, that’s something. That’s progress, I guess.
444 00:40:16.780 ⇒ 00:40:21.000 Samuel Roberts: We need to then figure out a better way to match teams, maybe, than doing the…
445 00:40:22.280 ⇒ 00:40:24.180 Samuel Roberts: Who’s on the team thing?
446 00:40:30.900 ⇒ 00:40:33.800 Samuel Roberts: Yeah, I wonder if there’s a better way to do this.
447 00:40:38.480 ⇒ 00:40:39.390 Samuel Roberts: Yeah, both stop.
448 00:40:39.650 ⇒ 00:40:41.239 Samuel Roberts: I’m a little encouraged by that.
449 00:40:41.960 ⇒ 00:40:48.500 Samuel Roberts: Probably for the wrong… probably not a good thing, but it did something right.
450 00:40:50.630 ⇒ 00:40:53.810 Samuel Roberts: Okay, so that right there, we also have the ticket pipeline…
451 00:40:57.040 ⇒ 00:40:57.920 Samuel Roberts: Generate.
452 00:40:58.840 ⇒ 00:41:01.099 Samuel Roberts: It’s the prompt and the instructions.
453 00:41:02.060 ⇒ 00:41:04.109 Samuel Roberts: The prompt is what got built, right?
454 00:41:06.250 ⇒ 00:41:09.470 Samuel Roberts: Meeting, teams, and scope, that’s what I want to see here.
455 00:41:12.000 ⇒ 00:41:12.969 Samuel Roberts: No, I don’t want…
456 00:41:16.400 ⇒ 00:41:17.300 Samuel Roberts: Teams and scope.
457 00:41:20.130 ⇒ 00:41:21.630 Samuel Roberts: Let’s just log that real quick.
458 00:41:22.350 ⇒ 00:41:23.180 Samuel Roberts: Processing.
459 00:41:29.180 ⇒ 00:41:32.509 Samuel Roberts: I don’t know what’s going on there, but I keep hearing… oh, is that what I’m doing? No.
460 00:41:34.680 ⇒ 00:41:36.759 Samuel Roberts: Yeah, it just put everything in scope.
461 00:41:54.680 ⇒ 00:41:59.230 Samuel Roberts: Yeah, okay, so we’re using that same… Kind of logic here.
462 00:42:01.040 ⇒ 00:42:04.649 Samuel Roberts: Calculate common teams. So it’s the same… that’s the same issue we were having before.
463 00:42:04.820 ⇒ 00:42:05.580 Gabriel Lam: Yeah.
464 00:42:05.970 ⇒ 00:42:07.900 Samuel Roberts: Okay, well, that’s good that it’s at least…
465 00:42:08.420 ⇒ 00:42:12.600 Samuel Roberts: Not the new logic’s fault, maybe, but… Okay, okay.
466 00:42:17.540 ⇒ 00:42:18.820 Samuel Roberts: Things to think about.
467 00:42:19.000 ⇒ 00:42:24.850 Samuel Roberts: We should be adding all the linear IDs to all the users in the platform, and then we don’t have to do a lookup.
468 00:42:26.880 ⇒ 00:42:31.269 Gabriel Lam: And that… should be held in a superbase table.
469 00:42:31.860 ⇒ 00:42:35.670 Samuel Roberts: I think that’s… that’s… yeah, we had a bit of discussion about, like.
470 00:42:35.830 ⇒ 00:42:45.960 Samuel Roberts: the source of truth for, like, employees, team in general. And the idea was, rather than try to keep it all in Google.
471 00:42:46.240 ⇒ 00:42:48.769 Samuel Roberts: It made more sense to do it,
472 00:42:50.150 ⇒ 00:42:56.900 Samuel Roberts: here, because we could add the Slack IDs, and we could fetch this, and we could, you know, do a little bit more here. So this actually.
473 00:42:57.720 ⇒ 00:42:59.950 Gabriel Lam: And how did we update this?
474 00:43:01.080 ⇒ 00:43:05.390 Gabriel Lam: on-off user created right here. I see. So this function…
475 00:43:06.510 ⇒ 00:43:09.950 Samuel Roberts: is something that I wrote that just…
476 00:43:10.510 ⇒ 00:43:14.289 Samuel Roberts: When you sign in, it checks you…
477 00:43:19.700 ⇒ 00:43:21.250 Samuel Roberts: And then…
478 00:43:25.050 ⇒ 00:43:25.410 Samuel Roberts: Custom
479 00:43:27.220 ⇒ 00:43:34.259 Samuel Roberts: Maybe that’s not… on-off user created might be different. Yeah, Sync Slack is the other one. Okay, so this, this is in order to,
480 00:43:35.930 ⇒ 00:43:43.279 Samuel Roberts: Okay, back up a little bit. Superbase is great in a lot of ways. It has authentication, these are all users, right?
481 00:43:43.530 ⇒ 00:43:44.780 Gabriel Lam: Yep. So…
482 00:43:45.090 ⇒ 00:43:53.740 Samuel Roberts: This specifically is on a… table called auth, or a schema of auth, okay?
483 00:43:54.150 ⇒ 00:44:00.190 Samuel Roberts: in order to use this, this is what’s handling all the login, all of the Google sign-in, all the session stuff.
484 00:44:00.940 ⇒ 00:44:04.470 Samuel Roberts: What we tend to edit is the public schema.
485 00:44:06.440 ⇒ 00:44:15.680 Samuel Roberts: Superbase, at the time at least, and it might be better now, didn’t have a good way to be like, a new user’s created, therefore we’ll make a user on your users table in your app.
486 00:44:15.680 ⇒ 00:44:16.370 Gabriel Lam: Yep.
487 00:44:17.050 ⇒ 00:44:19.899 Samuel Roberts: So, that’s where that original function came from.
488 00:44:20.490 ⇒ 00:44:22.859 Samuel Roberts: It was needed so that,
489 00:44:25.820 ⇒ 00:44:31.110 Samuel Roberts: when the user gets created, it creates a user… a teammate in the Teams table, basically.
490 00:44:31.670 ⇒ 00:44:33.889 Samuel Roberts: Then, it does…
491 00:44:38.220 ⇒ 00:44:41.650 Samuel Roberts: This one I don’t.
492 00:44:45.180 ⇒ 00:44:51.429 Samuel Roberts: Dirty user get access token… List all users to team room.
493 00:44:57.700 ⇒ 00:44:59.800 Samuel Roberts: Okay, that one I don’t remember offhand.
494 00:45:00.520 ⇒ 00:45:04.249 Samuel Roberts: Oh, that might be when the directory changes, it syncs back.
495 00:45:05.000 ⇒ 00:45:11.899 Samuel Roberts: So if people get removed… upserts, team rows, marks me emails as inactive. There you go.
496 00:45:12.530 ⇒ 00:45:17.980 Samuel Roberts: Look at that, comments are… Slack… is…
497 00:45:18.430 ⇒ 00:45:22.599 Samuel Roberts: fetch the Slack users, match them up, store them on the ID,
498 00:45:23.050 ⇒ 00:45:28.370 Samuel Roberts: So we basically would make this… either add it to this, or do the same kind of thing for linear.
499 00:45:29.880 ⇒ 00:45:34.470 Samuel Roberts: That would simplify probably a lot of things moving forward as we start doing more linear stuff.
500 00:45:35.160 ⇒ 00:45:35.940 Gabriel Lam: Yo.
501 00:45:35.940 ⇒ 00:45:40.259 Samuel Roberts: So that’s definitely worth… Few hours.
502 00:45:40.900 ⇒ 00:45:46.030 Samuel Roberts: how easy it is to do, is the question, because, like.
503 00:45:46.320 ⇒ 00:45:50.579 Samuel Roberts: Again, Superbase is great, but they use Deno for this.
504 00:45:51.620 ⇒ 00:45:55.769 Samuel Roberts: Which is… It’s not the one that showed it, this one showed it, I think.
505 00:45:58.580 ⇒ 00:46:00.070 Samuel Roberts: Deno Native.
506 00:46:00.500 ⇒ 00:46:02.769 Samuel Roberts: So, I don’t know if you know what Dino is or not.
507 00:46:03.220 ⇒ 00:46:03.719 Gabriel Lam: No, I don’.
508 00:46:04.200 ⇒ 00:46:05.750 Samuel Roberts: Okay, so,
509 00:46:06.440 ⇒ 00:46:16.700 Samuel Roberts: Where to begin? I don’t know, I don’t know… if I assume you’re not too technical, or not technical enough, just correct me and I’ll keep going, but JavaScript is the language.
510 00:46:17.080 ⇒ 00:46:17.960 Gabriel Lam: Yes. Yup.
511 00:46:17.960 ⇒ 00:46:26.090 Samuel Roberts: TypeScript is on top of that, it’s just a superset of that, okay? So when Node.js, which is the runtime for JavaScript.
512 00:46:26.900 ⇒ 00:46:28.130 Samuel Roberts: got created.
513 00:46:28.880 ⇒ 00:46:31.809 Samuel Roberts: Back in, like, 2008, 2009.
514 00:46:32.500 ⇒ 00:46:40.960 Samuel Roberts: the guy who created it, you know, was just kind of playing around and ended up building this thing that became super useful for tons of people. It’s not the most,
515 00:46:43.290 ⇒ 00:46:49.019 Samuel Roberts: what’s the word here? Secure, sometimes? Because when you run a Node app, it has access to everything.
516 00:46:50.300 ⇒ 00:46:54.759 Samuel Roberts: Whereas… so then the guy who did that ended up creating this other runtime called Dino.
517 00:46:55.080 ⇒ 00:47:01.130 Samuel Roberts: which is kind of internet first, you have to give it permissions, but essentially it’s just running JavaScript.
518 00:47:02.170 ⇒ 00:47:08.309 Samuel Roberts: But that means there’s some little nuances, like fetching packages looks different, and things like that.
519 00:47:09.240 ⇒ 00:47:13.729 Samuel Roberts: Cursor can probably handle it, but then deploying it to Supabase is also a problem.
520 00:47:14.220 ⇒ 00:47:15.320 Samuel Roberts: So, let me…
521 00:47:16.210 ⇒ 00:47:21.699 Samuel Roberts: Jump in here real quick. Is there a Super Base folder? There is, and there’s the functions, there they are, perfect.
522 00:47:22.320 ⇒ 00:47:23.130 Samuel Roberts: Okay.
523 00:47:23.810 ⇒ 00:47:29.150 Samuel Roberts: Yeah, let’s make a plan to sync linear IDs to the Teams table.
524 00:47:33.630 ⇒ 00:47:39.949 Samuel Roberts: And then, that will help us with that. The other thing we want to figure out is better matching teams.
525 00:47:42.850 ⇒ 00:47:45.640 Samuel Roberts: Because the current logic is not good, as we found out.
526 00:47:46.220 ⇒ 00:47:46.930 Samuel Roberts: Right.
527 00:47:47.700 ⇒ 00:47:50.590 Gabriel Lam: So, do we think of it as, like, with…
528 00:47:52.240 ⇒ 00:47:56.489 Gabriel Lam: With each person, what are all the teams they are a part of?
529 00:47:58.340 ⇒ 00:47:59.600 Gabriel Lam: or…
530 00:48:00.130 ⇒ 00:48:03.339 Samuel Roberts: I… I don’t know what the best way is.
531 00:48:03.340 ⇒ 00:48:04.729 Gabriel Lam: Calculate comment team…
532 00:48:04.730 ⇒ 00:48:09.099 Samuel Roberts: Let’s see what it does here. User teams are… so it… Pulls all the users in.
533 00:48:10.030 ⇒ 00:48:17.689 Samuel Roberts: It looks at all the teams, find the union of teams… Team map…
534 00:48:19.100 ⇒ 00:48:22.240 Samuel Roberts: Yeah, so it must be if anyone’s on those teams, maybe?
535 00:48:22.920 ⇒ 00:48:23.440 Gabriel Lam: Probably.
536 00:48:23.440 ⇒ 00:48:27.110 Samuel Roberts: It uses union logic, all teams across all users.
537 00:48:28.600 ⇒ 00:48:30.369 Gabriel Lam: Replicate the cold on node.
538 00:48:30.970 ⇒ 00:48:31.970 Samuel Roberts: Logic.
539 00:48:32.730 ⇒ 00:48:35.770 Gabriel Lam: So this is technically supposed… this is technically doing what it…
540 00:48:37.600 ⇒ 00:48:39.730 Gabriel Lam: We’ve wanted to do, but it’s…
541 00:48:45.230 ⇒ 00:48:51.010 Samuel Roberts: Yeah, let’s, union of team objects makes sense.
542 00:48:53.450 ⇒ 00:48:55.349 Samuel Roberts: Is this actually doing it right?
543 00:48:55.470 ⇒ 00:48:56.660 Samuel Roberts: What is coming in?
544 00:48:56.950 ⇒ 00:49:04.860 Samuel Roberts: I don’t know what masked users has on it, but it clearly has… Teams… Okay, let’s see this.
545 00:49:07.650 ⇒ 00:49:17.160 Samuel Roberts: Where was this being called? This was being called back here, yeah, and matched users gets passed in, resolved user has ID, and then teams that they’re on, okay.
546 00:49:17.280 ⇒ 00:49:22.909 Samuel Roberts: Where is that coming from? Resolve users and teams? Is it getting meeting participants?
547 00:49:23.470 ⇒ 00:49:39.330 Samuel Roberts: Participants is just names, though. So that pulls out massed users and teams in scope. So we’re getting meeting participants, participants comes in and it returns matched users. So maxed users is meeting participants to linear users. So it must be whatever linear teams you’re on, yes.
548 00:49:39.330 ⇒ 00:49:39.960 Gabriel Lam: Yep.
549 00:49:40.540 ⇒ 00:49:42.450 Samuel Roberts: Just making sure it was point from linear, not…
550 00:49:42.850 ⇒ 00:49:45.799 Samuel Roberts: something else, but I guess when you’re still in a place that it would have that.
551 00:49:45.930 ⇒ 00:49:49.010 Samuel Roberts: Okay, so then, if that’s the case,
552 00:49:52.330 ⇒ 00:49:56.329 Samuel Roberts: Why were we seeing… All of these, though…
553 00:50:01.510 ⇒ 00:50:04.409 Samuel Roberts: Like, this still is not accurate.
554 00:50:04.880 ⇒ 00:50:09.119 Samuel Roberts: Given… These four people that it matched with, right?
555 00:50:12.750 ⇒ 00:50:15.449 Samuel Roberts: So whatever it is, this logic is not good, I don’t think.
556 00:50:15.910 ⇒ 00:50:16.869 Gabriel Lam: Or is it, like…
557 00:50:17.820 ⇒ 00:50:23.630 Gabriel Lam: I guess, how is it also structuring that? Is it showing all the teams that you’re on, and all the teams that…
558 00:50:23.750 ⇒ 00:50:29.679 Gabriel Lam: Whoever was Nick’s… In that console is on.
559 00:50:30.200 ⇒ 00:50:32.010 Gabriel Lam: I’m also trying to understand what…
560 00:50:32.180 ⇒ 00:50:36.470 Gabriel Lam: What the console is actually, like, the order of what the console is putting out.
561 00:50:36.930 ⇒ 00:50:41.260 Samuel Roberts: This was just, I just logged the entire object of what Teams in Scope reported back.
562 00:50:41.900 ⇒ 00:50:48.160 Gabriel Lam: And is that done in the order of what teams you’re in, and then what teams Casey is in, and then what team… or, like, is that just.
563 00:50:48.160 ⇒ 00:50:51.929 Samuel Roberts: It should have just been whatever got built by this here, so whatever this logic is.
564 00:50:51.930 ⇒ 00:50:52.600 Gabriel Lam: Okay.
565 00:50:53.320 ⇒ 00:50:56.590 Samuel Roberts: That’s what returns from Calculate Common Teams.
566 00:50:56.730 ⇒ 00:50:58.250 Samuel Roberts: Which is what I…
567 00:51:03.160 ⇒ 00:51:05.819 Samuel Roberts: Sorry, I lost my track here, where I was.
568 00:51:06.700 ⇒ 00:51:17.520 Samuel Roberts: Teams in scope came from load context. Load context got teams in Scope from Resolve Users in Teams. Resolve Users in Teams got it from Calculate Common Teams. So let’s hear, let’s,
569 00:51:18.100 ⇒ 00:51:19.220 Samuel Roberts: Let’s just do it here.
570 00:51:19.450 ⇒ 00:51:21.040 Samuel Roberts: Oops.
571 00:51:21.340 ⇒ 00:51:28.810 Samuel Roberts: I want to say console.log match users… In… okay… And then…
572 00:51:35.330 ⇒ 00:51:39.399 Samuel Roberts: Team… Okay, so let’s run that.
573 00:51:39.930 ⇒ 00:51:41.079 Samuel Roberts: Then we’ll quit.
574 00:51:42.710 ⇒ 00:51:48.139 Samuel Roberts: see what that logs, and then that might give us an insight into why some of this has just been bad, maybe from the start then, I don’t know.
575 00:51:55.580 ⇒ 00:52:00.190 Samuel Roberts: Okay, so it said teams, node array, user teams, so then this is a… yeah, okay.
576 00:52:00.900 ⇒ 00:52:09.220 Samuel Roberts: We’re teams in Teams, key… yeah, it’s just every… whatever teams you’re on, every team.
577 00:52:09.220 ⇒ 00:52:09.890 Gabriel Lam: Okay.
578 00:52:10.790 ⇒ 00:52:14.139 Samuel Roberts: It’s not even doing a… union, I don’t think, is it?
579 00:52:18.910 ⇒ 00:52:21.740 Samuel Roberts: If Team Map has the key…
580 00:52:22.450 ⇒ 00:52:24.819 Samuel Roberts: That is team ID and team name.
581 00:52:25.520 ⇒ 00:52:28.959 Samuel Roberts: Like, Magic Spoon, Lilo… no, hold on.
582 00:52:29.630 ⇒ 00:52:32.000 Samuel Roberts: Hold on, let’s forget this, I can’t read that.
583 00:52:33.450 ⇒ 00:52:34.340 Samuel Roberts: Sorry, guy.
584 00:52:37.960 ⇒ 00:52:48.340 Samuel Roberts: So we have me, Mustafa, Casey, Amber, already a problem, that’s fine. Matched users… Gets logged there. Users array…
585 00:52:48.950 ⇒ 00:52:56.560 Samuel Roberts: So yeah, all the teams, so Magic Spoon got logged, Lilo got logged, Insomnia got logged, Default got logged, because it’s just summing what we’re all on.
586 00:52:56.560 ⇒ 00:52:57.070 Gabriel Lam: Yup.
587 00:52:57.070 ⇒ 00:52:58.970 Samuel Roberts: Which is not all that helpful.
588 00:53:00.150 ⇒ 00:53:03.610 Samuel Roberts: So I… Let’s just do this real quick.
589 00:53:03.730 ⇒ 00:53:05.400 Samuel Roberts: First of all, let’s get rid of the law.
590 00:53:06.730 ⇒ 00:53:10.090 Samuel Roberts: And then say, does this function do what the description claims?
591 00:53:11.020 ⇒ 00:53:12.409 Samuel Roberts: Because I don’t think it does.
592 00:53:19.510 ⇒ 00:53:23.860 Samuel Roberts: And then I’m gonna also do that as a question, because I don’t want to change anything yet.
593 00:53:35.770 ⇒ 00:53:39.809 Samuel Roberts: In user teams array, maybe it is, and I’m just misreading this.
594 00:53:41.310 ⇒ 00:53:42.619 Samuel Roberts: Because… why does…
595 00:53:46.310 ⇒ 00:53:48.160 Samuel Roberts: Yeah, MAP20?
596 00:53:52.010 ⇒ 00:53:53.929 Samuel Roberts: Yeah, that didn’t do it well.
597 00:53:55.850 ⇒ 00:53:58.540 Samuel Roberts: Something here is whack, and I don’t know what it is offhand.
598 00:53:59.570 ⇒ 00:54:01.590 Samuel Roberts: I’m reading that as…
599 00:54:02.970 ⇒ 00:54:06.370 Gabriel Lam: Here are all the teams that everyone is a part of.
600 00:54:06.530 ⇒ 00:54:09.740 Samuel Roberts: That’s what I think this one… No, no, sorry, hold on.
601 00:54:09.850 ⇒ 00:54:11.790 Samuel Roberts: This is Teams Array.
602 00:54:12.060 ⇒ 00:54:18.270 Samuel Roberts: Which is gonna give us an array of all of the user And it…
603 00:54:18.450 ⇒ 00:54:23.509 Samuel Roberts: Oh god, this is where I lost it. Okay. It’s an array of arrays. Yeah. Okay.
604 00:54:23.810 ⇒ 00:54:26.239 Samuel Roberts: That’s where I missed… I misread that the first time.
605 00:54:26.670 ⇒ 00:54:32.120 Samuel Roberts: So this is the first person’s team. Yeah. So that, that, that, I see what you’re saying. That one is…
606 00:54:35.360 ⇒ 00:54:37.060 Samuel Roberts: Mmm, me?
607 00:54:37.510 ⇒ 00:54:39.990 Samuel Roberts: Or whatever the order was that it did it in.
608 00:54:39.990 ⇒ 00:54:41.810 Gabriel Lam: Like, I think is U…
609 00:54:41.930 ⇒ 00:54:43.420 Samuel Roberts: It seems to be me, yeah.
610 00:54:44.790 ⇒ 00:54:46.440 Gabriel Lam: And then Mustafa…
611 00:54:47.150 ⇒ 00:54:49.350 Samuel Roberts: Does that match what we have in linear?
612 00:54:51.590 ⇒ 00:54:58.239 Samuel Roberts: But, like, it clearly didn’t union… no, wait, it didn’t… okay, it did union, it didn’t intersect.
613 00:54:58.240 ⇒ 00:54:58.940 Gabriel Lam: Yeah.
614 00:54:59.550 ⇒ 00:55:01.689 Gabriel Lam: Well, it unioned everything.
615 00:55:02.470 ⇒ 00:55:03.530 Samuel Roberts: Which is not helpful.
616 00:55:05.940 ⇒ 00:55:07.640 Samuel Roberts: But that’s not common teams.
617 00:55:08.550 ⇒ 00:55:13.509 Samuel Roberts: So it does say get all teams across all users, that’s exactly what it did, it’s just not… I don’t think that’s what we want, is it?
618 00:55:15.340 ⇒ 00:55:18.250 Gabriel Lam: Well, I think that… Makes sense if…
619 00:55:20.810 ⇒ 00:55:23.130 Samuel Roberts: I’m probably stop this now that we just sorted that out. Thank you, man.
620 00:55:24.580 ⇒ 00:55:28.780 Gabriel Lam: So in this case, if… Hmm.
621 00:55:29.070 ⇒ 00:55:33.800 Gabriel Lam: Part of me feels like it does make sense, because if… We’re talking about a project.
622 00:55:34.580 ⇒ 00:55:35.260 Gabriel Lam: that…
623 00:55:36.810 ⇒ 00:55:39.710 Samuel Roberts: This might have made sense when we did stand-up slightly differently.
624 00:55:41.370 ⇒ 00:55:43.929 Gabriel Lam: Well, I think this was also a time when sign-up was everyone.
625 00:55:43.960 ⇒ 00:55:45.300 Samuel Roberts: That’s what I mean.
626 00:55:46.110 ⇒ 00:55:47.290 Samuel Roberts: Like, I feel…
627 00:55:53.000 ⇒ 00:55:53.900 Samuel Roberts: Yeah, I don’t.
628 00:55:53.900 ⇒ 00:55:59.320 Gabriel Lam: But should that… B… how much of an issue is that, if… if it just gives us.
629 00:55:59.320 ⇒ 00:56:01.279 Samuel Roberts: Well, that’s how we ended up with the default thing.
630 00:56:01.480 ⇒ 00:56:02.549 Gabriel Lam: Oh, I see.
631 00:56:03.010 ⇒ 00:56:09.020 Samuel Roberts: And I think part of that is because default is a bad word to name a company if you’re gonna try to do matching like this.
632 00:56:17.410 ⇒ 00:56:20.679 Samuel Roberts: Okay, well, I gotta go soon.
633 00:56:20.680 ⇒ 00:56:21.810 Gabriel Lam: No worries.
634 00:56:22.520 ⇒ 00:56:30.990 Samuel Roberts: I see a little bit of a path forward here, but it’s hazy. But yeah, I think the linear IDs is one good thing, and then I don’t know if we want to just…
635 00:56:34.470 ⇒ 00:56:35.830 Samuel Roberts: No, I don’t know.
636 00:56:36.260 ⇒ 00:56:40.090 Samuel Roberts: I’m trying to think if there’s a better way to manage the teams and who’s on what.
637 00:56:41.440 ⇒ 00:56:45.640 Samuel Roberts: like… Is there a good way to…
638 00:56:46.390 ⇒ 00:56:48.720 Samuel Roberts: do that on the platform, is that necessary?
639 00:56:48.980 ⇒ 00:56:52.420 Samuel Roberts: But I’m also… Having a hard time thinking straight at this point, so…
640 00:56:54.530 ⇒ 00:57:00.229 Samuel Roberts: That might be something to reflect on a little bit. I’ll let you… I’ll leave you with that thought, I guess. Is there a better way to know…
641 00:57:00.230 ⇒ 00:57:00.830 Gabriel Lam: bet.
642 00:57:02.530 ⇒ 00:57:03.030 Gabriel Lam: Yeah.
643 00:57:03.030 ⇒ 00:57:07.209 Samuel Roberts: Because there’s all… now that the stand-ups are different, we might be able to tweak this a little bit, but…
644 00:57:07.970 ⇒ 00:57:12.259 Gabriel Lam: Yeah, I do think the goal is that it is agnostic.
645 00:57:12.260 ⇒ 00:57:15.500 Samuel Roberts: agreed, but part of the… I mean, part of the issue here is
646 00:57:16.910 ⇒ 00:57:22.319 Samuel Roberts: there’s so many things discussed in a meeting, it’s hard to then… maybe we need something that just does a pass, and it’s like, which…
647 00:57:24.310 ⇒ 00:57:29.339 Samuel Roberts: which clients were discussed here in this meeting? Like, full stop.
648 00:57:30.260 ⇒ 00:57:31.000 Gabriel Lam: Right.
649 00:57:31.490 ⇒ 00:57:37.090 Samuel Roberts: Rather than this kind of matching who’s working on what, what do we think they might have been talking about kind of thing.
650 00:57:37.770 ⇒ 00:57:38.460 Gabriel Lam: Right.
651 00:57:38.730 ⇒ 00:57:45.100 Samuel Roberts: Maybe we just say, like, here are the teams that these people are on, did they… which ones did they discuss in the meeting, and then make that our list.
652 00:57:46.210 ⇒ 00:57:50.559 Samuel Roberts: The problem is something like default still shows up sometimes, but that’s a different issue.
653 00:57:53.520 ⇒ 00:57:54.400 Gabriel Lam: That’s true.
654 00:57:54.670 ⇒ 00:58:02.479 Gabriel Lam: But I think if you have that union, and then you… Select, you filter out
655 00:58:02.980 ⇒ 00:58:08.079 Gabriel Lam: Or you filter in all the… Teams that are talked about.
656 00:58:09.950 ⇒ 00:58:11.659 Gabriel Lam: Cause you’re not on every team.
657 00:58:12.130 ⇒ 00:58:12.640 Gabriel Lam: Ow.
658 00:58:12.640 ⇒ 00:58:15.150 Samuel Roberts: Oh, but I’m clearly on… and in linear, I’m on…
659 00:58:15.360 ⇒ 00:58:19.870 Samuel Roberts: I don’t even know what now. Yeah, Magic Spoon, Recruiting, Default, Insomnia, they’re all here online.
660 00:58:20.640 ⇒ 00:58:21.900 Samuel Roberts: Maybe that’s an issue.
661 00:58:24.280 ⇒ 00:58:28.090 Samuel Roberts: Maybe that’s… maybe linear’s not the best source of truth for what teams are.
662 00:58:28.360 ⇒ 00:58:30.460 Samuel Roberts: Are… who’s on what teams?
663 00:58:32.560 ⇒ 00:58:40.890 Gabriel Lam: Well, I do think it is… it needs to be the source of truth. Okay, I know you have to go. I think it do needs… it does need to be the source of truth, because that’s how we are.
664 00:58:42.120 ⇒ 00:58:43.640 Gabriel Lam: Sending tickets.
665 00:58:45.740 ⇒ 00:58:48.790 Samuel Roberts: Oh, right, who knows who’s on what? Yeah, of course, okay. Yeah, I do have to run.
666 00:58:48.790 ⇒ 00:58:49.410 Gabriel Lam: Alright.
667 00:58:49.410 ⇒ 00:58:51.710 Samuel Roberts: Okay, we can resume this tomorrow at some point, but…
668 00:58:51.710 ⇒ 00:58:52.030 Gabriel Lam: Yeah.
669 00:58:52.030 ⇒ 00:58:52.760 Samuel Roberts: Yeah, okay.
670 00:58:52.920 ⇒ 00:58:53.690 Gabriel Lam: I’ll, I’ll try to…
671 00:58:53.690 ⇒ 00:58:56.870 Samuel Roberts: push this or not? Like, do you want to pull this down and mess.
672 00:58:56.870 ⇒ 00:58:59.919 Gabriel Lam: I… yeah, if you could set up a new branch.
673 00:58:59.920 ⇒ 00:59:00.240 Samuel Roberts: Yeah.
674 00:59:00.240 ⇒ 00:59:02.739 Gabriel Lam: I’ll pull it, and I’ll try to play around with it.
675 00:59:03.150 ⇒ 00:59:07.739 Samuel Roberts: Okay, let me… I’m just gonna commit everything that’s here, even though I don’t know.
676 00:59:07.740 ⇒ 00:59:08.260 Gabriel Lam: Yep.
677 00:59:10.310 ⇒ 00:59:12.109 Samuel Roberts: I’m gonna make sure I’m on the right brand…
678 00:59:14.520 ⇒ 00:59:16.939 Samuel Roberts: New ticket generator update. Okay, I’m just gonna…
679 00:59:17.610 ⇒ 00:59:20.449 Samuel Roberts: Let it do its little thinking here.
680 00:59:20.960 ⇒ 00:59:22.559 Samuel Roberts: Oh, no, I didn’t like that.
681 00:59:23.460 ⇒ 00:59:26.069 Samuel Roberts: I’m just gonna do WIP. Okay.
682 00:59:26.070 ⇒ 00:59:28.529 Gabriel Lam: Sure. It’s my favorite.
683 00:59:30.650 ⇒ 00:59:31.949 Gabriel Lam: What is not saying?
684 00:59:35.580 ⇒ 00:59:36.750 Samuel Roberts: No, I don’t want to say no.
685 00:59:38.900 ⇒ 00:59:41.110 Samuel Roberts: Oh, wait, did I push changes to…
686 00:59:43.910 ⇒ 00:59:45.950 Samuel Roberts: No, that’s fine, okay, whatever, take it.
687 00:59:48.600 ⇒ 00:59:49.290 Samuel Roberts: Okay.
688 00:59:51.910 ⇒ 00:59:54.670 Samuel Roberts: Alright, have fun. Let me know how it goes.
689 00:59:54.670 ⇒ 00:59:55.030 Gabriel Lam: Yeah.
690 00:59:55.610 ⇒ 00:59:59.100 Samuel Roberts: I think the linear IDs is definitely a good idea.
691 01:00:00.720 ⇒ 01:00:06.540 Samuel Roberts: in the Teams table, so if you want to make a ticket for that and throw that to me.
692 01:00:06.670 ⇒ 01:00:09.319 Samuel Roberts: I can take a swing at that tomorrow, probably, pretty quickly. Awesome.
693 01:00:15.720 ⇒ 01:00:20.560 Samuel Roberts: And we could even pull down what teams people are in, but I don’t know if that’s helpful, but it is pulled from linear, but…
694 01:00:20.990 ⇒ 01:00:21.710 Samuel Roberts: Okay.
695 01:00:22.300 ⇒ 01:00:22.920 Gabriel Lam: Alright.
696 01:00:23.830 ⇒ 01:00:24.399 Gabriel Lam: Thank you.
697 01:00:24.400 ⇒ 01:00:24.850 Samuel Roberts: Have a nice day.
698 01:00:24.850 ⇒ 01:00:26.620 Gabriel Lam: Have a good night.
699 01:00:26.620 ⇒ 01:00:38.169 Samuel Roberts: I like working… despite my exasperated sound, I do enjoy working on this. It’s just… the problems sometimes make me feel like I’m like, oh, what am I doing? But I do enjoy this, so… Awesome. Yeah. All right.
700 01:00:38.170 ⇒ 01:00:39.210 Gabriel Lam: Alright, catch you later.
701 01:00:39.820 ⇒ 01:00:40.510 Samuel Roberts: Bye.
702 01:00:40.510 ⇒ 01:00:40.960 Gabriel Lam: Bye.