Dean Wenstrand
aa731b85fc
Declare taxonomy filter variables on the makes/runs leaderboards
...
Tests / Tests (pull_request) Successful in 18s
The backend leaderboard resolvers gained game_type, table size and pocket
size filters, but GetMakesLeaderboard and GetRunsLeaderboard never declared
them — GraphQL silently drops undeclared variables, so anything the client
passed was ignored and both boards stayed global.
Declare and forward the five filter args on both queries, matching the
names the drill run leaderboard already uses.
2026-07-21 09:30:37 -07:00
1a95439ed2
Replace GetRecordedStreams/GetLiveStreams with video-first GetShotLabVideos
...
Tests / Tests (pull_request) Successful in 44s
Shot Lab's source picker becomes video-first: one query for recent videos
regardless of stream completion (an in-progress recording with no shots
yet still appears), carrying stream recency fields so the client can hint
"actively updating" without gating on it. Operation-only change; schema
is untouched (the stream fields already exist).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-20 23:42:43 -07:00
5e14cd2201
Merge pull request 'Regenerate schema for leaderboard taxonomy filters' ( #300 ) from dean/leaderboard-taxonomy into master
...
Reviewed-on: #300
2026-07-21 04:20:57 +00:00
Dean Wenstrand
9ec52d9d94
Regenerate schema for leaderboard taxonomy filters
...
Tests / Tests (pull_request) Successful in 11s
Adds the optional taxonomy args to getLongestRunsLeaderboard and
getMakesLeaderboard (gameType, rankedOnly, excludeDrills, and
table/pocket size bounds) generated from the backend resolvers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-20 21:19:39 -07:00
4576b25dae
Merge pull request 'Regenerate schema with upstream Strawberry' ( #299 ) from codex/strawberry-upgrade into master
2026-07-20 22:08:35 +00:00
650b3bc13c
Regenerate schema with upstream Strawberry
Tests / Tests (pull_request) Successful in 11s
2026-07-20 14:46:00 -07:00
6d9cb4126e
Merge pull request 'Add per-video HomographyBackendGQL selection to VideoMetadataInput' ( #298 ) from colonelpanic/homography-backend-selection into master
2026-07-18 02:12:18 +00:00
feeb5b7038
Add HomographyBackendGQL enum and VideoMetadataInput.homographyBackend
...
Tests / Tests (pull_request) Successful in 11s
Regenerated from backend Python: adds the HomographyBackendGQL enum
(CLASSIC/TABLENET) and the optional homographyBackend field on
VideoMetadataInput, for per-video homography backend selection.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-17 18:26:53 -07:00
3340314166
Merge pull request 'Add per-session Coach GraphQL contract' ( #297 ) from loewy/session-coach-v1 into master
...
Reviewed-on: #297
2026-07-17 18:33:58 +00:00
6b8fdd4262
Add per-session Coach GraphQL contract
Tests / Tests (pull_request) Successful in 10s
2026-07-16 16:45:55 -07:00
bfaed33c89
Merge pull request 'feed: select uploadCompletionCursor on VideoCardFields stream' ( #296 ) from dean/feed-upload-completion-cursor into master
...
Reviewed-on: #296
2026-07-14 18:24:54 +00:00
Dean Wenstrand
1ce3aaed1b
feed: select uploadCompletionCursor on VideoCardFields stream
...
Tests / Tests (pull_request) Successful in 24s
Lets the client distinguish a finalized-but-not-fully-uploaded stream
(is_completed set, but received cursor short of last_intended_segment_bound)
from one that is genuinely processing.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-14 11:15:41 -07:00
1bd03f2bbe
Merge pull request 'dean/unify-shotlab-cohorts' ( #295 ) from dean/unify-shotlab-cohorts into master
...
Reviewed-on: #295
2026-07-13 01:08:48 +00:00
Dean Wenstrand
4a1c41aae1
Regenerate schema and hooks from backend master
...
Tests / Tests (pull_request) Successful in 12s
Union of the cohort funnel, Shot Lab picker queries, and transient
homography IDs — converges the three divergent submodule pointers
(gql master, railbird master, railbird-mobile master).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-12 18:03:33 -07:00
Dean Wenstrand
4122284bbd
Merge Shot Lab queries with cohort funnel
2026-07-12 17:59:33 -07:00
b30dbd01f5
Fetch shot paths and features for the Shot Lab picker
...
Tests / Tests (pull_request) Successful in 11s
The recorded-shot picker now renders per-shot table diagrams, so
GetRecordedStreamShots needs serializedShotPaths plus the pocketing and
cue-object features that PlaneShotDiagram consumes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-12 11:13:17 -07:00
6d13dc3eb1
Merge remote-tracking branch 'origin/master' into colonelpanic/allow-transient-homography-ids
2026-07-12 00:19:46 -07:00
e3524cab97
Merge pull request 'Add weekly cohort funnel to getUsageStats' ( #293 ) from dean/usage-stats-cohorts into master
...
Reviewed-on: #293
2026-07-12 04:07:43 +00:00
303261f2d7
Add recorded Shot Lab queries
2026-07-11 20:56:47 -07:00
20a70fad2a
Allow transient homography IDs
2026-07-11 20:55:53 -07:00
Dean Wenstrand
35c7c23ba9
Add disjoint activated segment to cohorts for stacking
...
Tests / Tests (pull_request) Successful in 10s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-11 17:45:01 -07:00
Dean Wenstrand
40c4b82a59
Add weekly cohort funnel to getUsageStats
...
Tests / Tests (pull_request) Successful in 13s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-11 17:40:10 -07:00
9ebe2e61df
Merge pull request 'dean/usage-stats' ( #292 ) from dean/usage-stats into master
...
Reviewed-on: #292
2026-07-11 19:26:13 +00:00
Dean Wenstrand
6f356f9535
Add freemium epoch + era conversion to funnel
...
Tests / Tests (pull_request) Successful in 12s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-11 11:38:20 -07:00
Dean Wenstrand
5c0ff8c31b
Add freemium funnel to getUsageStats
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-11 10:48:25 -07:00
Dean Wenstrand
582c20170d
Add getUsageStats admin query + operation (schema regen on shot-lab tip)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-11 10:36:47 -07:00
dc02fd8387
Merge pull request 'Select detected ball colors for Shot Lab' ( #291 ) from colonelpanic/shot-lab-image-colors into master
...
Reviewed-on: #291
2026-07-10 17:20:37 +00:00
ef4782fc14
Select detected ball colors for Shot Lab
Tests / Tests (pull_request) Successful in 33s
2026-07-10 00:12:06 -07:00
905a1ca6db
Merge pull request 'Add RGBColorGQL and identifierToColor to TableStateGQL' ( #290 ) from shot-lab-ball-colors into master
2026-07-10 03:36:33 +00:00
6f63189703
Add RGBColorGQL and identifierToColor to TableStateGQL
...
Tests / Tests (pull_request) Successful in 12s
Regenerated from backend: Shot Lab table-state endpoints now expose a
per-ball dominant color (RGB + hex) index-aligned with ball positions.
2026-07-09 20:35:48 -07:00
958057764c
Merge pull request 'Add getLiveTableState query and live-stream operations' ( #288 ) from live-table-state into master
2026-07-10 02:12:31 +00:00
361730cace
Merge pull request 'Add per-ball trajectory color to shot serialization proto' ( #289 ) from ball-trajectory-colors into master
2026-07-10 00:07:45 +00:00
a78e793bd6
Add per-ball trajectory color to shot serialization proto
...
Tests / Tests (pull_request) Successful in 11s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-09 14:46:06 -07:00
a150e1a300
Add getLiveTableState query and live-stream operations
...
Tests / Tests (pull_request) Successful in 10s
- schema: getLiveTableState(videoId) returning LiveTableStateGQL
(videoId, frameIndex, tableState)
- operations: GetLiveTableState in shot_simulation.gql, lightweight
GetLiveStreams listing in live_streams.gql
- regenerated TS client outputs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-09 01:15:33 -07:00
63a376ed35
Merge pull request 'Add clientUploadStatus to VideoCardFields stream fragment' ( #287 ) from dean/recording-feed-badge into master
...
Reviewed-on: #287
2026-07-08 17:10:32 +00:00
31f9852f4b
Add clientUploadStatus to VideoCardFields stream fragment
...
Tests / Tests (pull_request) Successful in 12s
Lets the feed/session card distinguish camera/bridge recordings
(clientUploadStatus UPLOAD_DISABLED, phone never uploads) from phone
uploads, so it can stop showing 'UPLOAD PAUSED' for recordings.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-08 09:57:50 -07:00
0b4016c601
Merge pull request 'Add tier-aware subscription options' ( #286 ) from loewy/backend-tier-aware-subscription-options into master
...
Reviewed-on: #286
2026-07-07 23:57:44 +00:00
8e85fddb0a
Merge pull request 'Add capability enforcement config field' ( #285 ) from loewy/mobile-capability-config-field into master
...
Reviewed-on: #285
2026-07-07 23:27:17 +00:00
338798ea5a
Add tier-aware subscription options
Tests / Tests (pull_request) Successful in 9s
2026-07-07 16:10:43 -07:00
6bd92ae991
Add capability enforcement config field
Tests / Tests (pull_request) Successful in 10s
2026-07-07 14:44:27 -07:00
8dd9f6df40
Merge pull request 'Add storage status query' ( #274 ) from loewy/storage-status-card-readiness into master
...
Reviewed-on: #274
2026-07-07 18:20:58 +00:00
f60950a6f6
Select storage limit fields for upload links
Tests / Tests (pull_request) Successful in 11s
2026-07-06 23:51:30 -07:00
739451f250
Select storage limit config flag
2026-07-06 23:51:29 -07:00
146af8d713
Add resolved tier query
2026-07-06 23:51:29 -07:00
43b99c447b
Add storage status readiness query fields
2026-07-06 23:51:29 -07:00
cba07aa69e
Add storage status query
2026-07-06 23:51:29 -07:00
f626054662
Merge pull request 'Add tags arg to createCameraClaimSession' ( #284 ) from dean/camera-session-tags into master
...
Reviewed-on: #284
2026-07-07 05:56:05 +00:00
Dean Wenstrand
6bc02ec47c
Add tags arg to createCameraClaimSession
...
Tests / Tests (pull_request) Successful in 11s
Lets the table-camera claim carry session tags (+ the player-count tag), for
parity with the phone recording flow.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-06 22:49:28 -07:00
c92246510b
Merge pull request 'Add city/state to PoolHall type + create/update inputs' ( #283 ) from dean/pool-hall-city-state into master
...
Reviewed-on: #283
2026-07-07 01:33:21 +00:00
Dean Wenstrand
3ce2a7be61
Add per-camera recording policy (terms + private allowance) to schema
...
Tests / Tests (pull_request) Successful in 10s
allowsPrivateVideos / claimTermsText / claimTermsVersion on PoolHallCamera,
agreedTermsVersion on CameraClaimSession + the create-claim mutation.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-06 18:21:58 -07:00
Dean Wenstrand
fc921c3ae7
Add city/state to PoolHall type + create/update inputs
...
Tests / Tests (pull_request) Successful in 10s
Full address stays on `address`; city/state let the UI show a compact locality.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-06 16:59:15 -07:00
0b6ac787d8
Merge pull request 'Camera claim flow: lease end/extend, claim preferences, inUse' ( #282 ) from dean/camera-claim-flow into master
...
Reviewed-on: #282
2026-07-05 18:55:01 +00:00
Dean Wenstrand
ac479dc7e4
Camera claim flow: lease end/extend, claim preferences, inUse
...
Tests / Tests (pull_request) Successful in 25s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-04 18:44:01 -07:00
c6a754cc2d
Merge pull request 'Add tableSize/pocketSize to pool hall camera schema' ( #281 ) from dean/camera-table-dimensions into master
...
Reviewed-on: #281
2026-07-05 00:23:56 +00:00
Dean Wenstrand
2c047292f0
Add tableSize/pocketSize to pool hall camera schema
...
Tests / Tests (pull_request) Successful in 11s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-04 17:13:23 -07:00
9267cd8180
Merge pull request 'dean/pool-hall-gql' ( #280 ) from dean/pool-hall-gql into master
...
Reviewed-on: #280
2026-07-04 16:35:00 +00:00
Dean Wenstrand
fa14becc12
Regenerate schema + client from merged backend
...
Tests / Tests (pull_request) Successful in 9s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-04 09:31:53 -07:00
fea506af1b
Add pool hall camera GraphQL operations
...
Hand-written pool hall camera claim operations (schema.gql + index.tsx are
regenerated from the backend in the following commit).
2026-07-04 09:31:15 -07:00
2f9dc86ad9
Merge pull request 'Add capability enforcement config to schema' ( #279 ) from capability-enforcement-config into master
...
Reviewed-on: #279
2026-07-03 21:02:11 +00:00
e2fe6cadda
Add capability enforcement config to schema
Tests / Tests (pull_request) Successful in 10s
2026-07-03 12:01:58 -07:00
aafdab5d4d
Merge pull request 'Add computePotAim query and shot-simulation operations' ( #278 ) from compute-pot-aim into master
2026-07-03 17:58:48 +00:00
adf05e3c28
Add computePotAim query and shot-simulation operations
...
Tests / Tests (pull_request) Successful in 10s
Schema: computePotAim(simulationInput, targetBallId, pocket) ->
PotAimGQL, the spin/throw-compensated aim solver (regenerated from
backend strawberry definitions; reuses the existing PocketIdentifier
enum). Operations: GetTableState, SimulateShot, and ComputePotAim
documents so both clients get generated hooks.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-03 01:44:02 -07:00
5391466e90
Merge pull request 'Add simulateShot query, cue strike and shot projection types' ( #277 ) from shot-simulation-stubs into master
...
Reviewed-on: #277
2026-07-02 23:35:30 +00:00
4ff2db1ef4
Add simulateShot query, cue strike and shot projection types
...
Tests / Tests (pull_request) Successful in 12s
Generated from backend strawberry definitions for the shot simulation
feature (image -> pooltool scenario -> projected outcome). Backend PR:
shot-simulation-stubs.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-02 16:12:11 -07:00
257dcdc31a
Merge pull request 'Add DismissVideoExport mutation (soft-hide exports)' ( #276 ) from dean/export-dismiss-gql into master
...
Reviewed-on: #276
2026-07-02 22:38:02 +00:00
Dean Wenstrand
b41365e99e
Add videoName + videoThumbnailUri to VideoExportJobFields
...
Tests / Tests (pull_request) Successful in 13s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-02 14:41:59 -07:00
Dean Wenstrand
0e8233a5d5
Add DismissVideoExport mutation (soft-hide exports)
...
Tests / Tests (pull_request) Successful in 17s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-02 14:18:55 -07:00
b6adae4949
Merge pull request 'Storage limit enforcement schema' ( #275 ) from storage-limit-enforcement-schema into master
...
Reviewed-on: #275
2026-07-01 22:29:41 +00:00
459e89d8b8
Select storage limit error fields
Tests / Tests (pull_request) Successful in 11s
2026-07-01 14:50:45 -07:00
fa2ff19572
Add storage limit enforcement schema
2026-07-01 14:41:21 -07:00
428286fa5a
Merge pull request 'dean/video-export-gql' ( #273 ) from dean/video-export-gql into master
...
Reviewed-on: #273
2026-06-30 22:48:02 +00:00
Dean Wenstrand
8771350115
Echo shotIds/runId on VideoExportJobGQL for re-export
...
Tests / Tests (pull_request) Successful in 13s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-30 14:00:04 -07:00
Dean Wenstrand
f1594b8492
Video export client operations + myVideoExports list query
...
RequestVideoExport mutation, VideoExportJob + MyVideoExports queries (with the
VideoExportJobFields fragment) for the mobile fire-and-list flow.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-30 13:54:29 -07:00
Dean Wenstrand
3ec3e3d081
Add EXPORT_READY notification type (video export Phase 1b)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-30 12:51:39 -07:00
Dean Wenstrand
d2c697e4cb
Add video export schema: VideoExportJob + request/query + mode/status enums
...
Generated from the backend video export resolvers (Phase 1a).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-30 12:35:34 -07:00
3484af9dde
Merge pull request 'Add storage usage readiness fields' ( #272 ) from storage-usage-readiness into master
...
Reviewed-on: #272
2026-06-30 17:12:00 +00:00
bc62cb5e39
Add storage usage readiness fields
Tests / Tests (pull_request) Successful in 27s
2026-06-29 10:56:33 -07:00
bc52145a9e
Merge pull request 'Add storage status schema' ( #270 ) from pr8-storage-status into master
...
Reviewed-on: #270
2026-06-26 15:33:19 +00:00
5c286f2bcf
Add storage status schema
Tests / Tests (pull_request) Successful in 24s
2026-06-25 17:34:19 -07:00
d636c298f8
Merge pull request 'Add resolved tier capabilities schema' ( #269 ) from tier-capabilities-schema into master
...
Reviewed-on: #269
2026-06-24 03:37:17 +00:00
681320c62d
Add resolved tier capabilities schema
Tests / Tests (pull_request) Successful in 15s
2026-06-23 15:51:21 -07:00
49f409f60b
Merge pull request 'Add resolved tier schema' ( #268 ) from resolved-tier-contract into master
...
Reviewed-on: #268
2026-06-23 22:10:10 +00:00
e7fc6c147d
Add resolved tier schema
Tests / Tests (pull_request) Successful in 11s
2026-06-23 14:01:32 -07:00
10c3f6de53
Merge pull request 'Add drill leaderboard run dates to gql' ( #267 ) from dean/add-dates-to-leaderboards-gql into master
...
Reviewed-on: #267
2026-06-23 15:51:28 +00:00
Dean Wenstrand
d7b1aaee13
Add drill leaderboard run dates to gql
Tests / Tests (pull_request) Successful in 25s
2026-06-23 08:47:08 -07:00
b477590137
Merge pull request 'VideoCardFields: fetch stream isCompleted + lastSegmentUploadedAt' ( #266 ) from dean/feed-upload-status-fields into master
...
Reviewed-on: #266
2026-06-20 22:45:07 +00:00
Dean Wenstrand
d428a8caa2
VideoCardFields: fetch stream isCompleted + lastSegmentUploadedAt
...
Tests / Tests (pull_request) Successful in 10s
Lets the feed derive upload state (uploading vs paused vs processing) per card.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-20 15:16:11 -07:00
48207e12ee
Merge pull request 'Add lastSegmentUploadedAt to UploadStreamGQL' ( #265 ) from dean/last-uploaded-chunk into master
...
Reviewed-on: #265
2026-06-20 21:45:32 +00:00
Dean Wenstrand
1d403f8155
Add lastSegmentUploadedAt to UploadStreamGQL
...
Tests / Tests (pull_request) Successful in 10s
Surfaces the timestamp of the most recently uploaded chunk so clients can tell
an actively-uploading stream from a partially-uploaded, stalled/paused one
(combined with isCompleted).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-20 14:40:40 -07:00
6758f3e77a
Merge pull request 'Add bio field to user (UserFragment + editUser)' ( #264 ) from dean/profile-bio into master
...
Reviewed-on: #264
2026-06-19 21:27:52 +00:00
Dean Wenstrand
79979b001a
Add bio field to user (UserFragment + editUser)
...
Tests / Tests (pull_request) Successful in 10s
Expose UserGQL.bio in UserFragment and let editUser set it; regenerated
codegen. Rebased onto current master.
2026-06-19 14:14:24 -07:00
49fbebd0c2
Merge pull request 'Fix duplicate Apple IAP selection' ( #263 ) from loewy/fix-duplicate-apple-iap-selection into master
...
Reviewed-on: #263
2026-06-18 21:39:20 +00:00
9219451c8d
Fix duplicate Apple IAP selection
Tests / Tests (pull_request) Successful in 11s
2026-06-18 14:32:37 -07:00
42601f9587
Merge pull request 'Add Apple subscription mobile operations' ( #255 ) from apple-iap-pr4-mobile-ops into master
...
Reviewed-on: #255
2026-06-18 20:03:10 +00:00
acfb750265
Merge pull request 'Add Apple IAP product IDs to subscription options' ( #262 ) from loewy/apple-iap-product-options into master
...
Reviewed-on: #262
2026-06-18 01:59:53 +00:00
ffa96a24c3
Add Apple subscription mobile operations
Tests / Tests (pull_request) Successful in 9s
2026-06-17 18:39:36 -07:00
5b73dd3a83
Add Apple IAP product IDs to subscription options
Tests / Tests (pull_request) Successful in 10s
2026-06-17 18:22:47 -07:00
d1bc29b41b
Add Apple IAP product config to subscription options
Tests / Tests (pull_request) Successful in 11s
2026-06-16 18:31:36 -07:00
853769e183
Add Apple subscription mobile operations
2026-06-16 18:31:36 -07:00
84524d165d
Merge pull request 'Add followingCount to GetVideoFeed payload' ( #261 ) from dean/feed-following-count into master
...
Reviewed-on: #261
2026-06-16 23:51:38 +00:00
Dean Wenstrand
f4c5fcedd6
Add followingCount to GetVideoFeed payload
...
Tests / Tests (pull_request) Successful in 9s
Surfaces how many leading feed videos come from followed users so the
client can place the 'Trending' section divider in the blended home feed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-16 16:46:21 -07:00
07ca121a3e
Merge pull request 'Add spinTypeBreakdown (draw/center/follow) to PlayerSummaryFields' ( #259 ) from dean/player-spin-types into master
...
Reviewed-on: #259
2026-06-16 22:24:19 +00:00
Dean Wenstrand
66fb4d3dcc
Add spinTypeBreakdown (draw/center/follow) to PlayerSummaryFields
Tests / Tests (pull_request) Successful in 9s
2026-06-16 14:36:56 -07:00
5293576947
Merge pull request 'Add runLengths to PlayerSummaryFields (per-player run distribution)' ( #258 ) from dean/player-run-lengths into master
...
Reviewed-on: #258
2026-06-16 20:57:00 +00:00
Dean Wenstrand
0c1afbcc76
Add runLengths to PlayerSummaryFields (per-player run distribution)
Tests / Tests (pull_request) Successful in 10s
2026-06-16 13:39:04 -07:00
655209e1c6
Merge pull request 'Add Apple IAP subscription options schema' ( #256 ) from loewy/apple-iap-product-config into master
...
Reviewed-on: #256
2026-06-16 18:10:00 +00:00
c9576cf405
Add Apple IAP subscription options schema
Tests / Tests (pull_request) Successful in 11s
2026-06-16 10:47:07 -07:00
0c0cd7a7bb
Merge pull request 'dean/my-drill-runs' ( #257 ) from dean/my-drill-runs into master
...
Reviewed-on: #257
2026-06-16 04:25:03 +00:00
Dean Wenstrand
53fa982bcf
GetDrillRunLeaderboard: table/pocket filter vars + setup fields
...
Tests / Tests (pull_request) Successful in 9s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-15 21:19:37 -07:00
Dean Wenstrand
7ec6ec9193
GetMyDrillRuns: include run date (video.createdAt)
...
Tests / Tests (pull_request) Successful in 9s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-15 19:42:02 -07:00
Dean Wenstrand
0ce333525c
Add GetMyDrillRuns query + generated types
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-15 19:33:56 -07:00
48b647636e
Merge pull request 'Add GetDrillRunLeaderboard query + generated types' ( #254 ) from dean/drill-run-leaderboard into master
...
Reviewed-on: #254
2026-06-16 00:52:05 +00:00
Dean Wenstrand
d1ed5b308b
Add GetDrillRunLeaderboard query + generated types
...
Tests / Tests (pull_request) Successful in 9s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-15 16:42:52 -07:00
079e4e8719
Merge pull request 'Add Apple subscription sync schema' ( #253 ) from apple-iap-pr2-backend-schema into master
...
Reviewed-on: #253
2026-06-12 04:50:36 +00:00
af68bc3c60
Add Apple subscription sync schema
Tests / Tests (pull_request) Successful in 10s
2026-06-11 18:40:54 -07:00
f12d2c5a1b
Merge pull request 'Add Apple entitlement source enum' ( #252 ) from apple-entitlement-source-enum into master
...
Reviewed-on: #252
2026-06-11 21:55:26 +00:00
4e3f649a2c
Add Apple entitlement source enum
Tests / Tests (pull_request) Successful in 28s
2026-06-11 12:43:03 -07:00
7cef75b2ca
Merge pull request 'dean/get-video-card-query' ( #250 ) from dean/get-video-card-query into master
...
Reviewed-on: #250
2026-06-09 05:05:52 +00:00
Dean Wenstrand
6d5cd9b1ed
Add lean GetLastSessionDate + GetShotClipRanges queries
...
Tests / Tests (pull_request) Successful in 24s
- GetLastSessionDate: most-recent session startTime only, for the Home
recency nudge (was pulling the full VideoCardFields payload).
- GetShotClipRanges / ShotClipRange: per-shot frame/time window only, for
the inline session player's condensed playback (was pulling
ShotWithAllFeatures — features, serialized paths, annotations — x500).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-05 14:27:42 -07:00
Dean Wenstrand
d59e21c10e
Add GetVideoCard query (single-video VideoCardFields)
...
Returns the full VideoCardFields fragment for one video id, so the
session-detail meta header can share one source of truth (and the
normalized Apollo cache) with the feed card instead of stitching
together GetVideoDetails + GetVideoSocialDetailsById.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-05 14:04:33 -07:00
9358205327
Merge pull request 'Add quotaEnforcementEnabled to deployed config' ( #249 ) from loewy/expose-quota-enforcement-config into master
...
Reviewed-on: #249
2026-05-28 23:18:01 +00:00
88634a32e9
add quotaEnforcementEnabled to deployed config
Tests / Tests (pull_request) Successful in 10s
2026-05-28 14:52:51 -07:00
f7200a2e9f
Merge pull request 'Add upload quota status operation' ( #248 ) from loewy/quota-status-buckets into master
...
Reviewed-on: #248
2026-05-28 21:46:56 +00:00
7d839c0fa6
Add upload quota status operation
Tests / Tests (pull_request) Successful in 10s
2026-05-27 16:52:43 -07:00
ab1e604871
Merge pull request 'Add quota bucket status fields' ( #247 ) from loewy/quota-status-buckets into master
...
Reviewed-on: #247
2026-05-26 02:47:40 +00:00
deb724b430
Add quota bucket status fields
Tests / Tests (pull_request) Successful in 9s
2026-05-25 16:26:57 -07:00
c586bdf1a6
Merge pull request 'Add username + profileImageUri to PlayerClusterGQL' ( #246 ) from dean/player-cluster-username into master
...
Reviewed-on: #246
2026-05-12 00:27:06 +00:00
Dean Wenstrand
9250e4c639
Add username + profileImageUri to PlayerClusterGQL
...
Tests / Tests (pull_request) Successful in 9s
The labeling UI was falling back to "user N" for any assigned cluster
whose user wasn't the video owner — e.g. an admin re-labels a video
they don't own. With the resolver now resolving usernames for every
confirmed cluster, the FE can render real names regardless of who's
viewing.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-11 17:25:34 -07:00
a12b3e1210
Merge pull request 'Add averageDifficulty to PlayerSummaryFields' ( #245 ) from dean/player-summaries-avg-difficulty-types into master
...
Reviewed-on: #245
2026-05-11 22:41:52 +00:00
Dean Wenstrand
5cf2dbaf01
Add averageDifficulty to PlayerSummaryFields
...
Tests / Tests (pull_request) Successful in 9s
Regenerated via `just gql` after BE added average_difficulty to
PlayerSummaryGQL.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-11 15:34:25 -07:00
239a143554
Merge pull request 'Regenerate schema + add longestRun to PlayerSummaryFields' ( #244 ) from dean/player-summaries-longest-run-types into master
...
Reviewed-on: #244
2026-05-11 20:29:39 +00:00
Dean Wenstrand
296522afb8
Regenerate schema + add longestRun to PlayerSummaryFields
...
Tests / Tests (pull_request) Successful in 10s
Generated by `just gql` after BE added longest_run to PlayerSummaryGQL.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-11 13:21:47 -07:00
f42579076e
Merge pull request 'Add score to PlayerSummaryFields + PlayerClusterFields fragments' ( #243 ) from dean/video-match-score-types into master
...
Reviewed-on: #243
2026-05-11 17:43:43 +00:00
Dean Wenstrand
0c9eb4945a
Add score to PlayerSummaryFields + PlayerClusterFields fragments
...
Tests / Tests (pull_request) Successful in 9s
Picks up the BE additions in railbird PR dean/video-match-score:
new `score` field on PlayerClusterGQL and PlayerSummaryGQL, and
a new `score` input field on ClusterAssignmentInput.
Generated by `just gql`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-11 10:22:58 -07:00
1182c15004
Merge pull request 'Add playerSummaries to schema + Video fragments' ( #242 ) from dean/player-summaries-types into master
...
Reviewed-on: #242
2026-05-09 19:34:40 +00:00
Dean Wenstrand
755336b16a
Add playerSummaries to schema + Video fragments
...
Tests / Tests (pull_request) Successful in 10s
Backs the multi-player vs UI: feed cards and the detail page both
read `video.playerSummaries`, a per-cluster rollup with username,
profile image, representative full-frame URL, makes/total/percentage.
- PlayerSummaryFields fragment in shooter.gql
- VideoCardFields (feed) and GetVideoDetails (detail) include
playerSummaries via the new fragment
- VideoCardFields tag selection extended to include tagClasses,
needed for the FE's player_count detection
Generated by `just gql` from the BE additions in railbird PR
dean/video-player-summaries.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-09 12:02:57 -07:00
c1efe9f5f2
Merge pull request 'Add VideoPlayerClusters query + FinalizePlayerAssignments mutation' ( #241 ) from dean/player-labeling-ops into master
...
Reviewed-on: #241
2026-05-09 04:46:10 +00:00
Dean Wenstrand
a3460842ac
Add VideoPlayerClusters query + FinalizePlayerAssignments mutation
...
Tests / Tests (pull_request) Successful in 10s
Operation file for the per-video player-labeling UI that consumes the
schema types added in #240 .
- VideoPlayerClusters($videoId): read clusters + crops
- FinalizePlayerAssignments($input): apply user assignments and
shot moves in one transaction
Generated by `just gql`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-08 21:44:42 -07:00
84d3a0252d
Merge pull request 'Add player cluster + labeling mutation types' ( #240 ) from dean/labeling-api-types into master
...
Reviewed-on: #240
2026-05-09 00:38:29 +00:00
Dean Wenstrand
1de4a97cb6
Add player cluster + labeling mutation types
...
Tests / Tests (pull_request) Successful in 10s
Schema additions for the per-video player labeling UI:
* `PlayerClusterGQL` / `PlayerClusterShotGQL` — read shape.
* `FinalizePlayerAssignmentsInput` + `ClusterAssignmentInput` +
`ShotMoveInput` — write shape.
* Query: `videoPlayerClusters(videoId)`.
* Mutation: `finalizePlayerAssignments(input)`.
Generated by `just gql` from the backend type definitions in
`railbird/datatypes/gql/shooter.py` and resolvers in
`railbird/server/resolvers/shooter.py`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-08 15:04:41 -07:00
130314546c
Merge pull request 'Add trial days to GetAvailableSubscriptions' ( #239 ) from loewy/add-trial-period-days into master
...
Reviewed-on: #239
2026-05-04 21:46:45 +00:00
b88f172355
add trial days to return
Tests / Tests (pull_request) Successful in 10s
2026-05-04 14:07:16 -07:00
639fc88b0b
Merge pull request 'Add createCustomerPortalSession' ( #238 ) from loewy/create-customer-portal-session into master
...
Reviewed-on: #238
2026-05-01 22:45:40 +00:00
20f50368c9
remove return url
Tests / Tests (pull_request) Successful in 10s
2026-05-01 13:15:18 -07:00
8367c2d0cd
add createCustomerPortalSession
Tests / Tests (pull_request) Successful in 10s
2026-04-30 11:44:34 -07:00
b0c62f6e80
Merge pull request 'Trim getFeed query fragment' ( #237 ) from loewy/trim-get-feed-query-fragment into master
...
Reviewed-on: #237
2026-04-29 20:26:40 +00:00
bc1ff66467
trim uncessary requested fields
Tests / Tests (pull_request) Successful in 38s
2026-04-28 12:53:25 -07:00
ae37a3d9d9
Merge pull request 'Default getLongestRunsLeaderboard limit to 50' ( #236 ) from dean/leaderboard-default-top-50 into master
...
Reviewed-on: #236
2026-04-24 00:01:23 +00:00
Dean Wenstrand
114b21400e
Default getLongestRunsLeaderboard limit to 50
...
Tests / Tests (pull_request) Successful in 10s
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-23 16:56:56 -07:00
ad9cab4543
Merge pull request 'Get Game Type Tag Operations' ( #234 ) from loewy/get-game-type-tag-metrics-operation into master
...
Reviewed-on: #234
2026-04-14 20:11:43 +00:00
cd3ecdfba4
Merge pull request 'Add schema getGameTypeTagMetrics' ( #232 ) from loewy/add-get-game-type-tag-metrics into master
...
Reviewed-on: #232
2026-04-01 23:23:16 +00:00
28ba01c07f
operation
Tests / Tests (pull_request) Successful in 11s
2026-03-30 15:31:24 -07:00
27a0c08cd5
add schema getGameTypeTagMetrics
Tests / Tests (pull_request) Successful in 10s
2026-03-30 13:09:18 -07:00
99f0913fd8
Merge pull request 'Add manual entitlement GraphQL schema fields' ( #231 ) from ivan/manual-entitlement-abstraction-gql into master
...
Reviewed-on: #231
2026-03-22 18:32:22 +00:00
dfb0e02630
Add manual entitlement GraphQL schema fields
Tests / Tests (pull_request) Successful in 11s
2026-03-22 11:23:11 -07:00
c4a2e184fb
Merge pull request 'Add lowestUnuploadedSegmentIndex to operation' ( #230 ) from loewy/add-lowest-unuploaded-segment-index-to-stream-monitoring-details into master
...
Reviewed-on: #230
2026-03-20 23:39:50 +00:00
f14cf3b255
add lowestUnuploadedSegmentIndex to operation
Tests / Tests (pull_request) Successful in 11s
2026-03-18 16:43:31 -07:00
c46776d417
Merge pull request 'Upload Quota GQL' ( #227 ) from loewy/upload-quota-limit-gql into master
...
Reviewed-on: #227
2026-03-18 21:33:26 +00:00
6ab5286a49
add expected durations to operation
Tests / Tests (pull_request) Successful in 11s
2026-03-17 17:22:19 -07:00