Menu

#385 refactor(triage): remove the labels hygiene check and its write-back

closed
nobody
None
2026-07-05
2026-07-04
Anonymous
No

Originally created by: Akarsh-Hegde

What

Removes the labels board-hygiene check end to end — the "No labels — add one to categorise it" nag and its "Add a label" fix no longer appear anywhere, and the label write-back machinery it drove is deleted as dead code.

Why

The check added noise without value: labels are an optional, cosmetic board field, and for Linear the "fix" couldn't even be applied in-app (team-scoped label UUIDs), so it just bounced users out to the tracker.

Scope (+11 / −169)

Detection (daemon)src/intelligence/task_triage/

  • TriageReason::MissingLabels variant, hint, fix, and the hygiene_issues check
  • FixControl::EditLabels, BoardUsage.labels + its detection
  • TicketSignals.tags and the pm_tasks.tags read in store.rs (only consumer was this check; the DB column is untouched)
  • fixtures + test harness fields

Hint/fix mappingmeridian-core/src/util/hygiene.rs and its port ui/lib/hygiene.ts (missing_labels arms; tests moved to other optional codes). Old missing_labels codes still stored in pm_task_curation.reasons_json now map to no fix and are filtered out — they disappear from the UI immediately and get rewritten on the next triage run.

UI controlsedit_labels input removed from HygieneDialog.tsx / CleanupCard.tsx

Write-back (now unreachable)WriteField::AddLabel across ticket_update/: jira (edit_update helper now dead, removed), github (labels_url), azure_devops (merged_tags/merge_tags), linear (the label redirect + its issue_url helper), trello (redirect arm). WriteField::parse("labels", …) now returns None → the generic redirect, same as acceptance_criteria.

Testing

  • cargo clippy -p meridian -p meridian-core --all-targets -- -D warnings clean
  • cargo test -p meridian -p meridian-core: 410 + core tests pass
  • cargo check -p meridian-tray compiles
  • UI: npm run build (static export) + bun test 135 pass

🤖 Generated with Claude Code

Related

Tickets: #416

Discussion

  • Anonymous

    Anonymous - 2026-07-04

    Originally posted by: coderabbitai[bot]

    [!IMPORTANT]

    Review skipped

    Auto reviews are disabled on base/target branches other than the default branch.

    Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.


    ⚙️ Run configuration

    Configuration used: Organization UI

    Review profile: ASSERTIVE

    Plan: Pro Plus

    Run ID: 565d6717-aa93-4b60-a3b2-9f810120f64d

    You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

    Use the checkbox below for a quick retry:
    - [ ] 🔍 Trigger review

    ✨ Finishing Touches
    🧪 Generate unit tests (beta) - [ ] Create PR with unit tests - [ ] Commit unit tests in branch `fix/remove-labels-hygiene`

    Comment @coderabbitai help to get the list of available commands.

     
  • Anonymous

    Anonymous - 2026-07-05

    Originally posted by: Akarsh-Hegde

    Review items addressed — c990e314

    Fixed in this PR (items 1–3, stale docs):

    1. github.rs module doc no longer lists labels among the fields applied in-app.
    2. azure_devops.rs module doc no longer mentions the deleted tags read-modify-write — only parent needs a relation op now.
    3. trello.rs module doc and the redirect-test comment no longer describe labels as a redirected field.

    Deferred as follow-ups (as the review itself suggested):

    1. pm_tasks.tags write-only column — the provider syncs still write it. Dropping those writes (or repurposing the column via CDM's CanonicalTask.labels) touches all five sync modules and is out of scope for this removal PR.
    2. field_name duplication across the five providers — predates this PR; candidate for a WriteField::field_key() hoist in a separate cleanup.

    Full pre-push suite (fmt, clippy, UI build + tests, security audit, cargo test) ran clean on push.

    🤖 Generated with Claude Code

     
  • Anonymous

    Anonymous - 2026-07-05

    Ticket changed by: Akarsh-Hegde

    • status: open --> closed
     

Log in to post a comment.