jtdearmon commited on
Commit
fba03c2
·
verified ·
1 Parent(s): 8393360

Deploy canary-gated Site Selection and RFP Studio v17.0

Browse files
Files changed (4) hide show
  1. DEPLOYMENT_NOTES.md +20 -11
  2. README.md +19 -17
  3. app.py +0 -0
  4. requirements.txt +4 -13
DEPLOYMENT_NOTES.md CHANGED
@@ -1,16 +1,25 @@
1
  # Deployment notes
2
 
3
- Deployment package: v16.1-space-metadata-hotfix (2026-08-19)
4
 
5
- Protected runtime: v16-prerequisite-auto-analysis-runtime-verification (2026-08-19)
6
 
7
- - Single launch owner: root encrypted `app.py`.
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
- - Hugging Face `short_description` is 52 characters, below the 60-character limit.
15
- - The deployer validates this metadata length before saving secrets or uploading files.
16
- - Windows Anaconda paths use literal backslashes; no control characters remain in the batch launcher.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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: RFP Template Generator
3
  colorFrom: blue
4
  colorTo: green
5
  sdk: gradio
6
- sdk_version: 6.24.0
7
- python_version: "3.12"
8
  app_file: app.py
9
  pinned: false
10
- fullWidth: true
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 Template Generator
23
 
24
- Encrypted private Gradio application. Runtime release `v16-prerequisite-auto-analysis-runtime-verification (2026-08-19)`; deployment metadata hotfix `v16.1-space-metadata-hotfix`.
25
 
26
- Version 16 automatically runs demographic and operational-fit analysis when the user generates a template and the prerequisite state is missing or stale. The protected source never launches itself; the root encrypted loader owns the only server launch. Plotly maps use the MapLibre `Scattermap` API.
27
 
28
- Required Space secrets:
 
 
 
 
 
 
 
 
 
 
 
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.24.0
2
- gradio-client==2.6.0
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.34.2
13
  plotly==6.5.2
14
  shapely==2.1.2
15
  pyproj==3.7.2
16
- pillow==12.1.1
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