Repository navigation
chore(release): bump version to 1.5.0 - #275
Merged
Merged
Conversation
The correctness & trust release (2026-10 IAM gap analysis, P0 sprint): subject unification on the UUID public_sub (hard cut), userinfo scope gating, consumable MFA backup codes, S256-only PKCE, catalog-backed + reconciled discovery metadata, client display names, WebAuthn credential deletion, dedicated post_logout_redirect_uris (V039), the three-library RP interop gate, and ADR-0014. Three breaking changes are documented at the top of the CHANGELOG entry. Six-point sync (Version.cmake SSoT, CMakeLists, conanfile, both frontend package.json + locks, openapi.yaml info.version, python pyproject) plus the ~15 carriers (README x2, Chart version/appVersion, compose debug tag, deployment/SDK docs, libs CMake fallbacks, FullaPackage, bug_report placeholder). Three local release gates green: spec-governance (1.5.0 == 1.5.0), regen_clients --check, api-diff.
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. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…-function) The P0-1 migration switched this suite to userPublicSub; the leftover helper compiled clean on MSVC (no -Wunused-function) but failed the linux/macos -Werror CI legs.
Four independent fixes surfaced by the linux CI legs (MSVC-built locally, so none were visible in the Windows verification): 1. DiscoveryReconciliationHttpTest: 'const std::string &' range-loop variables over brace-initialized 'const char* const' lists trip GCC's -Werror=range-loop-construct; both loops now bind 'const char *' directly. 2. PostgresClientRepository: UBSan (halt_on_error) aborts the suite on the generated relation method's '*clientId_' deref — GCC's UBSan flags the reference binding when the shared_ptr is null. The model files are drogon_ctl-generated (no hand edits), so the guard lives at the call site: a null PK pointer degrades exactly like the scope-fetch error path (client with empty scopes). Contract tests that walked this path (PublicClientAcceptsAnySecret / ConfidentialClientValidatesSecret) were the visible casualties. 3. interop.yml: drogon_create_views() failed with Error 127 on apps/server/login.h — drogon_ctl must be on PATH at build time. Added the same Drogon-*-data.cmake package-folder discovery _build-test.yml uses. 4. sanitizer.yml (x2 jobs) + coverage.yml: hardened the drogon_ctl discovery with the data.cmake fallback leg after the Conan-cache 'find ~/.conan2/p' pattern came up empty on the gcov leg (the legacy find is kept as the first leg). Local: full sequential suite 641/641 green; contract + discovery matrices green; workflow YAML validated.
The P0-7b commit shipped the regenerated ORM model (12 columns), the ClientService post-logout whitelist validation and the registration-API surface — but NOT the migration itself: the original 'git add' failed silently on a nonexistent sibling path (models/ model.json) with stderr suppressed, and the follow-up amend only restored the two model files. Every environment initialized from the migration chain (CI linux legs: gcov, ASan, Build & Test) therefore built a schema WITHOUT the column the ORM model selects, breaking getClient for every client row — login cascade failures across OAuth2Tests, empty clientId in the client-repository contract tests, UBSan halt at the malformed-row deref. Local runs passed only because the author's dev database had the column applied manually via psql. The migration file is idempotent (ADD COLUMN IF NOT EXISTS) and matches what was applied to the dev database.
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
v1.5.0 release cut — the correctness & trust release from the 2026-10 IAM gap analysis P0 sprint.
[1.5.0]entry with the three breaking changes at top (subject hard cut, userinfo scope gating, S256-only PKCE), full Added/Changed/Fixed sections, one additive migration (V039).info.version=1.5.0 == cmake 1.5.0),regen_clients --check(both SDK trees match), api-diff (208 headers, baseline consistent).Tag
v1.5.0is not pushed by the agent (repo policy) — cut it when CI on this PR is green.Test plan
check_spec_governance.py— version sync OKregen_clients.py --check— SDK freshness OKapi_diff.py— no header driftinterop.ymlmaster-branch run after merge)