BRAID CLIENT v1.5.0rc2 - VERIFICATION EVIDENCE
Generated: 2026-08-11

DESIGN CENTER
-------------
One field. Any path. One acceptance boundary.

Constitutional invariant:
  accepted == (finality == "committed")
  accepted => phase_b_committed

Phase A remains non-locking evidence. Phase B remains the sole atomic replay/session commit and finality boundary.

V1.5.0rc2 OLLAMA + LEGEND COVERAGE
-----------------------------------
1. Signed Legend
   - closed braid.legend.v1 schema
   - bounded field lengths, list counts and canonical JCS size
   - objective / active intent
   - typed critical constraints
   - branch conditions
   - provenance-sensitive facts using non-overclaiming source labels
   - temporal salience / optional expiry
   - significance weights
   - must-preserve anchors
   - optional archive references
   - exact generator model tag and digest
   - source text SHA-256
   - domain-separated Legend digest
   - Legend + digest + authority label inside signed Braid manifest

2. Built-in Ollama adapter
   - loopback URL enforcement: 127.0.0.1 / localhost / ::1 only
   - HTTP redirects rejected (loopback endpoint cannot bounce requests off-host)
   - local /api/show readiness
   - local /api/tags exact model digest binding
   - local /api/chat structured Legend generation
   - local /api/embed exact 384D encoding
   - source completion-model provenance binding
   - source/target embedding-model digest binding
   - no auto-pull / no cloud fallback
   - generative_vector_injection=false claim lock

3. Same-space Ollama route
   - exact source/target model tag equality
   - exact source/target model digest equality
   - deterministic embedding probe
   - identity 384D transport map
   - held-out identity checks
   - route_kind=same_space_identity
   - nonmatching models remain on measured heterogeneous calibration path

4. Receiver integration
   - Legend digest verified before Phase B
   - configured built-in Ollama handoff requires signed Legend
   - receiver target vector remains receiver-derived
   - Legend digest propagates into derived-state lineage
   - signed Ollama source/target embedding identities must match receiver-authorized route spaces before Phase B
   - Ollama model invocation only after committed Phase B
   - receiver target Legend embedding compared to mapped target vector
   - optional receiver-local minimum alignment policy
   - private .ollama.json handoff artifact
   - local model failure after commit degrades delivery but cannot rewrite finality
   - built-in Ollama and shell handoff modes are mutually exclusive

5. Preserved rc1 heterogeneous route machinery
   - deterministic 768+ semantic conformance corpus
   - train / validation / held-out test split discipline
   - Procrustes / ridge-linear / optional ELM map candidates
   - target-space route evidence and route-specific Gate-3 artifacts
   - route package artifact hash verification
   - research_only route refusal
   - mapped target-space emission after Phase B

PRESERVED V1.4.9 HARDENING
--------------------------
- transport callback cannot invent accepted finality
- external validator success remains prevalidation only
- callback and external validator modes are mutually exclusive
- replay/session head namespace scoped by receiver + signer + route + session
- simultaneous duplicate Phase-B commits produce exactly one winner
- RFC 8785 UTF-16 property ordering and Appendix-B numeric vectors pinned
- bounded sender reads and bounded/control-cleaned sensing state
- single-source package/MCP version identity
- post-commit degradation cannot rewrite committed history

REGRESSION / CONFORMANCE GATE
-----------------------------
The suite was executed in three deterministic partitions because one combined discovery process exceeded this verification container's execution window. Every test module was included exactly once.

Partition A - v1.4.x regression set:
  Command:
    python -W error::ResourceWarning -m unittest \
      tests.test_2node_qr_smoke_test \
      tests.test_client_conformance \
      tests.test_client_v1_4_3 \
      tests.test_transport_v145 \
      tests.test_v1_4_4_finish \
      tests.test_v1_4_7_receiver \
      tests.test_v1_4_8_polish \
      tests.test_v1_4_9_hardening -v
  Result: PASS 83/83
  Runtime in this environment: ~27 s

Partition B - v1.5 heterogeneous route set:
  Command:
    python -W error::ResourceWarning -m unittest tests.test_v1_5_0_hetero -v
  Result: PASS 5/5
  Runtime in this environment: ~5 s

Partition C - v1.5 Ollama + Legend set:
  Command:
    python -W error::ResourceWarning -m unittest tests.test_v1_5_0_ollama_legend -v
  Result: PASS 12/12
  Runtime in this environment: ~3 s

TOTAL: PASS 100/100

New Ollama/Legend tests include:
- strict Legend normalization and digest tamper rejection
- loopback-only Ollama URL enforcement and redirect rejection
- /api/show + /api/tags + /api/chat + /api/embed client paths against a fake loopback Ollama HTTP service
- ollama-doctor readiness
- exact-digest same-space identity route
- same-model Ollama calibration digest binding
- full Legend -> signed frame -> Phase A -> Phase B -> built-in Ollama handoff
- post-commit Ollama failure preserving committed finality
- signed-but-self-inconsistent Legend rejection before Phase B
- signed Ollama model metadata vs receiver-authorized route mismatch rejection before Phase B
- completion-model provenance mismatch rejection
- shell / built-in handoff conflict rejection

PYTHON COMPILE GATE
-------------------
Command:
  python -m compileall -q braid_client tests
Result: PASS

CORE DOCTOR GATE
----------------
Command:
  python -m braid_client.cli doctor
Result:
  version:             1.5.0rc2
  ready:               true
  field_assets:        true
  qr_encode:           true
  receiver_roundtrip:  true
  finality_invariant:  true
  camera_fallback:     true in verification environment
  ble_sensing:         false in verification environment (optional dependency)

OPTICAL SMOKE GATE
------------------
Command:
  python -m braid_client.cli smoke-test
Result:
  PASS: signed frame -> QR image channel -> reassembly -> Phase A -> Phase B -> local 384D emit

PYTHON SUPPORT FLOOR
--------------------
pyproject.toml now declares requires-python >=3.10.
Reason: Braid source uses PEP 604 union type syntax (`X | None`), which is not supported by Python 3.9. This corrects the metadata/runtime mismatch found during physical v1.4.9 setup.

REAL OLLAMA / MISTRAL PHYSICAL GATE
-----------------------------------
NOT YET EXECUTED FOR v1.5.0rc2 IN THIS BUILD ENVIRONMENT.

The automated Ollama tests use a fake loopback HTTP service so the exact adapter protocol, digest, Legend, receiver, and degradation paths are exercised without pretending that fake responses prove Mistral semantic behavior.

Required before stamping final v1.5.0 or making a public claim of real Mistral-to-Mistral continuation:
  1. run braid-client ollama-doctor on both physical nodes using exact local model tags;
  2. provision all-minilm:latest (or another explicitly accepted 384D embedding model) on both nodes;
  3. build an empirically_promotable exact-digest Ollama route;
  4. provision the exact route package and sender public key to Node B;
  5. create a signed Legend-conditioned frame on Node A using the real local Mistral instance;
  6. send the frame over the real LAN transport;
  7. require Node B accepted=true, phase_b_committed=true, finality=committed;
  8. require a real receiver-local Ollama handoff artifact and model continuation;
  9. run the negative checks in BRAID_OLLAMA_2NODE_UAT.md.

CLAIM BOUNDARY
--------------
v1.5.0rc2 does not claim native hidden-state, KV-cache, weight, or soft-prefix injection into Mistral. The signed Legend is explicit semantic continuity context. The 384D state is a model-produced embedding/alignment representation. The receiver completion model consumes the committed signed Legend through its normal local Ollama inference API only after Braid Phase B finality.

GO / NO-GO
----------
GO for v1.5.0rc2 release-candidate packaging and real two-node Ollama/Mistral UAT.
NO-GO for stamping final v1.5.0 or claiming real Mistral-to-Mistral Braid continuation until that physical UAT passes.

PACKAGE / CLEAN-INSTALL GATE
----------------------------
PASS: wheel built locally:
      braid_client-1.5.0rc2-py3-none-any.whl
PASS: source distribution built locally:
      braid_client-1.5.0rc2.tar.gz
PASS: clean target install from wheel reports version 1.5.0rc2, doctor ready=true, finality_invariant=true.
PASS: clean target install from sdist reports version 1.5.0rc2, doctor ready=true, finality_invariant=true.
PASS: sdist contains docs/LEGEND.md, docs/OLLAMA_ADAPTER.md, BRAID_OLLAMA_2NODE_UAT.md, and the Ollama/Legend conformance tests.
