bmersereau ↗ analysis ↗ GitHub bmersereau/mike
A security-and-reliability-focused fork of Mike, where bmersereau is methodically hardening the backend one quiet footgun at a time.
This fork reads less like a product reimagining and more like a sustained security audit in motion. bmersereau is working through Mike's backend the way a careful reviewer would: closing auth bypasses, tightening how user API keys are stored, putting expiries on download links, capping runaway streams and bulk downloads, and forcing the system to fail loudly when configuration is missing rather than silently fall open.
There's no rebrand here and no obvious niche pivot. What you see instead is a consistent posture - treat ambiguous defaults as bugs, treat reused secrets as bugs, treat unbounded queries as bugs - applied across authentication, encryption, file storage, sharing, and logging. A GDPR-flavoured log cleanup and a draft contributor guide hint at someone thinking about how Mike would behave in a more regulated, more collaborative setting.
If you're evaluating Mike for somewhere that cares about its security floor, this is the fork worth reading. Click through to GitHub to see how much of it has actually landed versus been proposed.
What's in it
- Backend security hardening A running thread of fixes across authentication, encryption, signed download links, and a timing-attack closure - small patches that collectively raise the floor.
- Fail-loud configuration Missing or reused secrets are treated as startup errors rather than silent fallbacks, so misconfigured deployments refuse to boot instead of quietly running insecure.
- Stronger credential storage User API keys move to a per-row salted derivation, so compromising one stored credential no longer compromises the rest.
- Bounded resource usage Chat listings get paginated, bulk zip downloads get capped, and stalled chat streams get a hard timeout - closing a cluster of reliability complaints.
- Upload and browser hardening Document uploads, content security policy, and an unpatched XML dependency get addressed together to shrink the XSS and malicious-upload surface.
- Quieter, more compliant logs Edit-resolution logging is trimmed of identifiable data, nudging the system toward GDPR-style data minimization.
- Contributor onboarding A draft contributing guide tries to write down the working norms a newcomer would otherwise have to absorb by osmosis.
Direction
securityinfrastructurecompliance
Activity
bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub bmersereau ↗ analysis ↗ GitHub Show 14 more
Threads of work (detailed view)
bmersereau drafts the house rules for Mike
A proposed contributor guide tries to turn Mike's emerging working norms into something a newcomer can actually read.
bmersereau tightens the bolts on Mike's user table
A schema cleanup turns loose text IDs into real foreign keys - and quietly decides what happens to shared work when a user walks away.
bmersereau puts a 3-minute leash on stalled chat streams
When the model hangs, the connection now dies cleanly instead of dangling forever.
bmersereau caps the bulk download before it bites back
A tight server-side limit on how many documents one user can zip up in a single request.
bmersereau puts a ceiling on runaway chat queries
A small but pointed fix: the chat list endpoint stops handing back everything by default.
bmersereau tightens the screws on Mike's file storage
A small, pointed backend cleanup that closes a cluster of reliability complaints around how Mike handles uploaded documents.
bmersereau tries to stop a backend secret from doing two jobs
A proposed hardening would have forced the user-API-key encryption secret to stand on its own - but it never landed.
bmersereau closes a timing-attack loophole in Mike's download tokens
A security helper meant to be tamper-proof was leaking a tiny clue about its inputs - bmersereau patched the leak before anyone could use it.
bmersereau strips identifiable logs from Mike's edit handler
A small cleanup that doubles as a GDPR posture fix - and surfaces a quieter bug underneath.
bmersereau fixes the silent failure in project sharing
Three bug reports traced back to the same problem: shared access depended on how an email happened to be capitalised on its way in.
bmersereau hardens Mike against three open security holes at once
One pull request takes aim at malicious uploads, weak browser defenses, and unpatched XML library bugs.
bmersereau puts a clock on download links in willchen96's Mike
Shareable file links now expire by default, closing a long-lived exposure if the signing secret ever leaks.
bmersereau hardens how Mike stores user API keys
A quiet but meaningful security upgrade: cracking one stored credential no longer cracks them all.
bmersereau makes the backend fail loud on secret reuse
A quiet config footgun in the Mike backend becomes a startup-time refusal.
bmersereau tries to close a fail-open auth hole in Mike
A proposed fix would have stopped missing config from quietly switching off authentication on the server.
Pull requests (detailed view)
🟢 Open (15)
bmersereau · opened 13d ago bmersereau · opened 13d ago bmersereau · opened 13d ago bmersereau · opened 13d ago bmersereau · opened 13d ago bmersereau · opened 13d ago bmersereau · opened 13d ago bmersereau · opened 13d ago bmersereau · opened 14d ago bmersereau · opened 14d ago Show 5 more open
bmersereau · opened 14d ago bmersereau · opened 14d ago bmersereau · opened 14d ago bmersereau · opened 14d ago bmersereau · opened 14d ago ⛔ Closed without merge (2)
bmersereau · opened 14d ago · closed 11d ago bmersereau · opened 13d ago · closed 11d ago