jtdearmon commited on
Commit
b2e9f64
·
verified ·
1 Parent(s): 1d107d6

Deploy SAT & ACT Learning Lab 1.3.7

Browse files
Files changed (4) hide show
  1. DEPLOYMENT_NOTES.md +15 -11
  2. README.md +13 -9
  3. app.py +0 -0
  4. release_manifest.json +19 -19
DEPLOYMENT_NOTES.md CHANGED
@@ -1,4 +1,4 @@
1
- # Deployment notes — SAT & ACT Learning Lab 1.3.6
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_3_6_C585E3BA4A89_3656938409CB`
10
 
11
  ## Runtime contract
12
 
@@ -69,7 +69,7 @@ Encrypted-source secret: `SAT_ACT_APP_FERNET_V1_3_6_C585E3BA4A89_3656938409CB`
69
 
70
  Core secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`, `TURSO_AUTH_TOKEN`,
71
  `LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
72
- `SAT_ACT_APP_FERNET_V1_3_6_C585E3BA4A89_3656938409CB`. Live avatar video additionally uses optional
73
  `SIMLI_API_KEY`.
74
 
75
  Email recovery uses `AUTH_RECOVERY_EMAIL_ENABLED`, `AUTH_SMTP_HOST`,
@@ -88,23 +88,27 @@ Release runtime defaults include `ACCOUNT_AUTH_ENABLED=1`,
88
  `OPENAI_OVERFLOW_REVIEW_MODEL=gpt-5-mini`. Face IDs and the pinned Simli client module are
89
  listed in `environment.example` used to prepare this deployment.
90
 
91
- ## v1.3.6 upgrade gate
92
 
93
  Finish or explicitly abandon every active timed simulation from an earlier
94
- release before installing v1.3.6. Checkpoints are intentionally bound to
95
  app/source/form versions and cannot be resumed across this release. Back up
96
  Turso, preserve `LEARNER_ID_HMAC_SECRET`, and retain prior Fernet secrets and
97
  rollback commits needed through acceptance testing.
98
 
99
- Acceptance testing for v1.3.6 must also verify the three horizontal Practice
100
- rails, automatic Concept-tab loading after each hierarchy selection, rendered
101
- inline Math without literal dollar delimiters, and white labels on every dark
102
- Topic Graph surface. Near-white mastered topic tiles intentionally retain dark
103
- text for WCAG contrast.
 
 
 
 
104
 
105
  ## Key lifecycle and rollback
106
 
107
- The current loader reads only `SAT_ACT_APP_FERNET_V1_3_6_C585E3BA4A89_3656938409CB`. A later release must generate a
108
  new versioned, fingerprinted secret name. The deployer adds that secret before
109
  the repository commit and retains earlier keys. Roll back by reverting the
110
  Space repository to the prior commit recorded in `deployment_receipt.json`.
 
1
+ # Deployment notes — SAT & ACT Learning Lab 1.3.7
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_7_6BE7EEBD2633_CF494C1151F2`
10
 
11
  ## Runtime contract
12
 
 
69
 
70
  Core secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`, `TURSO_AUTH_TOKEN`,
71
  `LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
72
+ `SAT_ACT_APP_FERNET_V1_3_7_6BE7EEBD2633_CF494C1151F2`. Live avatar video additionally uses optional
73
  `SIMLI_API_KEY`.
74
 
75
  Email recovery uses `AUTH_RECOVERY_EMAIL_ENABLED`, `AUTH_SMTP_HOST`,
 
88
  `OPENAI_OVERFLOW_REVIEW_MODEL=gpt-5-mini`. Face IDs and the pinned Simli client module are
89
  listed in `environment.example` used to prepare this deployment.
90
 
91
+ ## v1.3.7 upgrade gate
92
 
93
  Finish or explicitly abandon every active timed simulation from an earlier
94
+ release before installing v1.3.7. Checkpoints are intentionally bound to
95
  app/source/form versions and cannot be resumed across this release. Back up
96
  Turso, preserve `LEARNER_ID_HMAC_SECRET`, and retain prior Fernet secrets and
97
  rollback commits needed through acceptance testing.
98
 
99
+ Acceptance testing for v1.3.7 must also verify the three horizontal Practice
100
+ rails; the collapsed, expandable, question-specific Concept swim lane; rendered
101
+ inline Math without literal dollar delimiters; and the softened AA-contrast
102
+ charcoal/neon rails and Topic Graph. Each generated item must expose a full,
103
+ distinct analogous worked example and a separate learner-invoked hint for the
104
+ active item. Confused-word items must exercise the expanded deterministic
105
+ surfaces without a model call.
106
+ Near-white mastered topic tiles intentionally retain dark text for WCAG
107
+ contrast.
108
 
109
  ## Key lifecycle and rollback
110
 
111
+ The current loader reads only `SAT_ACT_APP_FERNET_V1_3_7_6BE7EEBD2633_CF494C1151F2`. A later release must generate a
112
  new versioned, fingerprinted secret name. The deployer adds that secret before
113
  the repository commit and retains earlier keys. Roll back by reverting the
114
  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.3.6` 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
@@ -24,11 +24,15 @@ Signed-in students can also download their complete personalized Topic Graph as
24
  a branded PNG, printable PDF, accessible hierarchy-and-concepts CSV, and
25
  verification manifest; demo sessions remain nonexportable.
26
 
27
- Release 1.3.6 presents Practice as three horizontal hierarchy rails—Section,
28
- Domain, then Narrow Topic—and automatically opens a fresh item-specific Concept
29
- & Visualization lesson when any tier changes. The full-width lesson renders
30
- question figures and KaTeX mathematics, while the dark Topic Graph uses explicit
31
- high-contrast labels and preserves readable mastery whitening.
 
 
 
 
32
 
33
  The Printable Exam Builder requires an active demo or signed-in learner so
34
  every generated file has a cleanup owner. It creates a clean Dearmon
@@ -56,7 +60,7 @@ attribute-level mastery or retention records.
56
  This private Space uses the separate Turso database
57
  `dearmon-sat-act-learning-lab` and schema namespace
58
  `sat_act_learning_lab_v1`. Its encrypted application uses the versioned Space
59
- secret `SAT_ACT_APP_FERNET_V1_3_6_C585E3BA4A89_3656938409CB`.
60
 
61
  Required Space secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`,
62
  `TURSO_AUTH_TOKEN`, `LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
@@ -98,9 +102,9 @@ controls, and retention policies.
98
 
99
  ## Upgrade note
100
 
101
- Before replacing any earlier release with v1.3.6, every active timed simulation
102
  must be finished or explicitly abandoned. Saved forms are bound to the app
103
- version and encrypted-source fingerprint, so v1.3.6 intentionally rejects older
104
  checkpoints. Preserve `LEARNER_ID_HMAC_SECRET` and retain every prior versioned
105
  Fernet secret and rollback commit needed through acceptance testing.
106
 
 
14
 
15
  # Dearmon Analytics SAT & ACT Learning Lab
16
 
17
+ Release `1.3.7` 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
 
24
  a branded PNG, printable PDF, accessible hierarchy-and-concepts CSV, and
25
  verification manifest; demo sessions remain nonexportable.
26
 
27
+ Release 1.3.7 presents Practice as three horizontal hierarchy rails—Section,
28
+ Domain, then Narrow Topic—and loads each fresh item's Concepts Needed path in a
29
+ collapsed, expandable, question-specific swim lane. Rails and the
30
+ Topic Graph use softened AA-contrast charcoal surfaces, brighter neon accents,
31
+ and explicit light type while preserving readable mastery whitening. Every
32
+ generated practice item includes a complete, distinct analogous worked example
33
+ and a separate learner-invoked hint for the active item. Deterministic
34
+ confused-word practice covers an expanded set of commonly confused pairs and
35
+ groups without a model call.
36
 
37
  The Printable Exam Builder requires an active demo or signed-in learner so
38
  every generated file has a cleanup owner. It creates a clean Dearmon
 
60
  This private Space uses the separate Turso database
61
  `dearmon-sat-act-learning-lab` and schema namespace
62
  `sat_act_learning_lab_v1`. Its encrypted application uses the versioned Space
63
+ secret `SAT_ACT_APP_FERNET_V1_3_7_6BE7EEBD2633_CF494C1151F2`.
64
 
65
  Required Space secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`,
66
  `TURSO_AUTH_TOKEN`, `LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
 
102
 
103
  ## Upgrade note
104
 
105
+ Before replacing any earlier release with v1.3.7, every active timed simulation
106
  must be finished or explicitly abandoned. Saved forms are bound to the app
107
+ version and encrypted-source fingerprint, so v1.3.7 intentionally rejects older
108
  checkpoints. Preserve `LEARNER_ID_HMAC_SECRET` and retain every prior versioned
109
  Fernet secret and rollback commit needed through acceptance testing.
110
 
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-30T02:05:56+00:00",
3
  "database_name": "dearmon-sat-act-learning-lab",
4
- "encrypted_payload_sha256": "8c3f19ee9e02c2f0cf0ff4a7875480c69246dec1137076411fe8d103446cb6d0",
5
  "entry_module": "sat_act_lab.app_main",
6
- "fernet_secret_name": "SAT_ACT_APP_FERNET_V1_3_6_C585E3BA4A89_3656938409CB",
7
- "key_fingerprint_sha256_prefix": "3656938409CB",
8
- "plaintext_archive_sha256": "c585e3ba4a89a702d24e2c0f300e435b8d9ec82db11117794449b9894bf2138d",
9
- "release_version": "1.3.6",
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": "b37e8dd059cfdb22183d212c4d68e33869969893a498a85517a4a7bc2d4af7bf"
16
  },
17
  "sat_act_lab/act_english_bank.py": {
18
  "bytes": 79622,
@@ -31,8 +31,8 @@
31
  "sha256": "9f557aea11cc2796e011031c70776dfd9cf3f4c0f8255fcbff9ded341580a4e4"
32
  },
33
  "sat_act_lab/app_main.py": {
34
- "bytes": 329231,
35
- "sha256": "de3d981fef6d459e393677df3da50af1849c3b7316af033ef5ec9c5b040cfbbe"
36
  },
37
  "sat_act_lab/attribute_graph.py": {
38
  "bytes": 131004,
@@ -71,16 +71,16 @@
71
  "sha256": "bc32af89d411d8ff8918d74e026421707004adbf0e64e61d49706e3062526167"
72
  },
73
  "sat_act_lab/learning_concepts.py": {
74
- "bytes": 51335,
75
- "sha256": "202212791dc80fcc20b2dcc5d662c98e43f53db1e39b2b9992c8289183263346"
76
  },
77
  "sat_act_lab/practice_exam_planner.py": {
78
  "bytes": 6731,
79
  "sha256": "96dda3ddb76bc2d837769865fdbe177ad650bfd21cd158d161e5cb13123fa6a9"
80
  },
81
  "sat_act_lab/question_engine.py": {
82
- "bytes": 221287,
83
- "sha256": "929d8e424bbb845e69cab76f6e591f9bfb1f825c00733cd90efce089ea1a89a2"
84
  },
85
  "sat_act_lab/topic_graph_report.py": {
86
  "bytes": 19837,
@@ -97,16 +97,16 @@
97
  "sha256": "3b1fdd8eb2e17dc4edae8387f1bc9a18a8072a8d6fae3a71041f00f0b9b04103"
98
  },
99
  "DEPLOYMENT_NOTES.md": {
100
- "bytes": 6704,
101
- "sha256": "2dab97082befe7c757cb5d05295585a2b4907acd61d781d3d57b07166233e8c9"
102
  },
103
  "README.md": {
104
- "bytes": 6136,
105
- "sha256": "b78b4647a67535c7f369c1cc5ced647c7e454dc8e8ccf9f8be6dcea3ddfef845"
106
  },
107
  "app.py": {
108
- "bytes": 677564,
109
- "sha256": "3f97115a74fb388920b7c8a7ac9bd5ff5276dd277bba9090d617e22bbaeefc9f"
110
  },
111
  "requirements.txt": {
112
  "bytes": 301,
 
1
  {
2
+ "built_utc": "2026-08-30T11:47:39+00:00",
3
  "database_name": "dearmon-sat-act-learning-lab",
4
+ "encrypted_payload_sha256": "c32bd13c204dc1ac17efff0a30377844d0c4680e03d8c8ac7a15e15550fd48f3",
5
  "entry_module": "sat_act_lab.app_main",
6
+ "fernet_secret_name": "SAT_ACT_APP_FERNET_V1_3_7_6BE7EEBD2633_CF494C1151F2",
7
+ "key_fingerprint_sha256_prefix": "CF494C1151F2",
8
+ "plaintext_archive_sha256": "6be7eebd263324339ddcaa161529377350e148f8d6bafbc21270f6fdd0c814ce",
9
+ "release_version": "1.3.7",
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": "34d993b7900b03a44147017a479e04644aa27cc202f4e2b05aa15c9061006b98"
16
  },
17
  "sat_act_lab/act_english_bank.py": {
18
  "bytes": 79622,
 
31
  "sha256": "9f557aea11cc2796e011031c70776dfd9cf3f4c0f8255fcbff9ded341580a4e4"
32
  },
33
  "sat_act_lab/app_main.py": {
34
+ "bytes": 349363,
35
+ "sha256": "6e69cb964a3dfb2561307159c1bbed74ddd19efdc249013984fdf883be439eed"
36
  },
37
  "sat_act_lab/attribute_graph.py": {
38
  "bytes": 131004,
 
71
  "sha256": "bc32af89d411d8ff8918d74e026421707004adbf0e64e61d49706e3062526167"
72
  },
73
  "sat_act_lab/learning_concepts.py": {
74
+ "bytes": 51827,
75
+ "sha256": "cf32579466f8a97f1d299c78ace4a0fef16c6db51685dce0f164f160e910d06c"
76
  },
77
  "sat_act_lab/practice_exam_planner.py": {
78
  "bytes": 6731,
79
  "sha256": "96dda3ddb76bc2d837769865fdbe177ad650bfd21cd158d161e5cb13123fa6a9"
80
  },
81
  "sat_act_lab/question_engine.py": {
82
+ "bytes": 236611,
83
+ "sha256": "13e4f9055e0b856fe67b62682478e6e7229578c1b248e2dbd7a32a99e43811c7"
84
  },
85
  "sat_act_lab/topic_graph_report.py": {
86
  "bytes": 19837,
 
97
  "sha256": "3b1fdd8eb2e17dc4edae8387f1bc9a18a8072a8d6fae3a71041f00f0b9b04103"
98
  },
99
  "DEPLOYMENT_NOTES.md": {
100
+ "bytes": 6943,
101
+ "sha256": "698ed5f0b61712fc753f541fcbff65ee5699d0374e222b9a15134e8d4673fdc2"
102
  },
103
  "README.md": {
104
+ "bytes": 6392,
105
+ "sha256": "5fc3eb15ca91ae46dca856dc2a5e76d5f7c96acb851b264631a365b3163992ff"
106
  },
107
  "app.py": {
108
+ "bytes": 693367,
109
+ "sha256": "8046d0b3e2973199a9ea1759e9100ebf018b9c0f21690733863eb9a2033c988f"
110
  },
111
  "requirements.txt": {
112
  "bytes": 301,