You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Last remaining slice of #54. Surfacing it as a proposal, not a PR, because it's net-new OG design and a couple of the choices are yours to make.
Current behavior
Share an issue permalink (/i/owner/repo/N) and the unfurl card shows the fixing commit — owner/repo, a 7-char SHA, the tag — with nothing about the issue. og-meta.tsx builds the image URL straight from the commit (ogImageUrl → /r/:owner/:repo/c/:sha.png), and web-og's ResultCard renders repo + sha + tag. PR permalinks are the same: no PR-aware card exists either. So a reader who sees an issue share reads a commit SHA, not "Issue #11".
That's the one gap left in #54's headline journey ("paste an issue, share the answer"). PR1/PR2/PR2b/PR3 all shipped; this is the OG card.
What's actually in the result today
input.kind === 'issue' and input.number are present. ✓
subject is the fixing commit's subject, not the issue title (find-release.ts:106 sets it from the commit for any non-PR input). So the issue title is NOT in LookupResult. ✗
Two ways to build it
Number-only card, cheap. Add an "Issue #N" / "PR #N" line to the existing card using input.kind + input.number (already in the result JSON web-og fetches). No new route, no new plumbing. Renders e.g. "Issue PrNotMerged copy uses GitHub vocabulary for GitLab MRs #11 → first in v0.0.11". Improves the share without the title.
Title-aware card, more work. New web-og route (/i/:owner/:repo/:number.png + federated) plus a web internal endpoint that returns the issue/PR title. Renders "Issue PrNotMerged copy uses GitHub vocabulary for GitLab MRs #11: Logger builtin middleware → v0.0.11". Needs the title threaded through the resolver into the result. Best result, real plumbing.
The choice that's yours
Do PRs get the same card? They have the identical commit-only card today. If yes, this is one design covering issue + PR; if no, issues get special-cased.
Title or number-only? (approach 2 vs 1) — the title is the payoff but it's most of the cost.
Recommendation
Approach 1 covering both issues and PRs: a small "Issue #N" / "PR #N" line on the existing card, no new route or resolver change. If you want the title too, I'll do approach 2 in a follow-up. Approve the direction and I'll build it TDD next cycle.
Last remaining slice of #54. Surfacing it as a proposal, not a PR, because it's net-new OG design and a couple of the choices are yours to make.
Current behavior
Share an issue permalink (
/i/owner/repo/N) and the unfurl card shows the fixing commit —owner/repo, a 7-char SHA, the tag — with nothing about the issue.og-meta.tsxbuilds the image URL straight from the commit (ogImageUrl→/r/:owner/:repo/c/:sha.png), and web-og'sResultCardrenders repo + sha + tag. PR permalinks are the same: no PR-aware card exists either. So a reader who sees an issue share reads a commit SHA, not "Issue #11".That's the one gap left in #54's headline journey ("paste an issue, share the answer"). PR1/PR2/PR2b/PR3 all shipped; this is the OG card.
What's actually in the result today
input.kind === 'issue'andinput.numberare present. ✓subjectis the fixing commit's subject, not the issue title (find-release.ts:106sets it from the commit for any non-PR input). So the issue title is NOT inLookupResult. ✗Two ways to build it
input.kind+input.number(already in the result JSON web-og fetches). No new route, no new plumbing. Renders e.g. "Issue PrNotMerged copy uses GitHub vocabulary for GitLab MRs #11 → first in v0.0.11". Improves the share without the title./i/:owner/:repo/:number.png+ federated) plus a web internal endpoint that returns the issue/PR title. Renders "Issue PrNotMerged copy uses GitHub vocabulary for GitLab MRs #11: Logger builtin middleware → v0.0.11". Needs the title threaded through the resolver into the result. Best result, real plumbing.The choice that's yours
Recommendation
Approach 1 covering both issues and PRs: a small "Issue #N" / "PR #N" line on the existing card, no new route or resolver change. If you want the title too, I'll do approach 2 in a follow-up. Approve the direction and I'll build it TDD next cycle.