feat: optimize processing, caching, and scope identity#25
Conversation
Introduced a `verify-release-readiness.js` script to validate release candidate readiness against performance reports. Added `FrozenCanonicalDigestBenchmark` to benchmark identity calculations for frozen nodes. Implemented `IncrementalMergingProcessorCapability`, `FrozenJsonPatch`, `PatchImpact`, and `PatchImpactAnalyzer` to enhance processing and patch impact evaluation capabilities.
Added `IncrementalValueResolutionRequest` and expanded `IncrementalMergingProcessorCapability` to support resolution-aware merging. Introduced `PatchSource` attribution and new patch impact handling for processor-managed states. Enhanced conformance checks and metrics tracking for incremental resolutions. Updated tests to validate snapshot and patch workflows.
Introduced a helper method to fetch the `blueId` of a canonicalized node by pointer, enhancing readability and utility of snapshot queries.
Added configurable cache policies with predefined profiles (`lowMemoryDefaults`, `highThroughputDefaults`, `boundedDefaults`, `disabled`) to tailor runtime caching behavior. Enhanced stats reporting for eviction and oversized rejections. Updated tests and documentation to reflect these changes.
…t handling Added `RegisteredContractScopeIdentitySnapshotManager`, `ScopeIdentityErrorMapper`, and `ScopeSourceProjection` to enhance processing and snapshot management for Blue language's scope identity operations. Included corresponding tests to validate functionality.
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8810301b32
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| throw new Error('RELEASE_VERSION is required'); | ||
| } | ||
|
|
||
| const summary = JSON.parse(fs.readFileSync(REPORT, 'utf8')); |
There was a problem hiding this comment.
Provide the release-readiness report before reading it
In the RC workflow this script is run immediately after prepare-rc-release; I checked the repository and there is no docs/performance/results/order-scale-language-summary.json or earlier workflow step that generates it, so readFileSync throws ENOENT on every RC run before the build or publish can proceed. Add/generate the report in the workflow, or make this check consume an artifact that is actually present.
Useful? React with 👍 / 👎.
| if (value instanceof BigDecimal) { | ||
| writeNumber(((BigDecimal) value).doubleValue(), sink); | ||
| return; |
There was a problem hiding this comment.
Preserve exact BigDecimal precision in canonical hashes
When a schema numeric field such as minimum/maximum contains a BigDecimal that is not exactly representable as binary64, the optimized frozen digester hashes the rounded double here; the existing generic Jackson/JCS path preserves the decimal value, and the new validation admits plain schema values onto the streaming path, so affected documents get different Content BlueIds after this change. Use exact BigDecimal canonicalization or fall back for decimals that would round.
Useful? React with 👍 / 👎.
| runs-on: ubuntu-latest | ||
| env: | ||
| CI: true | ||
| BLUE_RELEASE_CHANNEL: stable |
There was a problem hiding this comment.
Prepare a stable version before forcing the stable channel
When this manual release workflow runs from the current checkout, .cz.toml still contains 3.1.0-rc.15, but every Gradle command inherits BLUE_RELEASE_CHANNEL=stable; the new build.gradle guard rejects any version that is not plain x.y.z, so the first build step fails before publish or JReleaser can run. Add a stable-version preparation step, pass -PreleaseVersion, or avoid setting the stable channel until the version has been promoted.
Useful? React with 👍 / 👎.
Summary
Verification
Known release follow-ups