Skip to content

GraphForge v0.5.1

Choose a tag to compare

@DecisionNerd DecisionNerd released this 01 Aug 18:15
· 313 commits to main since this release
dd1fd8c
  • Freeze Cargo, Python, Node/native npm, CLI, and agent-skills surfaces at
    0.5.1 and cut the dated changelog for the coordinated M1 corrective
    release (#192).
  • Keep first-party crate path+version dependency pins on the same root
    version so Binding RC offline rehearsal and crates.io packaging accept
    the complete 15-crate graph (#192).
  • Generate the gitignored NAPI-RS index.js / index.d.ts entrypoints
    during Binding RC candidate assembly so the main npm tarball is complete
    before offline rehearsal (#192).
  • Offline Binding RC Node rehearsal installs only the host-compatible native
    npm package alongside main/CLI/skills so platform os/cpu metadata no
    longer fails the clean consumer with EBADPLATFORM (#192).
  • Offline Binding RC CLI rehearsal initializes a git project before
    config validate so the clean consumer matches the real CLI project
    contract (#192).
  • Retain Binding RC evidence and node-addon partitions with a multiline
    upload-artifact path so brace globs are not treated as a missing file
    set (#192).
  • Replace the Python package README with a concise PyPI landing page: short
    purpose, install path, one minimal first-use example, and canonical
    docs.graphforge.sh links instead of a raw CLI command inventory (#304).
  • Partition the immutable candidate into independently retained Python, npm,
    crates, evidence, and manifest artifacts; authorize every write from fresh
    registry truth; parallelize only the five native npm packages with verified
    main/CLI/skills fan-in; isolate registry credentials; remove polling sleeps;
    and always reconcile all 24 public nodes across partial job outcomes (#296).
  • Add a deterministic pre-write release rehearsal that installs and executes
    the exact candidate through clean Python, Node/native, CLI, and agent-skills
    consumers, validates all crate packages and dependencies, and proves the
    24-node recovery graph sequentially across partial success, cancelled,
    timed-out, skipped, propagation-delayed, conflicting, indeterminate, and
    expired-artifact outcomes (#295).
  • Derive publication recovery from the immutable candidate plus fresh PyPI,
    npm, and crates.io truth: normalize absence, accepted propagation, verified
    bytes, conflict, failure, and indeterminate evidence; bound visibility checks
    without sleeps or repeat writes; and schedule only dependency-valid absent
    nodes with available retained artifacts (#294).
  • Replace checksum-only release records with a deterministic, partitioned
    candidate manifest that enforces the complete 24-node public package set,
    one root version, exact dependency edges, archive entrypoints/legal files,
    retention, and an explicit registry-independent publication state model
    before any write (#293).
  • Adopt ADR 0017's single-version release invariant: all public Rust crates,
    Python and Node/native adapters, CLI, and agent skills must publish one exact
    GraphForge version, and partial-publication recovery may not introduce
    temporary or registry-specific version divergence (#292).
  • Split native binaries out of the main @curatelabs/graphforge npm tarball,
    and add the explicitly authorized v0.5.0 supplemental artifact/checksum
    record so the previously unpublished main package stays below npm's payload
    limit while reusing the already-published platform packages (#287).
  • Verify newly published and resumed npm packages immediately against npm's
    dist.integrity metadata, preserving exact-byte checks without failing while
    the registry's public tarball CDN is still replicating (#284).
  • Add an explicit, maintainer-reasoned publication recovery dispatch that can
    resume the immutable v0.5.0 tag and retained candidate after waiving only
    the tagged changelog's stale [Unreleased] entries; all artifact, checksum,
    identity, ordering, and fail-closed registry checks remain required (#281).
  • Move all public npm packages from the unavailable @graphforge scope to the
    Curate Labs-owned @curatelabs scope, using @curatelabs/graphforge for the
    native binding and @curatelabs/graphforge-* for platform, CLI, and agent
    skills packages; update release records, verification, and publication docs
    to reject the retired candidate names (#279).