Skip to content

prepify: v1.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 13:03
53c65e1

1.1.0 (2026-09-18)

Features

  • add /healthz + /readyz probes and wire Cloud Run startup/liveness checks (#166) (#179) (0d13de8)
  • add Artifact Registry cleanup policies (#111) (80c12ba)
  • add coder and reviewer GitHub Actions agents (#108) (1f31749)
  • add delete prep action (#37) (93a7e49)
  • add Docker build and dev/prod deploy pipeline (#81) (7a7ab74)
  • add epic issue type with multi-criteria estimation (#106) (4851942)
  • add issue refinement + estimation pipeline (a87e9ee)
  • add issue refinement + estimation pipeline (a91d8ca)
  • add naming step to checklist; extract taskBuilder (8b66363)
  • add PrepLabeler agent for discipline & grade inference (33b0ccf)
  • add Prisma schema for Neon and wire DATABASE_URL into Cloud Run (#84) (1bc0b2a)
  • add repositories, server actions, and pglite-backed tests for the data layer (#86) (b3e96b0)
  • adopt Tailwind CSS + shadcn/ui foundations (#128) (a44a26e)
  • asset system — LLM-generated visual content for questions (closes #34) (b420889)
  • authenticate issue-pipeline agents via Claude subscription OAuth token (20168ed)
  • central agent-pipeline.yml config for the agent jobs (#159) (9b982d6)
  • checklist progress UI + save prep title eagerly on naming (742c236)
  • chunk rawText through ConceptExtractor with LLM merger (63cbe0a)
  • chunk rawText through ConceptExtractor with LLM merger (#1) (2aa6251)
  • configurable question count and type toggles (#10) (1d36d1f)
  • cut client screens over to server actions, retire Supabase table access (#89) (6849c65)
  • detect language via OCR, use configured model, thread language through pipeline (#30) (9d10854)
  • enrich OCR with visual elements (closes #35) (49316fe)
  • expand PrepLabeler language disciplines (#43) (#177) (f7db23b)
  • grant code + wiki read access, preserve original body, comment run link/cost (dddca32)
  • let agents fall back to asking the owner instead of guessing (a12b07d)
  • let the reviewer read the linked issue and its cross-references (#114) (0439d04)
  • let the reviewer verify CI checks it can't reproduce locally (#113) (8654e93)
  • map prepify.cc as custom domain for prod Cloud Run service (#185) (f4f6015)
  • migrate auth from Supabase Auth to Auth.js (Google OAuth, JWT sessions) (#94) (b84976b)
  • multi-image upload with collect-first flow (#32) (2c64b2d)
  • persist pipeline stages to Supabase for crash recovery (7e5a6ba)
  • pipeline crash recovery via Supabase checkpointing (5359823)
  • prep catalog page with grade/discipline filters (#28) (8dedaf0)
  • public study page for shared preps (#27) (41dde7b)
  • replace Tesseract.js OCR with OpenAI Vision (dc862d2)
  • replace Tesseract.js OCR with OpenAI Vision (gpt-5-nano) (0e5f041), closes #12
  • share & publish flow (#26) (7c0a138)
  • shuffle answer options once per attempt (all question types) (7ddfd72)
  • shuffle answer options once per attempt for all question types (01256a4)
  • SSR metadata, sitemap.xml, robots.txt for public routes (#183) (2bea19e)
  • store token usage per-prep in Supabase with cost estimates (7056838)
  • store token usage per-prep in Supabase with cost estimates (b10d17d)
  • store token usage per-prep in Supabase with cost estimates (#9) (7056838)
  • tighten ConceptExtractor concept quality — cap 20, filter importance < 0.5 (8d5c976), closes #11
  • tighten ConceptExtractor quality — cap 20, filter importance < 0.5 (2d2d25a)
  • two-layer pipeline state, gate reviewer on CI checks (#139) (9879e2d)
  • visibility badge + description on MyPreps list (#38) (#180) (e53ad7e)
  • write a run summary to $GITHUB_STEP_SUMMARY for every agent job (#144) (6187d06)

Bug Fixes

  • add .nullable() to asset_hint Zod fields for OpenAI structured outputs (5f97358)
  • add missing GeneratedQuestion type and generatedQuestionSchema export (a0f5241)
  • add vercel.json SPA rewrite so /preps and /preps/:id don't 404 on hard load (5837d8d)
  • allow gh-safe scripts to be invoked by absolute path (#70) (1160573)
  • allow gh-safe scripts without leading ./ in allowedTools (13a0f03)
  • bring OCR agent into schema-validated runAgent pattern (#172) (f8952b0)
  • bump create-github-app-token to v3 for Node 24 (#136) (02cbac7)
  • close the coder↔reviewer fix-round loop (#135) (80f08c6)
  • codebase conformance sweep against Next.js guidelines (#169) (e421f67)
  • ConceptMerger: skip on single chunk, use names instead of indexes (0b99bda)
  • ConceptMerger: skip on single chunk, use names instead of indexes (9d604a3), closes #16
  • detect and flag silent pipeline no-ops (#66) (f923292)
  • drop path-scoping on Write, still denied at the resolved path (#63) (2f08280)
  • enforce exact answer count for multiple-choice questions (7cbc356), closes #29
  • enforce structured outputs at API level to eliminate JSON validation errors (#8) (5480cb6), closes #7
  • fill_the_gap scoring, dead code cleanup, docs corrections (5e946aa)
  • gate coder job on type:coding-task/type:bug and fix label naming (#115) (c1c7689), closes #112
  • gate Terraform prod apply on version tags, not merge to main (#116) (0ea0df4), closes #99
  • give the reviewer job its own GitHub App identity so it can approve (#121) (00f7a3d)
  • grant anon SELECT on preps and questions so unauthenticated users can access public/link preps (d261dc0)
  • grant authenticated/anon access to assets table (ae1ba80)
  • grant Cloud Run Service Agents read access to shared Artifact Registry (#83) (674ca7b)
  • guard prep.pages null on preps created before pages migration (117fe64)
  • guard the coder push path — squash to one commit, block workflow/gh-safe edits (#127) (8037722)
  • isolate per-slot failures with allSettled, only delete run when complete (58b46ee)
  • keep pipeline_run after completion so concepts persist for PrepLabeler (479048d)
  • lazy Config class with NEXT_PHASE guard for build-phase env validation (#175) (ca5aa5d)
  • match AUTH_URL to the Cloud Run domain registered as OAuth redirect URI (#97) (585f49e)
  • model, bot-triggered runs, error handling, cost logging (2d76d22)
  • name the pipeline scripts dir as sandbox-protected in coder prompts (#146) (b5141b2)
  • pass body/comment text via file, not Bash argument (#61) (d1e09f2)
  • pipeline per-question build→review instead of batch-build-then-batch-review (e8c5bbc)
  • push release images tagged with the v prefix (#110) (63e6d43)
  • redirect to origin after Google OAuth instead of /preps (e46eef8)
  • remove study_description — column was always null, dead branch (666799f), closes #39
  • replace discriminated union with flat nullable object for asset_hint (36fa101)
  • replace unbounded allSettled with concurrency pool (CONCURRENCY=5) (4f58a69)
  • stop plan-* jobs from running on push, racing apply-* for the state lock (#74) (ab30683)
  • unblock the coder pipeline on file-deletion refactors (#149) (90f2544)
  • use always() so apply-dev/apply-prod aren't skipped when apply-shared is skipped (#93) (a3e2eec), closes #87
  • use haiku, allow bot-triggered runs, add failure handling and cost logging (9611c8d)
  • Write permission path + include owner comments as context (#62) (0e6d00e)