fix(vibesuite): prevent logged-in crash when learnedSkills is not an array
The progress-hydration effect iterated accountData.learnedSkills with
for...of, guarded only by ?? [], which catches null/undefined but not
other non-array shapes returned by /api/users/me. A non-iterable value
threw "is not iterable" during render, blanking the whole page for
logged-in users while guests (accountData null) were unaffected. Guard
with Array.isArray so only real arrays are hydrated.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>#160
Merged