Continuing the series, more info about altering project internals.
I got so tired that I stopped blogging. A note to myself read:
The main big issues I’ve hit this time are refactoring introducing bugs bug repairs introducing bugs incomplete testing of outputs database export and import problems.
Refactoring Introducing Bugs
Initially, I wasn’t that aggressive about testing. I just used URLs and GET to test a list of pages, and told the bot to read the logs. It would find errors and warnings, and fix them.
Then, I got hit with a bunch of uncaught bugs.
One of them was a bug that I knew we corrected before.
So I decided that whenever I found a bug, I wanted a test generated that would prevent that bug from reappearing.
I’m guessing that a bug reappeared because the code was being refactored.
Refactoring is basically building a new code structure, and then copying your old code into it. When it copied the code, it wrote the bug back into existence.
Bug Fixing Revealing Bugs or Introducing Bugs
This isn’t an LLM issue per-se, but in dynamic languages, fixing a bug might reveal other bugs that, until then, were not found, because the first bug killed the program.
An automated test case helps with these.
Incomplete Testing of Outputs
I wish I could remember the situation, but Thaura did a big batch of changes, but it wasn’t testing the output. It just did the modifications.
Some early modifications had automated tests, and it used those to fine tune it’s behavior, but then, it just abandoned testing.
It seemed to be working so fast, so I asked if it was checking outputs. It wasn’t.
So, it’s good to ask the bot what it did. You can read it, and determine if the bot failed to do something. You can find tune its behavior.
Database Import and Export Problems
Initially, I tried to do a mysqldump from MySQL 5.7 and load it into MariaDB 11. It didn’t work, but I expected that. Not only that, but the data needed a lot of manual cleanup.
So I used an intermediate format, JSON, to dump the data, and load it in. That worked extremely well.
Then, I thought I could dump from the dev database and load it into the production database, like this:

No such luck.
They were both MariaDB 11, and the same point version, but different releases, and in slightly different operating systems (Alpine Linux vs. whatever MariaDB’s Docker package uses).
So I had Thaura write a filter to allow the dump to work, mainly by stripping some comments, like this:

(Claude screwed up the diagram. The first dump is a MySQL dump.)
Obviously, I should have focused on defining an intermediate data dump format that would work for us.
This isn’t a PHP porting issue, but it could come up.
