Repository navigation
feat(identity): count email clicks as daily aggregates - #243
Merged
Merged
Conversation
Contributor
🤖 MERGED
GitHub merged this pull request. No material findings were recorded. Review completed. No material findings. |
1 task done
This was referenced Sep 17, 2026
1 task done
harlan-zw
force-pushed
the
feat/digest-click-counts
branch
from
September 22, 2026 02:29
8242ebf to
4edd16f
Compare
1 task done
Loop 2 is judged on digest click-throughs, and #240 removed the only measure along with the per-reader click history. Links now carry the campaign, issue, placement, and path, and a daily counter stores nothing that names a reader.
Liked and trending rows link to SKILL.md on GitHub, which is where a reader judges a change. Those were the only digest clicks left uncounted, and they are the clearest Loop 2 evidence. The link now carries `g`, a path on GitHub, and the route puts the constant `github.com` origin back. No request supplies a host, so the redirect cannot be steered off GitHub. The counter stores `gh:/owner/repo`, so a new commit sha does not start a new row and weeks stay comparable.
harlan-zw
force-pushed
the
feat/digest-click-counts
branch
from
September 22, 2026 07:02
4edd16f to
aa109d7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #240.
❓ Type of change
📚 Description
#240 dropped
weekly_click_eventsbecause every row named a reader. That also removed the one number the ROADMAP Loop 2 evidence bar depends on: digest click-throughs. This brings the number back with nothing that names a person.Email links go back through a redirect,
/api/e/{weekly|digest}. Every recipient of an issue gets identical links. The redirect adds one to a(day, campaign, issue, placement, path)counter in migration 0120 and stores nothing else. The admin weekly report shows clicks, clicks per accepted email, and share clicks again. The daily health summary gains weekly and digest click totals.Every placement is counted now, including the GitHub links. Liked and trending rows point at SKILL.md on GitHub, which is where a reader judges a change, and those clicks were the evidence bar's biggest gap. The link carries
g, a path on GitHub, and the route puts the constantgithub.comorigin back. No request supplies a host, so the redirect cannot be steered off GitHub: that is the same reason the same-site form takes a path and never a URL. The counter storesgh:/owner/repo, so a new commit sha does not start a new row and weeks stay comparable.flowchart LR S["Weekly / digest send"] -->|"rewrite links"| L["/api/e/{campaign}?p=&i=&(to|g)="] R["Reader clicks"] --> L L -->|"+1 on (day, campaign, issue, placement, path)"| D["email_click_counts"] L -->|"302"| P1["skilld.dev page"] L -->|"302, origin is a constant"| P2["github.com/owner/repo/blob/..."] D --> A["Admin weekly report"] D --> H["Daily health summary"]Things a reviewer should weigh:
email_click_countscould join it at 180 days; it names no account, so nothing forces that.?p=&k=&w=&u=) still redirect and are not counted. Theuvalue is ignored.