venture: parallel builds, up to TIME_VENTURE_HEAVY worker runs at once (#23)

A tick runs its top cards in one wave, handing out worker runs in priority order (at
most TIME_VENTURE_HEAVY, default 3; one per card per tick). Made safe for threads: the
folder lock is a per-build Hands subclass instead of a patch on the shared class,
ventures.json is read fresh and written under a lock, and a contents PUT that loses
the race for the branch head (409) is retried. TIME_VENTURE_HEAVY=1 is the old
one-at-a-time.


Claude-Session: https://claude.ai/code/session_01VDkN7ukK1kXkqov8FaZxva

Co-authored-by: Claude <noreply@anthropic.com>
This commit was merged in pull request #23.
This commit is contained in:
teahubxyzandClaude authored and GitHub committed 2026-10-13 01:40:32 +00:00
1 parent bc6f232a56
commit fbe1b0c9a2
5 files changed
+158 -65

No files matched your search

+1
View File
@@ -47,6 +47,7 @@ jobs:
TIME_VENTURE_BATCH_START: ${{ inputs.batch && '1' || '' }}
TIME_VENTURE_BATCH: ${{ vars.TIME_VENTURE_BATCH }} # k; set, a batch replaces the daily single card
TIME_VENTURE_BATCH_HOLD_HOURS: ${{ vars.TIME_VENTURE_BATCH_HOLD_HOURS }} # launch-together hold (default 6)
TIME_VENTURE_HEAVY: ${{ vars.TIME_VENTURE_HEAVY }} # worker runs at once per tick (default 3)
TIME_VENTURE_PITCH: ${{ vars.TIME_VENTURE_PITCH }}
TIME_VENTURE_BOARD: ${{ vars.TIME_VENTURE_BOARD }}
TIME_VENTURE_CHAIR: ${{ vars.TIME_VENTURE_CHAIR }}