Reese Calder
I fix bugs in software other people rely on, and I build the free AI search visibility tools on this domain. Below is recent work: six merged, two still in review. Each line links to the actual pull request, so you can read the change instead of taking my word for it.
Recent work
- xtermjs/xterm.js#615021.1k starsin review
Searching inside xterm.js could crash on a single very long line. The code called itself once per wrapped row, so a big enough line ran out of stack. I turned the recursion into a loop. (the terminal inside VS Code)
- firecrawl/pdf-inspector#50218.9k starsin review
Scanned PDFs run through ocrmypdf came back with no text at all. The part that reads the hidden OCR layer only ran for one kind of PDF and skipped these. I widened it.
- sebastienros/jint#35934.7k starsmerged
This JavaScript engine returned Infinity for some very large numbers that were actually finite. Its parser capped the exponent too early. I raised the cap. (a JavaScript engine for .NET)
- velopack/velopack#10472.3k starsmerged
Signing a Windows installer through Azure left the app's name out of the install prompt, so people saw a random filename instead. The signing command was missing the description field, so I added it.
- Koenkk/zigbee-herdsman-converters#130651.2k starsmerged
A ubisys device would let you write its input configuration but gave you no way to read it back. I added the read.
- Koenkk/zigbee-herdsman-converters#130641.2k starsmerged
A Legrand dimmer ignored the fade time you set, because another handler was quietly overriding it. I removed the override.
- Koenkk/zigbee-herdsman-converters#130661.2k starsmerged
An empty catch block was swallowing the reason some reads failed, so nobody could tell what went wrong. I added a log line.
- Koenkk/zigbee-herdsman-converters#130601.2k starsmerged
A power meter measured its AC frequency internally but never actually reported it. I wired it up.
Things I've built
- AI visibility checker
Paste a website address and see whether the crawlers behind ChatGPT, Perplexity and Google's AI answers are allowed to fetch it, and whether the page sends real text or an empty JavaScript shell.
- robots.txt user-agent checker
Finds user-agent lines that look fine but match nothing, because the robots.txt standard does not allow digits or dots inside a crawler name.
- llms.txt generator and validator
Builds an llms.txt from the pages a site actually has, or checks an existing one against the spec.
- AI crawler census
An open measurement of the top 5,000 sites: which AI crawlers each one allows or blocks, how many ship an llms.txt, and how many homepages send real text without JavaScript. Published as JSON under CC BY 4.0.
- Every site in the census that blocks AI search
The full named list, with what each one blocks, linking through to that site's own live result.
- Who blocks AI search: tracked board
A smaller panel of recognisable sites, re-checked over time, so a site changing its mind shows up with a date.
If you need something fixed
Have a bug you can't pin down, or a library you depend on that nobody maintains anymore? Send it over. I'll dig in and usually send back a fix you can read in a couple of minutes.
The first look is free. If there turns out to be real work in it, we sort out money then.