Build Information
Successful build of TrainingPlanKit, reference main (892de8), with Swift 6.1 for Wasm on 21 Jul 2026 16:32:29 UTC.
Swift 6 data race errors: 66
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344849-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:wasm-6.1-latest swift build --swift-sdk wasm32-unknown-wasi -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1Build Log
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:77:23: warning: static property 'advanced' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
22 | /// Different runner levels get different progression curves.
23 | /// All values are easily tweakable.
24 | public struct PaceProgressionConfig {
| `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
25 | /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
26 | public let initialAdjustment: Double
:
75 | )
76 |
77 | public static let advanced = PaceProgressionConfig(
| |- warning: static property 'advanced' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
78 | initialAdjustment: 0.5, // Start moderate
79 | finalAdjustment: 0.0, // End at full standard multipliers
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:87:23: warning: static property 'competitive' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
22 | /// Different runner levels get different progression curves.
23 | /// All values are easily tweakable.
24 | public struct PaceProgressionConfig {
| `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
25 | /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
26 | public let initialAdjustment: Double
:
85 | /// via a recent race result (gate requires VDOT ≥ 58). All zones flat
86 | /// at goal target paces from day 1.
87 | public static let competitive = PaceProgressionConfig(
| |- warning: static property 'competitive' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
88 | initialAdjustment: 0.0,
89 | finalAdjustment: 0.0,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:101:23: warning: static property 'competitiveBuildBand' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
22 | /// Different runner levels get different progression curves.
23 | /// All values are easily tweakable.
24 | public struct PaceProgressionConfig {
| `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
25 | /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
26 | public let initialAdjustment: Double
:
99 | /// at the runner's VDOT-derived easy pace (floored at race), not the
100 | /// generic 1.15×race which is too slow at elite goal paces.
101 | public static let competitiveBuildBand = PaceProgressionConfig(
| |- warning: static property 'competitiveBuildBand' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitiveBuildBand' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
102 | initialAdjustment: 0.5,
103 | finalAdjustment: 0.0,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:111:23: warning: static property 'maintenanceBeginner' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
22 | /// Different runner levels get different progression curves.
23 | /// All values are easily tweakable.
24 | public struct PaceProgressionConfig {
| `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
25 | /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
26 | public let initialAdjustment: Double
:
109 | // MARK: - Maintenance presets (very slow progression, stays conservative)
110 |
111 | public static let maintenanceBeginner = PaceProgressionConfig(
| |- warning: static property 'maintenanceBeginner' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'maintenanceBeginner' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
112 | initialAdjustment: 1.0, // Start fully conservative
113 | finalAdjustment: 0.8, // Stay very conservative even at end
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:118:23: warning: static property 'maintenanceIntermediate' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
22 | /// Different runner levels get different progression curves.
23 | /// All values are easily tweakable.
24 | public struct PaceProgressionConfig {
| `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
25 | /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
26 | public let initialAdjustment: Double
:
116 | )
117 |
118 | public static let maintenanceIntermediate = PaceProgressionConfig(
| |- warning: static property 'maintenanceIntermediate' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'maintenanceIntermediate' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
119 | initialAdjustment: 0.9, // Start very conservative
120 | finalAdjustment: 0.6, // Stay mostly conservative
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:125:23: warning: static property 'maintenanceAdvanced' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
22 | /// Different runner levels get different progression curves.
23 | /// All values are easily tweakable.
24 | public struct PaceProgressionConfig {
| `- note: consider making struct 'PaceProgressionConfig' conform to the 'Sendable' protocol
25 | /// How much to blend toward conservativeTarget at plan START (1.0 = fully conservative, 0.0 = use base zone multiplier)
26 | public let initialAdjustment: Double
:
123 | )
124 |
125 | public static let maintenanceAdvanced = PaceProgressionConfig(
| |- warning: static property 'maintenanceAdvanced' is not concurrency-safe because non-'Sendable' type 'PaceProgressionConfig' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'maintenanceAdvanced' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
126 | initialAdjustment: 0.7, // Start conservative
127 | finalAdjustment: 0.4, // Moderate by end
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:576:24: warning: static property 'segmentTickSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
574 | /// major segment (≥10min) to the 5-min tick and rebuild the total from the
575 | /// segments, so warmup, work block and cooldown all read as prescriptions.
576 | private static let segmentTickSubtypes: Set<WorkoutSubtype> = [
| |- warning: static property 'segmentTickSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'segmentTickSubtypes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
577 | .raceRehearsalM, .raceRehearsalHM, .raceRehearsal10K, .fastFinish
578 | ]
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:88:13: note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
86 | }
87 |
88 | public enum WorkoutSubtype: String, CaseIterable, Identifiable, Codable {
| `- note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
89 | case intervals
90 | case pyramidIntervals
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:637:24: warning: static property 'fiveMinTickSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
635 | /// jitter that pace-easing + clamp scaling produce. Excludes structured work
636 | /// (intervals, threshold, race rehearsals) whose minutes are dose-driven.
637 | private static let fiveMinTickSubtypes: Set<WorkoutSubtype> = [
| |- warning: static property 'fiveMinTickSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'fiveMinTickSubtypes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
638 | .easy, .recovery, .long, .steadyLong, .mediumLong, .progressiveLong, .progression
639 | ]
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:88:13: note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
86 | }
87 |
88 | public enum WorkoutSubtype: String, CaseIterable, Identifiable, Codable {
| `- note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
89 | case intervals
90 | case pyramidIntervals
/host/spi-builder-workspace/Sources/TrainingPlanKit/Pacing/PaceZoneConverter.swift:692:24: warning: static property 'longRunSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
690 | /// runner's marathon long run doesn't balloon to 45+ km and a slow runner's
691 | /// doesn't shrink below the aerobic-development floor.
692 | private static let longRunSubtypes: Set<WorkoutSubtype> = [
| |- warning: static property 'longRunSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'longRunSubtypes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
693 | .long, .steadyLong, .progressiveLong,
694 | .raceRehearsalM, .raceRehearsalHM, .raceRehearsal10K, .fastFinish
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:88:13: note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
86 | }
87 |
88 | public enum WorkoutSubtype: String, CaseIterable, Identifiable, Codable {
| `- note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
89 | case intervals
90 | case pyramidIntervals
[12/34] Compiling TrainingPlanKit PlanRecalculator.swift
[13/34] Compiling TrainingPlanKit VDOT.swift
[14/34] Compiling TrainingPlanKit resource_bundle_accessor.swift
[15/34] Compiling TrainingPlanKit PlanConfiguration+Accessible.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:16:23: warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
14 | extension PlanConfiguration {
15 |
16 | public static let accessibleBeginner5Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | raceDate: Date(),
18 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:44:23: warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
42 | )
43 |
44 | public static let accessibleIntermediate5Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 | raceDate: Date(),
46 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:72:23: warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
70 | )
71 |
72 | public static let accessibleAdvanced5Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
73 | raceDate: Date(),
74 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:100:23: warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
98 | )
99 |
100 | public static let accessibleBeginner10Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
101 | raceDate: Date(),
102 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:128:23: warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
126 | )
127 |
128 | public static let accessibleIntermediate10Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 | raceDate: Date(),
130 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:156:23: warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
154 | )
155 |
156 | public static let accessibleAdvanced10Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
157 | raceDate: Date(),
158 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:184:23: warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
182 | )
183 |
184 | public static let accessibleBeginner21Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
185 | raceDate: Date(),
186 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:212:23: warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
210 | )
211 |
212 | public static let accessibleIntermediate21Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
213 | raceDate: Date(),
214 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:240:23: warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
238 | )
239 |
240 | public static let accessibleAdvanced21Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 | raceDate: Date(),
242 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:268:23: warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
266 | )
267 |
268 | public static let accessibleBeginner42Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
269 | raceDate: Date(),
270 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:295:23: warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
293 | )
294 |
295 | public static let accessibleIntermediate42Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
296 | raceDate: Date(),
297 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:322:23: warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
320 | )
321 |
322 | public static let accessibleAdvanced42Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
323 | raceDate: Date(),
324 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:14:23: warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
12 | extension PlanConfiguration {
13 |
14 | public static let advanced5Default = PlanConfiguration(
| |- warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 | raceDate: Date(),
16 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:41:23: warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
39 | )
40 |
41 | public static let advanced10Default = PlanConfiguration(
| |- warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | raceDate: Date(),
43 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:73:23: warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
71 | )
72 |
73 | public static let advanced21Default = PlanConfiguration(
| |- warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
74 | raceDate: Date(),
75 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:101:23: warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
99 |
100 | // Default configuration for advanced runner with flexible durations
101 | public static let advanced42Default = PlanConfiguration(
| |- warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
102 | raceDate: Date(),
103 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:132:23: warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
130 |
131 | // 15K — HM-lite: advanced 21K shape at ~0.85 volume.
132 | public static let advanced15Default = PlanConfiguration(
| |- warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced15Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
133 | raceDate: Date(),
134 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:160:23: warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
158 |
159 | // 10 mile — same band as 15K, slightly longer.
160 | public static let advanced10MiDefault = PlanConfiguration(
| |- warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced10MiDefault' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
161 | raceDate: Date(),
162 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:188:23: warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
186 |
187 | // 30K — marathon-lite: 42K shape at ~0.88 volume.
188 | public static let advanced30Default = PlanConfiguration(
| |- warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced30Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
189 | raceDate: Date(),
190 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:216:23: warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
214 |
215 | // 50K — ultra entry: 42K + time-on-feet, gentler ramp, 3-week taper.
216 | public static let advanced50Default = PlanConfiguration(
| |- warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced50Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
217 | raceDate: Date(),
218 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:16:23: warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | // Default configuration for a beginner with flexible durations
16 | public static let beginner5Default = PlanConfiguration(
| |- warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | raceDate: Date(), // This should be set by the caller
18 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:46:23: warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
44 |
45 | // 10K configurations
46 | public static let beginner10Default = PlanConfiguration(
| |- warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 | raceDate: Date(),
48 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:74:23: warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
72 |
73 | // 21K (Half Marathon) configurations
74 | public static let beginner21Default = PlanConfiguration(
| |- warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
75 | raceDate: Date(),
76 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:108:23: warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
106 |
107 | // Default configuration for a beginner with flexible durations
108 | public static let beginner42Default = PlanConfiguration(
| |- warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 | raceDate: Date(), // This should be set by the caller
110 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:140:23: warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
138 |
139 | // 15K — HM-lite (Daniels 15K-to-half band): 21K shape at ~0.85 volume.
140 | public static let beginner15Default = PlanConfiguration(
| |- warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner15Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
141 | raceDate: Date(),
142 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:168:23: warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
166 |
167 | // 10 mile — a hair over 15K; same band, slightly longer LR ladder.
168 | public static let beginner10MiDefault = PlanConfiguration(
| |- warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner10MiDefault' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
169 | raceDate: Date(),
170 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:18:23: warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
16 | // the generator's 5K branch drops the LR slot; endurance comes from easy
17 | // frequency. Volume ~70-90 km/wk peak, per Daniels Phase III-IV 5K.
18 | public static let competitive5Default = PlanConfiguration(
| |- warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | raceDate: Date(),
20 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:54:23: warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
52 | // (unlike 5K) but shorter than half: peak LR ~105min ≈ 22-24km.
53 | // Daniels Adv 10K sits 70-90 km/wk; competitive lands just above.
54 | public static let competitive10Default = PlanConfiguration(
| |- warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | raceDate: Date(),
56 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:91:23: warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
89 | // fatigue. Pfitz/Daniels advanced half plans use 3-week tapers for
90 | // 16-18w cycles. minTaperPhaseWeeks 3 ≈ a real 3-week ramp-down.
91 | public static let competitive21Default = PlanConfiguration(
| |- warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
92 | raceDate: Date(),
93 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:130:23: warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
128 | // sub-3h athlete after 60-90 km/wk peak leaves lingering fatigue
129 | // that wrecks race day. taperPhaseRatio 0.15 ≈ 3 weeks of an 18w plan.
130 | public static let competitive42Default = PlanConfiguration(
| |- warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
131 | raceDate: Date(),
132 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
[16/34] Compiling TrainingPlanKit PlanConfiguration+Advanced.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:16:23: warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
14 | extension PlanConfiguration {
15 |
16 | public static let accessibleBeginner5Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | raceDate: Date(),
18 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:44:23: warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
42 | )
43 |
44 | public static let accessibleIntermediate5Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 | raceDate: Date(),
46 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:72:23: warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
70 | )
71 |
72 | public static let accessibleAdvanced5Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
73 | raceDate: Date(),
74 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:100:23: warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
98 | )
99 |
100 | public static let accessibleBeginner10Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
101 | raceDate: Date(),
102 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:128:23: warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
126 | )
127 |
128 | public static let accessibleIntermediate10Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 | raceDate: Date(),
130 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:156:23: warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
154 | )
155 |
156 | public static let accessibleAdvanced10Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
157 | raceDate: Date(),
158 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:184:23: warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
182 | )
183 |
184 | public static let accessibleBeginner21Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
185 | raceDate: Date(),
186 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:212:23: warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
210 | )
211 |
212 | public static let accessibleIntermediate21Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
213 | raceDate: Date(),
214 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:240:23: warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
238 | )
239 |
240 | public static let accessibleAdvanced21Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 | raceDate: Date(),
242 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:268:23: warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
266 | )
267 |
268 | public static let accessibleBeginner42Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
269 | raceDate: Date(),
270 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:295:23: warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
293 | )
294 |
295 | public static let accessibleIntermediate42Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
296 | raceDate: Date(),
297 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:322:23: warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
320 | )
321 |
322 | public static let accessibleAdvanced42Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
323 | raceDate: Date(),
324 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:14:23: warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
12 | extension PlanConfiguration {
13 |
14 | public static let advanced5Default = PlanConfiguration(
| |- warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 | raceDate: Date(),
16 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:41:23: warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
39 | )
40 |
41 | public static let advanced10Default = PlanConfiguration(
| |- warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | raceDate: Date(),
43 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:73:23: warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
71 | )
72 |
73 | public static let advanced21Default = PlanConfiguration(
| |- warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
74 | raceDate: Date(),
75 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:101:23: warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
99 |
100 | // Default configuration for advanced runner with flexible durations
101 | public static let advanced42Default = PlanConfiguration(
| |- warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
102 | raceDate: Date(),
103 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:132:23: warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
130 |
131 | // 15K — HM-lite: advanced 21K shape at ~0.85 volume.
132 | public static let advanced15Default = PlanConfiguration(
| |- warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced15Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
133 | raceDate: Date(),
134 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:160:23: warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
158 |
159 | // 10 mile — same band as 15K, slightly longer.
160 | public static let advanced10MiDefault = PlanConfiguration(
| |- warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced10MiDefault' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
161 | raceDate: Date(),
162 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:188:23: warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
186 |
187 | // 30K — marathon-lite: 42K shape at ~0.88 volume.
188 | public static let advanced30Default = PlanConfiguration(
| |- warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced30Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
189 | raceDate: Date(),
190 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:216:23: warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
214 |
215 | // 50K — ultra entry: 42K + time-on-feet, gentler ramp, 3-week taper.
216 | public static let advanced50Default = PlanConfiguration(
| |- warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced50Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
217 | raceDate: Date(),
218 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:16:23: warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | // Default configuration for a beginner with flexible durations
16 | public static let beginner5Default = PlanConfiguration(
| |- warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | raceDate: Date(), // This should be set by the caller
18 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:46:23: warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
44 |
45 | // 10K configurations
46 | public static let beginner10Default = PlanConfiguration(
| |- warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 | raceDate: Date(),
48 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:74:23: warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
72 |
73 | // 21K (Half Marathon) configurations
74 | public static let beginner21Default = PlanConfiguration(
| |- warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
75 | raceDate: Date(),
76 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:108:23: warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
106 |
107 | // Default configuration for a beginner with flexible durations
108 | public static let beginner42Default = PlanConfiguration(
| |- warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 | raceDate: Date(), // This should be set by the caller
110 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:140:23: warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
138 |
139 | // 15K — HM-lite (Daniels 15K-to-half band): 21K shape at ~0.85 volume.
140 | public static let beginner15Default = PlanConfiguration(
| |- warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner15Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
141 | raceDate: Date(),
142 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:168:23: warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
166 |
167 | // 10 mile — a hair over 15K; same band, slightly longer LR ladder.
168 | public static let beginner10MiDefault = PlanConfiguration(
| |- warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner10MiDefault' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
169 | raceDate: Date(),
170 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:18:23: warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
16 | // the generator's 5K branch drops the LR slot; endurance comes from easy
17 | // frequency. Volume ~70-90 km/wk peak, per Daniels Phase III-IV 5K.
18 | public static let competitive5Default = PlanConfiguration(
| |- warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | raceDate: Date(),
20 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:54:23: warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
52 | // (unlike 5K) but shorter than half: peak LR ~105min ≈ 22-24km.
53 | // Daniels Adv 10K sits 70-90 km/wk; competitive lands just above.
54 | public static let competitive10Default = PlanConfiguration(
| |- warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | raceDate: Date(),
56 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:91:23: warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
89 | // fatigue. Pfitz/Daniels advanced half plans use 3-week tapers for
90 | // 16-18w cycles. minTaperPhaseWeeks 3 ≈ a real 3-week ramp-down.
91 | public static let competitive21Default = PlanConfiguration(
| |- warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
92 | raceDate: Date(),
93 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:130:23: warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
128 | // sub-3h athlete after 60-90 km/wk peak leaves lingering fatigue
129 | // that wrecks race day. taperPhaseRatio 0.15 ≈ 3 weeks of an 18w plan.
130 | public static let competitive42Default = PlanConfiguration(
| |- warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
131 | raceDate: Date(),
132 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
[17/34] Compiling TrainingPlanKit PlanConfiguration+Beginner.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:16:23: warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
14 | extension PlanConfiguration {
15 |
16 | public static let accessibleBeginner5Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | raceDate: Date(),
18 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:44:23: warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
42 | )
43 |
44 | public static let accessibleIntermediate5Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 | raceDate: Date(),
46 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:72:23: warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
70 | )
71 |
72 | public static let accessibleAdvanced5Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
73 | raceDate: Date(),
74 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:100:23: warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
98 | )
99 |
100 | public static let accessibleBeginner10Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
101 | raceDate: Date(),
102 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:128:23: warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
126 | )
127 |
128 | public static let accessibleIntermediate10Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 | raceDate: Date(),
130 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:156:23: warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
154 | )
155 |
156 | public static let accessibleAdvanced10Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
157 | raceDate: Date(),
158 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:184:23: warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
182 | )
183 |
184 | public static let accessibleBeginner21Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
185 | raceDate: Date(),
186 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:212:23: warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
210 | )
211 |
212 | public static let accessibleIntermediate21Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
213 | raceDate: Date(),
214 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:240:23: warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
238 | )
239 |
240 | public static let accessibleAdvanced21Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 | raceDate: Date(),
242 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:268:23: warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
266 | )
267 |
268 | public static let accessibleBeginner42Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
269 | raceDate: Date(),
270 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:295:23: warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
293 | )
294 |
295 | public static let accessibleIntermediate42Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
296 | raceDate: Date(),
297 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:322:23: warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
320 | )
321 |
322 | public static let accessibleAdvanced42Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
323 | raceDate: Date(),
324 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:14:23: warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
12 | extension PlanConfiguration {
13 |
14 | public static let advanced5Default = PlanConfiguration(
| |- warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 | raceDate: Date(),
16 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:41:23: warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
39 | )
40 |
41 | public static let advanced10Default = PlanConfiguration(
| |- warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | raceDate: Date(),
43 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:73:23: warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
71 | )
72 |
73 | public static let advanced21Default = PlanConfiguration(
| |- warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
74 | raceDate: Date(),
75 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:101:23: warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
99 |
100 | // Default configuration for advanced runner with flexible durations
101 | public static let advanced42Default = PlanConfiguration(
| |- warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
102 | raceDate: Date(),
103 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:132:23: warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
130 |
131 | // 15K — HM-lite: advanced 21K shape at ~0.85 volume.
132 | public static let advanced15Default = PlanConfiguration(
| |- warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced15Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
133 | raceDate: Date(),
134 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:160:23: warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
158 |
159 | // 10 mile — same band as 15K, slightly longer.
160 | public static let advanced10MiDefault = PlanConfiguration(
| |- warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced10MiDefault' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
161 | raceDate: Date(),
162 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:188:23: warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
186 |
187 | // 30K — marathon-lite: 42K shape at ~0.88 volume.
188 | public static let advanced30Default = PlanConfiguration(
| |- warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced30Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
189 | raceDate: Date(),
190 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:216:23: warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
214 |
215 | // 50K — ultra entry: 42K + time-on-feet, gentler ramp, 3-week taper.
216 | public static let advanced50Default = PlanConfiguration(
| |- warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced50Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
217 | raceDate: Date(),
218 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:16:23: warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | // Default configuration for a beginner with flexible durations
16 | public static let beginner5Default = PlanConfiguration(
| |- warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | raceDate: Date(), // This should be set by the caller
18 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:46:23: warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
44 |
45 | // 10K configurations
46 | public static let beginner10Default = PlanConfiguration(
| |- warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 | raceDate: Date(),
48 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:74:23: warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
72 |
73 | // 21K (Half Marathon) configurations
74 | public static let beginner21Default = PlanConfiguration(
| |- warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
75 | raceDate: Date(),
76 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:108:23: warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
106 |
107 | // Default configuration for a beginner with flexible durations
108 | public static let beginner42Default = PlanConfiguration(
| |- warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 | raceDate: Date(), // This should be set by the caller
110 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:140:23: warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
138 |
139 | // 15K — HM-lite (Daniels 15K-to-half band): 21K shape at ~0.85 volume.
140 | public static let beginner15Default = PlanConfiguration(
| |- warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner15Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
141 | raceDate: Date(),
142 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:168:23: warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
166 |
167 | // 10 mile — a hair over 15K; same band, slightly longer LR ladder.
168 | public static let beginner10MiDefault = PlanConfiguration(
| |- warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner10MiDefault' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
169 | raceDate: Date(),
170 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:18:23: warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
16 | // the generator's 5K branch drops the LR slot; endurance comes from easy
17 | // frequency. Volume ~70-90 km/wk peak, per Daniels Phase III-IV 5K.
18 | public static let competitive5Default = PlanConfiguration(
| |- warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | raceDate: Date(),
20 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:54:23: warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
52 | // (unlike 5K) but shorter than half: peak LR ~105min ≈ 22-24km.
53 | // Daniels Adv 10K sits 70-90 km/wk; competitive lands just above.
54 | public static let competitive10Default = PlanConfiguration(
| |- warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | raceDate: Date(),
56 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:91:23: warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
89 | // fatigue. Pfitz/Daniels advanced half plans use 3-week tapers for
90 | // 16-18w cycles. minTaperPhaseWeeks 3 ≈ a real 3-week ramp-down.
91 | public static let competitive21Default = PlanConfiguration(
| |- warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
92 | raceDate: Date(),
93 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:130:23: warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
128 | // sub-3h athlete after 60-90 km/wk peak leaves lingering fatigue
129 | // that wrecks race day. taperPhaseRatio 0.15 ≈ 3 weeks of an 18w plan.
130 | public static let competitive42Default = PlanConfiguration(
| |- warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
131 | raceDate: Date(),
132 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
[18/34] Compiling TrainingPlanKit PlanConfiguration+Competitive.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:16:23: warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
14 | extension PlanConfiguration {
15 |
16 | public static let accessibleBeginner5Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | raceDate: Date(),
18 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:44:23: warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
42 | )
43 |
44 | public static let accessibleIntermediate5Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
45 | raceDate: Date(),
46 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:72:23: warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
70 | )
71 |
72 | public static let accessibleAdvanced5Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
73 | raceDate: Date(),
74 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:100:23: warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
98 | )
99 |
100 | public static let accessibleBeginner10Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
101 | raceDate: Date(),
102 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:128:23: warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
126 | )
127 |
128 | public static let accessibleIntermediate10Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
129 | raceDate: Date(),
130 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:156:23: warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
154 | )
155 |
156 | public static let accessibleAdvanced10Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
157 | raceDate: Date(),
158 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:184:23: warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
182 | )
183 |
184 | public static let accessibleBeginner21Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
185 | raceDate: Date(),
186 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:212:23: warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
210 | )
211 |
212 | public static let accessibleIntermediate21Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
213 | raceDate: Date(),
214 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:240:23: warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
238 | )
239 |
240 | public static let accessibleAdvanced21Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
241 | raceDate: Date(),
242 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:268:23: warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
266 | )
267 |
268 | public static let accessibleBeginner42Default = PlanConfiguration(
| |- warning: static property 'accessibleBeginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleBeginner42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
269 | raceDate: Date(),
270 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:295:23: warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
293 | )
294 |
295 | public static let accessibleIntermediate42Default = PlanConfiguration(
| |- warning: static property 'accessibleIntermediate42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleIntermediate42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
296 | raceDate: Date(),
297 | runnerLevel: .intermediate,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Accessible.swift:322:23: warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
320 | )
321 |
322 | public static let accessibleAdvanced42Default = PlanConfiguration(
| |- warning: static property 'accessibleAdvanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'accessibleAdvanced42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
323 | raceDate: Date(),
324 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:14:23: warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
12 | extension PlanConfiguration {
13 |
14 | public static let advanced5Default = PlanConfiguration(
| |- warning: static property 'advanced5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
15 | raceDate: Date(),
16 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:41:23: warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
39 | )
40 |
41 | public static let advanced10Default = PlanConfiguration(
| |- warning: static property 'advanced10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
42 | raceDate: Date(),
43 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:73:23: warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
71 | )
72 |
73 | public static let advanced21Default = PlanConfiguration(
| |- warning: static property 'advanced21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
74 | raceDate: Date(),
75 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:101:23: warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
99 |
100 | // Default configuration for advanced runner with flexible durations
101 | public static let advanced42Default = PlanConfiguration(
| |- warning: static property 'advanced42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
102 | raceDate: Date(),
103 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:132:23: warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
130 |
131 | // 15K — HM-lite: advanced 21K shape at ~0.85 volume.
132 | public static let advanced15Default = PlanConfiguration(
| |- warning: static property 'advanced15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced15Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
133 | raceDate: Date(),
134 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:160:23: warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
158 |
159 | // 10 mile — same band as 15K, slightly longer.
160 | public static let advanced10MiDefault = PlanConfiguration(
| |- warning: static property 'advanced10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced10MiDefault' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
161 | raceDate: Date(),
162 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:188:23: warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
186 |
187 | // 30K — marathon-lite: 42K shape at ~0.88 volume.
188 | public static let advanced30Default = PlanConfiguration(
| |- warning: static property 'advanced30Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced30Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
189 | raceDate: Date(),
190 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Advanced.swift:216:23: warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
214 |
215 | // 50K — ultra entry: 42K + time-on-feet, gentler ramp, 3-week taper.
216 | public static let advanced50Default = PlanConfiguration(
| |- warning: static property 'advanced50Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'advanced50Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
217 | raceDate: Date(),
218 | runnerLevel: .advanced,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:16:23: warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
14 |
15 | // Default configuration for a beginner with flexible durations
16 | public static let beginner5Default = PlanConfiguration(
| |- warning: static property 'beginner5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
17 | raceDate: Date(), // This should be set by the caller
18 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:46:23: warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
44 |
45 | // 10K configurations
46 | public static let beginner10Default = PlanConfiguration(
| |- warning: static property 'beginner10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 | raceDate: Date(),
48 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:74:23: warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
72 |
73 | // 21K (Half Marathon) configurations
74 | public static let beginner21Default = PlanConfiguration(
| |- warning: static property 'beginner21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
75 | raceDate: Date(),
76 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:108:23: warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
106 |
107 | // Default configuration for a beginner with flexible durations
108 | public static let beginner42Default = PlanConfiguration(
| |- warning: static property 'beginner42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
109 | raceDate: Date(), // This should be set by the caller
110 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:140:23: warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
138 |
139 | // 15K — HM-lite (Daniels 15K-to-half band): 21K shape at ~0.85 volume.
140 | public static let beginner15Default = PlanConfiguration(
| |- warning: static property 'beginner15Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner15Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
141 | raceDate: Date(),
142 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Beginner.swift:168:23: warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
166 |
167 | // 10 mile — a hair over 15K; same band, slightly longer LR ladder.
168 | public static let beginner10MiDefault = PlanConfiguration(
| |- warning: static property 'beginner10MiDefault' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'beginner10MiDefault' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
169 | raceDate: Date(),
170 | runnerLevel: .beginner,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:18:23: warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
16 | // the generator's 5K branch drops the LR slot; endurance comes from easy
17 | // frequency. Volume ~70-90 km/wk peak, per Daniels Phase III-IV 5K.
18 | public static let competitive5Default = PlanConfiguration(
| |- warning: static property 'competitive5Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive5Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
19 | raceDate: Date(),
20 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:54:23: warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
52 | // (unlike 5K) but shorter than half: peak LR ~105min ≈ 22-24km.
53 | // Daniels Adv 10K sits 70-90 km/wk; competitive lands just above.
54 | public static let competitive10Default = PlanConfiguration(
| |- warning: static property 'competitive10Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive10Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
55 | raceDate: Date(),
56 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:91:23: warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
89 | // fatigue. Pfitz/Daniels advanced half plans use 3-week tapers for
90 | // 16-18w cycles. minTaperPhaseWeeks 3 ≈ a real 3-week ramp-down.
91 | public static let competitive21Default = PlanConfiguration(
| |- warning: static property 'competitive21Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive21Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
92 | raceDate: Date(),
93 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration+Competitive.swift:130:23: warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
128 | // sub-3h athlete after 60-90 km/wk peak leaves lingering fatigue
129 | // that wrecks race day. taperPhaseRatio 0.15 ≈ 3 weeks of an 18w plan.
130 | public static let competitive42Default = PlanConfiguration(
| |- warning: static property 'competitive42Default' is not concurrency-safe because non-'Sendable' type 'PlanConfiguration' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'competitive42Default' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
131 | raceDate: Date(),
132 | runnerLevel: .competitive,
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:85:15: note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
83 | }
84 |
85 | public struct PlanConfiguration {
| `- note: consider making struct 'PlanConfiguration' conform to the 'Sendable' protocol
86 | // Race details
87 | public let raceDate: Date
[19/34] Compiling TrainingPlanKit RaceWorkoutFactory.swift
[20/34] Compiling TrainingPlanKit Plan.swift
[21/34] Compiling TrainingPlanKit Workout.swift
[22/34] Compiling TrainingPlanKit WorkoutEvent.swift
[23/34] Compiling TrainingPlanKit CompetitivePlanGenerator.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/CompetitivePlanGenerator.swift:663:69: warning: will never be executed
661 | } else {
662 | easyTargetLoad = targetLoad * ((isLongRace && isFirstFill) ? mlrLoadMult
663 | : isSecondMLR ? 0.29 : fillLoadMult)
| | `- warning: will never be executed
| `- note: condition always evaluates to false
664 | }
665 | // Hard-cap easy duration when tapering so the selector can't pick a
[24/34] Compiling TrainingPlanKit DistanceClass.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/CompetitivePlanGenerator.swift:663:69: warning: will never be executed
661 | } else {
662 | easyTargetLoad = targetLoad * ((isLongRace && isFirstFill) ? mlrLoadMult
663 | : isSecondMLR ? 0.29 : fillLoadMult)
| | `- warning: will never be executed
| `- note: condition always evaluates to false
664 | }
665 | // Hard-cap easy duration when tapering so the selector can't pick a
[25/34] Compiling TrainingPlanKit IntermediatePlanGenerator.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/CompetitivePlanGenerator.swift:663:69: warning: will never be executed
661 | } else {
662 | easyTargetLoad = targetLoad * ((isLongRace && isFirstFill) ? mlrLoadMult
663 | : isSecondMLR ? 0.29 : fillLoadMult)
| | `- warning: will never be executed
| `- note: condition always evaluates to false
664 | }
665 | // Hard-cap easy duration when tapering so the selector can't pick a
[26/34] Compiling TrainingPlanKit MaintenancePlanGenerator.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/CompetitivePlanGenerator.swift:663:69: warning: will never be executed
661 | } else {
662 | easyTargetLoad = targetLoad * ((isLongRace && isFirstFill) ? mlrLoadMult
663 | : isSecondMLR ? 0.29 : fillLoadMult)
| | `- warning: will never be executed
| `- note: condition always evaluates to false
664 | }
665 | // Hard-cap easy duration when tapering so the selector can't pick a
[27/34] Compiling TrainingPlanKit PlanConfiguration.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:247:23: warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
245 | /// this one value to switch the whole app — both selectors resolve through
246 | /// `raceConfig` below. Competitive/maintenance/VO2 are routed separately.
247 | public static var shipAccessibleTier = true
| |- warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shipAccessibleTier' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shipAccessibleTier' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
248 |
249 | /// Resolve the non-competitive (5K / 10K / 21K / 42K) config for a runner
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanGeneratorV3.swift:756:16: warning: static property 'rehearsalSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
754 | // Every race-rehearsal subtype. eligibleDistances pins at most one of these to
755 | // a given plan, so "the plan's rehearsal" is well-defined.
756 | static let rehearsalSubtypes: Set<WorkoutSubtype> = [
| |- warning: static property 'rehearsalSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'rehearsalSubtypes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
757 | .raceRehearsalM, .raceRehearsalHM, .raceRehearsal10K,
758 | ]
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:88:13: note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
86 | }
87 |
88 | public enum WorkoutSubtype: String, CaseIterable, Identifiable, Codable {
| `- note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
89 | case intervals
90 | case pyramidIntervals
[28/34] Compiling TrainingPlanKit PlanDistribution.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:247:23: warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
245 | /// this one value to switch the whole app — both selectors resolve through
246 | /// `raceConfig` below. Competitive/maintenance/VO2 are routed separately.
247 | public static var shipAccessibleTier = true
| |- warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shipAccessibleTier' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shipAccessibleTier' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
248 |
249 | /// Resolve the non-competitive (5K / 10K / 21K / 42K) config for a runner
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanGeneratorV3.swift:756:16: warning: static property 'rehearsalSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
754 | // Every race-rehearsal subtype. eligibleDistances pins at most one of these to
755 | // a given plan, so "the plan's rehearsal" is well-defined.
756 | static let rehearsalSubtypes: Set<WorkoutSubtype> = [
| |- warning: static property 'rehearsalSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'rehearsalSubtypes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
757 | .raceRehearsalM, .raceRehearsalHM, .raceRehearsal10K,
758 | ]
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:88:13: note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
86 | }
87 |
88 | public enum WorkoutSubtype: String, CaseIterable, Identifiable, Codable {
| `- note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
89 | case intervals
90 | case pyramidIntervals
[29/34] Compiling TrainingPlanKit PlanGeneratorV3.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:247:23: warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
245 | /// this one value to switch the whole app — both selectors resolve through
246 | /// `raceConfig` below. Competitive/maintenance/VO2 are routed separately.
247 | public static var shipAccessibleTier = true
| |- warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shipAccessibleTier' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shipAccessibleTier' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
248 |
249 | /// Resolve the non-competitive (5K / 10K / 21K / 42K) config for a runner
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanGeneratorV3.swift:756:16: warning: static property 'rehearsalSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
754 | // Every race-rehearsal subtype. eligibleDistances pins at most one of these to
755 | // a given plan, so "the plan's rehearsal" is well-defined.
756 | static let rehearsalSubtypes: Set<WorkoutSubtype> = [
| |- warning: static property 'rehearsalSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'rehearsalSubtypes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
757 | .raceRehearsalM, .raceRehearsalHM, .raceRehearsal10K,
758 | ]
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:88:13: note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
86 | }
87 |
88 | public enum WorkoutSubtype: String, CaseIterable, Identifiable, Codable {
| `- note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
89 | case intervals
90 | case pyramidIntervals
[30/34] Compiling TrainingPlanKit PlanProfile.swift
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanConfiguration.swift:247:23: warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
245 | /// this one value to switch the whole app — both selectors resolve through
246 | /// `raceConfig` below. Competitive/maintenance/VO2 are routed separately.
247 | public static var shipAccessibleTier = true
| |- warning: static property 'shipAccessibleTier' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'shipAccessibleTier' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'shipAccessibleTier' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
248 |
249 | /// Resolve the non-competitive (5K / 10K / 21K / 42K) config for a runner
/host/spi-builder-workspace/Sources/TrainingPlanKit/Engine/PlanGeneratorV3.swift:756:16: warning: static property 'rehearsalSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
754 | // Every race-rehearsal subtype. eligibleDistances pins at most one of these to
755 | // a given plan, so "the plan's rehearsal" is well-defined.
756 | static let rehearsalSubtypes: Set<WorkoutSubtype> = [
| |- warning: static property 'rehearsalSubtypes' is not concurrency-safe because non-'Sendable' type 'Set<WorkoutSubtype>' may have shared mutable state; this is an error in the Swift 6 language mode
| |- note: add '@MainActor' to make static property 'rehearsalSubtypes' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
757 | .raceRehearsalM, .raceRehearsalHM, .raceRehearsal10K,
758 | ]
/host/spi-builder-workspace/Sources/TrainingPlanKit/Models/WorkoutTypes.swift:88:13: note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
86 | }
87 |
88 | public enum WorkoutSubtype: String, CaseIterable, Identifiable, Codable {
| `- note: consider making enum 'WorkoutSubtype' conform to the 'Sendable' protocol
89 | case intervals
90 | case pyramidIntervals
[31/34] Compiling TrainingPlanKit API.swift
[32/34] Compiling TrainingPlanKit AdvancedPlanGenerator.swift
[33/34] Compiling TrainingPlanKit BeginnerPlanGenerator.swift
[34/34] Compiling TrainingPlanKit C25KPlanGenerator.swift
Build complete! (7.80s)
Build complete.
{
"dependencies" : [
],
"manifest_display_name" : "TrainingPlanKit",
"name" : "TrainingPlanKit",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "16.0"
}
],
"products" : [
{
"name" : "TrainingPlanKit",
"targets" : [
"TrainingPlanKit"
],
"type" : {
"library" : [
"automatic"
]
}
}
],
"targets" : [
{
"c99name" : "TrainingPlanKitTests",
"module_type" : "SwiftTarget",
"name" : "TrainingPlanKitTests",
"path" : "Tests/TrainingPlanKitTests",
"sources" : [
"PaceRenderInvariantTests.swift",
"PaceZoneConverterTests.swift",
"PlanRecalculatorTests.swift",
"TrainingPlanKitTests.swift",
"VDOTTests.swift"
],
"target_dependencies" : [
"TrainingPlanKit"
],
"type" : "test"
},
{
"c99name" : "TrainingPlanKit",
"module_type" : "SwiftTarget",
"name" : "TrainingPlanKit",
"path" : "Sources/TrainingPlanKit",
"product_memberships" : [
"TrainingPlanKit"
],
"resources" : [
{
"path" : "/host/spi-builder-workspace/Sources/TrainingPlanKit/Catalog/sample_catalog.json",
"rule" : {
"copy" : {
}
}
}
],
"sources" : [
"API.swift",
"Engine/AdvancedPlanGenerator.swift",
"Engine/BeginnerPlanGenerator.swift",
"Engine/C25KPlanGenerator.swift",
"Engine/CompetitivePlanGenerator.swift",
"Engine/DistanceClass.swift",
"Engine/IntermediatePlanGenerator.swift",
"Engine/MaintenancePlanGenerator.swift",
"Engine/PlanConfiguration+Accessible.swift",
"Engine/PlanConfiguration+Advanced.swift",
"Engine/PlanConfiguration+Beginner.swift",
"Engine/PlanConfiguration+Competitive.swift",
"Engine/PlanConfiguration+CouchTo5K.swift",
"Engine/PlanConfiguration+Intermediate.swift",
"Engine/PlanConfiguration+Maintenance.swift",
"Engine/PlanConfiguration+VO2.swift",
"Engine/PlanConfiguration.swift",
"Engine/PlanDistribution.swift",
"Engine/PlanGeneratorV3.swift",
"Engine/PlanProfile.swift",
"Engine/RaceWorkoutFactory.swift",
"Models/Plan.swift",
"Models/Workout.swift",
"Models/WorkoutEvent.swift",
"Models/WorkoutTypes.swift",
"Pacing/CompetitiveGate.swift",
"Pacing/PaceZoneConverter.swift",
"Pacing/PlanRecalculator.swift",
"Pacing/VDOT.swift"
],
"type" : "library"
}
],
"tools_version" : "5.9"
}
wasm-6.1-latest: Pulling from saguaro1/spi-images
Digest: sha256:1ad245dad3d2ae0004e1afbc92334bd39884ed9ca587cf04d0a8d5f640fb02e9
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.1-latest
Done.