Skip to content

Ask for the anonymized file, and give shared links a preview - #5

Merged
MaxWinterstein merged 1 commit into
mainfrom
feat/issue-form-og
Sep 22, 2026
Merged

MaxWinterstein merged 1 commit into
mainfrom
feat/issue-form-og

Conversation

@MaxWinterstein

Copy link
Copy Markdown
Owner

The issue form

The page tells people to download the anonymized copy and open an issue — and nothing on the GitHub side asked for it, or warned against the raw export. A raw Garmin export carries a name, weight, height, resting heart rate, a watch serial and the exact time of the swim.

So the warning is the first thing in the form, above the upload box rather than below it, and it says out loud that the repository is public.

It also asks how you use the lap button. That isn't form-filling courtesy — it's the project's central ambiguity. Nothing in a file distinguishes "many phantom turns" from "a different lapping habit"; the lap-structure finding exists precisely because the data cannot settle it, and the swimmer is the only one who knows. AGENTS.md says as much.

The site's "open an issue" link now points at issues/new/choose, so the form is actually reachable from where people are told to go.

Link previews

Open Graph tags, so a shared link renders as a card instead of a bare URL.

  • Absolute URLs — a crawler resolves these with no document base, so a relative path silently yields no image.
  • A committed PNG, not the SVG banner — no major crawler renders SVG for a preview card.
  • Pre-rendered with the typeface named explicitly, so the asset doesn't depend on the fonts of whatever machine produced it.
  • Flat background, not the banner's gradient. The gradient version encoded to 303 kB, over the 256 kB ceiling check-added-large-files enforces. Flat comes to 38 kB.

No CSP change was needed: og.png is same-origin, which the existing img-src 'self' already covers. I checked rather than assumed.

Also done, outside this diff

Topics are now set on the repo (gh repo edit): added garmin-connect, forerunner, pool-swimming, javascript, zero-dependencies, client-side, vibe-coding to the existing four.

The social preview still needs you. GitHub's social preview image cannot be set through the API or gh — it's Settings → General → Social preview, and web/og.png in this PR is exactly the 1280×640 asset to upload there.

Verification

  • check-yaml (the repo's own prek hook) passes on the form
  • meta tags read back from the rendered DOM, all seven correct
  • og.png serves from the built site at 200, and build-web.mjs picks it up with no change, since web/ is copied wholesale
  • functional browser suite still green, no console errors
  • task check: 79 tests, lint, privacy scan, build

🤖 Generated with Claude Code

An issue form. The page tells people to download the anonymized copy and open
an issue, and nothing on the GitHub side asked for it -- or warned against the
raw export, which carries a name, a biometric profile, a watch serial and the
exact time of the swim. The warning is the first thing in the form, above the
upload box rather than below it, and it says out loud that the repository is
public.

It also asks how the lap button is used, which is the project's central
ambiguity rather than a form-filling courtesy: nothing in a file distinguishes
"many phantom turns" from "a different lapping habit", the `lap-structure`
finding exists precisely because the data cannot settle it, and the swimmer is
the only one who knows. The site's "open an issue" link now goes to
issues/new/choose so the form is actually reachable from it.

Open Graph tags, so a shared link is a card rather than a bare URL. Absolute
URLs because a crawler resolves them with no document base. A committed PNG
rather than the SVG banner, because no major crawler renders SVG for a preview
card -- and pre-rendered, so the typeface is baked in and does not depend on
the machine that produced it. It needed a flat background rather than the
banner's gradient: the gradient encoded to 303 kB, over the 256 kB ceiling the
added-large-files hook enforces, and flat comes to 38 kB.

No CSP change: og.png is same-origin, which `img-src 'self'` already allows.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 19 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: d79fcfbd-7d5c-41e6-adec-b6296af33c02

📥 Commits

Reviewing files that changed from the base of the PR and between 862e5aa and 4a8fa6d.

⛔ Files ignored due to path filters (1)
  • web/og.png is excluded by !**/*.png
📒 Files selected for processing (2)
  • .github/ISSUE_TEMPLATE/wrong-numbers.yml
  • web/index.html

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@MaxWinterstein
MaxWinterstein merged commit 4b836db into main Sep 22, 2026
2 checks passed
@MaxWinterstein
MaxWinterstein deleted the feat/issue-form-og branch September 22, 2026 09:38
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