Richard Zhu

Private Telemetry Systems

Two local-first systems for sensitive records: Vitals for Apple Health and sleep analysis, wxdecipher for private WeChat analytics.

2025-2026Local machinesApple HealthWeChat analyticsLocal-first
Private Telemetry Systems artifact
Public boundary

Raw health exports, messages, keys, decrypted databases, ECG files, and identifying dashboards are not published.

Proof surface

Public proof, private boundary, and status for this work object.
ClaimPublic proofPrivate boundaryStatus
Vitals architecturePublic page and redacted diagram show ingestion, normalization, audit, and dashboard layers.Raw health exports, ECG files, and identifying dashboards are not published.Architecture only
wxdecipher architecturePublic page describes local parse, export, and audit boundaries.Messages, keys, decrypted databases, and private analytics stay off-site.Architecture only

Vitals architecture

Public proof
Public page and redacted diagram show ingestion, normalization, audit, and dashboard layers.
Private boundary
Raw health exports, ECG files, and identifying dashboards are not published.
Status
Architecture only

wxdecipher architecture

Public proof
Public page describes local parse, export, and audit boundaries.
Private boundary
Messages, keys, decrypted databases, and private analytics stay off-site.
Status
Architecture only

What I built

The work currently has two serious private-data projects behind it.

Redacted architecture map for Vitals and wxdecipher private telemetry systems.
Redacted public architecture: local inputs, parsers, normalized artifacts, audit ledgers, and dashboard/report layers.
Private telemetry project boundaries.
ProjectInput boundaryPublic material
VitalsApple Health export, AutoSleep CSV, optional weather configuration.Source-aware daily records, coverage manifests, findings, charts, report audit ledgers.
wxdecipherLocal macOS WeChat databases, read-only live directory, ignored private workspace.Staged pipeline, decrypted read-copy boundary, normalized message/media layers, dashboard manifest.

Health records and chat logs are very different, but they share the same engineering discipline: local ingestion, explicit source boundaries, normalized artifacts, audit ledgers, and dashboards that never become public data leaks.

Vitals architecture

Vitals turns wearable exports into reproducible daily records and audit artifacts. The dashboard is the last mile after the source model is stable.

Apple Health XMLAutoSleep CSVsource-aware daily builderweather rows by fixed lat/lon/timezoneanalysis tables and findingschart specs and dashboard artifactsreport claim audit ledger
Dailyone local calendar date per row, with Apple daytime metrics and wake/following-night sleep fields
Sourcestep and distance totals keep source-aware estimates and raw source sums separately
Weatheroptional Open-Meteo joins use explicit latitude, longitude, timezone, and label
Auditnumeric report claims are parsed into ledgers and marked matched, corrected, unsupported, or manual-review

The important design choice is that Vitals separates data products by confidence level. Daily records, manifests, inventory tables, weather rows, findings, and chart specifications are generated artifacts. Narrative claims are checked against those artifacts when possible, and left for manual review when the system cannot safely reconcile them.

wxdecipher architecture

wxdecipher is a local macOS workbench for WeChat analysis. The live WeChat directory is treated as read-only input. Sensitive outputs remain under ignored private paths. The public material is the control plane around a sensitive source.

environment checkaccount discoverygated key extractiondecrypted read copiesidentity inventorymessage normalizationmedia and voice ledgersanalytics and dashboard manifest
wxdecipher public architecture layers.
LayerWhat it doesBoundary
UnlockGuides environment checks, account discovery, key configuration, and decrypted read-copy creation.Gated commands; no public keys, configs, or decrypted databases.
NormalizeTurns raw message rows into canonical text/media fields with local type, subtype, content kind, and emoji signals.No private messages, talkers, avatars, or screenshots on the public site.
Voice/mediaIndexes voice media and stores transcript schema separately before text analytics can trust it.Transcripts default to audit-first, not automatic inclusion.
DashboardBuilds a manifest of local artifacts by kind, family, conversation, track, size, modified time, and previewability.Catalog structure only; no live contents.

What this shows

2separate private-data projects with different inputs, risks, and output surfaces
Localsource data stays on the user's machines and generated private outputs stay ignored by git
Ledgerpipelines track stages, manifests, coverage, artifacts, and report claims instead of relying on polished prose
Publiconly architecture, redacted patterns, and derived boundaries are shown here

Contact

Contact me for implementation details, a private architecture walkthrough, or a redacted demo of the pipeline design. The public site intentionally stops before the data layer.