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.
|