Coach access and assignments get a real foundation
The Coach branch now has clearer access, assignment, lifecycle, and plan-authority contracts behind the workspace.
What changed on the branch
The first Coach workspace exposed the right surfaces, but the product also needed a dependable answer to harder questions: who can enter, who owns the assigned plan, what happens when access changes, and how a coach can review history without rewriting it.
The foundation now carries stronger access and assignment contracts, server-owned lifecycle checks, migration assertions, and a clearer boundary between Coach authority and athlete execution.
The mechanism
A coach can work from a template and assignment model while Training remains responsible for the athlete's runnable copy. The assignment records the relationship and source; the Training side materializes the work for execution and preserves what happened against it.
This avoids two weak outcomes. The coach should not edit an athlete's local record through an invisible shortcut, and the athlete should not lose plan continuity because the professional workspace treats every change as an overwrite.
Why it matters
Plan history becomes useful only when the product can distinguish the plan that was assigned from the work that was performed. Access also needs a lifecycle: trial, active use, read-only states, deactivation, and later reactivation cannot be handled as one permanent boolean.
These are not glamorous screens, but they determine whether the workspace can be trusted when the relationship changes or the plan moves into another block.
Availability
This is engineering progress on the Coach branch, not a public Coach release. Invite-only product validation and the remaining entry, consent, and commercial gates still apply.
Next
Connect the foundation to the shared routine builder and make client review useful without broadening Coach access beyond the relationship and consent that created it.