Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Deploy SAT & ACT Learning Lab 1.4.2
Browse files- DEPLOYMENT_NOTES.md +52 -17
- README.md +33 -10
- app.py +0 -0
- release_manifest.json +41 -21
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 |
|
|
@@ -56,6 +56,17 @@ Encrypted-source secret: `SAT_ACT_APP_FERNET_V1_3_8_361A7215EF3D_B4E784D7CBC7`
|
|
| 56 |
quantity/unit/operation, claim/evidence, or data/variable attributes feed up
|
| 57 |
through the answer dependency path. These attributes are explanatory only
|
| 58 |
and do not create separate mastery or retention records.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
- The embedded Business Calculus avatar defaults to the male professor and
|
| 60 |
offers Oliver (`cedar`, speed `1.02`). Speech and live Simli video are opt-in;
|
| 61 |
audio retention is disabled by default. Oliver is presented as an AI teaching
|
|
@@ -69,7 +80,7 @@ Encrypted-source secret: `SAT_ACT_APP_FERNET_V1_3_8_361A7215EF3D_B4E784D7CBC7`
|
|
| 69 |
|
| 70 |
Core secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`, `TURSO_AUTH_TOKEN`,
|
| 71 |
`LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
|
| 72 |
-
`
|
| 73 |
`SIMLI_API_KEY`.
|
| 74 |
|
| 75 |
Email recovery uses `AUTH_RECOVERY_EMAIL_ENABLED`, `AUTH_SMTP_HOST`,
|
|
@@ -85,38 +96,62 @@ Release runtime defaults include `ACCOUNT_AUTH_ENABLED=1`,
|
|
| 85 |
`ASK_PROFESSOR_COMPONENT_DEFAULT=1`, `ASK_PROFESSOR_TTS_DEFAULT=0`, and
|
| 86 |
`ASK_PROFESSOR_SIMLI_DEFAULT=0`. Printable supplemental generation defaults to
|
| 87 |
`OPENAI_OVERFLOW_MODEL=gpt-5-mini` and
|
| 88 |
-
`OPENAI_OVERFLOW_REVIEW_MODEL=gpt-5-mini`
|
|
|
|
| 89 |
listed in `environment.example` used to prepare this deployment.
|
| 90 |
|
| 91 |
-
## v1.
|
| 92 |
|
| 93 |
Finish or explicitly abandon every active timed simulation from an earlier
|
| 94 |
-
release before installing v1.
|
| 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.
|
| 100 |
-
|
| 101 |
-
|
|
|
|
|
|
|
| 102 |
must open Question & Your Work, and the answer row must expose grade,
|
| 103 |
-
same-lesson, and next-lesson actions.
|
| 104 |
-
|
| 105 |
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 110 |
Near-white mastered topic tiles intentionally retain dark text for WCAG
|
| 111 |
contrast.
|
| 112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 113 |
The release builder continues to generate the versioned Fernet key
|
| 114 |
automatically, store it under `release/private/`, validate it, and reuse it for
|
| 115 |
safe retries without prompting the deployer operator.
|
| 116 |
|
| 117 |
## Key lifecycle and rollback
|
| 118 |
|
| 119 |
-
The current loader reads only `
|
| 120 |
new versioned, fingerprinted secret name. The deployer adds that secret before
|
| 121 |
the repository commit and retains earlier keys. Roll back by reverting the
|
| 122 |
Space repository to the prior commit recorded in `deployment_receipt.json`.
|
|
|
|
| 1 |
+
# Deployment notes — SAT & ACT Learning Lab 1.4.2
|
| 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_4_2_DEA36E04D801_0690259EE725`
|
| 10 |
|
| 11 |
## Runtime contract
|
| 12 |
|
|
|
|
| 56 |
quantity/unit/operation, claim/evidence, or data/variable attributes feed up
|
| 57 |
through the answer dependency path. These attributes are explanatory only
|
| 58 |
and do not create separate mastery or retention records.
|
| 59 |
+
- Each graded practice explanation may expose one attempt-bound OpenAI follow-up
|
| 60 |
+
for the owning signed-in learner. It is unavailable before grading and is
|
| 61 |
+
retained with that attempt; stale or cross-learner question tokens fail closed.
|
| 62 |
+
- The retained Learning Diagnostic uses distinct-topic coverage and remains
|
| 63 |
+
locked until the same signed-in learner exceeds 50% in both Reading and Math
|
| 64 |
+
for SAT or ACT. OpenAI receives only allowlisted aggregate counts and
|
| 65 |
+
foundational-skill evidence—never identity, raw item text, selected responses,
|
| 66 |
+
or answer keys—and its structured output must match server-known findings and
|
| 67 |
+
remediation ladders. Guided Examples and Targeted Practice unlock only after
|
| 68 |
+
a validated report is retained; remediation is deterministic and cannot count
|
| 69 |
+
toward its own coverage gate.
|
| 70 |
- The embedded Business Calculus avatar defaults to the male professor and
|
| 71 |
offers Oliver (`cedar`, speed `1.02`). Speech and live Simli video are opt-in;
|
| 72 |
audio retention is disabled by default. Oliver is presented as an AI teaching
|
|
|
|
| 80 |
|
| 81 |
Core secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`, `TURSO_AUTH_TOKEN`,
|
| 82 |
`LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
|
| 83 |
+
`SAT_ACT_APP_FERNET_V1_4_2_DEA36E04D801_0690259EE725`. Live avatar video additionally uses optional
|
| 84 |
`SIMLI_API_KEY`.
|
| 85 |
|
| 86 |
Email recovery uses `AUTH_RECOVERY_EMAIL_ENABLED`, `AUTH_SMTP_HOST`,
|
|
|
|
| 96 |
`ASK_PROFESSOR_COMPONENT_DEFAULT=1`, `ASK_PROFESSOR_TTS_DEFAULT=0`, and
|
| 97 |
`ASK_PROFESSOR_SIMLI_DEFAULT=0`. Printable supplemental generation defaults to
|
| 98 |
`OPENAI_OVERFLOW_MODEL=gpt-5-mini` and
|
| 99 |
+
`OPENAI_OVERFLOW_REVIEW_MODEL=gpt-5-mini`; Learning Diagnostic synthesis
|
| 100 |
+
defaults to `OPENAI_DIAGNOSTIC_MODEL=gpt-5-mini`. Face IDs and the pinned Simli client module are
|
| 101 |
listed in `environment.example` used to prepare this deployment.
|
| 102 |
|
| 103 |
+
## v1.4.2 upgrade gate
|
| 104 |
|
| 105 |
Finish or explicitly abandon every active timed simulation from an earlier
|
| 106 |
+
release before installing v1.4.2. Checkpoints are intentionally bound to
|
| 107 |
app/source/form versions and cannot be resumed across this release. Back up
|
| 108 |
Turso, preserve `LEARNER_ID_HMAC_SECRET`, and retain prior Fernet secrets and
|
| 109 |
rollback commits needed through acceptance testing.
|
| 110 |
|
| 111 |
+
Acceptance testing for v1.4.2 must verify the exact Dearmon Analytics paper,
|
| 112 |
+
ink, blue, teal, and coral palette; compact 1,240-pixel workspace; bundled
|
| 113 |
+
same-origin Inter, Source Serif 4, and Geist Mono; and one crisp DA gradient rule
|
| 114 |
+
across the compact chooser and three shadow-free horizontal Practice rails.
|
| 115 |
+
Practice variation must be collapsed beneath Test Tools. Selecting a lesson
|
| 116 |
must open Question & Your Work, and the answer row must expose grade,
|
| 117 |
+
same-lesson, and next-lesson actions. Repeated next-lesson actions must advance
|
| 118 |
+
from the active item even when browser selector values are stale. Linear-
|
| 119 |
+
equation solution-count explanations must distribute and cancel the actual
|
| 120 |
+
terms, explain a true identity, and contrast a false-statement no-solution case.
|
| 121 |
+
Grading must freeze elapsed and target time, show the exact reduced fraction and
|
| 122 |
+
pace comparison, and flatten the same fields into learner/account and instructor
|
| 123 |
+
attempt CSVs while legacy rows stay blank. Inline lesson Math and printable
|
| 124 |
+
exam/key PDFs must use the shared renderer without visible LaTeX commands or
|
| 125 |
+
dollar delimiters. The collapsed, question-specific Concept swim lane, full
|
| 126 |
+
analogous worked example, separate active-item hint, and deterministic confused-
|
| 127 |
+
word surfaces must remain.
|
| 128 |
Near-white mastered topic tiles intentionally retain dark text for WCAG
|
| 129 |
contrast.
|
| 130 |
|
| 131 |
+
Acceptance must also verify that post-explanation follow-ups are hidden before
|
| 132 |
+
grading and limited to the owning attempt; both diagnostic coverage bars use
|
| 133 |
+
distinct topics; the report gate requires strict majority coverage in Reading
|
| 134 |
+
and Math for one exam; OpenAI report requests contain only aggregate allowlisted
|
| 135 |
+
signals; invalid/provider-failed reports do not unlock anything; and completed
|
| 136 |
+
reports can be pulled and used to open graduated Guided Examples and separate
|
| 137 |
+
Targeted Practice.
|
| 138 |
+
|
| 139 |
+
Progress & Reports must render exactly two mastery wheels for SAT and ACT,
|
| 140 |
+
retain every curriculum topic including unassessed topics, and keep attempt
|
| 141 |
+
depth independent from accuracy color. Verify that one correct attempt has a
|
| 142 |
+
shallower evidence ring than four correct attempts, untouched topics never show
|
| 143 |
+
0%, ACT Reading/Language combines English and Reading, exact-data tables remain
|
| 144 |
+
usable without color or hover, and signed-out/revoked sessions expose no learner
|
| 145 |
+
aggregates. Practice and completed-simulation evidence may count; diagnostic
|
| 146 |
+
and review attempts must not inflate the dashboard.
|
| 147 |
+
|
| 148 |
The release builder continues to generate the versioned Fernet key
|
| 149 |
automatically, store it under `release/private/`, validate it, and reuse it for
|
| 150 |
safe retries without prompting the deployer operator.
|
| 151 |
|
| 152 |
## Key lifecycle and rollback
|
| 153 |
|
| 154 |
+
The current loader reads only `SAT_ACT_APP_FERNET_V1_4_2_DEA36E04D801_0690259EE725`. A later release must generate a
|
| 155 |
new versioned, fingerprinted secret name. The deployer adds that secret before
|
| 156 |
the repository commit and retains earlier keys. Roll back by reverting the
|
| 157 |
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
|
|
@@ -24,12 +24,17 @@ 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.
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
The answer record freezes elapsed time and its blueprint target at grading,
|
| 35 |
then reports their exact reduced fraction and pace comparison. Learner/account
|
|
@@ -39,6 +44,24 @@ printable exam/answer-key PDFs so raw LaTeX is never the learner-facing
|
|
| 39 |
fallback. The collapsed item-specific Concepts Needed swim lane, complete
|
| 40 |
analogous worked examples, separate hints, and mastery whitening remain.
|
| 41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
The Printable Exam Builder requires an active demo or signed-in learner so
|
| 43 |
every generated file has a cleanup owner. It creates a clean Dearmon
|
| 44 |
Analytics-branded student PDF and a separate answer-key PDF from selected or
|
|
@@ -65,7 +88,7 @@ attribute-level mastery or retention records.
|
|
| 65 |
This private Space uses the separate Turso database
|
| 66 |
`dearmon-sat-act-learning-lab` and schema namespace
|
| 67 |
`sat_act_learning_lab_v1`. Its encrypted application uses the versioned Space
|
| 68 |
-
secret `
|
| 69 |
|
| 70 |
Required Space secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`,
|
| 71 |
`TURSO_AUTH_TOKEN`, `LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
|
|
@@ -107,9 +130,9 @@ controls, and retention policies.
|
|
| 107 |
|
| 108 |
## Upgrade note
|
| 109 |
|
| 110 |
-
Before replacing any earlier release with v1.
|
| 111 |
must be finished or explicitly abandoned. Saved forms are bound to the app
|
| 112 |
-
version and encrypted-source fingerprint, so v1.
|
| 113 |
checkpoints. Preserve `LEARNER_ID_HMAC_SECRET` and retain every prior versioned
|
| 114 |
Fernet secret and rollback commit needed through acceptance testing. The build
|
| 115 |
still generates its new Fernet key automatically, stores it under
|
|
|
|
| 14 |
|
| 15 |
# Dearmon Analytics SAT & ACT Learning Lab
|
| 16 |
|
| 17 |
+
Release `1.4.2` 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.4.2 uses the exact Dearmon Analytics paper, ink, blue, teal, and coral
|
| 28 |
+
system in a compact 1,240-pixel workspace. Bundled Inter, Source Serif 4, and
|
| 29 |
+
Geist Mono fonts are served from same-origin routes. The compact test chooser
|
| 30 |
+
and closely stacked Section → Domain → Narrow Topic rails use one restrained DA
|
| 31 |
+
gradient rule, flat accessible controls, and shadow-free surfaces. Practice
|
| 32 |
+
variation settings are collapsed under Test Tools.
|
| 33 |
+
|
| 34 |
+
Next-lesson routing advances from the authoritative active-question path, so
|
| 35 |
+
stale browser selector state cannot regenerate the same lesson. Solution-count
|
| 36 |
+
feedback works the actual linear equation, including the cancellation that
|
| 37 |
+
produces a true identity and why that identity means every real value works.
|
| 38 |
|
| 39 |
The answer record freezes elapsed time and its blueprint target at grading,
|
| 40 |
then reports their exact reduced fraction and pace comparison. Learner/account
|
|
|
|
| 44 |
fallback. The collapsed item-specific Concepts Needed swim lane, complete
|
| 45 |
analogous worked examples, separate hints, and mastery whitening remain.
|
| 46 |
|
| 47 |
+
Release 1.4.2 retains one OpenAI-assisted follow-up beneath each graded
|
| 48 |
+
explanation and a signed-in cross-question Learning Diagnostic. The diagnostic
|
| 49 |
+
unlocks only after strict majority coverage of both Reading and Math for the
|
| 50 |
+
same exam. It sends OpenAI only allowlisted aggregate performance evidence—not
|
| 51 |
+
learner identity, raw questions, selected responses, or answer keys—and rejects
|
| 52 |
+
output outside the server-approved finding/remediation schema. A successfully
|
| 53 |
+
retained report unlocks deterministic Guided Examples from basic to complex and
|
| 54 |
+
specific Targeted Practice; those workspaces remain disabled before the gate
|
| 55 |
+
and report are complete.
|
| 56 |
+
|
| 57 |
+
Progress & Reports includes two responsive hierarchical mastery wheels. SAT
|
| 58 |
+
shows Reading and Writing plus Math; ACT combines English and Reading as
|
| 59 |
+
Reading/Language and shows Math separately. Domain and narrow-topic angles stay
|
| 60 |
+
fixed to the curriculum, radial depth shows scored attempts toward four, and
|
| 61 |
+
color independently shows raw accuracy. Untouched topics say Unassessed rather
|
| 62 |
+
than 0%. Exact native tables provide the same aggregate data for keyboard,
|
| 63 |
+
touch, print, and assistive-technology access.
|
| 64 |
+
|
| 65 |
The Printable Exam Builder requires an active demo or signed-in learner so
|
| 66 |
every generated file has a cleanup owner. It creates a clean Dearmon
|
| 67 |
Analytics-branded student PDF and a separate answer-key PDF from selected or
|
|
|
|
| 88 |
This private Space uses the separate Turso database
|
| 89 |
`dearmon-sat-act-learning-lab` and schema namespace
|
| 90 |
`sat_act_learning_lab_v1`. Its encrypted application uses the versioned Space
|
| 91 |
+
secret `SAT_ACT_APP_FERNET_V1_4_2_DEA36E04D801_0690259EE725`.
|
| 92 |
|
| 93 |
Required Space secrets are `OPENAI_API_KEY`, `TURSO_DATABASE_URL`,
|
| 94 |
`TURSO_AUTH_TOKEN`, `LEARNER_ID_HMAC_SECRET`, `INSTRUCTOR_EXPORT_SECRET`, and
|
|
|
|
| 130 |
|
| 131 |
## Upgrade note
|
| 132 |
|
| 133 |
+
Before replacing any earlier release with v1.4.2, every active timed simulation
|
| 134 |
must be finished or explicitly abandoned. Saved forms are bound to the app
|
| 135 |
+
version and encrypted-source fingerprint, so v1.4.2 intentionally rejects older
|
| 136 |
checkpoints. Preserve `LEARNER_ID_HMAC_SECRET` and retain every prior versioned
|
| 137 |
Fernet secret and rollback commit needed through acceptance testing. The build
|
| 138 |
still generates its new Fernet key automatically, stores it under
|
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,
|
|
@@ -31,16 +31,16 @@
|
|
| 31 |
"sha256": "9f557aea11cc2796e011031c70776dfd9cf3f4c0f8255fcbff9ded341580a4e4"
|
| 32 |
},
|
| 33 |
"sat_act_lab/app_main.py": {
|
| 34 |
-
"bytes":
|
| 35 |
-
"sha256": "
|
| 36 |
},
|
| 37 |
"sat_act_lab/attribute_graph.py": {
|
| 38 |
"bytes": 131004,
|
| 39 |
"sha256": "8188d65e7894a4c69aed1fdf9f8f4a0c7e90ca6055be44776fac8a39a7bb4dea"
|
| 40 |
},
|
| 41 |
"sat_act_lab/auth.py": {
|
| 42 |
-
"bytes":
|
| 43 |
-
"sha256": "
|
| 44 |
},
|
| 45 |
"sat_act_lab/avatar.py": {
|
| 46 |
"bytes": 73246,
|
|
@@ -50,6 +50,10 @@
|
|
| 50 |
"bytes": 49657,
|
| 51 |
"sha256": "7c9cf2c1532818203b7a52de24d61031aeb65d31ccd7f6be627c0bb2c99ecf93"
|
| 52 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
"sat_act_lab/curriculum.py": {
|
| 54 |
"bytes": 34704,
|
| 55 |
"sha256": "0ace42ff71e3eee09b7b0828807cda7ecad2ea86caeda9cb67c0b941ab70c960"
|
|
@@ -58,6 +62,14 @@
|
|
| 58 |
"bytes": 37662,
|
| 59 |
"sha256": "544b2163c3d39259108847468d8f9bb027ae65d3b13ee934a8f6d9a43d167943"
|
| 60 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
"sat_act_lab/exam_engine.py": {
|
| 62 |
"bytes": 100384,
|
| 63 |
"sha256": "2abb720cd5a0a5a459cbcdc7ec1a8919ea50d7203cc809adccdefed4317e3a7f"
|
|
@@ -74,6 +86,14 @@
|
|
| 74 |
"bytes": 51827,
|
| 75 |
"sha256": "cf32579466f8a97f1d299c78ace4a0fef16c6db51685dce0f164f160e910d06c"
|
| 76 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
"sat_act_lab/math_rendering.py": {
|
| 78 |
"bytes": 22555,
|
| 79 |
"sha256": "8b9ddb347ba4921597546a6430bcbc322eea1fe7f57e457432448ffb5e3bf6af"
|
|
@@ -83,16 +103,16 @@
|
|
| 83 |
"sha256": "96dda3ddb76bc2d837769865fdbe177ad650bfd21cd158d161e5cb13123fa6a9"
|
| 84 |
},
|
| 85 |
"sat_act_lab/question_engine.py": {
|
| 86 |
-
"bytes":
|
| 87 |
-
"sha256": "
|
| 88 |
},
|
| 89 |
"sat_act_lab/topic_graph_report.py": {
|
| 90 |
"bytes": 19837,
|
| 91 |
"sha256": "0a6bb8a950a1f600e2d365bbbc7e9afba48c23be30d5440aa0fb94a2ed4ecbea"
|
| 92 |
},
|
| 93 |
"sat_act_lab/tracking.py": {
|
| 94 |
-
"bytes":
|
| 95 |
-
"sha256": "
|
| 96 |
}
|
| 97 |
},
|
| 98 |
"space_file_hashes": {
|
|
@@ -101,16 +121,16 @@
|
|
| 101 |
"sha256": "3b1fdd8eb2e17dc4edae8387f1bc9a18a8072a8d6fae3a71041f00f0b9b04103"
|
| 102 |
},
|
| 103 |
"DEPLOYMENT_NOTES.md": {
|
| 104 |
-
"bytes":
|
| 105 |
-
"sha256": "
|
| 106 |
},
|
| 107 |
"README.md": {
|
| 108 |
-
"bytes":
|
| 109 |
-
"sha256": "
|
| 110 |
},
|
| 111 |
"app.py": {
|
| 112 |
-
"bytes":
|
| 113 |
-
"sha256": "
|
| 114 |
},
|
| 115 |
"requirements.txt": {
|
| 116 |
"bytes": 301,
|
|
|
|
| 1 |
{
|
| 2 |
+
"built_utc": "2026-08-30T18:20:27+00:00",
|
| 3 |
"database_name": "dearmon-sat-act-learning-lab",
|
| 4 |
+
"encrypted_payload_sha256": "adc070c86dbe93ba12cff7b924de4f2616f827718a05a6b4f0175e111443b436",
|
| 5 |
"entry_module": "sat_act_lab.app_main",
|
| 6 |
+
"fernet_secret_name": "SAT_ACT_APP_FERNET_V1_4_2_DEA36E04D801_0690259EE725",
|
| 7 |
+
"key_fingerprint_sha256_prefix": "0690259EE725",
|
| 8 |
+
"plaintext_archive_sha256": "dea36e04d801e349a085d0f9f83e1b568454323c7bcfff7f1cde213f1b0ee66c",
|
| 9 |
+
"release_version": "1.4.2",
|
| 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": "c2ea016aa58c3d10813a8b0cb468b2723622209c7c33b1b7c313de217c884369"
|
| 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": 425891,
|
| 35 |
+
"sha256": "0a2e53318d7a2c0ef36382d74a9c40cbd8969cbe2f7ede7d493b4b7c7ea9e8f7"
|
| 36 |
},
|
| 37 |
"sat_act_lab/attribute_graph.py": {
|
| 38 |
"bytes": 131004,
|
| 39 |
"sha256": "8188d65e7894a4c69aed1fdf9f8f4a0c7e90ca6055be44776fac8a39a7bb4dea"
|
| 40 |
},
|
| 41 |
"sat_act_lab/auth.py": {
|
| 42 |
+
"bytes": 53065,
|
| 43 |
+
"sha256": "ec077ace7061a00b6615711c0bd689819736b1e13732d9550c50412c713086f5"
|
| 44 |
},
|
| 45 |
"sat_act_lab/avatar.py": {
|
| 46 |
"bytes": 73246,
|
|
|
|
| 50 |
"bytes": 49657,
|
| 51 |
"sha256": "7c9cf2c1532818203b7a52de24d61031aeb65d31ccd7f6be627c0bb2c99ecf93"
|
| 52 |
},
|
| 53 |
+
"sat_act_lab/brand_fonts.py": {
|
| 54 |
+
"bytes": 181295,
|
| 55 |
+
"sha256": "f3e552f76e81cd1a65187cfa95c126b42497f7a623000057c55aa210eb24e978"
|
| 56 |
+
},
|
| 57 |
"sat_act_lab/curriculum.py": {
|
| 58 |
"bytes": 34704,
|
| 59 |
"sha256": "0ace42ff71e3eee09b7b0828807cda7ecad2ea86caeda9cb67c0b941ab70c960"
|
|
|
|
| 62 |
"bytes": 37662,
|
| 63 |
"sha256": "544b2163c3d39259108847468d8f9bb027ae65d3b13ee934a8f6d9a43d167943"
|
| 64 |
},
|
| 65 |
+
"sat_act_lab/diagnostic_reports.py": {
|
| 66 |
+
"bytes": 74953,
|
| 67 |
+
"sha256": "eedae1cd9aa5643b9923eb4c2d4879a17c066c4286e4aaccecea02f6094c04cb"
|
| 68 |
+
},
|
| 69 |
+
"sat_act_lab/diagnostic_skills.py": {
|
| 70 |
+
"bytes": 119601,
|
| 71 |
+
"sha256": "f31abccc2a3ef0554df6f5de50bdcb0d4871c3dd24d0ecacd8b8467b31f29b70"
|
| 72 |
+
},
|
| 73 |
"sat_act_lab/exam_engine.py": {
|
| 74 |
"bytes": 100384,
|
| 75 |
"sha256": "2abb720cd5a0a5a459cbcdc7ec1a8919ea50d7203cc809adccdefed4317e3a7f"
|
|
|
|
| 86 |
"bytes": 51827,
|
| 87 |
"sha256": "cf32579466f8a97f1d299c78ace4a0fef16c6db51685dce0f164f160e910d06c"
|
| 88 |
},
|
| 89 |
+
"sat_act_lab/mastery_dashboard.py": {
|
| 90 |
+
"bytes": 12958,
|
| 91 |
+
"sha256": "5540dbdc9cc43cfd7f61c2a6bc9581044d0ff9ce22441022a58896f68a20ba03"
|
| 92 |
+
},
|
| 93 |
+
"sat_act_lab/mastery_dashboard_view.py": {
|
| 94 |
+
"bytes": 26202,
|
| 95 |
+
"sha256": "e1f2698a5c89a36893ea297556c89e93820e6dad2fae7e2916cb17f7c69c221b"
|
| 96 |
+
},
|
| 97 |
"sat_act_lab/math_rendering.py": {
|
| 98 |
"bytes": 22555,
|
| 99 |
"sha256": "8b9ddb347ba4921597546a6430bcbc322eea1fe7f57e457432448ffb5e3bf6af"
|
|
|
|
| 103 |
"sha256": "96dda3ddb76bc2d837769865fdbe177ad650bfd21cd158d161e5cb13123fa6a9"
|
| 104 |
},
|
| 105 |
"sat_act_lab/question_engine.py": {
|
| 106 |
+
"bytes": 239549,
|
| 107 |
+
"sha256": "49035bcdabbfeb78852b3a7c5a7756c97ec6106a28baafda66147eed5d091c9c"
|
| 108 |
},
|
| 109 |
"sat_act_lab/topic_graph_report.py": {
|
| 110 |
"bytes": 19837,
|
| 111 |
"sha256": "0a6bb8a950a1f600e2d365bbbc7e9afba48c23be30d5440aa0fb94a2ed4ecbea"
|
| 112 |
},
|
| 113 |
"sat_act_lab/tracking.py": {
|
| 114 |
+
"bytes": 218973,
|
| 115 |
+
"sha256": "ddaca8f431faaef98ade06974e399bb4b09cc6c61ac64093d5a86cc928366a85"
|
| 116 |
}
|
| 117 |
},
|
| 118 |
"space_file_hashes": {
|
|
|
|
| 121 |
"sha256": "3b1fdd8eb2e17dc4edae8387f1bc9a18a8072a8d6fae3a71041f00f0b9b04103"
|
| 122 |
},
|
| 123 |
"DEPLOYMENT_NOTES.md": {
|
| 124 |
+
"bytes": 9910,
|
| 125 |
+
"sha256": "a7badb012c1a37b1c10da63f6ed3733d9eb5de99a87c0c1a5182eae469abefa7"
|
| 126 |
},
|
| 127 |
"README.md": {
|
| 128 |
+
"bytes": 8342,
|
| 129 |
+
"sha256": "c0fce1840ec6bbfc51fc228f5f9e9caf4d46bf08eaddf81f22acfca95cc9294c"
|
| 130 |
},
|
| 131 |
"app.py": {
|
| 132 |
+
"bytes": 1086778,
|
| 133 |
+
"sha256": "a3b6b387d9ccdebfe9441ca84fb0e67362d8d56d0f3fa68ad34ad10d59ab5c2d"
|
| 134 |
},
|
| 135 |
"requirements.txt": {
|
| 136 |
"bytes": 301,
|