Skip to content

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 04 Apr 21:27
· 58 commits to 4b14d403a0a7876df56fcc19eed23ca2dab73872 since this release

What's New

Features

  • Title field -- optional context label shown to recipients before reveal ("Database credentials for staging")
  • Dark/light theme toggle -- defaults to system preference, manual override persisted in localStorage
  • Burn confirmation animation -- smooth fade transition when revealing secrets
  • Custom burn message -- sender sets a message shown after the note is destroyed
  • Configurable view count -- non-password notes can be viewed 1-5 times before burning (default 1)
  • Usage stats -- counter at /api/stats, shown on create page ("N secrets shared securely")
  • IP restriction -- limit note access to specific IPv4/IPv6 addresses or CIDR ranges
  • Copy secret button -- one-click copy of the revealed plaintext
  • Enter key submission -- pressing Enter in the password field triggers reveal

Security

  • Fixed race condition on non-password note retrieval (was doing two KV reads, now single atomic getAndDeleteNote)
  • Fixed TTL reset on password attempts (stores absolute expiration, preserves original TTL)
  • Fixed XSS vectors in inline scripts (JSON.stringify for interpolated values)
  • Proper x-forwarded-for parsing (first IP from comma-separated list)
  • UUID validation on reveal page route

Code Quality

  • 59 tests (up from 20 in v1.0.0)
  • Typed middleware (MiddlewareHandler instead of any)
  • Added package.json scripts (dev, test, typecheck, deploy)
  • Accessibility improvements (aria-label, focus-visible on theme toggle)
  • CSP-compliant styling (no inline style attributes)

CLI

Download gremlin-secret.sh or the Rust binary for your platform from the assets below.