Skip to main content

dissociate

Function dissociate 

Source
pub fn dissociate<N: ProjectNode>(
    issues: &[N],
    issue_selector: u32,
    project_id: &str,
) -> Result<ProjectChange, ProjectError>
Expand description

Remove an issue’s association with a project.

Drops only the association: it never deletes or modifies the issue (C-004). Dissociating an absent association is an idempotent no-op with no event. The project is not required to exist — removing a stale reference is the repair path C-005 promises — so the only refusal is an unknown issue.

project_id is compared against the stored list verbatim: unlike associate, a project name is not resolved here. That is deliberate, not an oversight — the stored entries are ids, and a caller must resolve a name to an id first (via resolve_project_id). A name therefore matches nothing and is an inert no-op, which is what keeps the repair path working for an id that is no longer a valid ProjectId shape or no longer in the registry.