- Fix indentation
- Split awkward initializer into separate methods
- Rename credentials to passkeys
- Simplify authenticator registry loading
- Flatten nested errors under ActionPack::WebAuthn
- Set passkey current params only requests that use it
- Inline anemic methods
- Replace custom validation with ActiveModel::Validation
- Rename identity to holder in Passkey
- Rename credentials to passkeys in JS
- Extract framework library out of controllers
- Pass params hashes down to ActionPack
- Attempt to simplify public interface
- Push data decoding down to the classes representing the data
- Introduce has_passkeys
- Add CBOR bigint support
- Rename ActionPack::WebAuthn::Passkey to ActionPack::Passkey
- Add create_passkey_button helper
- Rename public-key to creation-options
- Add sign_in_with_passkey_button helper
- Dispatch events for the whole Passkey lifecycle
- Add ED25519 support
- Prevent crash on missing meta tag
- Validate resident key options
- Don't clobber existing ActionPack config options
- Validate cryptographic params
- Move CurrentWebAuthnRequest into ActionPack::Passkey
- Use ActiveModel::Attributes for Options objects
- Implement expiring challanges
- Add lifecycle events
- Extract param helpers into Request
- Add passkey_creation_options and passkey_request_options helpers
- Add create_passkey_challenge to make it easier to override the create method if needed
- Prefix all view helpers with passkey_
- Auto-include ActionPack::Passkey::Holder
- Make the passkey challange url configurable
- Add a reminder about Passkeys to the magic link email
- Use plain client data json everywhere
- Expose AAGUID and backed_up on Credentials
- Make attestation verifiers configurable
- Auto-suggest names for passkeys and show icons
* mobile/search-scrolling:
Mobile: improve search screen (#2636)
Document has_attachments in API card responses (#2523)
Change exceeding and nearing limits to account for the 1000th card (#2345)
Include concrete example motivating this module file
Simplify comment in skip-detached override
Extract detached-blob guard into its own file
Skip AnalyzeJob when blob has no attachments
Allow notice to take more inline space
Fix small documentation typos
Display the save form button on Board Settings page as a bridge button
billing.rb: destroy -> destroy!
Strip whitespace from webhook URLs
Add test for webhook URL with trailing whitespace
text-wrap: balance conflicts with -webkit-line-clamp in Safari, causing
titles to collapse into fewer lines and truncate early. Unset text-wrap
when the title is line-clamped on the board view.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>