Files
clawhub/specs/download-metering.md
Patrick Erichsen 9784710147 fix: separate skill metrics by source (#3228)
* fix: use bookmark icons consistently

* fix: separate skill metrics by source
2026-07-29 22:41:06 -07:00

2.2 KiB

Download Metering

Intent

Download metrics are collected without storing raw IP addresses and without rewriting historical download counts.

New skill and package downloads use one shared metering path. The path records one counted download per target, identity kind, identity hash, and UTC day.

Identity Hashing

The identity hash input includes the identity kind:

user:<user id>
ip:<client ip>

This keeps a user id and IP with the same visible string in separate hash domains for dedupe and local diagnostics.

Source-Attributed Counters

The dedupe table does not store user-vs-IP counters. It only gates whether a download should emit the existing skill or package stat event. Public counters for native ClawHub downloads still use the canonical skill download field:

statsDownloads

Skills mirrored from skills.sh store the upstream lifetime install count separately in statsSkillsShInstalls. Public skill Downloads remain scoped to ClawHub artifact downloads:

public Downloads:   statsDownloads
skills.sh installs: statsSkillsShInstalls (lifetime)

These values are never combined into one Downloads counter. Existing historical ClawHub downloads remain intact, and canonical search gives lifetime downloads and skills.sh lifetime installs zero ranking weight.

OpenClaw install telemetry remains in statsInstallsCurrent and statsInstallsAllTime; it is not added to public Downloads. GitHub popularity is stored in statsGithubStars. Existing stars rows and statsStars count ClawHub Bookmarks and retain those storage/API names for compatibility.

Source refresh, adoption, content replacement, rollback, and GitHub synchronization may update source metadata or newer observations, but must not reset or rewrite any metric source. Publisher dashboards receive the attributed source breakdown; ordinary public skill shapes expose ClawHub artifact downloads as Downloads without manufacturing a cross-source total.

Daily Package Graphs

Package graphs render the available packageDailyStats rows for the visible 30-day window and fill missing days with zero. Historical all-time counts are not redistributed into daily rows, so the all-time total can exceed the sum of the visible daily graph.