Skip to content

v0.17.0 - Backlog completion

Choose a tag to compare

@kapildev333 kapildev333 released this 08 Oct 22:57
· 46 commits to main since this release
7782d5f

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 from Forwarded as well as X-Forwarded-For, IPv4-mapped prefixes match, and a malformed UNICOURSE_WEB_ORIGIN refuses startup (B2, B5, B10).
  • Department, term and course pickers search as you type (q on the three lists), so universities beyond 200 rows stay usable (B3).
  • create-university runs as a confined unicourse_platform role 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 at GET /api/v1/upload-policy and the web reads them; uploads show byte-level progress; routes are code-split (B7, B9, B13).
  • seed-demo --fixture <path> loads any dataset described by docs/seed/fixture.schema.json; make dev brings up Postgres, migrations, the demo and both dev servers; the screenshot script seeds through seed-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