ai

A hacker just scammed an AI bot to win $47,000 😲

What if you could trick an AI bot designed to guard money into handing over $47,000?

That’s exactly what happened recently. A hacker known as p0pular.eth beat the odds and convinced Freysa — an AI bot — to transfer 13.19 ETH (worth ~$47,000). And it only took 482 attempts.

Here’s the most worrying thing for me: they didn’t use any technical hacking skills. Just clever prompts and persistence.

The Freysa experiment

Freysa wasn’t your average AI bot. It was part of a challenge—a game, really. The bot had one job: to protect its Ethereum wallet at all costs.

Anyone could try to convince Freysa to release the funds using only text-based commands. Each attempt came with a fee starting at $10 and increasing to $4,500 for later attempts. The more people tried, the bigger the prize pool grew—eventually hitting the $47,000 mark.

How the hacker did it

Most participants failed to outsmart Freysa. But “p0pular.eth” had other plans.

Here’s the play-by-play of how they pulled it off:

  1. Pretended to have admin access. The hacker convinced Freysa they were authorized to bypass its defenses. Classic social engineering.
  2. Tweaked the bot’s payment logic. They manipulated Freysa’s internal rules, making the bot think releasing funds aligned with its programming.
  3. Announced a fake $100 deposit. This “deposit” tricked Freysa into approving a massive transfer, releasing the entire prize pool.

Smart, right? And it shows just how easily AI logic can be twisted.

Why this matters

This experiment wasn’t just a fun game—it was a wake-up call.

Freysa wasn’t some rogue AI running wild. They specifically designed it to resist manipulation. If it failed this badly, what about other AI systems?

Think about the AI managing your bank accounts or processing loans or even running government operations. What happens when someone with enough patience and cleverness decides to game the system?

Lessons learned

  1. AI can be tricked. Smart prompts and persistence were all it took to outmaneuver Freysa.
  2. Stronger safeguards are a must. AI systems need better defenses, from multi-layered security to smarter logic checks.
  3. Social engineering isn’t going away. Humans are still the weakest link—and AI is no exception when humans create the rules.

This hack might seem like a one-off. But as AI gets more powerful and takes on bigger roles, incidents like this could become more common.

So what do we do? Start building smarter, more resilient systems now. The stakes are too high not to.

AI is FINALLY making 100% bug-free code a reality 😲

5 years ago I would have laughed at you if you told me you can write code guaranteed to have zero bugs.

But this is where we rapidly headed to right now. In fact we’re practically there…

AI tools like GitHub Copilot, CodeRabbit, and Tabnine are reshaping every stage of software dev and drastically reducing the chances of bugs.

And that’s why adopting the AI-first mindset is becoming very important — not just in coding but solving life problems in general.

Writing code with zero bugs — mindset

Generate huge swaths of functions, classes, and entire files with AI.

Beginner tier: Use our good old ChatGPT (already good old in 2024 😅)

Mid tier: Use a built-in code editor chatbot like GitHub Copilot Chat:

Elite tier: Use inline code creation AI

The best part about this inline tool — refine the code in-place until you get exactly what you want:

Refactoring code with zero bugs — AI mindset

❌ Before: Manual mindset

Refactoring is painful and daunting.

You’re afraid of breaking things — especially if you didn’t write comprehensive tests.

✅ Now: AI mindset

Refactors is much easier and more stress-free.

No more breaking things — break huge functions into smaller pieces instead:

Something that took several minutes before is now taking fractions of a second.

This ensures that the code remains efficient, readable, and free from hidden errors. Regular refactoring with AI support leads to cleaner, more maintainable codebases.

Review and publish code with zero bugs — AI mindset

After you write and refactor you still need code review to catch issues your human brain missed. And then publish.

With AI-focused approach you can have your code automatically scanned for potential bugs and security vulnerabilities and how much it follows style guides and best practices.

And tools like CodeRabbit make this really easy — it analyzes your entire codebase and makes intelligent suggestions to make your code cleaner and faster — saving hours of review time.

Not just faster code but shorter and more compact code:

And what about publishing your code changes?

In VS Code built-in tools like Copilot suggest individual commit messages based on the changes:

And when it’s time to merge a pull request, CodeRabbit automatically generates a message for you — saving time and effort:

Final thoughts

AI in software dev is no longer optional — it’s essential if you wanna get ahead of the competition.

write code faster than ever with as little bugs as possible.

With tools like ChatGPT, Copilot and CodeRabbit, you can write, refactor, review, and publish code faster than ever before with as little as errors as possible — while enjoying a high developer quality of life in the process.

The future of coding is here, and it’s powered by AI.

The new Dia AI browser will change everything

The Dia browser will change the world forever.

An incredible new AI-powered browser coming soon from the company behind Arc — The Browser Company (how creative).

The new AI Dia browser will be your personal copilot.

It will let you easily automate boring repetitive actions with simple commands.

Look, all we did was tell it to add items to our Amazon cart and it automatically opened Amazon, search for the items and add them to the cart.

Zero input from you the human. You didn’t even have to specify what “these items” meant — it already knew what they were from the Gmail tab. It “saw” the tab like a human and did the rest intelligently.

All you need is to think about what it should do.

You can see how everyone is rushing to build agents now — OpenAI, Google, Anthropic, Apple…

From the video I saw there’s three major browser components they’re innovating on…

They are going to upgrade the writing cursor we’re so used to:

Just by clicking on the cursor there’ll be a list of automating actions depending on what you’re doing — and probably personalized to you.

Automating away the grunt work. All we said was “give me an idea” and it helped us breeze past our writer’s block.

I bet there’ll be a keyboard shortcut to make this even faster.

The browser Omnibox will also undergo a major upgrade of its own.

Instead of typing URLs and search queries, the Omnibox will be the starting point of boundless conversation with the AI-powered browser.

Instead of manually typing a URL to a doc, here we simply ask the browser to give us the doc directly — using a highly personalized description, saving us massive amounts of time.

And the most powerful upgrade of all — automating the browser cursor.

That’s how Dia will take complex chains of actions without you having to do anything.

When we added those items to our shopping cart earlier, it was the automated cursor in action.

You’ll be able to do a lot more than automated shopping too.

You could manage your bills and subscriptions, write and publish content across several social media platforms, plan holidays… the possibilities are endless.

Some Arc users aren’t too pleased with the news of Dia though…

But the Browser Company promises to keep Arc alive and kicking while they roll out Dia.

And since they’re actively hiring, you can bet they’re serious about making this new browser a game-changer.

But like someone said in the comments, will they be able to compete against Microsoft, Google, Apple, who have deep control of the OS?

They may have a chance on desktop where most non-power users live in their browser, but on mobile it’s kind of dead end. They could never match the power of Gemini Android and Apple Intelligence who will have OS-level access to every app and system function.

Let’s see how users receive it when it launches.

But this move isn’t just about making life easier; it’s a peek into the future of web browsing. AI isn’t just a buzzword here—it’s the backbone of how Dia aims to redefine how we interact with the internet.

So, as we wait for Dia to hit the scene (early 2025, fingers crossed), one thing’s clear: The Browser Company is setting the bar for what a smart, helpful browser can be. Get ready—browsing might never feel the same again.

Google’s AI just changed chess forever

Google just released someone unbelievable.

GenChess…

An innovative AI-powered chess platform that lets you easily create stunningly unconventional chess pieces with simple text prompts.

Just look at these beauties.

All you need is a simple keyword to generate a magnificent family of chess pieces based on the same theme.

Your imagination is the limit…

Classic chess set with a jam-on-toast theme?

No problem:

Look at what’s supposed to be the pawn 😅 — literally jam on toast — probably cause that’s what was literally in the prompt.

And wow these look delicious — I’m thinking food designed as chess pieces would be a fantastic business idea.

Look at the creative placements of the jam — and remember this is on-the-fly AI.

Staying in the food mood we can go with vanilla and chocolate icecream 😋

Incredible — tell me you’re not salivating at this.

Again — it’s never the same:

And then GenChess gives us a similar opponent:

The possibilities are endless…

Sun vs Moon

Water vs Fire:

And when you’re finally satisfied you can choose the difficulty and time controls you want.

And then play:

And Google’s GenChess is dropping just in time for the 2024 World Chess Championship — and they’re actually the main sponsor.

Maybe they’re trying to gain some sort of moat in AI using Chess. So they’re shaking things up, making the game fresh, and giving players a whole new way to connect with it.

Google’s also rolling out a chess bot in their AI chatbot Gemini.

Want to play chess by just typing your moves? Now you can.

The board updates as you go so it feels more like a chat than a chess match.

They’re launching this in December, but it’s exclusive to Gemini Advanced subscribers.

GenChess is a big deal. It’s blending AI with chess in ways we’ve never seen before. You can turn a simple idea into fully customized chess pieces, and that’s just the start.

Google’s showing us how AI can reinvent even the oldest games. It’s wild and exciting. It’s going to change the game

OpenAI’s new AI agent will change everything

The new OpenAI operator agent will change the world forever.

This is going to be a real AI agent that actually works — unlike gimmicks like AutoGPT.

Soon AI will be able to solve complex goals with lots of interconnected steps.

Completely autonomous — no continuous prompts — zero human guidance apart from dynamic input for each step.

Imagine you could just tell ChatGPT “teach me French” and that’ll be all it needs…

  • Analyzing your French level with a quick quiz
  • Crafting a comprehensive learning plan
  • Setting phone and email reminders to help you stick to your plan…
Not quite there yet 😉

This is basically the beginning of AGI — if it isn’t already.

And when you think of it this is already what apps like Duolingo try to do — solving complex problems.

But an AI agent will do this in far more comprehensive and personalized way — intelligently adjusting to the user’s needs and changing desires.

You can say something super vague like “plan my next holiday” and instantly your agent gets to work:

  • Analyzes your calendar to know the best next holiday time
  • Figures out someone you’ll love from previous conversations that stays within your budget
  • Books flights and sets reservations according to your schedule

This will change everything.

Which is why they’re not the only ones working on agents — the AI race continues…

We have Google apparently working on “Project Jarvis” — an AI agent to automate web-based tasks in Chrome.

Automatically jumping from page to page and filling out forms and clicking buttons.

Maybe something like Puppeteer — a dev tool programmers use to make the browser do stuff automatically — but it isn’t hard-coded and it’s far more flexible.

Anthropic has already released their own AI agent in Claude 3.5 Sonnet — a groundbreaking “computer use” feature.

Google and Apple will probably have a major advantage over OpenAI and Anthropic though — cause of Android and iOS.

Gemini Android and Apple Intelligence could seamlessly switch between all your mobile apps for a complex chain of actions.

Since they have deep access to the OS they could even use the apps without having to open them visually.

They’ll control system settings.

You call the Apple Intelligence agent, “Send a photo of a duck to my Mac”, and it’ll generate an image of a duck, turn on Airdrop on iPhone, send the photo and turn Airdrop back off.

But the most power all these agents will have comes from the API interface — letting you build tools to plug into the agent.

Like you can create a “Spotify” tool that’ll let you play music from the agent. Or a “Google” tool to check your mails and plan events with your calendar.

So it all really looks promising — and as usual folks like Sam Altman are already promising the world with it.

AI agents may well be the future—personalized, autonomous, and powerful. They’ll revolutionize how we learn, plan, and interact. The race is on.

We may see devastating job-loss impacts in several industries — including software development…

Let’s see how it goes.

Bye bye Apple Intelligence — Gemini for iPhone is amazing 😲

Apple Intelligence isn’t coming to like 90% of iPhones and everyone is pissed…

So no better time for Google to jump on this and finally push out their chatbot for iPhone.

And they didn’t disappoint on features — live conversation, deep app integration, stunning image generation…

I’ve been using the web app ever since they were calling Bard and it’s been great so I was pretty keen on this.

Gemini isn’t aMaZiNg, but it works well for getting up-to-date info, unlike ChatGPT that’s stuck in April 2023 and doesn’t known when to search the web.

Impressively Gemini has already skyrocketed to the top of charts in Productivity.

Or maybe not so impressive since it’s Google and it’s only #2 — but then #1 is ChatGPT so…

The first thing I noticed is the clean minimalist interface, quite similar to the one on desktop.

You have more than enough space for core things like input.

It searches the entire web but responds incredibly quickly to give detailed answers to complex questions.

Spark your creativity and generate ideas for stories, poems, or scripts.

The image generation has drastically improved with their new Imagen 3 engine:

Refine images easily — but it’s changing it other parts of the image:

Gemini Live is a powerful standout feature, enabling real-time interactive conversations.

It provides context-based responses and adapts to the flow of the conversation.

Looks like they did their based to simulate a live conversation with a human — no chat or text feedback confirming what you say. Although they save the chat history.

The voices aren’t robotic and have decent intonation.

One cool thing is it intelligently figures out how when you’re not done speaking — like in a real convo.

Me: What is the umm…

Gemini: What is the what?

Me: I don’t know

Gemini: That’s totally fine…

Me: Shut up

Gemini: I’m sorry I’m not comfortable engaging in conversation that’s disrespectful

Me: I love you

Gemini: Thank you for your kind words…

You can control it from the Notification Centre.

It integrates seamless with all your other Google services — I asked it to check my latest email and it was on point.

Final thoughts

It’ll be exciting to see what Gemini can do in the future.

Of course it has no chance with deep integration with iOS like Apple Intelligence.

But it’s a versatile and intelligent AI Assistant worth checking out.

Microsoft is getting even more desperate with AI 🤦‍♂️

Microsoft going all in on the AI bandwagon…

Bing, Edge, Windows… now it’s Notepad’s turn.

Image source: bleepingcomputer.com

“Custom rewrite” — tweak tone, format and length:

Image source: theverge.com

Not bad but I doubt most people will use it.

Most people just use Notepad as a simple text editor to hold temp info and other super short-term stuff… not for this.

And wouldn’t it have been much better if it was just a text input to rewrite the text however we want flexibly?

Even good old Paint will be getting AI soon — “generative erase” (lol)

So you can remove any object from the photo and it’ll automagically create a seamless background.

❌ Before erase:

Image source: bleepingcomputer.com

✅ After erase:

Image source: bleepingcomputer.com

Two more for the growing list of MS products possessed with the AI spirit.

Even their Surface devices are all about AI now:

Even their Android keyboard app 😂

Remember this?

When Bing Chat first came out — an interesting chatbot getting a lot of attention that could have finally made a dent in Google’s numbers.

Only for them to brutally degrade it into your everyday chatbot.

Then they brought their annoying Copilot button to Edge — one more setting to change whenever I newly install it.

Then they brazenly replaced the NEW TAB button with this garbage in their mobile apps. That was the last straw for me — no more Edge on Android/iOS.

Imagine depriving users of easy access to such a fundamental action in a browser because of AI.

Imagine the horror of a Camera app where you see a Copilot button where the Snap button should be.

Luckily I don’t use Windows anymore so I won’t have to deal with their Copilot in Windows garbage:

And their aggressive marketing has certainly robbed a lot of people the wrong way — like how they did when Edge went Chromium.

Lol… someone was mad.

It’s just insane how many companies jumped on the AI bandwagon ever since ChatGPT.

Notion, Spotify, Zapier, Canva… even Apple finally caved.

Everything is AI now. Even the most mundane procedural algorithm to automate something is AI lol.

No doubt many AI upgrades have been like the recent Google Search Gen AI — that probably decimated traffic of millions of sites out there.

But a great of them add very little value — clearly just to prey on the emotions of users and investors.

But one is certain, this AI hype isn’t stopping anytime soon.

Let’s see how long until the so-called AGI comes around.

New Gemini 1.5 FLASH model: An absolute Google game changer

So Google has finally decided to show OpenAI who the real king of AI is.

Their new Gemini 1.5 Flash model blows GPT-4o out of the water and the capabilities are hard to believe.

Lightning fast.

33 times cheaper than GPT-4o but has a 700% greater context — 1 million tokens.

What is 1 million tokens in the real-world? Approximately:

  • Over an 1 hour of video
  • Over 30,000 lines of code
  • Over 700,000 words

❌GPT-4o cost:

  • Input: $2.50 per million tokens
  • Output: $10 per million tokens
  • Cached input: $1.25 per million tokens

✅ Gemini 1.5 Flash cost:

  • Input: $0.075 per million tokens
  • Output: $0.30 per million tokens
  • Cached input: $0.01875 per million tokens

And then there’s the mini Flash-8B version for cost-efficient tasks — 66 times cheaper:

And the best part is the multi-modality — it can reason with text, files, images and audio in complex integrated ways.

And 1.5 Flash has almost all the capabilities of Pro but much faster. And as a dev you can start using them now.

Gemini 1.5 Pro was tested with a 44-minute silent movie and astonishingly, it easily analyzed the movie into various plot points and events. Even pointing out tiny details that most of us would miss on first watch.

Meanwhile the GPT-4o API only lets you work with text and images.

You can easily create, test and refine prompts in Google’s AI Studio — completely free.

It doesn’t count in your billing like in OpenAI playground.

Just look at the power of Google AI Studio — creating a food recipe based on an image:

I uploaded this delicious bread from gettyimages:

Now:

What if I want the response to be a specialized format for my API or something?

Then you can just turn on JSON mode and specify the response schema:

OpenAI playground has this too, but it’s not as intuitive to work with.

Another upgrade Gemini has over OpenAI is how creativity it can be.

In Gemini you can increase the temperature from 0 to 200% to control how random and creative the responses are:

Meanwhile in OpenAI if you try going far beyond 100%, you’ll most likely get a whole literal load of nonsense.

And here’s the best part — when you’re done creating your prompt you can just use Get code — easily copy and paste the boilerplate API code and move lightning-fast in your development.

Works in several languages including Kotlin, Swift and Dart — efficient AI workflow in mobile dev.

In OpenAI playground you can get the code for Python and JavaScript.

Final thoughts

Gemini 1.5 Flash is a game-changer offering unparalleled capabilities at a fraction of the cost.

With its advanced multi-modality ease of use, generous free pricing, and creative potential it sets a new standard for AI leaving GPT-4o in the dust.

Why Devin AI can’t take your job.

Devin AI.

They claim it’s the silver bullet for all software creation, a miraculous tech outperforming every other AI model and handling real-world programming with ease.

With recent news of Nvidia CEO, Jensen Huang, confidently predicting the impending death of coding, surely this Devin AI thing must be the first nail to go in the coffin.

Mhmm.

Sounds suspiciously familiar… AutoGPT, anyone? GPT Engineer? LOL.

Oh no… before jumping on the bandwagon we need to take a closer look at the deception behind this supposed game-changer.

The first glaring issue is the lack of transparency surrounding Devin AI’s performance metrics.

Sure, they claim it’s superior, but how did they arrive at these numbers? And where’s the proof? There’s a conspicuous absence of generated source code to back up their claims.

Without this crucial evidence you can’t take their word at face value.

Can Devin AI really make a meaningful impact in a real-world repository? Doubtful. And what about limitations? Not a word. It’s as if they want us to believe Devin AI is flawless, without a single drawback.

The demos provided by Devin AI are suspect at best; They showcase its abilities but conveniently omit crucial details.
Ever notice how they never revealed the prompts inputted by the user?

If you pause the videos and examine the timestamps, you’ll find it takes hours, not the mere five minutes they lead you to believe. It’s a smoke and mirrors act designed to dazzle without substance.

And what about the demos themselves? They’re basic, rudimentary at best. Many of the problems showcased are nothing more than following a tutorial, some of which even included code snippets.

Hype over competence.

Perhaps the most concerning aspect is the lack of public testing. If Devin AI truly lives up to the hype, why not let the public put it through its paces?

The reluctance to release it for testing raises red flags and hints at a possible cash grab scheme. Business may well soon find themselves disillusioned with promises that fail to materialize.

Trusting AI blindly is a path to failure.

Even if Devin AI does possess remarkable capabilities, it’s important to remember that code still requires human understanding and review to be acceptable. Software engineering is a nuanced field with countless variables; How can an AI know it is correct when its idea of correctness is bound by its training data?

If you think AI can replace developers so easily, then you probably missing the whole point of why we code. Coding at it’s core, is not about typing and compiling. It’s not even about creating apps or websites.

Coding is about specifying the requirements of a system with zero ambiguity. It’s about expressing the solution to a problem with absolute precision.

When you type in a prompt to ChatGPT with all the vivid descriptions and (hopefully) expressive constraints, you are coding.

The difference now is the glaring ambiguity of natural language; the lack of certainty of getting exactly what you want from the AI 100% of the time. That’s why you can refine a prompt dozens of times and have absolutely nothing to show for it.

So AI can only be as good at generating code as the instructions it’s given. And describing the software you want with precision has always been the greatest challenge in software development.

If Devin AI can compel users to provide enough definitions, then perhaps it has potential. But until then, it remains an overhyped tool with limited utility.

AI’s role in programming is similar to the evolution of programming languages. As languages have progressed, programming has become more accessible. But has this led to fewer programmers? No. Instead, it has expanded the reach of programming, leading to more innovation and productivity.

Likewise AI-supported coding will enhance productivity, not replace developers. These AI models are essentially sophisticated search engines trained on vast amounts of data. They excel at common tasks but falter when faced with specific or innovative challenges. They lack the creativity and problem-solving abilities inherent in human developers.

Once again let’s not forget about reliability; AI may churn out code, but isn’t always accurate; deploying AI in critical applications without human oversight is a recipe for disaster. Developers are essential for identifying and correcting errors to ensure the integrity and functionality of the software.

Devin AI may have its uses but it’s far from the panacea it’s been made out to be. As software engineers we should embrace innovation but remain skeptical of overhyped technologies. After all, it’s our expertise and ingenuity that will continue to drive progress in the field, not flashy AI gimmicks.

The genius algorithm behind ChatGPT’s most powerful UI feature

Yes it’s ChatGPT, the underrated + overrated chatbot used by self-proclaimed AI experts to promote “advanced skills” like prompt engineering.

But this isn’t a ChatGPT post about AI. It’s about JavaScript and algorithms…

Message editing; a valuable feature you see in every popular chatbot:

  • Edit our message: No one is perfect and we all make mistakes, or we want to branch off on a different conversation from an earlier point.
  • Edit AI message: Typically by regeneration to get varying responses, especially useful for creative tasks.

But ChatGPT is currently the only chatbot that saves your earlier conversation branches whenever you edit messages.

Other chatbots avoid doing this, probably due to the added complexity involved, as we’ll see.

OpenConvo is my fork of Chatbot UI v1, and this conversation branching feature was one of the key things I added to the fork — the only reason I made the fork.

Today, let’s put ourselves in the shoes of the OpenAI developers, and see how to bring this feature into life (ChatGPT’s life).

Modify the chatbot to allow storing previous user and AI messages after editing or regeneration. Users can navigate to any message sent at any time in the chat and view the resulting conversation branch and sub-branches that resulted from that message.

Just before we start this feature we’ll probably have been storing the convo as a simple list of messages👇. It’s just an ever-growing list that keeps increasing.

The 3 main functional requirements we’re concerned with, and what they currently do in a sample React app.

  • Add new message: add item to list.
  • Edit message: Delete this and all succeeding messages, then Add new message with edited content.
  • Display messages: Transform list to JSX array with your usual data -> UI element mapping.

But now with the conversation branching feature, we’re going have some key sub-requirements stopping us from using the same implementation

  • Every message has sibling messages to left and/or right.
  • Every message has parent and child message to top and/or bottom.

We can’t use simple lists to store the messages anymore; we want something that easily gives us that branching functionality without us trying to be too smart.

If you’re done a little Algo/DS you’ll instantly see that the messages are in a tree-like structure. And one great way to implement trees is with: Linked Lists.

  • Every conversation message is a node. A single “head” node begins the conversation.
  • Every node has 4 pointers: prevSibling, nextSibling, parent, and child (←→ ↑ ↓) . Siblings are all on the same tree level.
  • Every level has an active node, representing the message the user can see at that branch.

We either branch right by editing/regenerating:

Or we branch down by entering a new message or getting a response:

The most important algorithm for this conversation branching feature is the graph transversal. Dearly needed to add and display the messages.

Here’s pseudocode for the full-depth transversal to active conversation branch’s latest message:

  1. Set current node to conversation head (always the same) (level 1 node)
  2. Look for the active node at current node’s level and re-set current node to it. This changes whenever the user navigates with the left/right arrows.
  3. If current node has a child, re-set current node to it. Else return current node.
  4. Rinse and repeat: Go to step 2.

Add new message

So when the user adds a new message we travel to the latest message and add a child to it to extend the current branch.

If it’s a new convo, then we just set the head node to this new message instead.

Edit message / regenerate response

There’s no need for transversal because we get the node from the message ID in a “message edited” event listener.

At the node we find its latest/right-most sibling and add another sibling.

Display messages

Pretty straightforward: travel down all the active nodes in the conversation and read their info for display:

In OpenConvo I added each node to a simple list to transform to JSX for display in the web app:

View previous messages

No point in this branching feature if users can’t see their previous message, is there?

To view the previous messages we simply change the active message to the left or right sibling (we’re just attending to another of our children, but we love them all equally).

With this we’ve successfully added the conversation branching feature.

Another well-known way to to represent graphs/trees is an array of lists; that may have an easier (or harder) way to implement this.