Skip to content

Telemetry: clean the city demand signal + classify two new agent UAs#10

Merged
kissmyabs32 merged 2 commits into
mainfrom
telemetry-city-signal
Jun 16, 2026
Merged

Telemetry: clean the city demand signal + classify two new agent UAs#10
kissmyabs32 merged 2 commits into
mainfrom
telemetry-city-signal

Conversation

@kissmyabs32

Copy link
Copy Markdown
Member

Two small, independent telemetry-accuracy fixes (one commit each).

1. Separate recognized markets from junk in the city demand signal

The Top cities queried chart was slugifying every raw city input straight into the queries:cities ZSET — so junk lookups (test strings, typos, injection attempts, emoji, places we don't cover) polluted the demand signal, and Atlanta vs atlanta-event-staffing counted as two separate markets.

  • track.ts resolves each input through findCity() against the 345-market catalog. Matched → canonical slug (suffix stripped, dedupes) feeds the clean ZSET. Present-but-unrecognized → a new diagnostic HASH queries:cities:unmatched:{date} (same TTL), mirroring the existing ua:unclassified capture so junk stays reviewable instead of vanishing.
  • query.ts ranks the new bucket (top 25) and adds unmatchedCities to DashboardMetrics.
  • admin/page.tsx surfaces it in a new "Unrecognized city inputs (raw)" card.

2. Classify two new agent UAs

openai-mcp (OpenAI's MCP client — a real agent connection) and mcp-scoring-probe (the registry quality-scoring bot), both previously falling into the unclassified bucket.

Verification: tsc --noEmit passes clean. No telemetry tests exist; lint tooling is broken repo-wide (old .eslintrc format, unrelated to these files).

…ignal

The 'Top cities queried' chart slugified every raw city input straight into the
queries:cities ZSET, so junk (test strings, typos, injection, emoji, uncovered
places) polluted the demand signal and 'Atlanta' vs 'atlanta-event-staffing'
counted as two markets.

track.ts now resolves each input through findCity() against the 345-market
catalog: matched inputs feed the sorted ZSET under a canonical slug (suffix
stripped, so duplicates collapse); present-but-unrecognized inputs go to a new
diagnostic HASH queries:cities:unmatched:{date} instead, mirroring the existing
ua:unclassified capture so the junk stays reviewable rather than vanishing.
query.ts ranks it (top 25); the admin dashboard surfaces it in a new
'Unrecognized city inputs (raw)' card.
Two surfaces that were landing in the unclassified bucket: OpenAI's MCP client
(a real agent connection) and the MCP registry quality-scoring probe.
@vercel

vercel Bot commented Jun 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
tempguru-mcp Ready Ready Preview, Comment Jun 16, 2026 12:16pm

@kissmyabs32 kissmyabs32 merged commit b863407 into main Jun 16, 2026
3 checks passed
@kissmyabs32 kissmyabs32 deleted the telemetry-city-signal branch June 16, 2026 13:01
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