Update docs for v0.3.0 and bump attest module to v0.2.0
Some checks failed
CI / lint (push) Failing after 13s
CI / typecheck (push) Failing after 14s

- Bump attest subpackage version from 0.1.0 to 0.2.0
- Add c2pa_bridge/ module to CLAUDE.md architecture tree
- Add security/ and planning/ docs to CLAUDE.md and docs/index.md
- Update federation architecture doc version to 0.3.0
- Verify zero remaining old branding references across all docs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Aaron D. Lee 2026-04-02 18:30:52 -04:00
parent e4f68fc83a
commit 3a9cb17a5a
7 changed files with 34 additions and 6 deletions

View File

@ -67,7 +67,7 @@ src/fieldwitness/ Core library
image_utils.py / audio_utils.py / video_utils.py
keygen.py / qr_utils.py / recovery.py / debug.py / utils.py
attest/ Provenance attestation engine (inlined from fieldwitness.attest v0.1.0)
attest/ Provenance attestation engine (inlined from fieldwitness.attest v0.2.0)
attestation.py Core attestation creation + EXIF extraction
verification.py Attestation verification
crypto.py Ed25519 signing
@ -97,6 +97,12 @@ src/fieldwitness/ Core library
models.py IdentityInfo, KeystoreStatus, RotationResult dataclasses
export.py Encrypted key bundle export/import (SOOBNDL format)
c2pa_bridge/ C2PA (Content Authenticity) bridge
__init__.py Public API: export, has_c2pa()
cert.py Self-signed X.509 cert generation from Ed25519 key
export.py AttestationRecord -> C2PA manifest
vendor_assertions.py org.fieldwitness.* assertion schemas
fieldkit/ Field security features
killswitch.py Emergency data destruction (PurgeScope.KEYS_ONLY | ALL, deep forensic scrub)
deadman.py Dead man's switch (webhook warning + auto-purge)
@ -142,6 +148,13 @@ docs/ Documentation
chain-format.md Chain record spec (CBOR, entropy witnesses, serialization)
export-bundle.md Export bundle spec (FIELDWITNESSX1 binary format, envelope encryption)
federation-protocol.md Federation server protocol (CT-inspired, gossip, storage tiers)
security/
threat-model.md Adversary model, guarantees, non-guarantees, known limitations
planning/
why-fieldwitness.md Problem statement, positioning, scenarios
c2pa-integration.md C2PA bridge architecture, concept mapping, implementation phases
packaging-strategy.md Hosted demo, standalone binary, mobile app, onboarding flow
gtm-feasibility.md Phased plan for credibility, funding, field testing
training/
reporter-quickstart.md One-page reporter quick-start for Tier 1 USB (print + laminate)
reporter-field-guide.md Comprehensive reporter guide: attest, stego, killswitch, evidence

View File

@ -34,7 +34,7 @@ Pull USB = zero trace Web UI + federation API Zero knowledge of
\_____ sneakernet ____+____ gossip API ____/
```
Stego (steganography, v4.3.0) and Attest (attestation, v0.1.0) are included as
Stego (steganography, v4.3.0) and Attest (attestation, v0.2.0) are included as
subpackages (`import fieldwitness.stego`, `import fieldwitness.attest`). Everything ships as one
install: `pip install fieldwitness`.

View File

@ -1,7 +1,7 @@
# Federated Attestation System — Architecture Overview
**Status**: Design
**Version**: 0.1.0-draft
**Version**: 0.3.0
**Last updated**: 2026-04-01
## 1. Problem Statement

View File

@ -24,6 +24,12 @@
| [Evidence Guide](evidence-guide.md) | Evidence packages, cold archives, selective disclosure, chain anchoring, legal discovery workflow. |
| [Source Drop Box](source-dropbox.md) | Anonymous file intake: tokens, EXIF pipeline, receipt codes, operational security. |
## Security
| Document | Description |
|---|---|
| [Threat Model](security/threat-model.md) | Adversary model, security guarantees, non-guarantees, cryptographic primitives, key management, known limitations. |
## Architecture (Developer Reference)
| Document | Description |
@ -32,3 +38,12 @@
| [Chain Format Spec](architecture/chain-format.md) | CBOR record format, entropy witnesses, serialization, storage format, content types. |
| [Export Bundle Spec](architecture/export-bundle.md) | FIELDWITNESSX1 binary format, envelope encryption (X25519 + AES-256-GCM), Merkle trees. |
| [Federation Protocol Spec](architecture/federation-protocol.md) | CT-inspired server protocol: API endpoints, gossip, storage tiers, receipts, security model. |
## Planning
| Document | Description |
|---|---|
| [Why FieldWitness](planning/why-fieldwitness.md) | Problem statement, positioning, scenarios, and technical overview for non-technical audiences. |
| [C2PA Integration](planning/c2pa-integration.md) | C2PA bridge architecture, concept mapping, implementation phases, privacy design. |
| [Packaging Strategy](planning/packaging-strategy.md) | Hosted demo, standalone binary, mobile app, and onboarding flow design. |
| [GTM Feasibility](planning/gtm-feasibility.md) | Phased plan for credibility, community engagement, funding, and field testing. |

View File

@ -11,7 +11,7 @@ from fastapi import FastAPI
app = FastAPI(
title="FieldWitness API",
version="0.1.0",
version="0.2.0",
description="Unified steganography and attestation API",
)

View File

@ -6,7 +6,7 @@ Part of the Soo Suite:
- Attest: overt attestation, proving provenance and building decentralized reputation
"""
__version__ = "0.1.0"
__version__ = "0.2.0"
try:
from .models import Attestation, AttestationRecord, Identity

View File

@ -38,7 +38,7 @@ BASE_URL = os.environ.get("FIELDWITNESS_BASE_URL", "https://attest.io")
app = FastAPI(
title="Attest",
description="Decentralized image provenance and attestation API",
version="0.1.0",
version="0.2.0",
docs_url="/docs",
redoc_url="/redoc",
)