Skip to content

Fix project docs and build config to match actual codebase#1

Merged
Sootopolis merged 1 commit into
mainfrom
claude/review-project-structure-ahzvU
Mar 11, 2026
Merged

Fix project docs and build config to match actual codebase#1
Sootopolis merged 1 commit into
mainfrom
claude/review-project-structure-ahzvU

Conversation

@Sootopolis

Copy link
Copy Markdown
Owner
  • Rewrite CLAUDE.md: replace references to non-existent patterns
    (SqlRepoUtils, RepoResolver, QuillWrapper, zio-protoquill) with
    accurate descriptions of Magnum-based SQL layer and CcasSubtype system
  • Fix SBT version in Versions.scala (1.10.11 → 1.12.0) to match
    build.properties
  • Remove commented-out zio-schema and scala-reflect dependencies from
    build.sbt and unused vZioSchema from Versions.scala
  • Add application.conf.example template for new developer onboarding

https://claude.ai/code/session_01Tkct32FMZzGdPqxKLwdFXU

- Rewrite CLAUDE.md: replace references to non-existent patterns
  (SqlRepoUtils, RepoResolver, QuillWrapper, zio-protoquill) with
  accurate descriptions of Magnum-based SQL layer and CcasSubtype system
- Fix SBT version in Versions.scala (1.10.11 → 1.12.0) to match
  build.properties
- Remove commented-out zio-schema and scala-reflect dependencies from
  build.sbt and unused vZioSchema from Versions.scala
- Add application.conf.example template for new developer onboarding

https://claude.ai/code/session_01Tkct32FMZzGdPqxKLwdFXU
@Sootopolis Sootopolis merged commit 5a9b398 into main Mar 11, 2026
@Sootopolis Sootopolis deleted the claude/review-project-structure-ahzvU branch March 11, 2026 21:13
Sootopolis added a commit that referenced this pull request Apr 11, 2026
Three issues surfaced after running recruitment in production with the
new CheckAdminOfDiscoveredClub filter:

1. evaluateClub's "skip if existing admin rows" branch incorrectly
   accepted candidates whose admin rows had been persisted earlier in
   the same run by another candidate's late-confirm pass — the
   run-start adminExcludedPlayerIds set didn't see those rows. Fix:
   in that branch, re-apply the gate predicate against current local
   data and check the candidate's membership directly. Extracted a
   passesGate helper so both branches use identical predicates.

2. ClubAdmin.replaceForClub raced with itself when two recruitment
   fibers concurrently late-checked the same unknown club: under
   READ COMMITTED both transactions DELETE 0 rows in their own
   snapshots, then collide on the INSERT with a duplicate-key
   violation. Added ON CONFLICT (club_id, player_id) DO NOTHING to
   the INSERT. Documented why in the scaladoc.

3. Persistent 404s on restricted mega-clubs (chess-com-community,
   improvers, etc.) were re-fetched once per candidate. Added a
   per-run failedAdminSlugs Ref so we give up on a slug after the
   first failure within a run; resets on next run so transient
   failures get a fresh chance.

Includes a regression test for #1 (two candidates, both admins of the
same newly-discovered sizable club, processed sequentially — both must
be rejected). Verified by stashing the fix and confirming the test
fails with the buggy code, then restoring.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.

2 participants