Repository navigation
Conversation
…PI dev e95d02da67
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This branch has not been deployed
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.
Summary
Record the feature availability contract merged in polymorfa/polymorfa#561 as a scoped supplement, without adding an SDK method.
contracts/feature-evaluation.jsonholds the four operations and their referenced components: the optional requestlocale(en,pt-BR), the response fieldsstate(off,opt_in,on),termsandenrollmentSource(customer,staff, null), the always-nullexposureToken, the no-effectmeasurementAllowed, and the exposure route that now always returns 403. All four operations keep their existing coverage exclusions.The supplement stays pinned to API dev merge commit
d36e12ff05f9f3537f3f87d8ad27258abc9b02df(#561). I compared it with the cycle's source pin, API deve95d02da674da8242453c2a41efd48883fa04734:evaluateFeaturesoperation object is identical. Its hash in the publicdocs/api-reference/openapi.jsoncopy is the same at both revisions (b136c410…756e).evaluateAccountFeatures,setFeatureEnrollment,recordFeatureExposure) change only description wording. Their fingerprints are unchanged.evaluateFeaturesfingerprint changes (06bfd46f…f12ato44fead3a…a095) only because the sharedPublicErrorcode enum gained unrelated codes, such asteam_deletion_scheduledandwhatsapp_number_not_registered.Moving the pin would bring that unrelated error enum drift into this PR. The README rule for this supplement assigns shared drift to the next full repin, and
scripts/release-gate.mjsdoes not consume this supplement. So the pin stays at #561, andcontracts/README.mdrecords the October 22 reconciliation.The PR targets
main, the repository default branch, which CI and the publication workflow use. The repository has no AGENTS.md, CLAUDE.md, CONTRIBUTING or PR template; this body uses the Polymorfa monorepo template sections.Impact
contracts/feature-evaluation.json,scripts/sync-feature-evaluation-contract.mjs,packages/typescript/test/feature-evaluation-contract.test.tsand the supplement section incontracts/README.md. Operation objects are stored unchanged with both source hashes.contracts/README.md, in different sections. #359 also changessource.json,coverage.jsonand the Messaging snapshot; this PR does not touch them. Whichever merges second may need a trivial README merge.No impact table
contracts/coverage.json; the new test checks the exclusions, the fingerprints and that no package source calls these routes.contracts/source.json(171a9683ff45d11a4b5d3917dc428ad2722b0d99), both full snapshots,coverage.jsonand every other supplement match SDKmain.58e91a1(CLImain) and at the open #88 branch: no reference to the evaluate, enrollment or exposure routes, their operation IDs,enrollmentSource,exposureToken,measurementAllowedortermsRevisionin source, tests, README or manifest. The genericapicommand passes bodies and responses through unchanged (src/api/request.ts:49-63,:44-45;src/api/execute.ts:20;src/commands/api.ts:141-165). A local fixture through the real command preserved thelocalerequest and all new response fields in JSON and human output. No CLI PR is needed.Verification
Local run on Node 22.23.2 at
e795c07c, mirroring.github/workflows/ci.ymlafternpm ci:format:check,lint,typecheck,build:workspaces, release-gate and Linear coverage node tests,build,check:functions,check:names,npm pack --dry-run,npm audit --omit=dev: all passed.check:coverage: 579 operations, 439 covered, 140 excluded, 0 partial, 0 missing, 0 changed, 0 gaps.npm test: 1,544 of 1,545 passed.packages/browser/test/package.test.tstimed out at 60 s under machine load; it passed alone in 10.4 s.feature-evaluation-contract.test.ts: 5 of 5 passed.d36e12ff0gives zero diff. Ate95d02da67the only differences are the two source hashes, thePublicErrorenum and the account-route descriptions.Source hashes (SHA-256):
d36e12ff0(pinned)e95d02da67(compared)apps/api/docs/openapi.json03f48a3ac98ff88e504337aaa95d60b1ae81ef3381deaa2d5ac9780896a486081c0941904e07d0df1ac9c4b080f237364343e782eaa3a19ff346d5596de65bb2apps/api/docs/openapi.management.jsonbaafc9d1836bf1aacdbb550e3e43c6a71e4160d4b4874deb80309b2f43339a10d5c4f19a14c8cebe943f0de21f2116ae762deff248cc0b2aa0d44e5eb3934b1adocs/api-reference/openapi.jsonf0832eaec81d69ce0066ca451e9011e4cdb10163e95936b454601bdd5561f91136133621f08cd81c16c4f3ef2ab3f4a09a5508fc80cfc5851044b5efed7d4b2cNot exercised: live API, staging, production, registry publication and installed consumers. The CLI evidence uses a synthetic response from a local HTTP server.
Session provenance and UI evidence
Delegated Claude subagent (registration
purpshell-t3-claude, model Claude Opus 5.5, effort medium) of leadpurpshell-t3-claude, T3 thread308fab02-e03e-4189-b24a-38895ad8a936, sessionfeature-authority. Delegated transcript capture is blocked:scripts/agent-recorder.pycannot read T3 v2 delegated threads (statev2 orchestration tables). The lead keeps a raw export.No user-facing UI changes; screenshots do not apply.
Rollout and rollback
Do not merge or publish as part of this task. The supplement enables nothing and the release gate is unchanged. A later full repin must reconcile these four rows with the global ledger, including the shared
PublicErrordrift. Revert this PR to remove the supplement and its test; no API, credential, enrollment, package channel or deployment change is involved.Need help on this PR? Tag
@codesmith-botwith what you need.Summary by CodeRabbit
Documentation
Tests
Chores