docs(realface): the published contract described the pre-seal API - #97
Merged
Merged
Conversation
`/status` was documented as answering 400 for an id "not of the form legacy_rf_<digits>" and 404 only for a well-formed id that does not exist. It now answers 404 for both — deliberately, because a different answer for a real group than for an absent one confirms which groups exist. A caller who coded to the documented shape is handling the wrong status. The worked examples published `legacy_rf_8137` in five places. That is not inert: ai-providers.ts records that scanners probing the docs example were polluting the 5xx logs, which is why the not-found path is tagged at all. Replaced with elided `rf1_…`, plus a note that the handle is a ~215-character opaque string to be passed back verbatim, and is the credential for that enrollment. The realfaces listing sample still showed `groupId`, removed from the response in blockrun#575. virtual-portrait.md had the same listing field, removed in blockrun#578, and documented `group_id` as `tg_xyz9876543210` — a prefix this service has never returned. submitVirtualPortrait records, verified empirically, that a VIRTUAL_PORTRAIT group comes back as `assetGroupId: "legacy_rf_7629"`, from the same sequential allocator RealFace uses. Corrected to the real shape, elided, and the field description now says no endpoint accepts it back. Verified against blockrun's docs-reading suite with this tree in place: 3674/3674. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KM7ZdEFd8JJN7KX5sRgYrs
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.
The RealFace group id was sealed in
BlockRunAI/blockrun4064e6c2 and the published docs still describe the API as it was before. One part of that actively misleads a working integration.The part that breaks integrations
/statuswas documented as:It now answers
404for both, and that is deliberate: a different answer for a real group than for an absent one confirms which groups exist, which rebuilds the enumeration oracle the seal removed. A caller who coded to "400 means malformed" is handling the wrong status today.Rewritten to say what the route does, and why the two cases are not distinguished.
The examples are not inert either
legacy_rf_8137appeared as the worked example in five places.ai-providers.tsrecords why that matters:which is the reason the not-found path is tagged at all. Replaced with elided
rf1_…, and added a note thatgroup_idis a ~215-character opaque handle to be stored and passed back verbatim — and that it is the credential for that enrollment, since anyone holding it can refresh the H5 link and enroll into the group.Stale response samples
realface.md— the realfaces listing sample showedgroupId, removed from the response inblockrun#575virtual-portrait.md— same field in the portraits listing, removed inblockrun#578A documented id shape that never existed
virtual-portrait.mddocumented"group_id": "tg_xyz9876543210". This service has never returned atg_prefix.submitVirtualPortraitrecords, verified empirically:The same sequential allocator RealFace groups come from. Corrected to the real shape, elided, and the field description now says plainly that no endpoint accepts it back — portrait enrollment mints its own group, so there is nothing to pass it to.
Verification
docs/is consumed by blockrun's suite through a submodule symlink, so the edits were validated there rather than in isolation: with this tree in place,docs-canonical,docs-resilience,brand-numbers.docs,upstream-disclosure-prose,published-price-syncandtool-jobsall pass — 3674/3674 on the full run.Found while closing out
BlockRunAI/enterprise#162; the sol session independently flagged the same file.🤖 Generated with Claude Code
https://claude.ai/code/session_01KM7ZdEFd8JJN7KX5sRgYrs