Changelog

June 3, 2026

  • Rich HTML outputs now render — Altair, Bokeh, folium, styled DataFrames, and great_tables show on their record page instead of a plain text dump. Anything that displays as HTML in Jupyter is captured automatically; interactive script-driven outputs render behind a one-click gesture in an isolated sandbox

May 21, 2026

  • private visibility now requires signing in. Anonymous accounts can still use unlisted (the default) for a hard-to-guess shareable link
  • One-click "Publish to profile" button on your own unlisted records
  • Record descriptions show under the title on your profile

April 24, 2026

  • Pasting a record or profile URL into Slack, iMessage, LinkedIn, or Discord now shows a rich preview with chart thumbnail, title, and creator
  • Plotly charts get rich previews too — install with pip install getskua[plotly]
  • skua.record() result metadata now includes session_id, so notebook code can build the collection URL directly
  • Records with retention over two years no longer show an "Expires in 24 years" line

April 23, 2026

  • Terminology cleanup: legal, error, and shared-link pages now consistently say "record" (was "snapshot" / "finding")

April 22, 2026

  • skua.record() rejects empty str, dict, and list inputs with a ValidationError
  • Profile avatars are now unique gradient blobs (were initial letters)
  • Visibility selector redesigned as a dropdown with icons, descriptions, and keyboard navigation
  • Profile records list: +N tag chip reveals hidden tags on hover
  • Verifying your email lands you on your profile in owner view
  • Trust page rewritten for the three-way visibility model: Public, Unlisted, Private
  • skua.status() works without prior setup — call it at the top of a fresh notebook to check auth state

April 21, 2026

  • skua.record() is the primary one-liner. skua.snap() stays as an alias. URLs use /r/… (old /s/… links redirect)
  • Explicit sessions: skua.init("<name>") names the bucket your recordings share a URL with. Same (session, title) updates in place
  • Owner dashboard on your profile: group recordings by Session, Type, Date, or Visibility — with Today / This week / This month / Earlier buckets
  • Inline delete — click trash, confirm in place. No more modal dialogs
  • Expiration warning only goes amber within a week of expiring
  • Anonymous recordings now show alongside verified ones on your profile

April 20, 2026

  • Inline visibility edit — click the pill on your own recording to switch between Public, Unlisted, Private
  • skua.login() recovers gracefully if you clicked the email link after the verification window expired
  • Tags now show on the profile list on mobile
  • Re-recorded items show an "Updated" date alongside the original "Created" date

April 19, 2026

  • Login redesign — verification opens in your browser, with a friendlier message when email is over capacity
  • Three-way visibility model: every recording is Public, Unlisted, or Private
  • Gmail's link prefetcher no longer burns single-use verification tokens before you click them
  • Raw recording URLs come straight from the API — pd.read_csv(url) just works
  • Creator username exposed in SnapResult.metadata

April 18, 2026

  • skua.open_profile() — one terminal call, browser opens to your profile already logged in
  • Profile pages show an "Owner view" badge with inline controls when you're signed in

April 17, 2026

  • Privacy-preserving pageview analytics — no cookies, no third-party trackers

March 28, 2026

  • First blog post — "Your best chart is the one nobody saw"
  • Trust page — how Skua handles your data
  • Plotly figures render as fully interactive charts
  • CLI --tags flag: skua record chart.png --tags growth,q3

March 24, 2026

  • skua.snap() as the primary one-liner (skua.record() kept as an alias)
  • CLI for sharing files from the terminal: skua snap chart.png --title "Q3 Revenue"
  • Recording URLs use /s/ instead of /f/ (old links redirect)
  • llms.txt for AI discoverability — LLMs can find Skua in their tool search

March 10, 2026

  • DataFrame tables auto-size columns to content, with drag-to-resize
  • Sticky index column stays visible when scrolling wide tables
  • Click a column header icon to sort tables

February 28, 2026

  • Docs and home-page examples show real recording URLs

February 14, 2026

  • Python dict and NumPy arrays render as formatted tables