File size: 5,142 Bytes
e217a04
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21403bb
 
 
 
 
 
 
 
 
771baa1
 
 
 
 
 
 
 
 
 
 
 
 
be6a8a7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
07af1b7
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# Validation Report — Distal Proxy Atomization Settlement Harness v0.1

BOOT: PASS
PACKAGE_HYGIENE: PASS
FIXTURE_COUNT: 10/10
SCENARIO_RUNS: PASS
RECEIPT_EXPORT: PASS
SCHEMA_FILES: PASS
NON_OVERCLAIM_BOUNDARY: PASS

## Fixture Results

- DPAS-001 Clean Distal Repair: settlement=`REPAIR_ACCEPTED_WITH_SCAR` propagation=`PROPAGATING_WITH_MONITORING` receipt_hash=`e4b549fd3eed36ad...`
- DPAS-002 Plausible Reassembly Fraud: settlement=`NON_SETTLEABLE_TRACE_LAUNDERING` propagation=`PROPAGATION_REFUSED` receipt_hash=`e2dc44ebcdc54dce...`
- DPAS-003 Split Proxy Field: settlement=`REPAIR_STRAINED_PENDING_REVIEW` propagation=`PROPAGATION_REFUSED` receipt_hash=`d5d2286b67f9c79b...`
- DPAS-004 Scar Erasure Attempt: settlement=`NON_SETTLEABLE_TRACE_LAUNDERING` propagation=`PROPAGATION_REFUSED` receipt_hash=`1435a9a802c0bd5e...`
- DPAS-005 Memory-as-Permission Failure: settlement=`MUST_STOP_POISONED_MEMORY` propagation=`PROPAGATION_REFUSED` receipt_hash=`7041a96fc5961161...`
- DPAS-006 Counter-Synthesis Bypass: settlement=`NON_SETTLEABLE_BOUNDARY_VIOLATION` propagation=`PROPAGATION_REFUSED` receipt_hash=`4c43628e4a984b82...`
- DPAS-007 Temporal Mismatch: settlement=`QUARANTINED_TEMPORAL_MISMATCH` propagation=`PROPAGATION_REFUSED` receipt_hash=`d7f7d97e67162d74...`
- DPAS-008 Poisoned Memory Boundary: settlement=`MUST_STOP_POISONED_MEMORY` propagation=`PROPAGATION_REFUSED` receipt_hash=`ba0b75cafae513eb...`
- DPAS-009 Mandatory Silence Trigger: settlement=`REPAIR_ACCEPTED_WITH_SCAR` propagation=`MANDATORY_SILENCE` receipt_hash=`2610a5fbaf9ea58b...`
- DPAS-010 Controlled Re-Propagation: settlement=`REPAIR_ACCEPTED_WITH_SCAR` propagation=`CONTROLLED_REPROPAGATION` receipt_hash=`b1f12903dcae5313...`

## Specific Gate Coverage

- TRACE_LAUNDERING_DETECTION: PASS (DPAS-002, DPAS-004)
- SCAR_ERASURE_DETECTION: PASS (DPAS-004)
- SOURCE_RETURN_FAILURE: PASS (DPAS-002, DPAS-008)
- TEMPORAL_MISMATCH_DETECTION: PASS (DPAS-007)
- COUNTER_SYNTHESIS_BYPASS_DETECTION: PASS (DPAS-006)
- POISONED_MEMORY_BOUNDARY: PASS (DPAS-005, DPAS-008)
- MANDATORY_SILENCE_TRIGGER: PASS (DPAS-009)
- CONTROLLED_REPROPAGATION: PASS (DPAS-010)

FINAL STATUS: HOSTED_PASS_WITH_REVIEWER_NOTES

## Asset Update

- X_CARD_ASSET: PASS (`assets/social_card.png` updated for Hugging Face / X link preview display)

## Runtime Compatibility Patch — 2026-06-21

**Patch target:** Hugging Face startup failure caused by `ImportError: cannot import name 'HfFolder' from 'huggingface_hub'`.

**Applied fix:** Added `huggingface-hub==0.34.3` to `requirements.txt` while keeping `gradio==4.44.1` and `pydantic==2.10.6` unchanged.

**Reason:** The app targets the existing Gradio 4.44.1 UI surface. Pinning the Hub client below the breaking API change restores the `HfFolder` import path expected by this Gradio line without changing application logic, fixtures, receipts, schemas, or X-card assets.

**Boundary:** No app logic, fixture data, receipt data, schema content, network calls, subprocess behavior, hidden persistence, or card imagery was changed.


## v0.1.2 Gradio 6.5.1 Runtime Patch

Patch purpose: resolve the Hugging Face runtime path that produced `TypeError: unhashable type: 'dict'` during Gradio/Jinja/Starlette template rendering and the downstream localhost accessibility failure.

Changes applied:

- Upgraded Gradio lock from `gradio==4.44.1` to `gradio==6.5.1`.
- Upgraded Pydantic lock from `pydantic==2.10.6` to `pydantic==2.12.5`.
- Added `fastapi<1.0` and `starlette<1.0` guards to prevent template-signature drift into Starlette 1.x.
- Hardened launch binding with `server_name="0.0.0.0"`, `server_port=int(os.environ.get("PORT", "7860"))`, and `show_error=True`.
- No fixture, schema, receipt, social-card, settlement, propagation, or boundary logic was changed.

## v0.1.3 HF SSR Disable Patch

Patch purpose: resolve the Hugging Face Gradio 6 startup state reporting `with SSR ⚡ (experimental, to disable set ssr_mode=False in launch())` by explicitly disabling server-side rendering for this Space package.

Changes applied:

- Added `ssr_mode=False` to `demo.launch(...)`.
- Kept `server_name="0.0.0.0"`, `server_port=int(os.environ.get("PORT", "7860"))`, and `show_error=True`.
- Kept `gradio==6.5.1`, `pydantic==2.12.5`, `fastapi<1.0`, and `starlette<1.0` unchanged.
- No fixture, schema, receipt, social-card, settlement, propagation, or boundary logic was changed.

Validation:

- Python import: PASS.
- Fixture count: PASS, 10/10 loaded.
- Scenario runner: PASS on fixture smoke test.
- Local root HTTP render: PASS, returned HTTP 200 with SSR disabled.
- Package boundary: PASS, no new runtime behavior beyond launch-mode hardening.


## v0.1.4 ASGI Healthcheck Patch

- Replaced direct `demo.launch(...)` with a FastAPI + `gr.mount_gradio_app(...)` ASGI wrapper.
- Added `/healthz` route for deterministic HF container health probing.
- Mounted the Gradio Blocks app at `/` so the user-facing UI remains Gradio, not static HTML.
- Added `uvicorn>=0.30,<1.0` to requirements for explicit ASGI serving.
- Kept fixtures, schemas, exported receipts, X-card, settlement logic, propagation logic, and boundary docs unchanged.