Skip to content

[P0.13] cf tasks delete must not permanently strand dependents (implement cascade) #724

Description

@frankbria

Severity: high | Category: data-integrity | Phase: P0.13

Problem

Verified: tasks.delete does not remove the deleted id from other tasks' depends_on, and the delete_cascade() it points users to does not exist anywhere. A dependent keeps a depends_on entry pointing at a deleted task; get_ready_tasks requires deps.issubset(completed_tasks), so the dependent can never become ready — deleting a task silently and permanently strands its dependents.

Evidence

codeframe/cli/app.py:2262, codeframe/core/tasks.py:739 (dangling delete_cascade() reference)

Acceptance criteria

  • Deleting a task strips its id from all dependents' depends_on (default or via --cascade), OR deletion is blocked/prompted when dependents exist.
  • The dangling delete_cascade() docstring reference is resolved (implemented or removed).
  • Test: after deleting a dependency, the former dependent is reachable/ready.

Dependencies

None


Filed from the SaaS launch-readiness audit. Atomic: one developer, one session. Work order: strictly P0.1 → P3.12 (no forward dependencies).

Metadata

Metadata

Assignees

No one assigned

    Labels

    P0-blocker-betaCritical blocker - must fix before beta testingpriority:hightype:bugSomething is broken and needs fixing

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions