Releases

Changelog

v0.1.1production

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

0.1.1 (2026-08-30)

Features

  • activities: configurable points + question-limit up to 20 (issues #3, #4) (a453b22)
  • activities: reading-comprehension type always ships a passage (issue #1) (6c9fd06)
  • add governed activity catalog and streamline quality gates (4f92aa7)
  • add parent+child logout, parent points ledger view (a7fcfb1)
  • admin: Activities Master template view/edit panel + activityCount column (A1/A2) (a906eaf)
  • admin: super-admin console MVP — login, session, dashboard, quota editor, audit (issue #9) (caf5ddc)
  • auth: DB-backed child PIN rate limiting (replaces in-memory Map) (95273f4)
  • child: landing revamp — themes, avatar, self PIN change, badges; parent child-profile page (#20, #7) (d7b6e6a), closes #17
  • clean open kanban issues — #39 email OTP redirect+salt, #40 resend countdown, #38 reward status, #36 clickable cards, #33 schedule calendar, #26 pass threshold, #23 dashboard tabs (94baf98)
  • Codex UI/layout/CSS changes — globals.css, page.tsx, changelog, docs layout, dashboard, child-shell, trellis-brand component, home-variants/6 (5129a2e)
  • complete Phase 0 — auth, onboarding (COPPA), email, super-admin, middleware, tests (ceef679)
  • database connected (Prisma 7 adapter-pg) + seed Free plan + 20 tables verified (d6a43b8)
  • DeepSeek V4 Flash as production LLM (thinking=disabled for clean JSON) (70996a5)
  • entitlements: DB-driven AI generation quota + raise Free tier to 20 (unblocks UAT) (cbf0255), closes #14
  • family lookup by email (issue #6) — new /api/auth/families/by-email endpoint, email-first child login, rate limiter, migration (89171cd)
  • family-code child login (unique, kid-friendly); child logout → landing page; show family code on dashboard (8db7f76)
  • home page sign-in modal popup (issue #41) — parent/kid login options (f844a00)
  • Increment 6 generation accounting — credits, token ceilings, previews, admin controls (53d9322)
  • increment-8: 8A canonical library schema, RLS, and key/fingerprint helpers (fff5042)
  • increment-8: 8B candidate capture + shadow canonical lookup (4890d44)
  • increment-8: 8C canonical serving + family exposure history (cd94a67)
  • increment-8: 8D family library items, access classes, downgrade/restore, Starter one-use (b5ad416)
  • increment-8: 8E selected-question replacement, successor previews, explanation release (042ef63)
  • increment-8: 8F library-cap enforcement, admin metrics, cutover observability (c1a8035)
  • increment-8: B1-B3 UX — topic-suggestion panel, list-view default, assign vs schedule (3f556c7), closes #50
  • issues #42 + #43 — multiple parents (max 3, invite API, dashboard section) + new vs returning user UX (signup page, home CTA) (9cbb7b5)
  • issues #44 (remove Add another child button), #45 (rename Children→My family), #46 (card/list toggle + pagination in activity library) (0d59494)
  • onboarding: Getting Started guide for new families on the dashboard (issue #14) (896b111)
  • parent: add another child + reset PIN + unlock locked child (issue #17) (45611c0), closes #18
  • phase-1: core loop — math quiz generation, activity library, scheduling, grading, points ledger, child today/play UI (10b1962)
  • phase-2: rewards catalog + redemption flow, message board, pending approvals (1a4c89b)
  • release: auto-generated changelog + /changelog page with version/env badge (issue #5) (9bad392)
  • rewards CRUD + email OTP login (inc 4, #5/#7) + child theme/avatar, activity overlap, JSON-extract fixes (inc 5, #24-#31) (68b3f7f)
  • rls: enforce Postgres RLS via withFamilyContext (SET LOCAL role=authenticated + app.family_id) (07ac6b8)
  • ui: magenta/gold homepage design + prompted onboarding + docs (b90c042)
  • ui: shadcn/ui init + brand theme + redesigned landing, logins, dashboard; user guide by tech-writer (0cba15a)

Bug Fixes

  • activities: regenerate button re-runs generation with current params (issue #2) (b1abc6b)
  • admin: login page no longer wrapped by the guarded console layout (307 loop) (e19f5aa)
  • auth: add /parent/error page + correct NEXTAUTH_URL scoping docs (preview OAuth) (4291c78)
  • auth: child PIN hashing uses a code-constant pepper (env-independent) — fixes login across environments (issue #19 follow-up) (834fcde)
  • auth: child PIN hashing uses a code-constant pepper (env-independent) — fixes login across environments (issue #19 follow-up) (ce7eae7)
  • auth: email OTP session JWT salt must match cookie name over HTTPS (issue #39) (c5f4a51)
  • auth: middleware must pass secureCookie to getToken — prod OAuth bounce (ea7012d)
  • build: generate Prisma client before build — unbreaks Vercel deploys (54bf611)
  • build: wrap EmailLoginForm in Suspense for useSearchParams prerender (Vercel build) (90726e7)
  • ci: apply RLS before browser journeys (be7c4de)
  • ci: build disposable databases from Prisma schema (cbfc0a9)
  • ci: isolate production-build journey doubles (cf3a0e2)
  • ci: scope journey-only environment (8c67392)
  • correct imports and forward-only queries for Prisma 7 (8a37afc)
  • correct LLM endpoint IP + model name; handle reasoning-model output (max_tokens, think-strip, error surfacing) (4dcf409)
  • email: use notifications.trellislearning.net sender domain (issue #16) (9253f5d)
  • middleware: allow /parent/signup without auth (a7cd7f4)
  • redirect to onboarding when parent has no account; add auth diagnostics (2e35bd4)
  • rewards: show assignment picker in edit mode (issue #35, sub of #21) (5f9ada3)
  • rls: make rls-policies.sql idempotent (DROP POLICY IF EXISTS) for safe re-run on prod (9254526)
  • security: move family-code lookup to POST body — codes no longer appear in URLs/logs (issue #19) (e3effe0)
  • security: revoke child sessions on PIN reset, IP throttling, argon2 PIN hashing (post-#17 review) (c4df132)
  • security: sanitize error messages in POST catch blocks (W1-W3) (f562e96)
  • security: verify child session — close sibling IDOR across child routes (a10f56d)
  • seed: add Reading category topics and difficulty mappings for governed cohort (dc5c4e6)
  • seed: Math Quiz creditCostMode GENERATED_CONTENT -> GENERATED_QUESTIONS (8c171c2)
  • sign-in-modal: replace 'Already have an account? Sign in' with 'Don't have an account? Sign up here' → /parent/signup (e245982)

[0.1.0] — 2026-08-17

Added

  • Postgres Row-Level Security: family-scoped RLS on all 17 tables, enforced

per-request via withFamilyContext (SET LOCAL role = authenticated +
app.family_id). App-level authorization retained as defense-in-depth.

  • Child login by family code: unique kid-friendly 6-char code, DB-backed PIN

rate limiting.

  • Phase 1 core loop: AI activity generation (math quiz), assignments,

auto-grading, points ledger.

  • Phase 2 rewards & messages: rewards catalog, instant/approval redemptions,

child message board with a safety filter.

  • Parent & child auth: Google OAuth for parents, signed child sessions,

logout, parent points ledger.

  • UI: redesigned landing/logins/dashboard, onboarding prompt, docs & user guide.
  • Security hardening: sibling IDOR fix, error-message sanitization, input

length limits on AI prompts.

Changed

  • Production LLM switched to DeepSeek V4 Flash (thinking disabled for clean JSON).
  • DB environment policy: dev/staging → TEST project only; prod → PROD project only.