Repository navigation
feat: ElementId — recognize blake3: content-hash scheme (+ HASH_SCHEMES / content_hash_scheme helpers) - #22
Merged
Conversation
`ElementId` stays an opaque string newtype (`pub struct ElementId(pub String)`); this only documents `blake3:` as a sanctioned content-hash prefix alongside `sha256:` / `git:` and adds non-breaking read-only helpers. - doc comment: sanctioned content/VCS hash forms now list `blake3:…`; "never numeric" rule unchanged - `ElementId::HASH_SCHEMES` — `&["sha256:", "blake3:", "git:"]` - `ElementId::content_hash_scheme()` -> `Option<&'static str>` - `ElementId::is_content_addressed()` -> `bool` - tests for blake3/sha256/git detection, name (`bus-3`) -> None, HASH_SCHEMES.len() == 3 - additive API (const + 2 methods) -> minor bump 0.13.0 -> 0.14.0 + CHANGELOG [0.14.0] cargo test (148 pass), clippy --all-targets [--all-features] -D warnings, fmt --check all green. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cj7a4Bkh8pRQuzcErD1j2E
This was referenced Sep 7, 2026
elasticdotventures
added a commit
that referenced
this pull request
Sep 7, 2026
…cy + AGENTS.md (#23) The semantic-graph layer (iso_ir → ontology → sysml_model/view) landed on main via #20/#21/#22 but was never tagged; v0.12.0/v0.13.0/v0.14.0 sat as "pending tag" in the CHANGELOG. This dates them for a consolidated v0.14.0 tag from main and documents what "release" means for a pre-1.0 crate. - CHANGELOG.md: date the three pending headings (2026-09-07), fix v0.11.0's stale "pending tag" (tag exists, 2026-08-30), add a versioning preamble. - README.md: new "Versioning & stability" section — 0.x carries NO SemVer guarantee, a 0.MINOR bump MAY reverse capability, "additive non-breaking" is intent not contract until 1.0; pin exact / by tag; strict FromStr is the stable surface, from_synonym may be re-tuned; non-numeric-id is a hard invariant. New "Downstream consumers" table: b00t, ledgrrr, kr0ki, m0ltis, critter-keeper, cim-gridy — crates, modules used, pin guidance. Refreshed the module bullet list to include the semantic-graph layer (was stale vs lib.rs). - AGENTS.md (new): module map with the graph layering, hard invariants, the pre-1.0 release procedure, build/check commands, downstream pins. No code change. 1.0.0 is gated on a production downstream consumer of the semantic-graph layer (kr0ki's model-ingestion path). Claude-Session: https://claude.ai/code/session_01Cj7a4Bkh8pRQuzcErD1j2E Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
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.
ElementId(insrc/sysml_model.rs, added in #20, re-used bysrc/ontology.rsfrom #21) now documents BLAKE3 as an accepted content-hash form alongsidesha256:andgit:.ElementIdstays an opaque string —pub struct ElementId(pub String), unchanged. This PR only:(`sha256:…`, `blake3:…`, `git:<blob-sha>`); the never numeric line is untouched.impl ElementId:pub const HASH_SCHEMES: &'static [&'static str] = &["sha256:", "blake3:", "git:"]content_hash_scheme(&self) -> Option<&'static str>— the scheme prefix this id carries if content-addressed, elseNoneis_content_addressed(&self) -> boolblake3:/sha256:/git:detection, a plain name (bus-3) →None/ not content-addressed,HASH_SCHEMES.len() == 3.const+ 2 methods) → minor bump0.13.0→0.14.0inCargo.toml, plus a[0.14.0]CHANGELOG section (manualchore-style edit in-PR, matching feat: SysML-v2 model types — SysmlViewKind, ElementKind, Relation (closed, data-level) #20 / feat: ontology module — UfoRelation, OntologicalEdge (canonical UFO semantic-graph layer) #21).src/ontology.rsandsrc/lib.rswere checked — neither enumerates thesha256:/git:prefix forms (they say "a content hash … never numeric" without listing prefixes), so no wording change was needed there.Gates
cargo test— 148 passcargo clippy --all-targets -- -D warnings— cleancargo clippy --all-targets --all-features -- -D warnings— cleancargo fmt --all -- --check— clean🤖 Generated with Claude Code