Skip to content

x-web: qualify contacts.list for the viewer's follow collections - #453

Merged
0thernet merged 4 commits into
mainfrom
devin/x-follow-graph-20260928
Sep 29, 2026
Merged

0thernet merged 4 commits into
mainfrom
devin/x-follow-graph-20260928

Conversation

@0thernet

Copy link
Copy Markdown
Member

Summary

  • Adds an observed contacts.list contract to x-web covering the signed-in viewer's own following and followers collections, projected as exact user identities plus both relationship-perspective flags with opaque cursor forwarding.
  • Pins the observed transport split: Following reads over GET, Followers over POST (its GET 404s); a page that over-delivers relative to the requested limit exposes no continuation cursor so consumers cannot mistake truncation for exhaustion.
  • Moves the adapter manifest to 1.15.0 with the 1.14.0 predecessor archived for packaged replay, binds the shared contact-projection.ts sources, and records the live qualification in docs/x-contacts-qualification.md (aggregates only — no handles, names, or user IDs).

Test plan

  • bun run check — all constituent gates green on this tree (check:cost-surfaces, check:static, check:package, test 5,277+ pass / 0 fail incl. unit+omni, test:standalone, verify incl. claims/quint/lean/oracles)
  • Live qualification re-run after the final projection shape — both collections returned real pages with correct relationship semantics and cursor continuation
  • Package budget remeasured for the new code + archived adapter (619-file pack)

Generated with Devin

Adds an observed contacts.list contract to x-web covering the signed-in
viewer's own following and followers collections. The runtime reads the
current first-party Following (GET) and Followers (POST) GraphQL queries,
projects exact user identities plus both relationship-perspective flags,
and forwards opaque cursors. A page that over-delivers relative to the
requested limit exposes no continuation cursor, so consumers cannot
mistake truncation for exhaustion.

Adapter manifest moves to 1.15.0 with the 1.14.0 predecessor archived for
packaged replay, the plugin binds the shared contact-projection sources,
and the live qualification record documents descriptor, method, binding,
pagination, and failure evidence.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@vercel

vercel Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
ghostget Ready Ready Preview Sep 29, 2026 12:46am UTC

Request Review

…20260928

# Conflicts:
#	CHANGELOG.md
#	scripts/npm-release-workflow.test.ts
#	scripts/package-budget.ts
Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…20260928

# Conflicts:
#	scripts/npm-release-workflow.test.ts
#	scripts/package-budget.ts
@0thernet
0thernet merged commit 65944e7 into main Sep 29, 2026
27 checks passed
@0thernet
0thernet deleted the devin/x-follow-graph-20260928 branch September 29, 2026 01:21
This was referenced Sep 29, 2026

This branch was successfully deployed

1 active deployment
Preview — b43fbaff Deployed Sep 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.

1 participant