← back to @david

active 196 entries 16 NOV 2025 → ongoing

Kerra

Kerra is the AI workbench for university students. It connects to a course site, reads course material, creates per-assignment workspaces, tracks the calendar, and lets AI help inside the actual academic workflow. The work in this thread is reliability and ground truth: shared LMS sync, OTP onboarding, lecture-source pages, course-material parsing (PPTX is first-class), the planner, and the extension fortress. Kerra has to pay for the deeper intelligence-access project, so boring production reliability matters more than ambitious new surfaces.

tags: kerra · kerrafin · planner · reliability · extension

All entries

  1. 25 MAY 2026 David decided: Set the GitHub Actions billing block as the gating action on Kerra deploys
  2. 25 MAY 2026 David debugged: Traced David's own missing Kerra workspaces back into production
  3. 25 MAY 2026 David's problem: Caught the Kerra workspace agent lying instead of searching the user's LMS files
  4. 25 MAY 2026 David's approach: Specified the Kerra groupchat-to-workspace bridge semantics for canvas users
  5. 25 MAY 2026 David decided: Dispatched four parallel agents for the Kerra course-rename bug
  6. 25 MAY 2026 David debugged: Rejected Twilio Puerto Rico geofence as the OTP bug without proof
  7. 25 MAY 2026 David's problem: Granular Connect hooks must self-install, not require Claude Code /hooks review
  8. 14 MAY 2026 David decided: kerra university home is the core surface
  9. 14 MAY 2026 David decided: Switched Kerra model defaults: gemini-2.5-flash as default, monitor moved to gemini-flash-lite
  10. 13 MAY 2026 David debugged: Investigated calendar event duplication on completion toggle
  11. 12 MAY 2026 David debugged: Extension detection taking 30 seconds on signup completion
  12. 12 MAY 2026 David's problem: Kerra was sending blank morning/evening SMS messages to users
  13. 10 MAY 2026 David decided: Separated assignment planner from lecture notes pipeline with a feature flag
  14. 09 MAY 2026 David decided: Commissioned personalised outreach emails based on inferred course schedules
  15. 08 MAY 2026 David decided: Rejected agent prompt injection into lecture notes to handle document failures
  16. 06 MAY 2026 David debugged: Found dual concurrent agent runs corrupting the same workspace document
  17. 06 MAY 2026 David's problem: PPTX is first-class course material
  18. 05 MAY 2026 David decided: Gated 'agents with own computer' workspace model to pro plan only
  19. 05 MAY 2026 David decided: Launched Create New Lecture modal replacing the Start Kerra button
  20. 04 MAY 2026 David debugged: Investigated new Notre Dame signup with empty home page despite successful calendar runs
  21. 02 MAY 2026 David's problem: Calendar agents failing silently for multiple new signups
  22. 30 APR 2026 David debugged: Pushed back on 'AI model laziness' as root cause for lecture notes failures
  23. 30 APR 2026 David decided: user clicks must remain the generation path
  24. 28 APR 2026 David asks: How do we measure retention signal cleanly when users span the cohort boundary?
  25. 28 APR 2026 David debugged: Investigated why a lecture workspace showed premature semi-complete tabs
  26. 27 APR 2026 David debugged: OTP rate-limit firing after just two requests on signup
  27. 27 APR 2026 David decided: Commissioned growth referral system with 51 state-scoped ambassador links
  28. 25 APR 2026 David's problem: dont deploy snitch through kerra
  29. 25 APR 2026 David debugged: Lecture notes generated from Google Slides links with no actual slide content
  30. 24 APR 2026 David's problem: privacy and copyright anxiety are onboarding blockers
  31. 24 APR 2026 David decided: Decided Snitch beta subscription language should replace 'join the beta' CTA
  32. 23 APR 2026 David asks: Cost-benefit of sending Canvas DMs through users' extensions
  33. 22 APR 2026 David debugged: Investigated canvas file metadata sync gap causing unlinked lecture source files
  34. 21 APR 2026 David decided: Hid Therapa button from Kerra university app header
  35. 19 APR 2026 David debugged: Post-signup onboarding failure on production
  36. 18 APR 2026 David's problem: Workspace AI chat has jarring shell command flash and broken scroll
  37. 16 APR 2026 David debugged: Lecture workspace documents opened as empty during live generation
  38. 16 APR 2026 David decided: canvas groupchat fanout rules
  39. 14 APR 2026 David debugged: Investigated why Lesedi's prefetch showed permanently failed after clicking candidate
  40. 13 APR 2026 David decided: Commissioned security and data-architecture audit of Kerra before sharing with users
  41. 13 APR 2026 David decided: Disabled auto-prewarming of lecture notes workspaces
  42. 12 APR 2026 David's problem: Kerra workspace hanging with empty response after apparently successful greeting
  43. 11 APR 2026 David debugged: root cause, not plausible story
  44. 11 APR 2026 David debugged: Investigated kerra.work domain going down mid-lecture generation
  45. 10 APR 2026 David debugged: Investigated phone OTP rate-limiting during new user signup on Kerra
  46. 10 APR 2026 David debugged: Investigated class group chat missing from university app header
  47. 08 APR 2026 David decided: Rejected phased rollout wording in the Canvas file metadata heal plan
  48. 08 APR 2026 David debugged: Investigated Giancarlo Allio's stuck OTP 900-second timeout on Kerra signup
  49. 07 APR 2026 David decided: Removed Telegram banner and signup step from Kerra
  50. 07 APR 2026 David's problem: agent runtime must be taught its tools
  51. 06 APR 2026 David debugged: background compute must be accountable
  52. 05 APR 2026 David debugged: Lecture notes prefetch state contradiction on failed run
  53. 04 APR 2026 David shipped: Shipped mobile signup handoff — send link to laptop feature
  54. 03 APR 2026 David debugged: Caught prefetch_state='failed' masking a successful prefetch on Canvas candidates
  55. 02 APR 2026 David debugged: Monitor TLR model switch to Gemini 2.5 Flash — semaphore investigation
  56. 02 APR 2026 David decided: Per-document podcast via direct TTS, not the full podcast pipeline
  57. 01 APR 2026 David shipped: Hard-deleted Caden's account from production DB and Clerk
  58. 01 APR 2026 David decided: Specified data privacy screen copy for Kerra onboarding — no jargon
  59. 31 MAR 2026 David debugged: PPTX files silently bypassed page selection, exposing a missing conversion step
  60. 30 MAR 2026 David noticed: Phased rollout is the wrong default for a startup product
  61. 30 MAR 2026 David decided: Kill assignment planner agents with a simple feature flag
  62. 29 MAR 2026 David's problem: canvas external sources need first-class modeling
  63. 27 MAR 2026 David decided: kerra pays for archimedes
  64. 27 MAR 2026 David decided: Rejected shared upload modal, commissioned bespoke design from scratch
  65. 25 MAR 2026 David asks: Asked whether Claude code subsidization changes the Kerra compute cost model
  66. 25 MAR 2026 David debugged: Extension reconnect popup firing despite extension being connected
  67. 24 MAR 2026 David noticed: active usage must mean meaningful work
  68. 24 MAR 2026 David noticed: visible_at is a product timestamp, not a database timestamp
  69. 22 MAR 2026 David decided: Disable assignment planner to stop unwanted background AI runs
  70. 21 MAR 2026 David's approach: relevant course files must be read completely
  71. 20 MAR 2026 David noticed: every project is the same bet wearing costumes
  72. 19 MAR 2026 David's problem: Kerra sending users a 'kinra' rebranded email on signup
  73. 18 MAR 2026 David debugged: Caught canvas prefetch_state contradiction: failed field vs succeeded metrics
  74. 18 MAR 2026 David's approach: Iterative multi-agent plan review before execution
  75. 17 MAR 2026 David noticed: Module planner candidate names should reflect content, not just file paths
  76. 16 MAR 2026 David asks: Questioned whether Canvas dual-endpoint sync creates duplicates
  77. 15 MAR 2026 David decided: Workspace model default changed to Gemini Flash, agents mode gated to Pro
  78. 13 MAR 2026 David debugged: Courses modal flickering on university app home
  79. 13 MAR 2026 David's problem: Kerra signup produced no lecture notes candidates for new Notre Dame user
  80. 11 MAR 2026 David's problem: UI state must tell the truth
  81. 11 MAR 2026 David decided: Build user-upload modal for missing external lecture sources
  82. 10 MAR 2026 David decided: fail open, then reconcile
  83. 08 MAR 2026 David decided: Deleted all UCT user data and David's own account from production
  84. 07 MAR 2026 David decided: Rejected phased rollout wording in fix plan, demanding full immediate execution
  85. 05 MAR 2026 David debugged: Concurrent lecture notes agents writing to the same document simultaneously
  86. 04 MAR 2026 David decided: Upload modal design: no acknowledgement checkbox, no raw URLs
  87. 04 MAR 2026 David decided: Added Research Mode toggle to Kerra workspace, switching model to GPT-5.4
  88. 03 MAR 2026 David decided: Proposed referral pledge screen for signup to replace Genius Preview animation
  89. 02 MAR 2026 David debugged: Investigated why Keno's signup produced no calendar events despite available announcements
  90. 01 MAR 2026 David debugged: Caught prefetch_state='failed' contradicting prefetch_metrics showing 6/6 success
  91. 01 MAR 2026 David decided: prompt changes must hit prod, seed, and fallback
  92. 27 FEB 2026 David's problem: Notre Dame signup had zero calendar agents and no lecture candidates
  93. 26 FEB 2026 David debugged: Investigated why PDF viewer overlay failed to load a clicked lecture slide in production
  94. 24 FEB 2026 David decided: Replaced referral pledge screen with a privacy-disclosure screen in signup
  95. 24 FEB 2026 David debugged: Investigated why Keno's signup failed open to wrong 6 courses
  96. 21 FEB 2026 David decided: Rejected over-complex fix plan in favour of targeted patches
  97. 19 FEB 2026 David decided: Removed LMS session gate from personal workspaces
  98. 18 FEB 2026 David debugged: Investigated why 1,089 lecture notes generation requests failed on launch day
  99. 17 FEB 2026 David's approach: deploy via github actions
  100. 16 FEB 2026 David's approach: Using multi-agent parallel audits before every major ship
  101. 16 FEB 2026 David debugged: Extension reconnect popup firing despite extension being connected
  102. 12 FEB 2026 David debugged: Investigated why class group chats showed zero groups after chat button was restored
  103. 11 FEB 2026 David debugged: Investigated why phone OTP gave errors on first attempt during signup
  104. 11 FEB 2026 David's problem: Production Gemini deploy had empty terminal bug occurring every 4th view_file call
  105. 09 FEB 2026 David debugged: Investigated mobile signup handoff bug burning tokens before users clicked them
  106. 08 FEB 2026 David debugged: Lecture notes agent producing 504 errors from Gemini cache expiry
  107. 06 FEB 2026 David debugged: Investigated new signup that showed 'can't connect to LMS' instead of the fail-open courses UI
  108. 05 FEB 2026 David debugged: Investigated why lecture notes generation was failing and took 20+ minutes
  109. 05 FEB 2026 David decided: Decided against phased rollout for external-link file resolution fix
  110. 04 FEB 2026 David debugged: Investigated why prefetch_state='failed' showed 'failed' when all 6 files succeeded
  111. 04 FEB 2026 David shipped: Launched signup competition leaderboard on university app home page
  112. 02 FEB 2026 David shipped: Added per-document podcast button for workspace lecture documents
  113. 25 JAN 2026 David debugged: Investigated why Daniel's Canvas session appeared expired despite recent sign-in
  114. 25 JAN 2026 David decided: Defined Canvas chat-to-classmate fanout rules for Kerra group chat
  115. 24 JAN 2026 David decided: Turned off auto-prewarming so candidates only generate on explicit user clicks
  116. 24 JAN 2026 David shipped: Emailed 18,000 UCT students about Kerra using Outlook scraping
  117. 23 JAN 2026 David decided: Instructed plan review to pass no-new-states constraint on sync status
  118. 22 JAN 2026 David's approach: the extension fortress
  119. 22 JAN 2026 David debugged: Investigated why course content sync was failing for own DSP course on production
  120. 19 JAN 2026 David decided: Replaced Kerra draft page hero copy with personalised today schedule view
  121. 19 JAN 2026 David shipped: Removed Telegram from Kerra onboarding and app UI
  122. 18 JAN 2026 David decided: Gave 150+ stuck mobile users free Kerra Pro for 1 year as apology
  123. 17 JAN 2026 David decided: dont call it LMS to users
  124. 16 JAN 2026 David decided: Mandated that workspace AI chat agent read every file end-to-end, not just triage
  125. 16 JAN 2026 David debugged: Calendar agent creating Kerra events in wrong timezone
  126. 15 JAN 2026 David debugged: Investigated prefetch_state='failed' mislabelling when all six files succeeded
  127. 15 JAN 2026 David's problem: PDF viewer overlay failed to load on clicked inserted pages
  128. 14 JAN 2026 David debugged: Traced why calendar agents were failing on new signups
  129. 13 JAN 2026 David asks: Assessed whether a db.t3.small RDS can actually serve 10,000 concurrent users
  130. 12 JAN 2026 David decided: Extended Kerra SMS reminders from Telegram users to all onboarded users
  131. 10 JAN 2026 David made: kerrafin is a finance derivative of kerra
  132. 10 JAN 2026 David debugged: Investigated prefetch_state 'failed' contradicting six successful prefetches
  133. 09 JAN 2026 David's problem: OTP signup failures are growth-critical
  134. 08 JAN 2026 David decided: module planner outputs define lecture candidates
  135. 08 JAN 2026 David's problem: Canvas courses with Google Slides–only content produce empty lecture workspaces
  136. 07 JAN 2026 David debugged: bootstrap calendar failures need course-level names
  137. 06 JAN 2026 David debugged: Workspace banners lost New/Earlier sections after a silent state mutation
  138. 05 JAN 2026 David noticed: PPTX files should be handled natively, not transcribed
  139. 05 JAN 2026 David decided: simulation must use production machinery
  140. 04 JAN 2026 David debugged: Investigated why extension was shown as disconnected despite being active
  141. 04 JAN 2026 David decided: Rejected proposed lecture-notes UX state machine for adding unnecessary complexity
  142. 02 JAN 2026 David's problem: Twilio costs 60x higher than expected for SMS sends
  143. 02 JAN 2026 David decided: Designed calendar pill link on university home page for direct scroll
  144. 01 JAN 2026 David asks: Investigated how active Kerra users really were on April 25-27
  145. 01 JAN 2026 David's approach: Delegation with parallelism: spawn sub-agents only for orthogonal work to protect coherence
  146. 30 DEC 2025 David's problem: Kerra workspace chat returning 'something went wrong' for free Gemini Flash users
  147. 30 DEC 2025 David's problem: Investigated scroll regression causing erratic position jumps during AI chat navigation
  148. 28 DEC 2025 David's problem: Firms page kerra.work/firms had asymmetric entry/exit transitions
  149. 28 DEC 2025 David decided: Per-document lecture audio: listen-to-this-lecture feature
  150. 27 DEC 2025 David debugged: Investigated own missing Kerra data after signing in to production
  151. 27 DEC 2025 David debugged: Traced canvas external-link gap causing empty Spanish lecture notes
  152. 25 DEC 2025 David decided: Blocked Kerra login on mobile with a redirect to desktop-only message
  153. 24 DEC 2025 David decided: Turn off auto-prewarming of lecture notes candidates
  154. 24 DEC 2025 David debugged: Investigated @kerra groupchat bug where agent was not using extension to reach LMS
  155. 22 DEC 2025 David decided: Wanted blocknote table z-index fix so grid picker is usable inside workspace tabs
  156. 22 DEC 2025 David decided: Set Kerra video budget to 10 hours per day with a UI meter
  157. 21 DEC 2025 David's problem: Unexpected $50/day ElevenLabs bill from Kerra podcast generation
  158. 19 DEC 2025 David decided: Launched 8 opus agents to understand Kerra systems before coding lecture upload feature
  159. 18 DEC 2025 David's problem: workspace agents must search before saying missing
  160. 17 DEC 2025 David decided: Decided to hide Therapa from the Kerra product UI entirely for now
  161. 15 DEC 2025 David debugged: Investigated bootstrap calendar agent failure spike and rebuilt failed runs locally to find the fix
  162. 14 DEC 2025 David's problem: Workspace AI chat agent silently stopping mid-task
  163. 14 DEC 2025 David decided: Changed workspace AI default model to GPT-5.4 mini with medium thinking
  164. 12 DEC 2025 David debugged: Kerra workspace editor cursor jumping back to document name field
  165. 11 DEC 2025 David decided: Required the accuracy mandate injection in calendar agent view_file to not direct tool calls
  166. 11 DEC 2025 David debugged: Investigated canvas distribution failure: zero intents sent to canvas users
  167. 10 DEC 2025 David decided: Parallelised prefetch without requiring extension upgrade
  168. 10 DEC 2025 David decided: Removed generation popup; workspace now opens live immediately on candidate click
  169. 09 DEC 2025 David debugged: Investigated why module planner system prompt used raw file paths at runtime
  170. 08 DEC 2025 David's problem: Canvas courses with Google Slides links instead of downloadable files produce empty lecture notes
  171. 08 DEC 2025 David asks: does the system work like a fortress
  172. 07 DEC 2025 David's problem: lecture notes must include the source pages
  173. 07 DEC 2025 David decided: Commissioned Kerra 'listen to this lecture' per-document audio feature
  174. 06 DEC 2025 David decided: Switched calendar agent model from OpenAI to Gemini 2.5 Flash Lite
  175. 05 DEC 2025 David decided: Designed external-source upload modal for lecture notes missing Canvas files
  176. 05 DEC 2025 David debugged: Investigated why his own signup had no candidates or calendar events
  177. 04 DEC 2025 David decided: dont pre-gate every workspace on the course site
  178. 04 DEC 2025 David debugged: Investigated why new signups had zero lecture candidates appearing on home page
  179. 03 DEC 2025 David debugged: Investigated broken workspace generation producing repeated error toasts
  180. 30 NOV 2025 David decided: Reset all test users and ran end-to-end signup as a real student to find bugs
  181. 29 NOV 2025 David's problem: Signup onboarding complexity blocking the simplicity Kerra needs
  182. 28 NOV 2025 David debugged: Investigated why prefetch ran serially rather than in parallel
  183. 27 NOV 2025 David's problem: Kerra marketing copy implied AI-assisted plagiarism in one sentence
  184. 25 NOV 2025 David's problem: Growth lead feedback surfaces 40% signup apprehension around privacy
  185. 24 NOV 2025 David decided: Changed default workspace model to Gemini 3 Flash and gated agent mode to Pro
  186. 24 NOV 2025 David's approach: Injecting PDF text alongside visual pages to force complete content coverage
  187. 23 NOV 2025 David debugged: Investigated missing course candidates for Lesedi's other courses
  188. 23 NOV 2025 David decided: Decided to gate 'agents has its own computer' and assignment candidates behind pro plan
  189. 22 NOV 2025 David decided: Relaxed prefetch failure rules to 50% primary coverage threshold
  190. 21 NOV 2025 David noticed: shared LMS sync to monitor TLR is the core Kerra loop
  191. 20 NOV 2025 David debugged: Investigated interactive workspace agent lying instead of searching files
  192. 19 NOV 2025 David debugged: Bootstrap calendar agents failing silently for new Notre Dame signup
  193. 18 NOV 2025 David shipped: Built granular growth reporting with canvas/d2l completion rate split
  194. 18 NOV 2025 David decided: Rewrote Kerra landing page hero to directly name the internship outcome
  195. 17 NOV 2025 David decided: Commissioned a real-time live-updating admin UI for Kerra signup tracking
  196. 16 NOV 2025 David's problem: Gemini context window overflow killing lecture notes runs

Set in EB Garamond, Inter, Plus Jakarta Sans, JetBrains Mono.

@david · granular