Skip to content

Roadmap: root-cause refactors covering the open issue backlog #222

Description

@erskingardner

The open issue backlog (~60 issues, mostly filed by systematic reviews as isolated symptoms) decomposes into 8 root-cause clusters. Each has a tracking issue with the diagnosis, a refactor design sketch, member task list, and sequencing notes. Attacking the root causes closes the members structurally instead of point-fixing each symptom against code that the next cluster rewrites anyway.

The trackers

Tracker Root cause Closes
#214 — Push provider unification APNs/FCM copy-paste divergence + lossy Result<bool> outcome 13 issues
#215 — Typed config Ad-hoc validation, duplicated defaults, silent coercions 12 issues
#216 — Task lifecycle Detached tasks, no supervision, inverted teardown order 5 issues (incl. the one HIGH, #193)
#221 — Secret hygiene Zeroization + redaction by discipline, not by boundary 7 issues (3 core + 4 riders)
#217 — NIP-59 validation Scattered/incomplete unwrap invariants 4 issues
#218 — Transactional rate-limit admission Charge-before-decide with partial refunds; global-lock capacity path 8 issues
#219 — Health/readiness rework Side-effecting reads, static readiness, coupled /metrics 5 issues
#220 — Retry/backoff policy Uncapped Retry-After; permit release breaks the live-task bound 3 issues

Waves

Wave 0 — now (merge/close in-flight point fixes):

Wave 1 — parallel tracks (disjoint files):

Wave 2 — after #214:

The hottest file is dispatcher.rs (#214, #218 touch different functions); retry.rs is the true bottleneck and drives the one hard ordering edge.

Coverage

All 50 open PR-less issues are assigned to exactly one tracker (47) or the wave-0 list (3); all 10 issues with in-flight PRs are annotated in their tracker with merge-first/supersede guidance. Riders that execute in one tracker but are verified by another (#172, #126, #156, #164) are cross-listed explicitly in #221.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions