Skip to content

Upgrade Core and Blaze - #930

Merged
jviotti merged 1 commit into
mainfrom
new-core-blaze
Aug 9, 2026
Merged

Upgrade Core and Blaze#930
jviotti merged 1 commit into
mainfrom
new-core-blaze

Conversation

@jviotti

@jviotti jviotti commented Aug 9, 2026

Copy link
Copy Markdown
Member

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

Review in cubic

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti
jviotti merged commit 4b6ce42 into main Aug 9, 2026
14 checks passed
@jviotti
jviotti deleted the new-core-blaze branch August 9, 2026 22:07
@augmentcode

augmentcode Bot commented Aug 9, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR updates the vendored Sourcemeta Core and Blaze revisions.

Changes:

  • Adds JSON-LD scalar promotion, constant node properties, and canonical mail/account identities.
  • Extends Blaze’s JSON-LD vocabulary, resolver, materializer, and test-suite RDF expectations.
  • Improves compiler diagnostics, schema bundling dialect preservation, and lint configuration serialization.
  • Refines legacy JSON Schema type-form handling in canonicalization and alteration rules.
  • Adds Core helpers for JSON-LD fragments, OAuth scope checks, OIDC claim handling, and language-tag comparison.
  • Updates URI relative/rebase behavior, YAML round-trip safeguards, gzip/JSONPath assumptions, and JSON construction APIs.
  • Replaces large-decimal division/modulo internals with normalized long division and modular exponentiation.

Technical Notes: The JSON-LD additions introduce new descriptor variants and stricter resolution rules; Core changes are consumed through the upgraded Blaze vendor dependency.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 4 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

// paths differ at most in the trailing keyword token
auto same_schema_object(const sourcemeta::core::WeakPointer &left,
const sourcemeta::core::WeakPointer &right) -> bool {
return left.size() == right.size() && right.starts_with_initial(left);

@augmentcode augmentcode Bot Aug 9, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At vendor/blaze/src/output/output_jsonld.cc:608, evaluate_path includes the keyword (as build_consent_index reads back()), so declarations in the same schema object have different trailing tokens and this comparison is false for x-jsonld-value paired with x-jsonld-self or a literal facet. The documented same-object fusion therefore incorrectly fails with a resolution error.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

}

auto terms{JSON::make_array()};
terms.push_back(materialize_literal(descriptor.literal, value));

@augmentcode augmentcode Bot Aug 9, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At vendor/core/src/core/jsonld/jsonld_materialize.cc:263, a promoted null scalar is materialized as an @value: null term whenever it has an incoming edge, identity, or collection position. This contradicts the new JSONLDPromotion contract and vocabulary documentation that a null promoted location materializes nothing.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

}

normalized_dividend.words[position + divisor.length] =
top_word + add_carry - borrow;

@augmentcode augmentcode Bot Aug 9, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At vendor/core/src/lang/numeric/big_coefficient.h:491, the Knuth correction path represents a negative high base digit with ordinary uint64_t underflow, which wraps modulo 2^64 rather than the coefficient base (10^18). Whenever top_word < borrow, this leaves an out-of-range word and corrupts the computed quotient/remainder.

Severity: high

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

}
}
} else if (keyword.property_equals("x-jsonld-value", HASH_VALUE)) {
if (!value.is_null() && !is_iri_value(value)) {

@augmentcode augmentcode Bot Aug 9, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At vendor/blaze/src/output/output_jsonld.cc:1373, the IRI check accepts rdf:type as an x-jsonld-value predicate even though this keyword explicitly forbids it. Such a collected annotation promotes a scalar into a literal rdf:type edge instead of producing the required resolution error.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

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