Require at least one task when creating a project - #186
Merged
hturnbull93 merged 3 commits intoJul 25, 2026
Conversation
The volunteer "Suggest a Project" flow already rejected empty task lists server-side; admin-created org projects did not, and instead started in a needs_tasks status. Close that gap so both paths require at least one task up front, so no project needs tasks immediately after creation. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DqbXEqpoQdFyBhWCrCyc7F
railway-app
Bot
temporarily deployed
to
PauseAI Catalyse / catalyse-pr-186
July 25, 2026 11:00
Destroyed
Both call sites always passed requireTasks, so the prop no longer distinguished any real case — make the requirement unconditional instead of a flag every caller had to remember to set. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DqbXEqpoQdFyBhWCrCyc7F
railway-app
Bot
temporarily deployed
to
PauseAI Catalyse / catalyse-pr-186
July 25, 2026 11:01
Destroyed
|
🚅 Deployed to the catalyse-pr-186 environment in PauseAI Catalyse
1 service not affected by this PR
|
Task completion never re-evaluates project status, so a project can sit in_progress indefinitely after its last task is done. Surface these in the triage page so admins can close them out or add tasks. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y7LqHwh4oR1wbyKgRbhTiF
railway-app
Bot
temporarily deployed
to
PauseAI Catalyse / catalyse-pr-186
July 25, 2026 13:59
Destroyed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Suggest a Project) already enforced this server-side, but admin-created organisation projects did not and could start in aneeds_tasksstatus. Admin org projects now require ≥1 task too, and always startin_progress—needs_tasksis no longer reachable at creation time on either path.ProjectForm(required-field styling + client-side validation) instead of being gated behind arequireTasksprop that every caller had to remember to pass — both call sites always needed it, so the prop was removed.in_progressproject can end up with zero open tasks (last task completed or deleted) and just sit there. Addedadmin.projects.staleInProgressand a "No Open Tasks" tab on the triage page so admins can find these and close them out or add more work.Test plan
npm run typecheck,npm run lint,npm run format:checkall passnpm test) passes: 146 passed, 6 pre-existing skips, 0 failurese2e/tests/06-project-lifecycle.spec.ts)e2e/tests/08-project-tasks.spec.ts,e2e/tests/20-task-management.spec.ts,e2e/tests/21-approval-gate.spec.ts,e2e/actions/projects.ts)