Skip to content

v1.8.17: call tracking conflict scan + diagnostics copy fix (backlog polish) - #66

Merged
Atroci merged 1 commit into
mainfrom
agent-v1-8-17-backlog-polish
Aug 16, 2026
Merged

v1.8.17: call tracking conflict scan + diagnostics copy fix (backlog polish)#66
Atroci merged 1 commit into
mainfrom
agent-v1-8-17-backlog-polish

Conversation

@Atroci

@Atroci Atroci commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Bundles the three "Free — Backlog" items from ROADMAP.md into one maintenance release.

1. Call tracking conflict scan

build_conflict_scan_report() in includes/admin/traits/trait-admin-diagnostics-ajax.php now checks for active call-tracking scripts and surfaces an info-severity finding (not a warning):

"A call tracking script was detected. ClickTrail skips tel: link decoration automatically. No action needed unless you are seeing unexpected behaviour."

The detection itself lives in a new detect_call_tracking_labels() helper that delegates to Setup_Detector::detect_call_tracking() (includes/admin/class-setup-detector.php) — that method already existed, checking active-plugin slugs and known constants for CallRail, CallTrackingMetrics, WhatConverts, Retreaver, and Infinity Call Tracking, but was dead code: its docblock referenced a detect_call_tracking_labels() in the diagnostics trait that had never actually been written. This PR is what closes that gap, reusing the existing detection style (same shape as detect_cache_conflict_labels()) rather than inventing a new mechanism.

docs/guides/OPERATIONS-RUNBOOK.md's Conflict Scan check list was updated to include the new check.

2. UI/messaging audit

Read through settings tab descriptions and field labels (includes/admin/class-admin.php + assets/js/admin-settings-app.js), the setup checklist copy, the Diagnostics screen (diagnostics_page() and assets/js/admin-diagnostics.js), and grepped for "Tracking v2" in user-facing strings.

Findings:

  • All remaining "Tracking v2" hits are the trackingv2 legacy URL-alias key, the clicktrail-tracking-v2-root DOM id, and PHP comments/docblocks — no translatable user-facing string uses that terminology. This matches docs/guides/CODE-QUALITY.md's existing note that the internal option key/identifiers are intentionally preserved.
  • Settings tab descriptions, field labels/help text, and the setup checklist are already accurate and specific (this plugin has been through several prior copy passes per the changelog).
  • One concrete, verified inaccuracy found and fixed: the Diagnostics "Conflict Scan" card description (includes/admin/traits/trait-admin-pages.php) listed the categories the scan checks but omitted the newly-added call tracking check — updated from "Run deterministic checks for caching, duplicate ownership, Woo gaps, and delivery mismatches." to include "call tracking scripts".

This was a targeted correction pass, not a rewrite — no other strings were touched since I couldn't point to a concrete confusion or inaccuracy in them.

3. PHPCS zero-warnings pass

Ran composer run phpcs (matches .github/workflows/php-lint.yml) against the full codebase, both before and after the above changes. Zero errors, zero warnings — nothing needed fixing for this item. composer run test (PHPUnit, 18 tests) also passes.

Files changed

  • includes/admin/traits/trait-admin-diagnostics-ajax.php — new call-tracking finding + detect_call_tracking_labels()
  • includes/admin/traits/trait-admin-pages.php — Conflict Scan card description fix
  • docs/guides/OPERATIONS-RUNBOOK.md — Conflict Scan check list updated
  • clicutcl.php — version bump 1.8.16 → 1.8.17 (Version header + CLICUTCL_VERSION)
  • changelog.txt, readme.txt — 1.8.17 changelog entries (readme.txt Stable tag left at 1.8.13 per the 3-version buffer policy in RELEASING.md)

Test plan

  • composer run phpcs — 0 errors, 0 warnings
  • composer run test (PHPUnit) — 18/18 passing
  • php -l on every touched file
  • CI (php-lint.yml) green on PHP 8.3 (verified locally on PHP 8.5)
  • Manual: trigger Diagnostics → Conflict Scan on a site with a call-tracking plugin active, confirm the info note renders

🤖 Generated with Claude Code

…py fix (backlog polish)

Bundles the three "Free — Backlog" items from ROADMAP.md: the Conflict
Scan now detects active call tracking scripts (CallRail,
CallTrackingMetrics, WhatConverts, and others) via the previously-unwired
Setup_Detector::detect_call_tracking(), surfacing an info-severity note
that ClickTrail already skips tel: link decoration automatically; the
Conflict Scan card description on Diagnostics was corrected to list this
new check; and a full UI/messaging audit found the existing settings,
checklist, and diagnostics copy already accurate (no further changes
needed) aside from that one description. PHPCS already reports zero
warnings, so no code changes were needed for that item.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@Atroci
Atroci merged commit aa2c40f into main Aug 16, 2026
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant