Skip to content

chore: merge dev to main#2

Open
PalmDevs wants to merge 127 commits into
mainfrom
dev
Open

chore: merge dev to main#2
PalmDevs wants to merge 127 commits into
mainfrom
dev

Conversation

@PalmDevs
Copy link
Copy Markdown
Collaborator

@PalmDevs PalmDevs commented May 11, 2026

  • Finish TODOs
  • Version API as 1.0.0
  • Version web as CalVer?

PalmDevs added 30 commits May 6, 2026 17:15
There's still some TODOs.

This list of changelog isn't comprehensive. I've probably missed some things here and there. I just want this committed.

- Use TanStack Query for improved targeted invalidation
- Improved client caching by allowing entities to be mutable
- Fixed Suspense boundaries
- Optimistic updates when removing users
- Updated dependencies
- Other small logic errors

- Ability to actually specify API_BASE_URL in builds
- Prepare AdminAuthenticator for multi-admin support

- Bulk add users
- Teachers now have a "My Subjects" section in enrollments
- Admins can now view a teacher's subjects
- Subject UI now lets you pick groups instead of inserting a group ID
- Searching users in admin UI are now possible
- SectionedLists are now masonry
- Disabled Selects now appear slightly transparent
- When using modal navigation, relevant content now turns "inert" to prevent focus
- Tabs are now persisted in navigation stack
- Enrollment create/edit/delete UI
- Group IDs are now generated randomly and hidden from the admin user
- Some small UI fixes

- Heavily refactored codebase
- Extracted base components: ConfirmDialog, BottomBar, UserListItem, SuspenseLoadingPage
THE CAUSE OF MY SUFFERING!!!

For some reason, this option was causing reloads on route file saves, as well as HMR to not work properly.

Everything works fine in production though, oddly enough.

FUCKKKK
Debouncing should be optionally handled by the parent.
It would cause DOM nodes to be remounted at the nearest parent Suspense boundary, which makes elements lose focus.
PalmDevs added 8 commits May 28, 2026 09:37
Session tokens already have high entropy. Argon2 usage is unnecessary and slow.
In the future, some teacher accounts will be able to access some dashboard features.
- Argon2 operations now runs in a cores-limited IO dispatcher
- Database transactions are suspended by default and they run in the IO dispatcher. JDBC is blocking, so there's only a small performance gain.
- Enrollment subject listing is now much faster. Previously there was a very large case of N+1 queries.
- Logging is now async and non-important logs are dropped if queue exceeds the limit.
- Creating a user session no longer holds a database transaction during Argon2 verification. Instead, 2 small transactions are made.
- Fix N+1 queries when getting user sessions
- Fix N+1 queries when getting subject enrolled counts for active enrollments (WS notifications)
- Use ConcurrentHashMap.KeySetView instead of CopyOnWriteArrayList for WebSocket subscription cleanups. COW-ArrayList is NOT good for frequent writes.
PalmDevs added 20 commits May 30, 2026 22:43
Revert back to normal shared password-flow. There is no benefit to a Challenge-Response system.

In the future, we could add passkeys and potentially disable password logins for admins until they are reset.
It doesn't make sense to have an essentially private interface that's solely for one implementation. This commit combines the two files into one.

For mock classes, there's no need to subclass. We already use MockK.
@PalmDevs PalmDevs marked this pull request as ready for review June 3, 2026 18:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant