Skip to content

StudySprint v0.5.0

Pre-release
Pre-release

Choose a tag to compare

@timerloggedout-spec timerloggedout-spec released this 03 Nov 12:11
· 140 commits to main since this release

[0.5.0] — 2026-11-03

Fifth versioned state: MINOR feature batch (v0.5.0 batch, parts 1+2+3+4 of 4) — the calendar core
(build A, issue #4157) + maps and temple routes (build B,
issue #4158) + state recall and hardening (build C, issue
#4159) + ingestion on every surface (build D, issue #4242)
of RFP-D1-6.

Provider credit: command-dispatch (Swarm Optimizations &
Implementation Assurance seat), session
6628d41d-9519-4881-9063-3afe501df815.

Added

  • Calendar core (study_calendar.py), RFP-D1-6 items 1-3:
    (1) calendar intake — class meetings {days, times,
    building/room} + assessments {quiz/midterm/final, date, time,
    location} normalized into records; (2) assessment-frequency
    engine — deterministic frequency ramps as an assessment
    approaches, with an explicit ramp + briefing for assessments at
    a SHIFTED time or place vs the class pattern; (3) quiet hours —
    notifications landing inside a scheduled class are suppressed
    and batched to the block's end. Claims ceiling (in receipts +
    FEATURES): logistics support — pacing, timing, no-surprises;
    no learning-gain claim.
  • Tests: tests/test_study_calendar.py covers every public
    function in study_calendar.py.
  • Geography (study_geo.py), RFP-D1-6 items 4-5, consuming the
    calendar core's records: (4) location records for classes +
    assessments (from the student's own calendar — open data first)
    • route/travel-time assistance to the assessment room (injected
      travel provider; offline coordinate estimate by default);
      (5) temple routes on real geography — the method of loci over
      the student's actual campus path, an audio-cue script for the
      walk, and voice-input customization (rename/move) as data.
      Ceilings: logistics support + the loci ceiling (ordered/concrete
      recall, not understanding).
  • Tests: tests/test_study_geo.py covers every public function
    in study_geo.py.
  • State recall + hardening (study_hardening.py), RFP-D1-6
    item 6 as its own mode: varied-context practice rotation +
    the Smith (1979) mental-reinstatement script (encoding
    specificity; context effect modest, meta d~0.28 — NOT
    single-room matching), and adaptive hardening as graduated
    stress-inoculation drills (SIT phases 1-3) — OPT-IN ONLY, off
    by default, the flag in every receipt; NO-GUILT by
    construction (no score/penalty fields exist; pressure never
    carries penalties). Ceiling: performance under
    stress/anxiety, not recall gains.
  • Tests: tests/test_study_hardening.py covers every public
    function in study_hardening.py, incl. the opt-in refusal and
    the no-guilt field ban.
  • Ingestion on every surface (build D, issue #4242), one core
    path (study_pipeline.ingest_any / run_syllabus_upload):
    syllabus text — typed or OCR'd from a photographed page
    (provenance source: ocr) — parses into study_calendar
    records {times · buildings · kinds} and places ONLY on the
    student's confirm (confirm-gated placement; no confirm ⇒ no
    placement); textbook uploads run the content flow (structure
    → term bank → SR cards). Surface legs: CLI ingest command
    on the demo/agent entry; a TUI Ingest screen (file-path entry
    • Confirm placement); the webApp Ingest view (file picker +
      camera capture — text parses in-browser under the same line
      grammar; photographs are recorded as awaiting core OCR, OCR
      does not run in the browser); the APK shell wires the system
      file chooser / camera to the bundle's inputs
      (WebChromeClient.onShowFileChooser).
  • Tests: syllabus parse + confirm gate + OCR provenance +
    per-surface legs in tests/test_study_pipeline.py,
    tests/test_tui.py, tests/test_web_surface.py,
    tests/test_android_surface.py.