Skip to content

[pull] dev from main - #337

Merged
aamoghS merged 3 commits into
devfrom
main
Aug 9, 2026
Merged

[pull] dev from main#337
aamoghS merged 3 commits into
devfrom
main

Conversation

@pull

@pull pull Bot commented Aug 9, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

W1 changed `member` from unique(user_id, hackathon_id) to unique(user_id), but
two pieces of documentation still described the old shape — and one of them
contradicted the code directly beneath it.

- README said `member` is scoped to a hackathon and that "a paid year still
  hangs off an edition, so membership resolves the current hackathon". That is
  the bug W1 fixed: the day the next edition opened, every paying member read
  as a non-member. It now says what is true, including that the club half works
  with no hackathon in the database at all.
- `requireActiveMember`'s docblock claimed it resolves the current edition. The
  function body does not, and an inner comment said the opposite — a reader
  had to work out which half to believe.

Documentation only; no behaviour change.
@pull pull Bot locked and limited conversation to collaborators Aug 9, 2026
@pull
pull Bot requested a review from aamoghS as a code owner August 9, 2026 05:20
@pull pull Bot added the ⤵️ pull label Aug 9, 2026
@pull pull Bot assigned aamoghS Aug 9, 2026
aamoghS and others added 2 commits August 9, 2026 01:28
…t it (#338)

Judges score by scanning the QR on a team's table card: the scoring form only
opens after startByQrCode succeeds. TableCards.tsx renders those cards and is
the only consumer of judge.tableCards — and nothing imported it, so no card
could be printed and no judge could open the form. Judging was unstartable.

Lost when I split this work into a stack: branch 1 took the pre-stack version
of this page, so the tab and its import never reached main, and the mobile-nav
fix (seven tabs in a five-column grid, with Table Cards and Email laid out off
the right edge of the phone) went with it. Both are restored here.

Found by walking the organiser and judge journeys against main. Nothing failed
— the component compiled, 426 tests passed, and the missing tab was invisible
to all of it.
…ile (#335)

The Membership tab refused to save anything — school, major, skills, interests,
socials — unless a graduation year had been typed in, and the error it showed
("That graduation year does not look right") pointed at a field the member had
deliberately left empty.

The guard compared against `undefined` while the value is `null` for a blank
field: `null !== undefined` is true and `Number.isInteger(null)` is false, so
every save with an empty year fell into the error branch. `null` is the value
that CLEARS the column, so it has to pass.

Introduced by the review fix on #323, which changed the payload from
`undefined` to `null` to make fields clearable and did not move the guard with
it. Found while auditing the product against MVP.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@aamoghS
aamoghS merged commit 2e5ea72 into dev Aug 9, 2026
19 of 20 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant