§ changelog

What shipped, and when.

Newest first. Terse by design — if an entry isn't something a third-party integrator would care about, it's not here. Package versions link to npm / PyPI; the protocol repo at github.com/orangecheck/oc-protocol is the authoritative source for spec changes.

[2026-04-22]// 6 releases
  • Org landing, /changelog, CI conformance enforcement

    siteci
    • github.com/orangecheck now has a proper org landing page (.github/profile/README.md).
    • oc-protocol and oc-packages get descriptions + topics so they are discoverable.
    • New /changelog page — this one. Backfilled with the last two weeks of shipped work.
    • Cross-impl conformance job in oc-packages CI: diffs the vendored vector sets against oc-protocol/main and runs both TS + Python test suites. Drift = CI failure.
  • /protocol page deleted, GitHub links repointed, /contact reworked

    site
    • /protocol page (duplicated /docs/concepts with drift) removed. Canonical spec now lives only at github.com/orangecheck/oc-protocol.
    • Every `github.com/orangecheck/oc-web` link (private repo) replaced with the correct public target (org, oc-protocol, or oc-packages).
    • /contact rebuilt to match the rest of the site UI system — full container width, numbered section headers, bottom info strip.
    • Landing BottomCta copy updated now that /signin + /dashboard exist.
  • Gate Fastify + Hono adapters, Python SDK offline primitives

    @orangecheck/gate@0.1.3orangecheck@0.1.2
    • Gate ships real ocGateFastify + ocGateHono adapters — README no longer advertises unshipped features.
    • Python SDK adds canonical.py: build_canonical_message, attestation_id, score_v0, format_identities, parse_identities. No more round-trip to ochk.io for core protocol primitives.
    • Python SDK now exercises the same 20 conformance vectors as the TS SDK. Cross-impl byte identity is proven, not claimed.
  • Conformance vectors v0 + SDK 0.1.4 happy-path tests

    @orangecheck/sdk@0.1.4protocol
    • 20 normative test vectors published at github.com/orangecheck/oc-protocol/conformance.
    • Covers canonical message format, identities list sort/escape, attestation_id derivation, score_v0 exact outputs, extension canonicalization, and MUST-reject error cases.
    • SDK test count: 23 → 68 (security regressions + conformance + happy-path).
    • Starter examples added: Express, Next.js App Router, Hono (each ~25 LOC runnable).
  • Security audit fixes across all @orangecheck packages

    @orangecheck/sdk@0.1.3@orangecheck/gate@0.1.2@orangecheck/wallet-adapter@0.1.2@orangecheck/relay-filter@0.1.2
    • SDK: Nostr identity verification now does real schnorr + bech32 (was a no-op returning true). SSRF guards on github/dns identity verifiers. Identity-line smuggling (newline/CR/comma in identifier) rejected at the boundary.
    • Gate: address source warning when caller-supplied (header/cookie/query/body). Cache-key normalization (bc1Q… / bc1q… no longer distinct). 10-min TTL clamp. Hard lookup timeout. Fail-closed by default.
    • Wallet-adapter: tight Xverse detection (empty truthy no longer passes). Dropped UniSat silent BIP-322 → legacy fallback. Every returned signature shape-checked.
    • Relay-filter: critical shebang fix (Strfry plugin could not exec). Per-line try/catch so one bad event cannot kill the plugin. Event shape validated. Short-TTL cache on lookup errors (circuit breaker).
    • All consumers moved from file:../sdk to real ^0.1.x ranges. Published packages now resolve cleanly for npm install.
  • /signin + /dashboard + /api/auth/*

    siteapi
    • Sign in with a single BIP-322 signature → httpOnly session cookie. Supabase-backed account store.
    • Account dashboard: identity, editable profile (display_name + nostr npub), attestations, sign-out.
    • New /api/auth/signin, /api/auth/me, /api/auth/logout, /api/auth/account with specific reason codes ("sig_invalid", "expired", "nonce_mismatch", …) mapped to actionable UI copy.
    • Signin flow: quick-connect wallet buttons auto-fill the address, pre-sign check catches "wallet on a different account" before the signature fails.
[2026-04-20]// 1 release
  • Initial v0 release — protocol + SDK + site

    protocol@orangecheck/sdk@0.1.0orangecheck@0.1.0
    • OrangeCheck Protocol v0 specification published.
    • Seven npm packages + Python SDK published.
    • ochk.io live with /create, /verify, /playground, /attest/discover, /airdrop, /docs.
§ protocol changes

Normative spec edits land first at oc-protocol/main with a commit message and are mirrored here.

§ package releases

Every package version is tagged at oc-packages/releases with auto-generated release notes.

§ site / api

Site + API changes are continuous-delivered to ochk.io. Rough summaries post here weekly.