Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
cf6af33
chore: ignore local worktrees
Asherlc Aug 7, 2026
b5e9cd6
Prevent mobile app test routes
Asherlc Aug 7, 2026
d9f06b4
Merge origin/main into mobile route hygiene
Asherlc Aug 7, 2026
9ebd8c7
fix: tighten mobile route hygiene guard
Asherlc Aug 7, 2026
c4ba57d
fix: handle no-patch audit advisories
Asherlc Aug 7, 2026
26a5159
fix: colocate mobile route fixture tests
Asherlc Aug 7, 2026
1c4e987
docs: specify processing alert clarity
Asherlc Aug 8, 2026
733a1bc
docs: specify partial activity totals
Asherlc Aug 8, 2026
ace3951
docs: plan partial activity measurements
Asherlc Aug 8, 2026
74a239d
docs: plan processing alert clarity
Asherlc Aug 8, 2026
7f0c22e
docs: clarify dismissal ownership tests
Asherlc Aug 8, 2026
ee746b4
feat: add processing alert dismissals
Asherlc Aug 8, 2026
c9c33d0
fix: name processing alert dismissal fks
Asherlc Aug 8, 2026
73395bf
feat: derive processing failure timestamps
Asherlc Aug 8, 2026
34be29b
fix: scope processing alerts to current ops
Asherlc Aug 8, 2026
8e3b6c4
feat: expose processing alert dismissal
Asherlc Aug 8, 2026
ab7db82
docs: align grouped alert contract
Asherlc Aug 9, 2026
0d72809
fix: align processing alert contract
Asherlc Aug 9, 2026
bb8cb15
fix: remove legacy processing alert key
Asherlc Aug 9, 2026
0bc6447
feat: group processing failure presentation
Asherlc Aug 9, 2026
b728c8d
feat: clarify web processing failures
Asherlc Aug 9, 2026
2322bd6
fix: preserve active processing state
Asherlc Aug 9, 2026
aefb7c1
feat: clarify mobile processing failures
Asherlc Aug 9, 2026
59f1b35
fix: color active recompute status
Asherlc Aug 9, 2026
4902724
test: cover processing alert persistence
Asherlc Aug 9, 2026
243e042
fix: align processing dismissal behavior
Asherlc Aug 9, 2026
8e081be
Add Paseo workspace scripts and lifecycle config (#2469)
Asherlc Aug 10, 2026
101c4a8
Add body fat percentage trend charts to web and mobile (#2470)
Asherlc Aug 10, 2026
bd2aece
fix(peloton): accept omitted total work (#2472)
Asherlc Aug 10, 2026
9f31ddd
Fix production Sentry failures
Asherlc Aug 10, 2026
94816d0
feat: add Hangboarding import, contracts, and UI (#2471)
Asherlc Aug 10, 2026
7b29556
Merge remote-tracking branch 'origin/codex/mobile-route-hygiene' into…
Asherlc Aug 10, 2026
ca1893c
Remove duplicate processing migration
Asherlc Aug 11, 2026
c8b6b81
Merge remote-tracking branch 'origin/main' into codex/mobile-route-hy…
Asherlc Aug 11, 2026
8bf4e94
Fix CI regressions from merge resolution
Asherlc Aug 11, 2026
358c396
Fix mutation coverage and merge main conflicts
Asherlc Aug 11, 2026
4fc70ad
Merge origin/main into mobile route hygiene
Asherlc Aug 11, 2026
2351ae6
docs: specify climbing grade preferences
Asherlc Aug 11, 2026
56896d5
docs: plan climbing grade systems
Asherlc Aug 11, 2026
2cde960
feat(training): use sandbag for climbing grades
Asherlc Aug 11, 2026
d7744d1
feat(climbing): add grade system preferences
Asherlc Aug 11, 2026
f4d11dd
merge main into climbing grade switcher
Asherlc Aug 11, 2026
97081cb
fix(training): avoid dynamic grade regex
Asherlc Aug 11, 2026
78a0abf
fix(ci): satisfy climbing grade checks
Asherlc Aug 11, 2026
d8109c9
fix(climbing): preserve session summary details
Asherlc Aug 11, 2026
adc0698
fix(climbing): address grade system review feedback
Asherlc Aug 11, 2026
2a49e31
fix(web): type selector error story
Asherlc Aug 11, 2026
062630a
test(climbing): cover grade preference boundaries
Asherlc Aug 11, 2026
9774a8d
test(climbing): cover displayed grade conversions
Asherlc Aug 11, 2026
b8224ce
fix(climbing): address remaining review feedback
Asherlc Aug 11, 2026
2ca1267
fix(ci): organize climbing repository test imports
Asherlc Aug 11, 2026
3f44f08
test(climbing): cover repository grade aggregation branches
Asherlc Aug 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -657,7 +657,11 @@
"trkpt",
"trkseg",
"Mesgs",
"mesg"
"mesg",
"openbeta",
"uiaa",
"ewbank",
"vscale"
],
"flagWords": [],
"useGitignore": false,
Expand Down
60 changes: 48 additions & 12 deletions docs/schema.dbml
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,14 @@ enum climbing_failure_reason {

enum climbing_grade_system {
v_scale
font
yds
french
uiaa
ewbank
saxon
norwegian
brazilian_crux
}

enum climbing_hold_type {
Expand Down Expand Up @@ -463,6 +470,7 @@ table fitness.activity {
(user_id, provider_id, external_id) [name: 'activity_provider_external_idx', unique]
(user_id, provider_id) [name: 'activity_user_provider_idx']


}
}

Expand Down Expand Up @@ -520,6 +528,14 @@ table fitness.climbing_entry {
activity_id [name: 'climbing_entry_activity_idx']
(climb_type, grade_system, grade) [name: 'climbing_entry_grade_lookup_idx']
(activity_id, external_id) [name: 'climbing_entry_activity_external_id_idx', unique]








}
}

Expand Down Expand Up @@ -1311,13 +1327,13 @@ table fitness.body_region {
parent_id text
label text [not null]
kind text [not null]
sort_order integer [not null, default: 0]
sort_order bigint [not null, default: 0]

indexes {
(parent_id, sort_order, id) [name: 'body_region_parent_sort_idx']



}
}

Expand Down Expand Up @@ -1488,17 +1504,18 @@ table fitness.injury_event {
body_region_id text [not null]
onset_date date [not null]
resolved_date date
severity integer [not null]
severity bigint
description text [not null]
created_at "timestamp with time zone" [not null, default: `now()`]
updated_at "timestamp with time zone" [not null, default: `now()`]

indexes {
(user_id, onset_date) [name: 'injury_event_user_onset_idx']




body_region_id [name: 'injury_event_body_region_idx']




}
}

Expand Down Expand Up @@ -1670,13 +1687,13 @@ table fitness.subjective_symptom {
check_in_id uuid [not null]
body_region_id text [not null]
kind text [not null]
score integer [not null]
score bigint [not null]

indexes {
(check_in_id, body_region_id, kind) [name: 'subjective_symptom_unique_kind', unique]
body_region_id [name: 'subjective_symptom_region_idx']


}
}

Expand All @@ -1700,6 +1717,18 @@ table fitness.sync_log {
}
}

table fitness.processing_alert_dismissal {
user_id uuid [not null]
operation_id uuid [not null]
dismissed_at "timestamp with time zone" [not null, default: `now()`]

indexes {
(user_id, operation_id) [pk]


}
}

table fitness.processing_flow_marker {
id uuid [pk, not null, default: `gen_random_uuid()`]
operation_id uuid [not null]
Expand Down Expand Up @@ -1805,6 +1834,7 @@ table fitness.processing_stage_event {

(operation_id, stage, dataset_key, output_path, model_name, status, idempotency_key) [name: 'processing_stage_event_idempotency_key', unique]
(operation_id, sequence) [name: 'processing_stage_event_operation_sequence_idx']
(operation_id, stage, dataset_key, output_path, model_name, sequence) [name: 'processing_stage_event_latest_idx']
(dataset_key, sequence) [name: 'processing_stage_event_dataset_sequence_idx']


Expand Down Expand Up @@ -1970,6 +2000,8 @@ ref user_password_credential_user_id_user_profile_id_fk: fitness.user_password_c

ref user_settings_user_id_user_profile_id_fk: fitness.user_settings.user_id > fitness.user_profile.id [delete: no action, update: no action]

ref body_region_parent_id_body_region_id_fk: fitness.body_region.parent_id > fitness.body_region.id [delete: restrict, update: no action]

ref breathwork_session_user_id_user_profile_id_fk: fitness.breathwork_session.user_id > fitness.user_profile.id [delete: no action, update: no action]

ref dexa_scan_provider_id_provider_id_fk: fitness.dexa_scan.provider_id > fitness.provider.id [delete: no action, update: no action]
Expand Down Expand Up @@ -2020,6 +2052,10 @@ ref sync_log_provider_id_provider_id_fk: fitness.sync_log.provider_id > fitness.

ref sync_log_user_id_user_profile_id_fk: fitness.sync_log.user_id > fitness.user_profile.id [delete: no action, update: no action]

ref processing_alert_dismissal_user_fk: fitness.processing_alert_dismissal.user_id > fitness.user_profile.id [delete: cascade, update: no action]

ref processing_alert_dismissal_operation_fk: fitness.processing_alert_dismissal.operation_id > fitness.processing_operation.id [delete: cascade, update: no action]

ref processing_flow_marker_operation_fk: fitness.processing_flow_marker.operation_id > fitness.processing_operation.id [delete: cascade, update: no action]

ref processing_metric_batch_operation_fk: fitness.processing_metric_stream_batch.operation_id > fitness.processing_operation.id [delete: cascade, update: no action]
Expand Down
17 changes: 13 additions & 4 deletions docs/schema.puml
Original file line number Diff line number Diff line change
Expand Up @@ -816,10 +816,10 @@ entity "user_settings" {
entity "body_region" {
* id : text <<PK>>
--
parent_id : text
parent_id : text <<FK>>
label : text
kind : text
sort_order : integer
sort_order : bigint
}

entity "breathwork_session" {
Expand Down Expand Up @@ -949,7 +949,7 @@ entity "injury_event" {
body_region_id : text <<FK>>
onset_date : date
resolved_date : date
severity : integer
severity : bigint
description : text
created_at : timestamp
updated_at : timestamp
Expand Down Expand Up @@ -1077,7 +1077,7 @@ entity "subjective_symptom" {
check_in_id : uuid <<FK>>
body_region_id : text <<FK>>
kind : text
score : integer
score : bigint
}

entity "sync_log" {
Expand All @@ -1095,6 +1095,12 @@ entity "sync_log" {
synced_at : timestamp
}

entity "processing_alert_dismissal" {
user_id : uuid <<FK>>
operation_id : uuid <<FK>>
dismissed_at : timestamp
}

entity "processing_flow_marker" {
* id : uuid <<PK>>
--
Expand Down Expand Up @@ -1239,6 +1245,7 @@ user_profile ||--o{ user_billing
user_profile ||--o{ user_external_effect
user_profile ||--o{ user_password_credential
user_profile ||--o{ user_settings
body_region ||--o{ body_region
user_profile ||--o{ breathwork_session
provider ||--o{ dexa_scan
user_profile ||--o{ dexa_scan
Expand All @@ -1264,6 +1271,8 @@ subjective_check_in ||--o{ subjective_symptom
body_region ||--o{ subjective_symptom
provider ||--o{ sync_log
user_profile ||--o{ sync_log
user_profile ||--o{ processing_alert_dismissal
processing_operation ||--o{ processing_alert_dismissal
processing_operation ||--o{ processing_flow_marker
processing_operation ||--o{ processing_metric_stream_batch
user_profile ||--o{ processing_operation
Expand Down
Loading
Loading