Deploy canary-gated Site Selection and RFP Studio v17.0
Browse files- DEPLOYMENT_NOTES.md +20 -11
- README.md +19 -17
- app.py +0 -0
- requirements.txt +4 -13
DEPLOYMENT_NOTES.md
CHANGED
|
@@ -1,16 +1,25 @@
|
|
| 1 |
# Deployment notes
|
| 2 |
|
| 3 |
-
Deployment package:
|
| 4 |
|
| 5 |
-
Protected runtime:
|
| 6 |
|
| 7 |
-
|
| 8 |
-
- Protected source exports `build_demo()` and does not define or call `main()`.
|
| 9 |
-
- Generate RFP Template automatically refreshes missing or stale demographic/operational-fit analysis.
|
| 10 |
-
- Runtime logs print `v16-prerequisite-auto-analysis-runtime-verification` loader, source, and ready markers.
|
| 11 |
-
- Plotly mapping uses `Scattermap` / MapLibre rather than deprecated `Scattermapbox`.
|
| 12 |
-
- Turso documents, queries, model exchanges, analysis state, and generated templates remain encrypted.
|
| 13 |
|
| 14 |
-
-
|
| 15 |
-
-
|
| 16 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
# Deployment notes
|
| 2 |
|
| 3 |
+
Deployment package: v17.0-guided-four-step-incentive-workflow (2026-08-20)
|
| 4 |
|
| 5 |
+
Protected runtime: v17-guided-four-step-incentive-workflow
|
| 6 |
|
| 7 |
+
Validation controls:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
|
| 9 |
+
- Uses minimal documented Hugging Face Space metadata.
|
| 10 |
+
- Pins every direct runtime dependency, including `libsql==0.1.11`.
|
| 11 |
+
- Requires a modern Hugging Face deployment helper; no legacy fallback is used.
|
| 12 |
+
- Builds the exact five-file package in a disposable private canary Space first.
|
| 13 |
+
- Requires the canary to reach `RUNNING` and expose the protected runtime markers.
|
| 14 |
+
- Deletes the canary after validation.
|
| 15 |
+
- Does not touch production unless the canary passes.
|
| 16 |
+
- Always refreshes the release-specific application-source key in production.
|
| 17 |
+
- Preserves the persistent RFP data-encryption key unless it is missing.
|
| 18 |
+
- Verifies uploaded production README, requirements, and encrypted app hashes.
|
| 19 |
+
- Uses a transition grace period before accepting a stale production terminal state.
|
| 20 |
+
- Uses a clear four-step workflow: Site Selector, Demographic Information,
|
| 21 |
+
RFP Response Generator, and RFP Recommendations (Incentive Package).
|
| 22 |
+
- Adds explicit site selection, responsive workflow navigation, simplified
|
| 23 |
+
evidence panels, and a downloadable performance-based incentive package.
|
| 24 |
+
- Keeps automatic prerequisite analysis, the single launch owner, MapLibre map,
|
| 25 |
+
encrypted Turso capture, Word outputs, and Dearmon Analytics branding.
|
README.md
CHANGED
|
@@ -1,31 +1,33 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
colorFrom: blue
|
| 4 |
colorTo: green
|
| 5 |
sdk: gradio
|
| 6 |
-
sdk_version: 6.
|
| 7 |
-
python_version: "3.
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
-
|
| 11 |
-
header: mini
|
| 12 |
-
disable_embedding: true
|
| 13 |
-
startup_duration_timeout: 1h
|
| 14 |
-
short_description: Site selection, operational fit, and RFP generation.
|
| 15 |
-
tags:
|
| 16 |
-
- consulting
|
| 17 |
-
- site-selection
|
| 18 |
-
- economic-development
|
| 19 |
-
- gradio
|
| 20 |
---
|
| 21 |
|
| 22 |
-
# Dearmon Analytics RFP
|
| 23 |
|
| 24 |
-
Encrypted private Gradio application.
|
| 25 |
|
| 26 |
-
|
| 27 |
|
| 28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
|
| 30 |
- `APP_SOURCE_FERNET_KEY_V1`
|
| 31 |
- `OPENAI_API_KEY`
|
|
|
|
| 1 |
---
|
| 2 |
+
title: Site Selection and RFP Studio
|
| 3 |
colorFrom: blue
|
| 4 |
colorTo: green
|
| 5 |
sdk: gradio
|
| 6 |
+
sdk_version: 6.5.1
|
| 7 |
+
python_version: "3.11"
|
| 8 |
app_file: app.py
|
| 9 |
pinned: false
|
| 10 |
+
short_description: Site selection, RFP responses, and incentives.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
---
|
| 12 |
|
| 13 |
+
# Dearmon Analytics Site Selection & RFP Response Studio
|
| 14 |
|
| 15 |
+
Encrypted private Gradio application.
|
| 16 |
|
| 17 |
+
Protected runtime: `v17-guided-four-step-incentive-workflow`. Deployment package: `v17.0-guided-four-step-incentive-workflow (2026-08-20)`.
|
| 18 |
|
| 19 |
+
The updater first proves this exact five-file package in a temporary private
|
| 20 |
+
canary Space. Production is not modified unless the canary reaches `RUNNING`,
|
| 21 |
+
the protected runtime markers are present, and the runtime remains stable.
|
| 22 |
+
|
| 23 |
+
Guided workflow:
|
| 24 |
+
|
| 25 |
+
1. Site Selector
|
| 26 |
+
2. Demographic Information
|
| 27 |
+
3. RFP Response Generator
|
| 28 |
+
4. RFP Recommendations (Incentive Package)
|
| 29 |
+
|
| 30 |
+
Required production Space secrets:
|
| 31 |
|
| 32 |
- `APP_SOURCE_FERNET_KEY_V1`
|
| 33 |
- `OPENAI_API_KEY`
|
app.py
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
requirements.txt
CHANGED
|
@@ -1,19 +1,10 @@
|
|
| 1 |
-
gradio==6.
|
| 2 |
-
|
| 3 |
-
huggingface-hub==1.27.0
|
| 4 |
-
fastapi==0.141.1
|
| 5 |
-
starlette==1.6.0
|
| 6 |
-
jinja2==3.1.6
|
| 7 |
-
uvicorn==0.41.0
|
| 8 |
-
numpy==2.5.2
|
| 9 |
-
pandas==3.0.5
|
| 10 |
PyMuPDF==1.26.7
|
| 11 |
python-docx==1.2.0
|
| 12 |
-
requests==2.
|
| 13 |
plotly==6.5.2
|
| 14 |
shapely==2.1.2
|
| 15 |
pyproj==3.7.2
|
| 16 |
-
|
| 17 |
-
cryptography==46.0.7
|
| 18 |
libsql==0.1.11
|
| 19 |
-
openai==2.54.0
|
|
|
|
| 1 |
+
gradio==6.5.1
|
| 2 |
+
pandas==2.2.3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
PyMuPDF==1.26.7
|
| 4 |
python-docx==1.2.0
|
| 5 |
+
requests==2.32.5
|
| 6 |
plotly==6.5.2
|
| 7 |
shapely==2.1.2
|
| 8 |
pyproj==3.7.2
|
| 9 |
+
cryptography==46.0.4
|
|
|
|
| 10 |
libsql==0.1.11
|
|
|