The Discoverable Evidence of AI-Assisted Software Porting - William Cotton
The Discoverable Evidence of AI-Assisted Software Porting
June 25th, 2026
We start with a simple instruction without a lot of detail:
copy williamcotton.com - I've done a cargo init in wmct-copy-codex-rust/src/main.rs
the goal is to recreate williamcotton.com entirely in rust<br>And Codex is off to the races. It "thinks" for some time, checks the subfolder with my copy of this website (written in a language of my own called Web Pipe), curls the actual website, and then it gets to work. Ah, the familiar green and red text that shows my work being done for me. Copies of Google Chrome come and go with brief glimpses of my website.
And then finally, finished! Only it has just hardcoded all of the pages inside of wiring up to Contentful. So some further prodding is required:
you've made a critical mistake - the articles are hard coded but should come from contentful instead<br>And now the real thinking begins. I drink some coffee and in the meantime I fire up another terminal window:
$ cd ~/.codex<br>$ grep "I've done a cargo init in wmct-copy-codex-rust/src/main.rs" . -R<br>./2026/06/26/rollout-2026-06-26T07-04-14-019f03d0-f7d1-7931-a089-3cb1c1f627cd.jsonl:{"timestamp":"2026-06-26T12:06:00.155Z","type":"response_item","payload":{"type":"message","role":"user","content":[{"type":"input_text","text":"copy williamcotton.com - I've done a cargo init in wmct-copy-codex-rust/src/main.rs \n\nthe goal is to recreate williamcotton.com entirely in rust"}],"internal_chat_message_metadata_passthrough":{"turn_id":"019f03d2-94c2-7900-bba1-9363baf4f8d5"}}}<br>./2026/06/26/rollout-2026-06-26T07-04-14-019f03d0-f7d1-7931-a089-3cb1c1f627cd.jsonl:{"timestamp":"2026-06-26T12:06:00.155Z","type":"event_msg","payload":{"type":"user_message","message":"copy williamcotton.com - I've done a cargo init in wmct-copy-codex-rust/src/main.rs \n\nthe goal is to recreate williamcotton.com entirely in rust","images":[],"local_images":[],"text_elements":[]}}<br>What do we have here? It looks like a couple of lines from a JSONL file, one being an "event message" and then other being a "response item". The response item has a "turn id". Interesting.
Oh, but Codex has finally finished! I can tell it works because I load this self-same website URL of http://localhost:1234/articles/the-discoverable-evidence-of-ai-assisted-software-porting to the running instance and see the at the time burgeoning article in question.
I look at the code, and in typical fashion, the entire application is in just a single main.rs file. Reading through the code I can see that it successfully ported the key parts. It most definitely relied on the render_rich_text function, which takes a recursive Contentful-provided JSON tree of nodes and returns fully formatted HTML ready for consumption by someone's browser of choice. It's also made sure it uses HTMX! It has tests!
Let's look around a bit again.
$ cd ~/.codex<br>$ grep "I've done a cargo init in wmct-copy-codex-rust/src/main.rs" . -R<br>Binary file ./logs_2.sqlite matches<br>./sessions/2026/06/26/rollout-2026-06-26T07-04-14-019f03d0-f7d1-7931-a089-3cb1c1f627cd.jsonl:{"timestamp":"2026-06-26T12:06:00.155Z","type":"response_item","payload":{"type":"message","role":"user","content":[{"type":"input_text","text":"copy williamcotton.com - I've done a cargo init in wmct-copy-codex-rust/src/main.rs \n\nthe goal is to recreate williamcotton.com entirely in rust"}],"internal_chat_message_metadata_passthrough":{"turn_id":"019f03d2-94c2-7900-bba1-9363baf4f8d5"}}}<br>./sessions/2026/06/26/rollout-2026-06-26T07-04-14-019f03d0-f7d1-7931-a089-3cb1c1f627cd.jsonl:{"timestamp":"2026-06-26T12:06:00.155Z","type":"event_msg","payload":{"type":"user_message","message":"copy williamcotton.com - I've done a cargo init in wmct-copy-codex-rust/src/main.rs \n\nthe goal is to recreate williamcotton.com entirely in rust","images":[],"local_images":[],"text_elements":[]}}<br>Binary file ./state_5.sqlite matches<br>./history.jsonl:{"session_id":"019f03d0-f7d1-7931-a089-3cb1c1f627cd","ts":1782475560,"text":"copy williamcotton.com - I've done a cargo init in wmct-copy-codex-rust/src/main.rs \n\nthe goal is to recreate williamcotton.com entirely in rust"}<br>Binary file ./state_5.sqlite-wal matches
Interesting! We see some SQLite databases with the matches now as well. We'll take a look at those in a second. We still see our "response item" and our "event message" but we also see a match in a JSONL file that seems to contain our message history. And this one has a session id. And this session id matches part of the name of the JSONL file. Maybe it's time to take a closer look at this rollout-2026-06-26T07-04-14-019f03d0-f7d1-7931-a089-3cb1c1f627cd.jsonl file.
$ cat ./sessions/2026/06/26/rollout-2026-06-26T07-04-14-019f03d0-f7d1-7931-a089-3cb1c1f627cd.jsonl | wc<br>477 65760 1462884<br>Not a lot of lines but quite a number of characters. I take a look at the file in a text editor. I come across...