Rebuilt embed-example.html with inline, full-screen, and popup examples.
Fixed host-page/frame scrolling and contained reply navigation.
New logins now transactionally replace prior sessions; displaced clients
return to login.
Added per-user session/IP locking with automatic SQLite migration.
Added modular Spam Control dashboard for locks, honeypot, and CAPTCHA
settings.
Moved CAPTCHA controls out of Plans & Platform.
Records one finalized WebM instead of 250ms fragments.
Waits for final audio data before releasing the microphone.
Handles startup/finalization failures cleanly.
Bumped frontend cache version to .8.
Verified JavaScript syntax, JSON, browser rendering, and no console
errors. Existing uploaded clips remain unchanged. A real microphone test
wasn’t available in the browser runner.
References: MDN MediaRecorder, Chromium WebM metadata issue.
Per-tier audio bitrate: Free 64, Plus 96, Pro 128 kbps.
Configurable text/voice reply threads and depth.
Registration/login-only honeypot and internal CAPTCHA.
Optional Google reCAPTCHA v2/v3 with server verification.
Archive/export support for replies and bitrate.
Dashboard controls for all settings.
Verified JavaScript, JSON, SQLite migrations, desktop/mobile UI, and
browser console. Native PHP lint was unavailable because PHP is not
installed.
Google implementation follows Siteverify and reCAPTCHA v3.
Sent messages wait for polling to catch up before rendering.
Missing interleaved messages cannot appear above later ones.
Messages sort by server timestamp, then ID.
Timestamps are assigned atomically during SQLite insertion.
Client updated to 20260609.5.
One ID-keyed message ledger now handles sends and polls.
Messages are always sorted by server ID, latest at bottom.
Duplicate DOM rows and voice players are removed.
Poll cursors advance only from validated received messages.
Voice autoplay queues each received clip once.
Added exact user_id ownership tracking.
Cache-busted client to 20260609.4.
Groups is fully removed:
No homepage navigation, Account feature, tier setting, API, or client
code.
Legacy group tables, entitlements, messages, voice files, and config are
purged automatically.
New cache-busted client: cyberchat-app.js?v=20260609.3.
Browser and SQLite migration tests passed with no console errors.