Skip to content

Add unattributed Kingston product signals and KFH report 1.3 (1.35.0) - #9

Merged
truegoodcraft merged 2 commits into
mainfrom
claude/project-thread-v2a502
Oct 8, 2026
Merged

truegoodcraft merged 2 commits into
mainfrom
claude/project-thread-v2a502

Conversation

@truegoodcraft

@truegoodcraft truegoodcraft commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Before: Lighthouse drops Kingston resource_open and install_prompt show/dismiss events. It still answers 204, but nothing is counted, and the /kfh report has no product-signal section.

After: Lighthouse counts listing-detail opens, install-prompt shows and install-prompt dismissals as daily, unattributed totals in a new kfh_signal_daily table. The KFH report moves to contract 1.3 with a product_signals section. Existing events, tables, retention and the core report are unchanged.

If the new table is missing or broken, only product_signals reports "unavailable". Core counts, outreach and retention keep working.

How: parseKfhSignal accepts only v3 payloads with the exact base keys, so a visit token or any extra field is still rejected. Each signal is upserted outside the core batch, the new table is pruned in its own try/catch, and the report falls back to signals-unavailable if validation fails. The shared kfhSignalsContract.ts and the fixtures are byte-identical to Agent Smith 0.31.0 (#13, already merged and deployed). The release-control test now pins version 1.35.0.

Rollout (in order)

  1. Confirm migration 0017 (kfh_outreach_daily) is applied in production.
  2. Apply migration 0018 (kfh_signal_daily, additive).
  3. Merge this PR and run the manual deploy.
  4. Food-Help then enables the new events.

Rollback: Redeploy 1.34.1. The 0018 table can stay, because nothing else reads it. Smith accepts 1.0 to 1.3.

Checks: typecheck and 221/221 tests (npm test) pass locally.

claude added 2 commits October 8, 2026 20:41
Accept two fixed v3 signals from the existing Kingston origins:
resource_open and install_prompt show/dismiss, with no labels, visit
token or extra fields. Store them in additive migration 0018
(kfh_signal_daily) outside the core batch, prune them separately, and
emit report 1.3 whose product_signals section fails independently of
the core report. Existing events, tables and retention are unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XjWi12Wph4pkB7QjvpjKX4
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XjWi12Wph4pkB7QjvpjKX4
@truegoodcraft
truegoodcraft marked this pull request as ready for review October 8, 2026 21:06
@truegoodcraft
truegoodcraft merged commit 92bcfc1 into main Oct 8, 2026
2 checks passed
@truegoodcraft
truegoodcraft deleted the claude/project-thread-v2a502 branch October 8, 2026 21:06
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.

2 participants