Inside Bob · a skill
Every thread, one verdict.
Every email lands raw, his own sends included, and each thread gets one word for what it needs.
As of 28 October 2026, 14:07 IST, counted from Bob’s database and saved with this page; it does not update by itself. Items captured, counted from the lane’s own record: one per message, his own sends included because the same poll catches them, and one per attachment on the attachment lane. The poll promises a beat every five minutes and allows thirty. No sender, subject, address or file was read.
Watch it work · a real run
What it is · written by Bob
Email hides work in its own ways: long threads, attachments nobody opens, senders who are only an address. The email lane keeps every message and says, thread by thread, what is waiting.
What it does. A poll runs every five minutes and brings every new email into Bob, raw. Gmail keeps a copy of everything he sends, so the same poll catches his own replies too: both sides of a thread land in one stream, on one clock.
Each thread gets one verdict: “unread attachments” when a file has arrived whose words nothing has read; “awaiting you” when the newest message is not his; or “I sent it”.
Attachments are read three times a day, morning, midday and evening, and anything that needs his eyes is flagged.
A reply leaves through one door, after his yes, and the poll is that send’s record.
Why he has it. It came from the same ask as the WhatsApp lane, in September. In October he said the email side was still lagging behind, down to being able to see what had been sent; seeing his own sends is now part of the lane.
A sender with no name is not dropped. It is listed as unknown, because who is writing to him is a finding worth handing to him.
One real run. On the night this page was made, the bench was read at 01:59 and the poll had last landed at 01:56. Every thread on it carried one verdict.
No thread, sender or subject is shown on this page. The envelopes in the film are blank and made up.
Where it falls short. Of the email on record, 43% has a sender nobody has named yet: 26,707 of 62,519 messages, counted that night. A verdict on an unnamed thread knows less.
Attachment counts reach only the files that can be tied back to their message, so a blank verdict is not proof that nothing is attached.
It reads the one mailbox it was given. Other accounts are not in it.
See also: The WhatsApp lane · The door · Catch up
How it connects · written by Bob
Changelog · written by Bob
- 8 Oct 2026 · a6c9979The email door learned to send files: up to ten, 25 MB in all. Each sent file is saved into Bob’s record only after Gmail accepts the message, because the poll skips anything over 8 MB and would never bring it back.
- 25 Sept 2026 · b32c6ffThe poll can now be told to fetch named older messages by their Gmail id, to link attachments that had arrived without their message. Some came back; the rest were deleted from Gmail or refused by Cloudflare’s resource limit, and the cause of the refusals is still open.
- 16 Sept 2026 · 3b2ffa8The lane got a file of threads he has ruled need nothing from him, and the bench now shows those as ruled instead of waiting.
- 16 Sept 2026 · 642b9a8A ruling now takes an attachment out of the reading queue for good. The skill also names a fix still owed: one message cannot yet hold a separate reading for each of its attachments.
- 16 Sept 2026 · 9b4d170The skill now describes the two reading passes, and the bench shows how many files are waiting for human eyes. The free pass had existed for a week without ever being scheduled, so nothing had been read in that time.
- 8 Sept 2026 · f019040Two flaws found by reading what the overnight poll would do: it only looked at the newest page of mail, and it spent its work on messages it already held. It now walks every page and says so when it stops early.
- 8 Sept 2026 · 949cc8bThe email lane came home. When its old host was deleted the poll died with it, and nothing raised an alarm for 28 hours. The Worker now polls every five minutes, saves attachments, sends, and can be probed.
- 6 Sept 2026 · 7b43374A note was corrected: the Cloudflare account was measured on the free plan, not the paid one an earlier note had assumed from an accepted deploy.
Earlier: 2 more, back to 3 Sept 2026
- 3 Sept 2026 · f9453e5The giant-message path was proven: a 52 MB message streamed into storage in under 15 seconds, byte for byte the same as the copy made from the Mac. The Mac script became the fallback.
- 3 Sept 2026 · e72e424The first version of the Worker: a message too big for the old host is streamed in pieces straight into storage, so memory stays small whatever its size. It could not yet run, because the free plan’s CPU limit stopped it.
Read from the commits that touch the email-lane skill folder in his private plugin repo and the email Worker folder in his private bob repo, through the GitHub API on 28 Oct 2026. They run from 3 Sep to 8 Oct 2026. Dates are Israel time. Every change in that history is shown except 5, left out to keep other people’s names, clients and money off this page, judged on the full commit message. Some entries are left out (5), because they touched things that are not for this page.
What it runs on · written by Bob
- Starts when
- The poll starts itself every five minutes on a timer in Cloudflare, with no caller. The skill’s own check starts when he asks about mail: its bench runs as the skill loads.
- Checks
- Each run asks Gmail for the last two days, one page at a time, and skips what Bob already holds. It captures at most 20 new messages a run and says so when it stops early; the next run carries on. The bench then checks that the send door answers, when the poll last beat, and what each recent thread needs.
- Produces
- The raw message saved by its hash, a row for it in Bob’s record, and a row for each attachment up to 8 MB. The bench gives each thread of the last three days one verdict, with unread attachments first.
- Sends
- Only the email sender script, to a send door with its own secret, kept apart from the WhatsApp one. The answer says capture is pending: the proof is Gmail’s echo, picked up by a later poll. A reply is never resent to force a capture.
- If it breaks
- A failed message or attachment makes that run’s beat say not ok and is never counted as a success. A stalled poll loses the record of what he sent, as well as what arrived. The bench prints DOWN rather than nothing, and reads lateness from the lane’s own declared contract instead of inventing one.
- Limits
- Files over 8 MB are deferred, not fetched. Attachment counts reach only the files that can be tied back to their message, so a blank verdict is not proof that nothing is attached.
- Tested
- The Worker has three self-checks: header encoding, the message builder read back by Python’s mail parser, and the whole send-with-files handler against stand-ins for the database, storage and Google. The door hook has its own self-test for that route. No test for the bench itself was found.
- Code
- A skill in his private plugin and a Worker in his private bob repo. Neither is published, so the commit hashes above are for him to check.
Read from the lane’s code on 28 October 2026. No keys, addresses, ids or passwords are shown, by rule.
In his words
“We really have to, we really have to upgrade the email functionality, like, like it’s really lagging behind in terms of the addresses, in terms of the format, in terms of being able to see the emails that you’ve sent, et cetera.”
“And I actually look at the WhatsApps that you’ve sent for me and the emails that you’ve sent for me just this week. We’re doing quite well. …”
Inside Bob · The door · Catch up · Preflight · Meeting pour · The build gate · Attest · Deeper · The compass · Peek · The menus · The WhatsApp lane · The email lane · Mobile speak · The ontology · The depth gate · The hour weave · YouTube · The meeting lane · The client skill
Quotes are Mordechai’s, whole and dated. Everything marked “written by Bob” is the machine explaining, from the record, as of October 2026. Nobody else is named.