19 Commits

Author SHA1 Message Date
Ty Clifford 36c488ca1e - Implemented.
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.
v2.2.0
2026-06-09 18:54:25 -04:00
Ty Clifford 5ca55bf7c1 - Playback: Fixed future Chrome recordings in cyberchat-app.js (line 865):
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.
2026-06-09 11:19:28 -04:00
Ty Clifford eb57cde99f - Implemented across bootstrap.php, chat frontend, and dashboard:
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.
2026-06-09 10:59:58 -04:00
Ty Clifford 88805057cc - Changelog, Readme, version 2026-06-09 05:29:15 -04:00
Ty Clifford 5c1d236322 - Updated README 2026-06-09 05:01:30 -04:00
Ty Clifford 6217a216a7 - Implemented.
Safari/iPhone recording now uses MP4/AAC when WebM is unavailable.
WebM remains the default when supported and FFmpeg is disabled.
Added optional FFmpeg profiles: recommended M4A/AAC-LC or requested 
MP4/H.264 + AAC.
Added MIME-aware, playsinline audio playback.
Added dashboard controls under Plans & Platform → Voice Transcoding / 
FFmpeg.
Added Apache/Nginx media MIME configuration and documentation.
Core implementation: voice_transcoder.php (line 72), messages.php (line 
86), and cyberchat-app.js (line 635).
2026-06-09 02:21:42 -04:00
Ty Clifford ae0fb45c48 - Fixed the actual race:
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.
2026-06-09 01:35:19 -04:00
Ty Clifford 195f3fa56d - Fixed the polling/display system:
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.
2026-06-09 01:01:22 -04:00
Ty Clifford a1971f9515 -
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.
2026-06-09 00:16:32 -04:00
Ty Clifford ccdbc47642 - Implemented.
Replaced polling with a single queued cursor worker, timeout recovery, 
backoff, deduplication, chronological insertion, and capped DOM history 
in cyberchat-v4.js.
Removed Groups UI, API, configuration, tier features, admin controls, 
and archive exposure.
Legacy group records remain stored but inaccessible.
Added configurable polling limits in config.json.
2026-06-08 23:28:42 -04:00
Ty Clifford ef7a9a330f -
Fixed polling after voice/text sends.

Changes include:

Stalled polls abort and retry automatically.
Polling now schedules after each completed request.
Local sends no longer advance the server cursor and skip interleaved 
messages.
Sends trigger immediate reconciliation.
API requests bypass browser caches.
2026-06-08 17:25:49 -04:00
Ty Clifford 7214bb69f9 - Updated each tier with:
Enable groups for this tier toggle.
Maximum People Per Group input.
Minimum 2, including the group owner.
2026-06-08 16:59:53 -04:00
Ty Clifford de8ec43aa4 - Fixed. The missing controls now appear at:
Plans & Platform > Plans, Prices & Entitlements > Groups Available for 
each tier.
Config > Feature Availability > Groups Enabled as the global master 
switch.
2026-06-08 16:47:02 -04:00
Ty Clifford 2881a3b338 - Groups are now globally configurable under Admin > Plans & Platform > Group Availability.
When disabled:

Group navigation and channel selector are hidden.
Group API operations are blocked.
Active sessions update automatically.
Existing groups and messages remain preserved.
Static and browser tests passed with no console errors.
2026-06-08 16:21:33 -04:00
Ty Clifford d0e4a870be - Configurable tier-based Auto Play with a saved user toggle.
Admin tier assignment without payment via Users > Edit > Tier Override.
Fixed live group membership refresh, polling, unread indicators, and 
incoming voice clip population.
Added asset cache busting so clients receive the fixes immediately.
2026-06-08 15:59:04 -04:00
Ty Clifford 063b8dc3e8 - Voice enhancements, user management, payment method 2026-06-08 15:44:15 -04:00
Ty Clifford 9e3ff61eb7 - 2026-06-08 12:28:55 -04:00
Ty Clifford 2e5c42cc89 - 2026-06-08 12:28:03 -04:00
Ty Clifford 33a176f18e v2.0.0 2026-06-08 12:26:08 -04:00