Skip to content

Releases: Wolfe-Jam/claude-fafm-sdk

v1.4.0 — Verifiable Provenance

Choose a tag to compare

@Wolfe-Jam Wolfe-Jam released this 27 Jul 17:14

Verifiable Provenance — with signatures

1.3 proved a packet travels intact; 1.4 lets it prove which key sealed it.

Optional Ed25519 signatures over the same SPK1 payload CRC covers. Integrity (CRC) and provenance (signature) stay separate. Opt-in via [sign]cryptography. Base SDK + receipt stay zero-crypto.

Highlights

  • Fixed 64-byte trailer (no key_id); flags bit 0 = SIGNED
  • CLI: keygen · seal --sign · verify -k
  • Strict open/merge — signed packets never CRC-open
  • uvx claude-fafm-sdk receipt still GREEN
pip install 'claude-fafm-sdk[sign]'
claude-fafm-sdk keygen
claude-fafm-sdk seal -f soul.fafm -o soul.fafmp --sign --key sign.pem
claude-fafm-sdk verify -k sign.pub.pem soul.fafmp

Not a PKI. Key ≠ person. SPK1 ≠ FAFB. Strip-downgrade is possible (N1).

v1.3.0 — Provable Receipt

Choose a tag to compare

@Wolfe-Jam Wolfe-Jam released this 27 Jul 00:07

Provable Receipt — with uvx claude-fafm-sdk receipt

1.2 made memory sendable; 1.3 makes the proof one command. The 60-second Tier-2 arc (and falsifiers) ships in the wheel — no git clone required.

Added

  • claude-fafm-sdk receipt — etch → seal → file send → merge → recall + CRC-reject / double-merge / both-ways. Pure Python module in the package; --json for machine-readable PASS.
  • CLI open — open a .fafmp into a .fafm / summary; fail-closed.
  • Docs: RECEIPT.md + README lead with uvx receipt.

Verification

uvx --from 'claude-fafm-sdk==1.3.0' claude-fafm-sdk receipt
# or: pip install claude-fafm-sdk==1.3.0 && claude-fafm-sdk receipt

We claim / do not claim

  • Claim: one-command Tier-2 proof from the published package; same SPK1 / CvRDT as 1.2 (no merge-law change).
  • Do not claim: authentication/encryption (→ 1.4 Verifiable Provenance); delete convergence (→ 1.5); dual-impl re-proof of merge (receipt exercises transport + ingest).

Tip: 61d46a0

v1.2.0 — Sendable Memory

Choose a tag to compare

@Wolfe-Jam Wolfe-Jam released this 25 Jul 03:10

Sendable Memory

1.1 made souls mergeable; 1.2 makes them sendable — seal a soul into a CRC-integrity .fafmp packet, send the file, merge on arrival. The merge is unchanged (dual-implementation-verified CvRDT); this adds the transport around it.

Added

  • Packet API — top-level to_packet / from_packet / merge_packet (+ file helpers, PacketError). SPK1 + CRC-32 over payload only.
  • CLI seal / merge — file transport only; fail-closed (bad packet never rewrites the local soul).
  • Byte-identity — seals of the same logical state are byte-identical; wire-hex golden as interop anchor.
  • PACKET.md / RECEIPT.md — format + 60-second Tier-2 proof (examples/tier2_receipt.sh).
  • Hardening — residual-field goldens + encoding-lock fuzz.

Verification

pip install claude-fafm-sdk==1.2.0
python -c "from claude_fafm_sdk import to_packet, from_packet, merge_packet, __version__; print(__version__)"

Tier-2 receipt (from source at this tag):

git checkout v1.2.0 && bash examples/tier2_receipt.sh

We claim / do not claim

  • Claim: memory travels as a CRC-integrity-sealed .fafmp and ingests through the same state-based CvRDT; seals are byte-deterministic.
  • Do not claim: authentication/encryption (CRC = integrity, not auth); offline delete convergence (grow/update-only); full FAFB binary or IANA media type (SPK1FAFB).

Tip: 21b0059

v1.1.1 — Mergeable Memory (Soul-Packet CvRDT)

Choose a tag to compare

@Wolfe-Jam Wolfe-Jam released this 24 Jul 20:28

v1.1.1 — Mergeable Memory

First production release of Soul-Packet merge: a coordinator-free, order-independent Soul join — state-based CvRDT, dual-implementation verified. (1.1.0 was TestPyPI-only; 1.1.1 is the production cut with a corrected stranger-repro receipt.)

Added (from 1.1.0)

  • merge_souls(a, b) — commutative · associative · idempotent, no coordinator
  • MERGE.md — frozen merge spec + property oracle
  • WJTTC + N-version property suites

Fixed in 1.1.1

  • hypothesis in dev extras so pip install -e ".[dev]" runs the merge suites
  • Verification receipt: install-proof from the wheel + full suite from source checkout

Honesty bounds

  • We claim: state-based CvRDT under a frozen encoding lock (N-version)
  • We do NOT claim: sealed-packet send/CRC, offline delete convergence, or “all AIs”

Verify

pip install claude-fafm-sdk==1.1.1
python -c "from claude_fafm_sdk import merge_souls, __version__; print(__version__, merge_souls)"

Tip: d26b7af

v1.0.0 — Interop Baseline

Choose a tag to compare

@Wolfe-Jam Wolfe-Jam released this 22 Jul 03:57

v1.0.0 — Interop Baseline

Stable knowledge-profile .fafm baseline — INTEROP, document fidelity, from_claude_dir, cross-vendor tests, local recall SoT.

Highlights

  • INTEROP.md — timestamps, priority/rank, unknown fields, index, converter rules
  • Document fidelityindex, memory subtrees, residual field preserve
  • from_claude_dir — Claude Code memory → knowledge Soul (memory.facts v1.1)
  • Cross-vendor corpus + WJTTC FINISH release gate
  • Local recall SoT — deterministic rank; engine same-second drift documented

Install

pip install claude-fafm-sdk==1.0.0
# or
uv add claude-fafm-sdk

Full notes: CHANGELOG.md

v0.4.0

Choose a tag to compare

@Wolfe-Jam Wolfe-Jam released this 26 May 18:23

claude-fafm-sdk v0.4.0 — guided onboarding wizard

Added

  • claude-fafm-sdk quickstart (also runs with no subcommand) — a guided first run that walks the user end to end: create a soul → capture a first memory → go live on a zero-config namepoint → and proves it cross-vendor with a keyless read-back URL (mcpaas.live/raw/<handle>) + a paste-ready "hand it to any model" line. The 30-second wow.
  • Non-interactive shells do the safe local steps and point at namepoint push (never auto-push). Honest — no "live" claim unless a push actually happened.

Builds on v0.3.0's zero-config .fafm-native namepoints. Three new WJTTC tests cover the wizard's noninteractive, etch-and-skip-push, and no-false-live paths.

v0.3.0

Choose a tag to compare

@Wolfe-Jam Wolfe-Jam released this 23 May 17:45

claude-fafm-sdk v0.3.0 — zero-config, .fafm-native namepoints

Added

  • Zero-config namepoints. namepoint push auto-provisions an anonymous namepoint + key on first use (A-for-first-touch) — no claim page, no token copy. Stores the whole .fafm document (replace), so ids/types/priorities survive the round-trip and re-pushes are idempotent.
  • namepoint pull / sync — merge hosted facts by id.
  • namepoint claim [--email …] — recoverable, named namepoint (B-for-keepers); status shows which.
  • claude_fafm_sdk.identity module; Soul.to_yaml() / Soul.add().

Removed

  • namepoint link — superseded by zero-config provisioning + claim.

Fixed

  • Explicit User-Agent (the WAF banned the default Python UA); facts() degrades on markdown/.faf souls instead of crashing; silenced the benign flexi-mode log.

v0.2.0

Choose a tag to compare

@Wolfe-Jam Wolfe-Jam released this 23 May 05:36

claude-fafm-sdk v0.2.0

Added

  • CLI ls — list every fact (ranked priority then recency)
  • CLI forget <id> — delete a fact by id
  • CLI recall filters: --tag / --type / --priority

Fixed

  • recall recency tiebreak — same-second facts now return newest-first

Changed

  • Version single-sourced from __init__.__version__ (hatchling dynamic) — no pyproject drift
  • Accurate free-namepoint docs: a two-digit handle is free (@james99, @john10); claim at https://mcpaas.live/claim

v0.1.1 — sibling cross-link

Choose a tag to compare

@Wolfe-Jam Wolfe-Jam released this 22 May 19:41

Docs: PyPI badge + cross-link to grok-faf-voice (two profiles, one .fafm format). PyPI: https://pypi.org/project/claude-fafm-sdk/0.1.1/

v0.1.0 — first cut

Choose a tag to compare

@Wolfe-Jam Wolfe-Jam released this 22 May 19:41

First cut — the open, offline-first .fafm SDK. Soul (load/save/etch/recall), Fact, Namepoint client (fastmcp), MIT. PyPI: https://pypi.org/project/claude-fafm-sdk/0.1.0/