jtdearmon commited on
Commit
f234e37
·
verified ·
1 Parent(s): 46ac3b1

Deploy SAT & ACT Learning Lab 1.8.5+hfbuild3

Browse files
Files changed (4) hide show
  1. DEPLOYMENT_NOTES.md +6 -6
  2. README.md +10 -8
  3. app.py +0 -0
  4. release_manifest.json +22 -22
DEPLOYMENT_NOTES.md CHANGED
@@ -1,4 +1,4 @@
1
- # Deployment notes — SAT & ACT Learning Lab 1.8.2+hfbuild3
2
 
3
  Target private Space: `DearmonAnalytics/SAT_ACT_Learning_Lab`
4
 
@@ -6,7 +6,7 @@ Turso database: `dearmon-sat-act-learning-lab`
6
 
7
  Schema namespace: `sat_act_learning_lab_v1`
8
 
9
- Encrypted-source secret: `SAT_ACT_APP_FERNET_V1_8_2_HFBUILD3_24633A60E6F3_FA3D242570D5`
10
 
11
  ## Runtime contract
12
 
@@ -95,7 +95,7 @@ Encrypted-source secret: `SAT_ACT_APP_FERNET_V1_8_2_HFBUILD3_24633A60E6F3_FA3D24
95
 
96
  Core secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`, `TURSO_AUTH_TOKEN`,
97
  `LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
98
- `SAT_ACT_APP_FERNET_V1_8_2_HFBUILD3_24633A60E6F3_FA3D242570D5`. Live avatar video additionally uses optional
99
  `SIMLI_API_KEY`.
100
 
101
  Email recovery uses `AUTH_RECOVERY_EMAIL_ENABLED`, `AUTH_SMTP_HOST`,
@@ -117,7 +117,7 @@ packaged Simli client route, and transport settings are listed in
117
  `environment.example` used to prepare this deployment. Remote avatar-client
118
  module overrides are intentionally rejected.
119
 
120
- Version 1.8.2+hfbuild3 uses immutable item/timing/scoring snapshots and explicit recovery
121
  compatibility contracts. Resume only a saved contract that is explicitly supported;
122
  legacy checkpoints follow the tested compatibility allowlist. Incompatible work
123
  stays blocked and requires an approved transition or learner choice, never silent
@@ -133,7 +133,7 @@ validated application patch. This Space explicitly selects python_version:
133
  "3.12.13"; the builder verifies agreement with runtime.txt and the loader.
134
  Health verification records the actual interpreter before deployment succeeds.
135
 
136
- Acceptance testing for v1.8.2+hfbuild3 must verify the exact Dearmon Analytics paper,
137
  ink, blue, teal, and coral palette; compact 1,240-pixel workspace; bundled
138
  same-origin Inter, Source Serif 4, and Geist Mono; and one crisp DA gradient rule
139
  across the compact chooser and three shadow-free horizontal Practice rails.
@@ -210,7 +210,7 @@ safe retries without prompting the deployer operator.
210
 
211
  ## Key lifecycle and rollback
212
 
213
- The current loader reads only `SAT_ACT_APP_FERNET_V1_8_2_HFBUILD3_24633A60E6F3_FA3D242570D5`. A later release must generate a
214
  new versioned, fingerprinted secret name. The deployer adds that secret before
215
  the repository commit and retains earlier keys. Roll back by reverting the
216
  Space repository to the prior commit recorded in `deployment_receipt.json`.
 
1
+ # Deployment notes — SAT & ACT Learning Lab 1.8.5+hfbuild3
2
 
3
  Target private Space: `DearmonAnalytics/SAT_ACT_Learning_Lab`
4
 
 
6
 
7
  Schema namespace: `sat_act_learning_lab_v1`
8
 
9
+ Encrypted-source secret: `SAT_ACT_APP_FERNET_V1_8_5_HFBUILD3_1429F1B51EF0_34785BFEEC65`
10
 
11
  ## Runtime contract
12
 
 
95
 
96
  Core secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`, `TURSO_AUTH_TOKEN`,
97
  `LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
98
+ `SAT_ACT_APP_FERNET_V1_8_5_HFBUILD3_1429F1B51EF0_34785BFEEC65`. Live avatar video additionally uses optional
99
  `SIMLI_API_KEY`.
100
 
101
  Email recovery uses `AUTH_RECOVERY_EMAIL_ENABLED`, `AUTH_SMTP_HOST`,
 
117
  `environment.example` used to prepare this deployment. Remote avatar-client
118
  module overrides are intentionally rejected.
119
 
120
+ Version 1.8.5+hfbuild3 uses immutable item/timing/scoring snapshots and explicit recovery
121
  compatibility contracts. Resume only a saved contract that is explicitly supported;
122
  legacy checkpoints follow the tested compatibility allowlist. Incompatible work
123
  stays blocked and requires an approved transition or learner choice, never silent
 
133
  "3.12.13"; the builder verifies agreement with runtime.txt and the loader.
134
  Health verification records the actual interpreter before deployment succeeds.
135
 
136
+ Acceptance testing for v1.8.5+hfbuild3 must verify the exact Dearmon Analytics paper,
137
  ink, blue, teal, and coral palette; compact 1,240-pixel workspace; bundled
138
  same-origin Inter, Source Serif 4, and Geist Mono; and one crisp DA gradient rule
139
  across the compact chooser and three shadow-free horizontal Practice rails.
 
210
 
211
  ## Key lifecycle and rollback
212
 
213
+ The current loader reads only `SAT_ACT_APP_FERNET_V1_8_5_HFBUILD3_1429F1B51EF0_34785BFEEC65`. A later release must generate a
214
  new versioned, fingerprinted secret name. The deployer adds that secret before
215
  the repository commit and retains earlier keys. Roll back by reverting the
216
  Space repository to the prior commit recorded in `deployment_receipt.json`.
README.md CHANGED
@@ -14,7 +14,7 @@ short_description: Dynamic SAT/ACT practice, mastery, and reasoning graphs
14
 
15
  # Dearmon Analytics SAT & ACT Learning Lab
16
 
17
- Release `1.8.2+hfbuild3` provides original dynamic practice for current SAT and
18
  ACT skill blueprints, a complete eight-level question-skill hierarchy,
19
  individual mastery tracking, targeted practice, and test-like diagnostic
20
  sessions with separate raw results and unofficial practice-score estimates. It adds username/password
@@ -25,7 +25,7 @@ Signed-in students can also download their complete personalized Topic Graph as
25
  a branded PNG, printable PDF, accessible hierarchy-and-concepts CSV, and
26
  verification manifest; demo sessions remain nonexportable.
27
 
28
- Release 1.8.2+hfbuild3 retains the exact Dearmon Analytics paper, ink, blue, teal, and
29
  coral system established in v1.4.4 for the compact 1,240-pixel workspace. Bundled Inter, Source Serif 4, and
30
  Geist Mono fonts are served from same-origin routes. The compact test chooser
31
  and closely stacked Section → Domain → Narrow Topic rails use one restrained DA
@@ -45,7 +45,7 @@ printable exam/answer-key PDFs so raw LaTeX is never the learner-facing
45
  fallback. The collapsed item-specific Concepts Needed swim lane, complete
46
  analogous worked examples, separate hints, and mastery whitening remain.
47
 
48
- Release 1.8.2+hfbuild3 assigns all 1,983 trusted built-in question profiles their full
49
  Exam → Section → Official Domain → Official Skill Family → Narrow Exam
50
  Target → Prerequisite Bundle → Atomic Skill → Observable Failure Attribute
51
  path. Each stable profile contains its complete ancestor and transitive-
@@ -73,7 +73,7 @@ pretest/EFT items and AI supplemental printable items are excluded. Fewer than
73
  eight observed items or less than one quarter of a standard section remains a
74
  preliminary, very-low-confidence result below the reporting threshold.
75
 
76
- Release 1.8.2+hfbuild3 retains one OpenAI-assisted follow-up beneath each graded
77
  explanation and a signed-in cross-question Learning Diagnostic. The diagnostic
78
  unlocks only after strict majority coverage of both Reading and Math for the
79
  same exam. It sends OpenAI only allowlisted aggregate performance evidence—not
@@ -126,7 +126,7 @@ attribute-level mastery or retention records.
126
  This private Space uses the separate Turso database
127
  `dearmon-sat-act-learning-lab` and schema namespace
128
  `sat_act_learning_lab_v1`. Its encrypted application uses the versioned Space
129
- secret `SAT_ACT_APP_FERNET_V1_8_2_HFBUILD3_24633A60E6F3_FA3D242570D5`.
130
 
131
  Required Space secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`,
132
  `TURSO_AUTH_TOKEN`, `LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
@@ -155,10 +155,12 @@ and verified legacy name/class/PIN profiles can be converted without moving
155
  their mastery history. Each account receives a one-time-display offline
156
  recovery key that rotates after use. Account email on Hugging Face uses Resend
157
  over HTTPS because standard SMTP ports are blocked. Set
158
- `AUTH_EMAIL_PROVIDER=resend`, `AUTH_EMAIL_FROM` to an address on your verified
159
- sending domain, `AUTH_RESEND_API_KEY` as a Space Secret, and
160
  `AUTH_RECOVERY_EMAIL_ENABLED=1`. The private kit includes `SETUP_EMAIL.bat`
161
  and `docs/EMAIL_RECOVERY_SETUP.md` for configuration and delivery checks.
 
 
162
  Provider credentials belong in Secrets, never public Variables or source.
163
  Use the code from your most recent request: codes expire 15 minutes after
164
  the request, work once, and are replaced by a newly requested code. Delayed
@@ -179,7 +181,7 @@ controls, and retention policies.
179
 
180
  ## Upgrade note
181
 
182
- Version 1.8.2+hfbuild3 uses immutable item/timing/scoring snapshots and explicit recovery
183
  compatibility contracts. Resume only a saved contract that is explicitly supported;
184
  legacy checkpoints follow the tested compatibility allowlist. Incompatible work
185
  stays blocked and requires an approved transition or learner choice, never silent
 
14
 
15
  # Dearmon Analytics SAT & ACT Learning Lab
16
 
17
+ Release `1.8.5+hfbuild3` provides original dynamic practice for current SAT and
18
  ACT skill blueprints, a complete eight-level question-skill hierarchy,
19
  individual mastery tracking, targeted practice, and test-like diagnostic
20
  sessions with separate raw results and unofficial practice-score estimates. It adds username/password
 
25
  a branded PNG, printable PDF, accessible hierarchy-and-concepts CSV, and
26
  verification manifest; demo sessions remain nonexportable.
27
 
28
+ Release 1.8.5+hfbuild3 retains the exact Dearmon Analytics paper, ink, blue, teal, and
29
  coral system established in v1.4.4 for the compact 1,240-pixel workspace. Bundled Inter, Source Serif 4, and
30
  Geist Mono fonts are served from same-origin routes. The compact test chooser
31
  and closely stacked Section → Domain → Narrow Topic rails use one restrained DA
 
45
  fallback. The collapsed item-specific Concepts Needed swim lane, complete
46
  analogous worked examples, separate hints, and mastery whitening remain.
47
 
48
+ Release 1.8.5+hfbuild3 assigns all 1,983 trusted built-in question profiles their full
49
  Exam → Section → Official Domain → Official Skill Family → Narrow Exam
50
  Target → Prerequisite Bundle → Atomic Skill → Observable Failure Attribute
51
  path. Each stable profile contains its complete ancestor and transitive-
 
73
  eight observed items or less than one quarter of a standard section remains a
74
  preliminary, very-low-confidence result below the reporting threshold.
75
 
76
+ Release 1.8.5+hfbuild3 retains one OpenAI-assisted follow-up beneath each graded
77
  explanation and a signed-in cross-question Learning Diagnostic. The diagnostic
78
  unlocks only after strict majority coverage of both Reading and Math for the
79
  same exam. It sends OpenAI only allowlisted aggregate performance evidence—not
 
126
  This private Space uses the separate Turso database
127
  `dearmon-sat-act-learning-lab` and schema namespace
128
  `sat_act_learning_lab_v1`. Its encrypted application uses the versioned Space
129
+ secret `SAT_ACT_APP_FERNET_V1_8_5_HFBUILD3_1429F1B51EF0_34785BFEEC65`.
130
 
131
  Required Space secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`,
132
  `TURSO_AUTH_TOKEN`, `LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
 
155
  their mastery history. Each account receives a one-time-display offline
156
  recovery key that rotates after use. Account email on Hugging Face uses Resend
157
  over HTTPS because standard SMTP ports are blocked. Set
158
+ `AUTH_EMAIL_PROVIDER=resend`, `AUTH_EMAIL_FROM=jacob@dearmonanalytics.com`,
159
+ `AUTH_RESEND_API_KEY` as a Space Secret, and
160
  `AUTH_RECOVERY_EMAIL_ENABLED=1`. The private kit includes `SETUP_EMAIL.bat`
161
  and `docs/EMAIL_RECOVERY_SETUP.md` for configuration and delivery checks.
162
+ The consumer Resend sender is jacob@dearmonanalytics.com. Setup repairs a
163
+ different saved sender while preserving the existing Resend Secret.
164
  Provider credentials belong in Secrets, never public Variables or source.
165
  Use the code from your most recent request: codes expire 15 minutes after
166
  the request, work once, and are replaced by a newly requested code. Delayed
 
181
 
182
  ## Upgrade note
183
 
184
+ Version 1.8.5+hfbuild3 uses immutable item/timing/scoring snapshots and explicit recovery
185
  compatibility contracts. Resume only a saved contract that is explicitly supported;
186
  legacy checkpoints follow the tested compatibility allowlist. Incompatible work
187
  stays blocked and requires an approved transition or learner choice, never silent
app.py CHANGED
The diff for this file is too large to render. See raw diff
 
release_manifest.json CHANGED
@@ -1,25 +1,25 @@
1
  {
2
- "built_utc": "2026-09-10T18:45:04+00:00",
3
  "database_name": "dearmon-sat-act-learning-lab",
4
- "encrypted_payload_sha256": "f27af16b3684c502d410757148b05b1ca8f1ccd58027cde34f721acbde3851ab",
5
  "entry_module": "sat_act_lab.app_main",
6
- "fernet_secret_name": "SAT_ACT_APP_FERNET_V1_8_2_HFBUILD3_24633A60E6F3_FA3D242570D5",
7
- "key_fingerprint_sha256_prefix": "FA3D242570D5",
8
- "plaintext_archive_sha256": "24633a60e6f395339c4478c5c0ccc53745f5a8c8d3b0a7e354cd8ad8c5dd7374",
9
  "public_runtime_overrides": {
10
  "AUTH_EMAIL_FROM": "jacob@dearmonanalytics.com"
11
  },
12
- "release_version": "1.8.2+hfbuild3",
13
  "schema_namespace": "sat_act_learning_lab_v1",
14
  "schema_version": "dearmon-sat-act-release-v1",
15
  "source_members": {
16
  "sat_act_lab/__init__.py": {
17
  "bytes": 71,
18
- "sha256": "5a2c03680c95bab31aa1a7974b361c622b7c610ba786a1ee9874e97f2dc46625"
19
  },
20
  "sat_act_lab/account_browser.py": {
21
- "bytes": 31467,
22
- "sha256": "0eb08cd3df63291dbac539ce3a47f7c51a2e5f0cd6ee1421ca3a836ed90e1aaa"
23
  },
24
  "sat_act_lab/act_english_bank.py": {
25
  "bytes": 79622,
@@ -42,8 +42,8 @@
42
  "sha256": "e2e964945f7eb773ac6a4b47a9e2568b61ef738dce0ccf131895b76037e42acf"
43
  },
44
  "sat_act_lab/app_main.py": {
45
- "bytes": 566402,
46
- "sha256": "886f6300b299e7c8740b75b582bcc907b75dbc930551b68c448d074b6bc40eca"
47
  },
48
  "sat_act_lab/assessment_checkpoint.py": {
49
  "bytes": 9801,
@@ -54,8 +54,8 @@
54
  "sha256": "4e1064938705964b668ed9c4bcc1dda8e88049c1229b754df9d8487a99ddeebf"
55
  },
56
  "sat_act_lab/auth.py": {
57
- "bytes": 108747,
58
- "sha256": "a7429aa0c440d2d9f829772325face42da1c20d7a4abad0b0f228af2d9e2f2d3"
59
  },
60
  "sat_act_lab/avatar.py": {
61
  "bytes": 80369,
@@ -174,8 +174,8 @@
174
  "sha256": "a3d5797b58cebe13bd2736771da1ebff6bc236d658450b128bf2b9f0ecff2109"
175
  },
176
  "sat_act_lab/practice_navigation.py": {
177
- "bytes": 9378,
178
- "sha256": "8a35daf408dfb3b5cbdda3c992a63edc428fdaeb4d950c58b94110b458e3abfb"
179
  },
180
  "sat_act_lab/provider_execution.py": {
181
  "bytes": 4378,
@@ -254,8 +254,8 @@
254
  "sha256": "f151d8839bd6124c44d589eb61da57a1c99f4bcc1f77a46e5b80f1a7e77ad061"
255
  },
256
  "sat_act_lab/tracking.py": {
257
- "bytes": 298292,
258
- "sha256": "8b76c3778bf26a104f84cdd79ccf83c76111ced2be44089476caee9045d7b75d"
259
  }
260
  },
261
  "space_file_hashes": {
@@ -265,19 +265,19 @@
265
  },
266
  "DEPLOYMENT_NOTES.md": {
267
  "bytes": 18324,
268
- "sha256": "40573225e213d1c0d9ff010b5919f215a43954c495dad46caddc3ac69d796bf0"
269
  },
270
  "README.md": {
271
- "bytes": 15713,
272
- "sha256": "7c3e048fe71e7155b147dd6996c237f2588eaa10f9d837ca3deaf0f4522edb36"
273
  },
274
  "THIRD_PARTY_NOTICES.md": {
275
  "bytes": 73850,
276
  "sha256": "288997d5002f0932271a0a7173a2cf074f63e3c2ad0cd9195a6c32e4c29e452b"
277
  },
278
  "app.py": {
279
- "bytes": 2091161,
280
- "sha256": "0a841fc17889f1ccbf47cff0e771f7c329f58c211039f66344b715f7fbc44e67"
281
  },
282
  "pre-requirements.txt": {
283
  "bytes": 44842,
 
1
  {
2
+ "built_utc": "2026-09-12T13:55:37+00:00",
3
  "database_name": "dearmon-sat-act-learning-lab",
4
+ "encrypted_payload_sha256": "19f26f53df9e2cee41a5e9af7be0367c1fd6d80e4da1b8fa396420bdbd68375d",
5
  "entry_module": "sat_act_lab.app_main",
6
+ "fernet_secret_name": "SAT_ACT_APP_FERNET_V1_8_5_HFBUILD3_1429F1B51EF0_34785BFEEC65",
7
+ "key_fingerprint_sha256_prefix": "34785BFEEC65",
8
+ "plaintext_archive_sha256": "1429f1b51ef0f1908c7cb8a255dbfbd4f42237b76a512793074042465d8fe2ab",
9
  "public_runtime_overrides": {
10
  "AUTH_EMAIL_FROM": "jacob@dearmonanalytics.com"
11
  },
12
+ "release_version": "1.8.5+hfbuild3",
13
  "schema_namespace": "sat_act_learning_lab_v1",
14
  "schema_version": "dearmon-sat-act-release-v1",
15
  "source_members": {
16
  "sat_act_lab/__init__.py": {
17
  "bytes": 71,
18
+ "sha256": "4aea80faa54231d284a3493419434790be52b6f5f67f8a5c900388605cb2c262"
19
  },
20
  "sat_act_lab/account_browser.py": {
21
+ "bytes": 37693,
22
+ "sha256": "904bd0bdae0feca8a16a8a92c1023ba19d82972cea5d9dd9ce8332f1bd02d3b5"
23
  },
24
  "sat_act_lab/act_english_bank.py": {
25
  "bytes": 79622,
 
42
  "sha256": "e2e964945f7eb773ac6a4b47a9e2568b61ef738dce0ccf131895b76037e42acf"
43
  },
44
  "sat_act_lab/app_main.py": {
45
+ "bytes": 575292,
46
+ "sha256": "7a9d890cb28901879436142aa731953acdc9d8c81ffbaf60670cb145f2f6e7ca"
47
  },
48
  "sat_act_lab/assessment_checkpoint.py": {
49
  "bytes": 9801,
 
54
  "sha256": "4e1064938705964b668ed9c4bcc1dda8e88049c1229b754df9d8487a99ddeebf"
55
  },
56
  "sat_act_lab/auth.py": {
57
+ "bytes": 128008,
58
+ "sha256": "ac52e9a6f6081ee0bf97953ddb5e1eee178f7d3bae3d325cbee3843daf78e843"
59
  },
60
  "sat_act_lab/avatar.py": {
61
  "bytes": 80369,
 
174
  "sha256": "a3d5797b58cebe13bd2736771da1ebff6bc236d658450b128bf2b9f0ecff2109"
175
  },
176
  "sat_act_lab/practice_navigation.py": {
177
+ "bytes": 13033,
178
+ "sha256": "95f6db37e1498007d1e50efd41086248cc5a53c91283ebab20c5893c511ae2ae"
179
  },
180
  "sat_act_lab/provider_execution.py": {
181
  "bytes": 4378,
 
254
  "sha256": "f151d8839bd6124c44d589eb61da57a1c99f4bcc1f77a46e5b80f1a7e77ad061"
255
  },
256
  "sat_act_lab/tracking.py": {
257
+ "bytes": 308104,
258
+ "sha256": "73b3217cbf2d6d49fc64691f88b9b14737153c94fe8d51c3a66a822472f1c249"
259
  }
260
  },
261
  "space_file_hashes": {
 
265
  },
266
  "DEPLOYMENT_NOTES.md": {
267
  "bytes": 18324,
268
+ "sha256": "32032e103d15afc882349936c56ec49cab8a1ed476e9ae1525f6ee391a750263"
269
  },
270
  "README.md": {
271
+ "bytes": 15836,
272
+ "sha256": "c70c622f206eef84f15ca0b6e66ac321d2910de6edc67024fa29cf20ff61f316"
273
  },
274
  "THIRD_PARTY_NOTICES.md": {
275
  "bytes": 73850,
276
  "sha256": "288997d5002f0932271a0a7173a2cf074f63e3c2ad0cd9195a6c32e4c29e452b"
277
  },
278
  "app.py": {
279
+ "bytes": 2112428,
280
+ "sha256": "2c2f541853ad1ff99485a54ad3b38ac47071ddb128958611baebedcef0c53957"
281
  },
282
  "pre-requirements.txt": {
283
  "bytes": 44842,