Repository navigation
v0.17.0 - Backlog completion
Highlights
- Sign-in rate limits live in Postgres, so several API processes share one count per address and per email (Spec 10 B1); the e2e harness can raise the per-IP limit for repeated local runs.
- Mail delivery runs on configurable sender goroutines (
UNICOURSE_OUTBOX_SENDERS), the client address is read fromForwardedas well asX-Forwarded-For, IPv4-mapped prefixes match, and a malformedUNICOURSE_WEB_ORIGINrefuses startup (B2, B5, B10). - Department, term and course pickers search as you type (
qon the three lists), so universities beyond 200 rows stay usable (B3). create-universityruns as a confinedunicourse_platformrole that cannot migrate or reach an existing university (B4, D133, D135).- The upload limit comes from
UNICOURSE_MAX_UPLOAD_BYTES, the allowed types and limit are published atGET /api/v1/upload-policyand the web reads them; uploads show byte-level progress; routes are code-split (B7, B9, B13). seed-demo --fixture <path>loads any dataset described bydocs/seed/fixture.schema.json;make devbrings up Postgres, migrations, the demo and both dev servers; the screenshot script seeds throughseed-demo(B8).- Meetings in one section may not overlap; copy fixes for the section Remove dialog, course conflicts, department-admin controls and the audit filter; invitation 409 messages no longer reveal membership state (B6, B12); CI checks the two-origin dev sign-in flow (B11).
What's Changed
Changes
- P17-L9a: route code splitting, index chunk 546 kB to 293 kB by @kapildev333 in #147
- P17-L5: overlapping meetings rule (D131), generic invitation 409 (D132), F4 F5 F6 F10 by @kapildev333 in #149
- P17-L8: seed-demo --fixture, fixture schema, make dev, screens via seed-demo by @kapildev333 in #150
- P17-L10: CI dev-setup job checks the two-origin sign-in flow (B11) by @kapildev333 in #151
- P17-L3: outbox senders, Forwarded header and IPv4-mapped prefixes, WEB_ORIGIN validation, upload limit config by @kapildev333 in #152
- P17-L2: sign-in rate limits in Postgres (rate_buckets, migration 0008) by @kapildev333 in #153
- P17-L7: unicourse_platform role for create-university, migration 0009 (D133, D135) by @kapildev333 in #155
- P17-L6: q on departments and terms, picker search, overlap rule in the contract by @kapildev333 in #156
- P17-L4: upload limit from the environment, GET /upload-policy, web reads the policy (after #156) by @kapildev333 in #157
- P17-L2b: UNICOURSE_SIGNIN_IP_LIMIT; e2e raises the per-IP limit by @kapildev333 in #158
- P17-L9b: XHR upload progress with a native progress element, router pending component and intent preload (after #157) by @kapildev333 in #159
Full Changelog: v0.16.0...v0.17.0