Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Deploy SAT & ACT Learning Lab 1.3.0
Browse files- DEPLOYMENT_NOTES.md +6 -6
- README.md +4 -4
- app.py +0 -0
- release_manifest.json +19 -15
DEPLOYMENT_NOTES.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
# Deployment notes — SAT & ACT Learning Lab 1.
|
| 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: `
|
| 10 |
|
| 11 |
## Runtime contract
|
| 12 |
|
|
@@ -61,7 +61,7 @@ Encrypted-source secret: `SAT_ACT_APP_FERNET_V1_2_2_F48B2CACB56D_C9A0A3E35DD0`
|
|
| 61 |
|
| 62 |
Core secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`, `TURSO_AUTH_TOKEN`,
|
| 63 |
`LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
|
| 64 |
-
`
|
| 65 |
`SIMLI_API_KEY`.
|
| 66 |
|
| 67 |
Email recovery uses `AUTH_RECOVERY_EMAIL_ENABLED`, `AUTH_SMTP_HOST`,
|
|
@@ -78,17 +78,17 @@ Release runtime defaults include `ACCOUNT_AUTH_ENABLED=1`,
|
|
| 78 |
`ASK_PROFESSOR_SIMLI_DEFAULT=0`. Face IDs and the pinned Simli client module are
|
| 79 |
listed in `environment.example` used to prepare this deployment.
|
| 80 |
|
| 81 |
-
## v1.
|
| 82 |
|
| 83 |
Finish or explicitly abandon every active timed simulation from an earlier
|
| 84 |
-
release before installing v1.
|
| 85 |
app/source/form versions and cannot be resumed across this release. Back up
|
| 86 |
Turso, preserve `LEARNER_ID_HMAC_SECRET`, and retain prior Fernet secrets and
|
| 87 |
rollback commits needed through acceptance testing.
|
| 88 |
|
| 89 |
## Key lifecycle and rollback
|
| 90 |
|
| 91 |
-
The current loader reads only `
|
| 92 |
new versioned, fingerprinted secret name. The deployer adds that secret before
|
| 93 |
the repository commit and retains earlier keys. Roll back by reverting the
|
| 94 |
Space repository to the prior commit recorded in `deployment_receipt.json`.
|
|
|
|
| 1 |
+
# Deployment notes — SAT & ACT Learning Lab 1.3.0
|
| 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_3_0_530ED11365EB_0A5895DF3462`
|
| 10 |
|
| 11 |
## Runtime contract
|
| 12 |
|
|
|
|
| 61 |
|
| 62 |
Core secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`, `TURSO_AUTH_TOKEN`,
|
| 63 |
`LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
|
| 64 |
+
`SAT_ACT_APP_FERNET_V1_3_0_530ED11365EB_0A5895DF3462`. Live avatar video additionally uses optional
|
| 65 |
`SIMLI_API_KEY`.
|
| 66 |
|
| 67 |
Email recovery uses `AUTH_RECOVERY_EMAIL_ENABLED`, `AUTH_SMTP_HOST`,
|
|
|
|
| 78 |
`ASK_PROFESSOR_SIMLI_DEFAULT=0`. Face IDs and the pinned Simli client module are
|
| 79 |
listed in `environment.example` used to prepare this deployment.
|
| 80 |
|
| 81 |
+
## v1.3.0 upgrade gate
|
| 82 |
|
| 83 |
Finish or explicitly abandon every active timed simulation from an earlier
|
| 84 |
+
release before installing v1.3.0. Checkpoints are intentionally bound to
|
| 85 |
app/source/form versions and cannot be resumed across this release. Back up
|
| 86 |
Turso, preserve `LEARNER_ID_HMAC_SECRET`, and retain prior Fernet secrets and
|
| 87 |
rollback commits needed through acceptance testing.
|
| 88 |
|
| 89 |
## Key lifecycle and rollback
|
| 90 |
|
| 91 |
+
The current loader reads only `SAT_ACT_APP_FERNET_V1_3_0_530ED11365EB_0A5895DF3462`. A later release must generate a
|
| 92 |
new versioned, fingerprinted secret name. The deployer adds that secret before
|
| 93 |
the repository commit and retains earlier keys. Roll back by reverting the
|
| 94 |
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.
|
| 18 |
ACT skill blueprints, a four-level topic graph, individual mastery tracking,
|
| 19 |
targeted practice, and test-like diagnostic sessions. It adds username/password
|
| 20 |
accounts, secure recovery, an isolated one-click demo, and the embedded teaching
|
|
@@ -41,7 +41,7 @@ attribute-level mastery or retention records.
|
|
| 41 |
This private Space uses the separate Turso database
|
| 42 |
`dearmon-sat-act-learning-lab` and schema namespace
|
| 43 |
`sat_act_learning_lab_v1`. Its encrypted application uses the versioned Space
|
| 44 |
-
secret `
|
| 45 |
|
| 46 |
Required Space secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`,
|
| 47 |
`TURSO_AUTH_TOKEN`, `LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
|
|
@@ -83,9 +83,9 @@ controls, and retention policies.
|
|
| 83 |
|
| 84 |
## Upgrade note
|
| 85 |
|
| 86 |
-
Before replacing any earlier release with v1.
|
| 87 |
must be finished or explicitly abandoned. Saved forms are bound to the app
|
| 88 |
-
version and encrypted-source fingerprint, so v1.
|
| 89 |
checkpoints. Preserve `LEARNER_ID_HMAC_SECRET` and retain every prior versioned
|
| 90 |
Fernet secret and rollback commit needed through acceptance testing.
|
| 91 |
|
|
|
|
| 14 |
|
| 15 |
# Dearmon Analytics SAT & ACT Learning Lab
|
| 16 |
|
| 17 |
+
Release `1.3.0` provides original dynamic practice for current SAT and
|
| 18 |
ACT skill blueprints, a four-level topic graph, individual mastery tracking,
|
| 19 |
targeted practice, and test-like diagnostic sessions. It adds username/password
|
| 20 |
accounts, secure recovery, an isolated one-click demo, and the embedded teaching
|
|
|
|
| 41 |
This private Space uses the separate Turso database
|
| 42 |
`dearmon-sat-act-learning-lab` and schema namespace
|
| 43 |
`sat_act_learning_lab_v1`. Its encrypted application uses the versioned Space
|
| 44 |
+
secret `SAT_ACT_APP_FERNET_V1_3_0_530ED11365EB_0A5895DF3462`.
|
| 45 |
|
| 46 |
Required Space secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`,
|
| 47 |
`TURSO_AUTH_TOKEN`, `LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
|
|
|
|
| 83 |
|
| 84 |
## Upgrade note
|
| 85 |
|
| 86 |
+
Before replacing any earlier release with v1.3.0, every active timed simulation
|
| 87 |
must be finished or explicitly abandoned. Saved forms are bound to the app
|
| 88 |
+
version and encrypted-source fingerprint, so v1.3.0 intentionally rejects older
|
| 89 |
checkpoints. Preserve `LEARNER_ID_HMAC_SECRET` and retain every prior versioned
|
| 90 |
Fernet secret and rollback commit needed through acceptance testing.
|
| 91 |
|
app.py
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
release_manifest.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
| 1 |
{
|
| 2 |
-
"built_utc": "2026-08-
|
| 3 |
"database_name": "dearmon-sat-act-learning-lab",
|
| 4 |
-
"encrypted_payload_sha256": "
|
| 5 |
"entry_module": "sat_act_lab.app_main",
|
| 6 |
-
"fernet_secret_name": "
|
| 7 |
-
"key_fingerprint_sha256_prefix": "
|
| 8 |
-
"plaintext_archive_sha256": "
|
| 9 |
-
"release_version": "1.
|
| 10 |
"schema_namespace": "sat_act_learning_lab_v1",
|
| 11 |
"schema_version": "dearmon-sat-act-release-v1",
|
| 12 |
"source_members": {
|
| 13 |
"sat_act_lab/__init__.py": {
|
| 14 |
"bytes": 71,
|
| 15 |
-
"sha256": "
|
| 16 |
},
|
| 17 |
"sat_act_lab/act_english_bank.py": {
|
| 18 |
"bytes": 79622,
|
|
@@ -27,12 +27,12 @@
|
|
| 27 |
"sha256": "5959db1e6a007f9384978c2a65af82e9bfd81216db939a1d852a91852badef8e"
|
| 28 |
},
|
| 29 |
"sat_act_lab/app_main.py": {
|
| 30 |
-
"bytes":
|
| 31 |
-
"sha256": "
|
| 32 |
},
|
| 33 |
"sat_act_lab/attribute_graph.py": {
|
| 34 |
-
"bytes":
|
| 35 |
-
"sha256": "
|
| 36 |
},
|
| 37 |
"sat_act_lab/auth.py": {
|
| 38 |
"bytes": 52719,
|
|
@@ -58,6 +58,10 @@
|
|
| 58 |
"bytes": 100384,
|
| 59 |
"sha256": "2abb720cd5a0a5a459cbcdc7ec1a8919ea50d7203cc809adccdefed4317e3a7f"
|
| 60 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
"sat_act_lab/question_engine.py": {
|
| 62 |
"bytes": 221287,
|
| 63 |
"sha256": "929d8e424bbb845e69cab76f6e591f9bfb1f825c00733cd90efce089ea1a89a2"
|
|
@@ -74,15 +78,15 @@
|
|
| 74 |
},
|
| 75 |
"DEPLOYMENT_NOTES.md": {
|
| 76 |
"bytes": 5663,
|
| 77 |
-
"sha256": "
|
| 78 |
},
|
| 79 |
"README.md": {
|
| 80 |
"bytes": 5113,
|
| 81 |
-
"sha256": "
|
| 82 |
},
|
| 83 |
"app.py": {
|
| 84 |
-
"bytes":
|
| 85 |
-
"sha256": "
|
| 86 |
},
|
| 87 |
"requirements.txt": {
|
| 88 |
"bytes": 287,
|
|
|
|
| 1 |
{
|
| 2 |
+
"built_utc": "2026-08-29T22:32:47+00:00",
|
| 3 |
"database_name": "dearmon-sat-act-learning-lab",
|
| 4 |
+
"encrypted_payload_sha256": "98e56749f08fcce8fb612d85b8c11ae9c01e626f50fb26dab52528d124127bca",
|
| 5 |
"entry_module": "sat_act_lab.app_main",
|
| 6 |
+
"fernet_secret_name": "SAT_ACT_APP_FERNET_V1_3_0_530ED11365EB_0A5895DF3462",
|
| 7 |
+
"key_fingerprint_sha256_prefix": "0A5895DF3462",
|
| 8 |
+
"plaintext_archive_sha256": "530ed11365eb79e0f0fdfb306594a7a316c95ac5e2ada567c5bbd87e8c0ba5ad",
|
| 9 |
+
"release_version": "1.3.0",
|
| 10 |
"schema_namespace": "sat_act_learning_lab_v1",
|
| 11 |
"schema_version": "dearmon-sat-act-release-v1",
|
| 12 |
"source_members": {
|
| 13 |
"sat_act_lab/__init__.py": {
|
| 14 |
"bytes": 71,
|
| 15 |
+
"sha256": "ef21e2c2be0c32fa808b92839e04419e7ccaf2292f74c260631ffc779a69b511"
|
| 16 |
},
|
| 17 |
"sat_act_lab/act_english_bank.py": {
|
| 18 |
"bytes": 79622,
|
|
|
|
| 27 |
"sha256": "5959db1e6a007f9384978c2a65af82e9bfd81216db939a1d852a91852badef8e"
|
| 28 |
},
|
| 29 |
"sat_act_lab/app_main.py": {
|
| 30 |
+
"bytes": 265227,
|
| 31 |
+
"sha256": "415448d1c144174d3c44b03c0755106c60a26f4a1e9c64dafd869027543418ae"
|
| 32 |
},
|
| 33 |
"sat_act_lab/attribute_graph.py": {
|
| 34 |
+
"bytes": 131004,
|
| 35 |
+
"sha256": "8188d65e7894a4c69aed1fdf9f8f4a0c7e90ca6055be44776fac8a39a7bb4dea"
|
| 36 |
},
|
| 37 |
"sat_act_lab/auth.py": {
|
| 38 |
"bytes": 52719,
|
|
|
|
| 58 |
"bytes": 100384,
|
| 59 |
"sha256": "2abb720cd5a0a5a459cbcdc7ec1a8919ea50d7203cc809adccdefed4317e3a7f"
|
| 60 |
},
|
| 61 |
+
"sat_act_lab/learning_concepts.py": {
|
| 62 |
+
"bytes": 51335,
|
| 63 |
+
"sha256": "202212791dc80fcc20b2dcc5d662c98e43f53db1e39b2b9992c8289183263346"
|
| 64 |
+
},
|
| 65 |
"sat_act_lab/question_engine.py": {
|
| 66 |
"bytes": 221287,
|
| 67 |
"sha256": "929d8e424bbb845e69cab76f6e591f9bfb1f825c00733cd90efce089ea1a89a2"
|
|
|
|
| 78 |
},
|
| 79 |
"DEPLOYMENT_NOTES.md": {
|
| 80 |
"bytes": 5663,
|
| 81 |
+
"sha256": "a7230ac72d71b5a18b9f4edfb119bdd0b0d00ac12b28124c271a88867abd8385"
|
| 82 |
},
|
| 83 |
"README.md": {
|
| 84 |
"bytes": 5113,
|
| 85 |
+
"sha256": "65a80c1d285d961b284528d8cd2e001737887ae1bcfff7c3fad24a3835da34fe"
|
| 86 |
},
|
| 87 |
"app.py": {
|
| 88 |
+
"bytes": 595623,
|
| 89 |
+
"sha256": "c1b7e44eda4e80344fa7171883ac66a69cdb125be8026e80e15f03cb7afda0b1"
|
| 90 |
},
|
| 91 |
"requirements.txt": {
|
| 92 |
"bytes": 287,
|