dual-side-debug

Inspect time-aligned JSONL logs from macOS and Windows peers during cross-platform sync debugging.

1.6k|73|Updated Mar 13, 2025
One-click install
npx skills add https://github.com/UniClipboard/UniClipboard --skill dual-side-debug
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dual-side-debug
Source: https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/dual-side-debug
Command: npx skills add https://github.com/UniClipboard/UniClipboard --skill dual-side-debug

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires jq, and includes scripts (resource) components.

What problem does it solve?

Debugging cross-device clipboard sync, pairing, or file transfer issues requires correlating logs from two machines at once, which is tedious and error-prone when done by hand. This Skill reads UniClipboard logs from both the macOS host and the SMB-mounted Windows peer in a single, time-aligned view.

Core Features & Use Cases

  • Dual-side log inspection: Run status, tail, grep, and structured jq queries against the newest log file on each side, with automatic Windows profile detection by log freshness.
  • Chronological merge: Interleave macOS and Windows log lines into one UTC-sorted stream to answer "what happened between the two peers around time X".
  • Transfer speed analysis: Reconstruct per-checkpoint download speed curves (instantaneous and average MB/s) from blob-fetch progress log entries.
  • Use Case: When a user reports "Mac sent a file but Windows never received it", run the status command to confirm both profiles are live, then merge logs since the reproduction time and grep the transfer id on both sides to pinpoint where the flow broke.

Quick Start

Ask the assistant to check the logs on both sides for the recent sync failure using the dual-side-debug skill.

Frequently Asked Questions about dual-side-debug

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I debug logs on two machines at once?

Run the dual-logs.sh status command first to confirm both sides are live, then use merge with a --since UTC timestamp to interleave macOS and Windows log lines chronologically. Grep the same transfer or device id on both sides to verify cross-peer behavior.

How to check why Windows did not receive a clipboard sync from Mac?

Start with the status command to verify the Windows profile is fresh, then merge logs around the failure time and grep the transfer id or blob hash on both sides. The merged view shows whether the Mac sent and what the Windows peer logged at that moment.

Does this work if the Windows logs are not mounted on the Mac?

No. The Windows logs are only reachable because an SMB share of the Windows AppData/Local folder is mounted at /tmp/win-local. If the mount is missing, the script reports it and you must re-mount the share manually before debugging.

Why does the status command show stale or cold log freshness?

A stale or old freshness label means the newest log file's modification time is far behind the current time, so the app is likely not running on that profile. Confirm the correct UC_PROFILE with the user or pick a more recently active profile from the listed alternatives.

How do I measure file transfer speed from the logs?

Run transfer-speed.sh, which parses blob fetch progress checkpoint entries and computes instantaneous and cumulative average MB/s per checkpoint. You can filter by flow id, time window, or sampling interval, and optionally show which connection path was used.

When should I not use dual-side log debugging?

Do not use it for build, cargo, or typecheck failures, since those do not write to the JSONL application logs. It also does not inspect the daemon HTTP API or sqlite state, which are separate from log-based observability.