🗂️ Crafty Syntax Changelog
Crafty Syntax → Sales Syntax → Crafty Syntax → LUPOPEDIA upgrade history (live help platform).
Latest Release: 3.7.5 (current rebrand release) | Legacy Baseline: 3.7.3 (Sales Syntax hardening baseline)
Upgrade Reminder: Sales Syntax 3.7.0 installs should apply the 3.7.3 hardening release (now Crafty Syntax 3.7.5) before migrating into LUPOPEDIA. PORTUNUS flags legacy installs automatically.
Support & Resources: Help this modernization effort by visiting the
LUPOPEDIA Patreon.
For assistance, head to the Support center.
Need step-by-step guidance? Open the Crafty Syntax How-To guide.
--- title: CRAFTY_SYNTAX_CHANGELOG.md agent_username: wolfie date_created: 2025-11-12 last_modified: 2025-11-14 status: published onchannel: 1 tags: [SYSTEM, DOCUMENTATION, LEGACY, CHANGELOG] collections: [WHO, WHAT, WHERE, WHEN, WHY, HOW, HELP] in_this_file_we_have: [OVERVIEW, VERSION_3_7_4, LEGACY_REFERENCE] superpositionally: ["FILEID_CRAFTY_SYNTAX_CHANGELOG"] ---
Crafty Syntax Changelog (Rebrand of Sales Syntax Lineage)
The 3.7.x branch that shipped as “Sales Syntax” now returns to the original Crafty Syntax name. This changelog documents the rebranded releases and points to the historical Sales Syntax notes that remain accurate for prior versions. License: GPL v3.0 + Apache 2.0 dual licensing under LUPOPEDIA LLC Program Scope: Human operator live help with layered popups, channel routing, canned replies, and visitor tracking.VERSION_3_7_5 — 2025-11-14 (Livehelp JS Transparency & Icon Refresh)
Highlights
- Finalized the “local embeds only” policy from 3.7.x clarifying that every Crafty Syntax deploy must host its own tracking assets to meet 2025 privacy baselines.
- Removed the last obfuscated powered-by tag hiding in
livehelp_js.php; the credit line now appears as a normal HTML anchor so auditors (and operators) can see exactly what ships in the bundle. - Added a trailing
csrepeat_()invocation tolivehelp_js.phpso the floating help icon re-checks operator presence and swaps artwork even after the visitor widget has been idle—most noticeable when the operator drops offline mid-session. - Repacked the 3.7.5 ZIP to include the clean powered-by link plus the extra refresh call; anyone who grabbed the first 3.7.4 build on 2025‑11‑12 should download the updated archive dated late 2025‑11‑12 or newer.
- Release published: Distributed as
crafty_syntax-3.7.5.zip; supersedes the late 3.7.4 refresh so partners have one canonical bundle. - Upgrade guidance: If you previously patched to the early 3.7.4 ZIP, copy
livehelp_js.php(and the updated scratchpad copy) from 3.7.5 so embeds honor the privacy+branding changes without a full reinstall. - Reissued the 3.7.3 codebase under the restored Crafty Syntax brand; binaries now publish as
crafty_syntax-3.7.4.zip. - Packaged artefact lives at
public/craftysyntax-3.7.4.zipalongside the archivedpublic/salessyntax-3.7.3.zip. - Updated headers, about boxes, installer copy, and powered-by strings to read “Crafty Syntax 3.7.4 (formerly Sales Syntax 3.7.3).”
- Refreshed the default login branding: swapped the package logo (
images/logo.png) and updatedlogin.phpartwork/labels to show the Crafty Syntax identity. - Restored the
2025_modern/operator.jpgasset that was missing from the 3.7.3 package so the modern theme displays correctly in 3.7.4. - Corrected the quick-upgrade path in
setup.phpto open a database connection before updatinglivehelp_config.version, ensuring the script actually writes3.7.4during the drop-in upgrade. - Generated fresh MD5/SHA256 checksums for both the rebranded package and the archived Sales Syntax bundle so operators can verify integrity.
- Documented the rename across
public/what_was_crafty_syntax.php,public/crafty_syntax_evolved.php, and the Crafty Syntax changelog alias. - Notified auto-installer partners (Fantastico, Softaculous, Installatron) that the package is a branding update only—no schema or code changes.
- Release published: Use
crafty_syntax-3.7.4.zipfor new installs or upgrades;salessyntax-3.7.3.zipremains in/archive/releases/for historical reference. - Upgrade guidance: Existing Sales Syntax 3.7.3 installs can drop in the rebranded files or continue running unchanged—functionality is identical. ---
- Removed the legacy
offsetcolumn from fresh installs sosetup.phpno longer creates or references the misspelled field that broke MySQL import checks. - Added a tolerant loader for existing databases: if a config row still exposes
offest, the runtime maps it tooffseton the fly and falls back to PHP’s active timezone when neither value is present. - Replaced the admin “time offset” dropdown with a read-only notice that shows either the preserved legacy value or the resolved timezone identifier, avoiding undefined-index warnings during upgrades.
- Mirrored the fixes into the redistributed
/public/salessyntaxsnapshot so hosted customers and LUPOPEDIA deployments stay aligned. - Tightened the HTML embed generator (
htmltags.php) to display a same-domain placement notice, preventing remote-site integration issues uncovered during shared-host testing. - Tracking now requires local embeds only. To align with 2025 privacy expectations, remote cross-domain tracking was removed in 3.7.x. All installations must use relative paths on the host domain so visitors are not tracked on third-party sites.
- Sanitized mobile/iPhone settings updates (
cellphone,sessiontimeout) withfilter_sqlso chat operators cannot inject SQL through the quick settings forms. - Escaped the
seeparameter inadmin_connect.phpbefore injecting it into the XMLHTTP redirect URL, closing the reflected XSS the legacy admin widget relied on. - Hardened
setup.phpredisplays by wrapping installer inputs incslh_escape/rawurlencodeand swapping the column-existence checks over to shared-host-friendlySHOW COLUMNSqueries. - Added
scripts/security_sweep.pyso maintainers can automatically flag risky patterns (eval, dynamic includes, raw$_REQUEST, unescaped$UNTRUSTEDoutput) before shipping future patches. - Completed fresh-install and upgrade validation on Windows (XAMPP) and Linux shared hosts to confirm timezone fallbacks, security fixes, and language loader updates behave consistently.
- Restored operator desktop cues:
admin_users_refresh.phpnow escalates focus through nested frames (window.parent.bottomof → parent → top → self) before falling back to an alert, and wraps HTML5/EMBED chat sounds with autoplay-promise catches so operators hear the bell even when browsers block background playback. - Standardized all “powered by” links to
https://lupopedia.com/?utm_source=poweredby&utm_campaign=poweredby, removing obfuscation and legacy domains so embeds point at the LUPOPEDIA hub. - Fixed
leavemessage.phpmail delivery: corrected the status update query, ensured department contact emails are honored, and fall back toowner_emailso contact alerts always send when visitors leave a message.
---
- Shared-hosting verification completed on Windows and Linux environments; 3.7.3 is cleared for packaging and distribution to hosted customers.
- Patch released: Tagged as 3.7.3 within 48 hours to unblock installers seeing the
offesttypo and shore up shared-host security. - Packaging: Prepare and distribute the refreshed ZIP bundle to partners; continue monitoring support tickets for any residual timezone edge cases ahead of the planned timezone-schema audit during LUPOPEDIA rollout.
- Verification: Final security_sweep.py run, admin console debug regression tests, and fresh install/upgrade retests all pass with no new findings; package is ready for delivery. ---
- Rebased the working tree on the original 3.7.1 payload (
public/salessyntax/) so all new fixes start from the shipped, unmodified theme. - Retired the legacy
filter_html()sanitizer and swapped every call site to native escaping helpers (cslh_escape,htmlspecialchars,rawurlencode) to eliminate double-sanitization flags raised by Installatron. - Modernized the visitor typing beacon in
livehelp.php(and mirrored scripts) to preferfetch/XMLHttpRequestwhile keeping the<img>/GETFormfallbacks for browsers stuck in 2005. - Removed obsolete upgrade prompts (
pp.gif,gopro.png, “Go Pro” copy) now that unbranded features ship by default. - Updated footer credits across operator/admin pages to read:
Sales Syntax Live Help 2003 - 2025 ( a product of Lupopedia LLC ). - Added an opt-in
2025_moderntheme (responsive layout, flex-based header/footer, refreshed offline/connecting screens) without disturbing existing templates. - Mobile and iPhone operator consoles now submit chats through modern
fetchwithGETForm2fallback, keeping thepostmessageworkflow intact for legacy browsers. - Logged the remediation plan in
plan_for_sales_syntax_3_7_2.mdso future patches stay aligned with Installatron requirements. - Introduced hosted documentation stubs (
howto,qa,updates) and new public landing pages (account.php,support.php,directory.php,members.php). Added an operator-facing notice onscratch.phpexplaining why the 3.7.2 release preserves the 2012-era UI (to keep diff baselines intact) and how LUPOPEDIA 1.0.0 will layer in modern tooling plus AI-driven migration of community customizations. - Refreshed
javascript/xmlhttp.jsto use a sharedfetchwrapper with automatic fallbacks to the legacyGETFormhelpers, keeping polling/typing scripts functional on older browsers while modern installs run viafetch. - Packaging/testing: preparing the clean 3.7.2 ZIP and verifying shared-host installs with the modernized AJAX pathways.
- Updated configuration helpers so generated URLs drop the domain entirely (always relative paths). This avoids mixed-content issues—legacy installs that were
http://now call AJAX endpoints over the current scheme (https://when needed) without breaking. - Release in preparation: Regression testing and packaging still pending before tagging 3.7.2.
- Next steps: Mirror the modern typing helpers into mobile/iPhone/external clients, refresh shared
xmlhttp.js, and produce Installatron-ready ZIP + changelog.
---
- Hardened every public visitor entry point (
livehelp.php,user_connect.php,user_chat_*,user_top.php,user_qa.php) to reuse already-sanitized department/tab/offset integers before building redirects, query strings, or embedded JavaScript. - Sanitized visitor-supplied hidden fields in lost-password and chat-color forms so remote widgets and password-reset flows cannot inject markup when rendered off-site.
- Refreshed the powered-by link in
livehelp_js.php, allowing brand swaps to point directly to LUPOPEDIA while preserving the optional creditline toggle. - Expanded the session fingerprinting ladder (
get_ipaddress) to honor modern proxy/CDN headers, preferring public IPs and falling back safely so legacy installs maintain tracking accuracy. - Packaged the release as the LUPOPEDIA migration baseline: the core now ships with the full Sales Syntax codebase, layered-pop-up heritage, and 3.7.1 security posture.
- Added LUPOPEDIA-side scaffolding:
livehelpsparent table (Migration 1071), CSV export guidance, and updated public docs (public/crafty_syntax_evolved.php,public/what_was_crafty_syntax.php) so operators understand the upgrade path. - Apply 3.7.1 (latest GPL release) before migrating. PORTUNUS and LUPO warn or block imports when
livehelps.version = '3.7.0'. - After patching, regenerate CSV snapshots so
livehelps_rows.csvreflects the sanitized schema andversion,3.7.1.
---
- Baked the previously “pro/unbranded” option into core so powered-by links can be removed directly from the HTML generator or department settings.
- Completed a PHP 8 readiness pass: converted all
each()loops toforeach, normalizedHeader()→header(), supplied missing response-code parameters, ensuredmktime()casts, and added default values for undefined variables encountered in empty result sets. - Hardened runtime safety by checking for ghost sessions before dereferencing arrays, assigning defaults for
$hide, and replacing the legacybrowser_infoclass with the newerBrowserhelper. - Moved
CTabBoxinclude calls intodata.php, repaired department HTML generation to use the correct ordered arrays, and refreshed the hour parameter handling to avoid null notices under PHP 8. - File footprint: essentially every PHP asset was touched (
FILES CHANGED: ALL OF THEM), with no schema alterations (DATABASE ALTERATIONS: NONE). - Legacy baseline: Still functional but missing the minor reflected XSS fixes and documentation polish delivered in 3.7.1.
- Upgrade path: Apply 3.7.1 (latest GPL release) before migrating into LUPOPEDIA; see
md_files/1_wolfie/livehelp_module.mdandpublic/crafty_syntax_evolved.phpfor patch workflow.
---
- Patched SQL injection spots tied to
$aftertimeand$typeof, coercing inputs withintval()and adding guard clauses around the write-div handler. - Smoothed out the “bubble window” template: adjusted window dimensions, ensured chat sounds trigger when visitors request a session, and tidied department refresh logic.
- Updated live help admin refresh code (
admin_users_refresh.php,admin_users_xmlhttp.php) and core helpers (functions.php,livehelp_js.php,iphone/functions.php) to keep real-time views synchronized. - No schema changes required (
DATABASE ALTERATIONS: NONE); recommended as the minimum security level for pre-3.7 installations still on PHP 7-era hosting.
---
- Introduced a dedicated leads tab plus offline layer invites so operators can capture visitor details—even when no human is online.
- Expanded tooling (
autolead.php,autoinvite.php,sendemail.php,createemail.php,leads.php) and refreshed navigation/admin views to surface the new workflow. - Added
offlineflag tolivehelp_autoinviteand created the supportinglivehelp_leads,livehelp_emails, andlivehelp_emailquetables for long-term contact management. - Bundled themed assets (
layer_invites/layer-Help_buttonoffline.*) so the invite CTA matches the extended lead collection experience. - Represents the start of the CRM-oriented roadmap; later releases (3.7.x) build on this foundation while resolving security gaps and modernizing the runtime. ---
- Rolled out a visual refresh (new logo, login background) and exposed tabs for CRM linkage, support tickets, lead management, and operator wall posts.
- Updated both MySQL and MySQLi drivers (
class/mysql_db.php,class/mysqli_db.php, plus mobile variants) and tuned setup/config scripts to support the expanded modules. - Served as the UX bridge into the CRM era; later 3.6.x releases layered in lead databases and offline invites. ---
- Converted the legacy
mysql_*calls tomysqli_*, providing PHP 5/7 compatibility without altering the surrounding business logic. - Focused change set around database abstraction classes and supporting helpers; no schema adjustments required.
- Required baseline for any installation targeting PHP 5.6+ or modern shared hosting environments. ---
- Switched the default alert sound implementation to HTML5
<audio>(with fallback options for legacy browsers), reducing QuickTime/plug‑in dependencies. - Touched core notification scripts to ensure audio playback continuity across operator consoles.
- Recommended upgrade for operators relying on browser-based audio cues; no database changes. ---
- Updated system messaging and configuration references to align with the lupopedia.com domain transition and security posture.
- Prepared the codebase for the upcoming CRM and lead-management additions that landed in 3.5.4+.
- Acts as the housekeeping release before the CRM-focused 3.5.4 refresh. ---
- Added CRM capture tools so visitor data can be collected even when operators are offline.
- Integrated the new workflow across setup pages and reporting dashboards.
- Marks the first appearance of CRM hooks that later 3.5.x/3.6.x builds expand into full lead management. ---
- Delivered an unbranded variant of 3.4.4 so customers could run live help without the standard credit line.
- Shares code with 3.4.4; use when brand-neutral deployments are required. ---
- Packaged 3.4.4 for mobile environments, ensuring templates and assets render cleanly on phones and tablets.
- Recommended for teams targeting mobile-first deployments; otherwise functionally identical to 3.4.4. ---
- Fixed two very minor vulnerabilities: remote file include exposure in
admin.php(operator scope) and full path disclosure inxmlhttp.php. - Updated template logic and helper scripts to enforce stricter page routing rules and sanitize
whattodoparameters. - Required baseline for any 3.4.x installation; patch instructions appear in the original changelog (manual edits plus guard clauses). ---
- Resolved bar-chart duplication in visitor analytics when departments overlapped.
- Corrected the version indicator so the UI shows the proper release number.
- Light maintenance build; ensures analytics dashboards remain accurate before the 3.4.4 security patch. ---
- Corrected department-aware pagination so the “data” tab no longer shows duplicate bars when browsing visitors.
- Patched a cross-site scripting issue in
livehelp_js.php; accompanying updates landed insetup.php,data_visits.php, andnavigation.php. - Security-sensitive build; roll up critical fixes before extending visitor analytics further. ---
- Published the “no backlink” (3.3.8) and “mobile” (3.3.7) variants of the 3.3.6 codebase for customers needing brand-free or mobile-optimized deployments.
- Functionally equivalent to 3.3.6 aside from packaging differences. ---
- Fixed operator creation so display names show correctly on first login and added the
maxrequests/deny agentsthrottles for bots. - Enhanced icon credit styling and department selection within visitor/referer data tabs.
- Includes configuration fields (
ignoreagent,maxrequests) that later CRM and security updates rely on.
---
- Released no-link (3.3.5) and mobile (3.3.4) builds alongside core 3.3.3, which overhauled analytics (department-aware data tabs, dynamic HTML generation) and added the
ignoreagent/maxrequestscolumns tolivehelp_config. - Introduced department selection, cleaned shorthand PHP tags, and improved robot throttling for high-traffic sites.
- Mandatory upgrade for installations facing analytics accuracy issues or resource strain from crawlers. ---
- Added timeouts and auto-logout controls for operators, plus per-website department visibility settings.
- Introduced the
livehelp_websitestable and added timestamps/department fields needed for multi-site routing. - Foundation for multi-site deployments; required before adopting the lead-management features that followed. ---
- Delivered a backlink-free build for customers needing white-label deployments while retaining 3.2.3 functionality.
- Companion to the 3.2.3 improvements; use when licensing terms require removing the credit link. ---
- Packaged 3.2.3 for mobile use, adapting templates and scripts to render on smartphones.
- Base for mobile deployments; pair with 3.2.3 schema changes. ---
- Fixed missing tables during setup (e.g.,
livehelp_sessions), ensured external chat windows close when visitors depart, added operator display names, and integrated geo-IP lookup in chat details. - Updated generated HTML to meet XHTML 1.0 Transitional standards and touched core scripts (
setup.php,operators.php,details.php) accordingly. - Must-have for sites encountering session errors or wanting geo-location context in transcripts. ---
- Provided a credit-free package mirroring 3.2.0 functionality for customers needing white labeling.
- Mirrors 3.2.0; choose based on branding requirements. ---
- Fixed Windows-hosted helper files so the mobile/iPhone apps function correctly; packaged as the mobile edition of 3.2.0.
- Required for Windows deployments using the companion mobile app. ---
- Upgraded
client_visitors.php, fixed undefined variables, added indexes to hot tables, modernized layer rendering (replacing the 1999 Dynamic Layer library), and refreshed the Portuguese (Brazil) language pack. - Applied helper fixes for iPhone/mobile directories and broadened timezone handling in settings.
- Major maintenance uplift; establishes the baseline for all subsequent 3.2.x tweaks. ---
- Released the no-backlink (3.1.11) and mobile (3.1.10) variants; 3.1.9 fixed multi-department icon handling, added dark/light credit link options, and ensured chat icons respect “hide when offline”.
- Recommended for customers running multi-department widgets or needing branded credit image options. ---
- Removed “Powered by Sales Syntax” links from themes, chat icons, and the donation prompt, creating a fully unbranded 3.1.7 build.
- Ideal for OEM deployments prior to the 3.2.x series. ---
- Fixed missing
displaynamefield errors, improved mobile input handling, and released the mobile variant of 3.1.6. - Important for organizations with dual desktop/mobile operator workflows. ---
- Polished the operator availability logic, cleaned out unused
showpopoutcode, refreshedinvite.php, and rebuilt the help documentation. - Sets the stage for the 3.1.7 mobile/unbranded updates; ensure this release is in place before layering subsequent patches. ---
md_files/1_wolfie/livehelp_module.md— Live help module overview and migration flow.database/migrations/1069_create_livehelp_legacy_tables.sql— Legacy sales syntax base tables.database/migrations/1071_2025_11_09_livehelps_create_parent_table.sql— Parent configuration table with seed record.CHANGELOG.md— LUPOPEDIA platform changelog (see “Livehelp Parent Table & Documentation” entry).public/crafty_syntax_evolved.php— Customer-facing continuity and upgrade instructions.
Status
VERSION_3_7_4 — 2025-11-12 (Crafty Syntax Name Restoration)
Highlights
Status
VERSION_3_7_3 — 2025-11-10 (Timezone Offset & Hardening Sweep)
Highlights
Deployment Status (Completed)
Status
VERSION_3_7_2 — 2025-11-10 (Installatron Compliance & Branding Refresh)
Highlights
Status
VERSION_3_7_1 — 2025-11-09 (Security Patch & LUPOPEDIA Integration)
Highlights
Recommended Action
VERSION_3_7_0 — 2023-11-07 (PHP 8 Compatibility Sweep)
Highlights
Status
VERSION_3_6_2 — 2017-02-17 (Security Patch & UX Fixes)
Highlights
Status
VERSION_3_6_1 — 2016-06-21 (Leads & Offline Invite Enhancements)
Highlights
Status
VERSION_3_5_4 — 2016-05-28 (CRM Interface Refresh)
Highlights
Status
VERSION_3_5_3 — 2016-03-30 (MySQL → MySQLi Migration)
Highlights
Status
VERSION_3_5_2 — 2015-12-02 (HTML5 Audio Default)
Highlights
Status
VERSION_3_5_1 — 2015-11-28 (Brand Transition Release)
Highlights
Status
VERSION_3_4_7 — 2013-08-15 (CRM Data Capture)
Highlights
Status
VERSION_3_4_6 — 2013-04-23 (Unbranded 3.4.4 Build)
Highlights
Status
VERSION_3_4_5 — 2013-04-23 (Mobile 3.4.4 Build)
Highlights
Status
VERSION_3_4_4 — 2013-04-23 (Security Release)
Highlights
Status
VERSION_3_4_1 — 2013-01-19 (Reporting Fixes)
Highlights
Status
VERSION_3_3_8 — 2012-08-05 (Visitor Paging & XSS Fix)
Highlights
Status
VERSION_3_3_8 (Mobile/No-Link Variants) — 2012-06-02
Highlights
Status
VERSION_3_3_6 — 2012-06-02 (Operator Experience Polishing)
Highlights
Status
VERSION_3_3_5 / 3.3.4 / 3.3.3 — 2012-05-29 (Leads & Dept Analytics)
Highlights
Status
VERSION_3_3_0 — 2012-04-24 (Timeout & Website Segmentation)
Highlights
Status
VERSION_3_2_5 — 2012-04-20 (No-Backlink Release)
Highlights
Status
VERSION_3_2_4 — 2012-04-20 (Mobile Release)
Highlights
Status
VERSION_3_2_3 — 2012-04-20 (Session Stability & Geo Lookup)
Highlights
Status
VERSION_3_2_2 — 2012-04-04 (No-Backlink Variant)
Highlights
Status
VERSION_3_2_1 — 2012-04-04 (Mobile Helper Fix)
Highlights
Status
VERSION_3_2_0 — 2012-04-04 (Performance & Localization)
Highlights
Status
VERSION_3_1_11 / 3.1.10 / 3.1.9 — 2012-03-25 (Brand & Stability Tweaks)
Highlights
Status
VERSION_3_1_8 — 2012-03-08 (Unbranded Edition)
Highlights
Status
VERSION_3_1_7 — 2012-03-08 (Display Name & Mobile Input Fix)
Highlights
Status
VERSION_3_1_6 — 2012-03-07 (Operator Presence & Cleanup)
Highlights
Status
REFERENCES
README_FILES/ changelog bundled with each Sales Syntax installation.