Petal Pro 4.1.0 - Passkeys and persistent AI chat
Petal Pro 4.1.0 ships passkeys (WebAuthn), persistent AI admin chat history, and stricter mix quality checks with credo --strict and dialyzer.
- Name
- Matt
- @
10 days ago
Petal Pro 4.1.0 is out. Two things I’ve been wanting to ship for a while: passkeys and persistent AI chat history.
Passkeys
Most “security” features are friction in disguise. Passkeys are the exception. They’re faster than a password and more secure at the same time.
Here’s how they work: your device (phone, laptop, hardware key) generates a cryptographic key pair. The private key never leaves your device. When you log in, your device signs a challenge using that key - no password ever goes over the wire.
The phishing angle is the part that doesn’t get enough attention. With a password, a convincing fake login page can steal your credentials. Passkeys don’t work that way. The credential is bound to your exact domain (petal.build, not peta1.build), so a fake site can’t intercept anything. The browser just refuses.
In Petal Pro 4.1.0, passkeys work in two modes:
- Primary login - passwordless from the start. Face ID, Touch ID, or a hardware key is all you need.
- 2FA on top of a password - add a passkey as a second factor for accounts that already have a password.
Users manage their passkeys from the Security section of account settings. You can register multiple devices (phone + laptop) and name each one. Revoke any of them individually.
If you’re building something where account security matters - and most SaaS apps do - passkeys are worth turning on.
Persistent AI chat history
The AI admin chat now saves conversations to the database. Previously, every restart wiped the slate. Now your conversations persist across deploys, restarts, whatever.
The sidebar shows recent conversations so you can pick up where you left off. Nothing fancy - just the obvious thing that should have been there from the start.
Stricter quality checks
mix quality now runs credo --strict and dialyzer. If your project was passing quality checks before and suddenly isn’t, that’s probably why. Tightening this up now while the codebase is young is the right call.
Upgrading
See the upgrade guide for step-by-step instructions. The passkey setup requires a database migration and a small config addition - it’s covered there.
Full changelog is at petal.build/petal-pro/changelog.