You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<liclassName="flex items-start gap-2"><spanclassName="text-emerald-500">▸</span><strong>Array fields with media items no longer crash the form</strong> — Collections configured as <code>{`type: 'array'`}</code> with <code>{`items: { type: 'media' }`}</code> no longer break the new-content form with <code>TypeError: url.toLowerCase is not a function</code> (#838)</li>
97
+
<liclassName="flex items-start gap-2"><spanclassName="text-emerald-500">▸</span><strong>AuthManager.verifyToken usable from custom Hono routes</strong> — Token verification works outside the built-in middleware (#819)</li>
98
+
<liclassName="flex items-start gap-2"><spanclassName="text-emerald-500">▸</span><strong>SVG uploads no longer fail on D1</strong> — Use <code>null</code> instead of <code>undefined</code> for SVG metadata inserts (#818)</li>
<spanclassName="text-gray-700 dark:text-gray-300"><strong>Custom user-profile fields in auth responses</strong> — <code>/auth/me</code> and <code>/auth/otp/verify</code> now include fields registered via <code>defineUserProfile()</code>, so apps can gate UI on plan/tier/etc. without a second roundtrip</span>
489
+
<spanclassName="text-gray-700 dark:text-gray-300"><strong>Admin code export modal for collections</strong> — Generate ready-to-use TypeScript collection config code directly from the admin UI</span>
<spanclassName="text-gray-700 dark:text-gray-300"><strong>Array fields with media items no longer crash the form</strong> — Collections configured as <code>{`type: 'array'`}</code> with <code>{`items: { type: 'media' }`}</code> now load cleanly in the new-content form</span>
<spanclassName="text-gray-700 dark:text-gray-300"><strong>AuthManager.verifyToken usable from custom Hono routes</strong>, SVG uploads no longer fail on D1, and the <code>create-sonicjs</code> starter uses the <code>MEDIA_BUCKET</code> binding name</span>
<spanclassName="text-gray-700 dark:text-gray-300"><strong>Custom user-profile fields in auth responses</strong> — <code>/auth/me</code> and <code>/auth/otp/verify</code> now include fields registered via <code>defineUserProfile()</code>, so apps can gate UI on plan/tier/etc. without a second roundtrip</span>
<spanclassName="text-gray-700 dark:text-gray-300"><strong>Richer OTP verify payload</strong> — also returns <code>username</code>, <code>first_name</code>, <code>last_name</code>, and <code>created_at</code>, and no longer leaks the internal <code>is_active</code> flag</span>
494
516
</div>
495
517
</div>
@@ -639,25 +661,6 @@ Join thousands of developers building the future of web APIs
0 commit comments