Skip to content

fix(qa): name the profile by its handle on a DID-addressed record 404 - #269

Merged
holkexyz merged 1 commit into
mainfrom
holke/record-404-handle
Oct 29, 2026
Merged

holkexyz merged 1 commit into
mainfrom
holke/record-404-handle

Conversation

@svc-agent

@svc-agent svc-agent commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Follow-up to #268, found while testing it on production.

On a missing activity or project reached through a /did:plc:… link, the "Activity not found" page's button read "View @did:plc:atjy2x…". The not-found page now resolves the DID to its handle from the DID document, so the button reads "View @iron-for-change.certified.one". It falls back to the DID only when that lookup fails, and the existing 3-second budget still applies.

Cherry-picked from staging (29448ff).

Checks

  • tsc, typecheck:test and lint (0 problems) pass.
  • The production build passes.
  • vitest: 1581 tests pass.
  • 2 new tests: a DID-addressed record shows the handle, and it falls back to the DID when resolution fails.

🤖 Generated with Claude Code

RetriggerView in GreptileConfidence Score: 4/5

The PR appears safe to merge, with a non-blocking timeout fallback issue.

Fix All in Claude CodeFindings

  1. P2 Slow lookup removes profile link ▶
Fix with agent prompt
### Issue 1
src/app/not-found.tsx:51-53
If `resolveHandle` outlasts the remaining 3-second budget, the page discards the already-confirmed missing record. It shows “Page not found” without the profile link instead of falling back to the DID. Keep the known record result when the optional handle lookup times out, and add a stalled-lookup test.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

The missing-record page now resolves DID-addressed profiles to handles for its button.

  • Missing DID-addressed records link to the profile by its handle when available.

Reviews (1) · Last reviewed commit: "fix(qa): name the profile by its handle ..." · Reviewed by Greptile

"Activity not found" reached through a /did:plc:… link showed
"View @did:plc:…". The button now resolves the DID to its handle (from
the DID doc), and falls back to the DID only when that fails.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

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

Project Deployment Actions Updated
certified-app Ready Ready Preview Oct 29, 2026 10:30pm UTC

Request Review

@coderabbitai

coderabbitai Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@holkexyz
holkexyz marked this pull request as ready for review October 29, 2026 22:40
@holkexyz
holkexyz merged commit 4b63234 into main Oct 29, 2026
7 checks passed
@holkexyz
holkexyz deleted the holke/record-404-handle branch October 29, 2026 22:40
svc-agent pushed a commit that referenced this pull request Oct 29, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Comment thread src/app/not-found.tsx
Comment on lines +51 to +53
const handle =
resolved.handle ?? (await resolveHandle(resolved.did).catch(() => null));
return { kind: "record", actor: handle ?? actor.value, type };

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Slow lookup removes profile link

If resolveHandle outlasts the remaining 3-second budget, the page discards the already-confirmed missing record. It shows “Page not found” without the profile link instead of falling back to the DID. Keep the known record result when the optional handle lookup times out, and add a stalled-lookup test.

Prompt To Fix With AI
This is a comment left during a code review.
Path: src/app/not-found.tsx
Line: 51-53

Comment:
**Slow lookup removes profile link**

If `resolveHandle` outlasts the remaining 3-second budget, the page discards the already-confirmed missing record. It shows “Page not found” without the profile link instead of falling back to the DID. Keep the known record result when the optional handle lookup times out, and add a stalled-lookup test.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Claude Code Fix in Codex

This branch was successfully deployed

1 active deployment
Preview — b03fd91f Deployed Oct 29, 2026 by vercel[bot]
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