Files
pedwfrontend/memory-bank/refactor-backlog.md
T

3.7 KiB

Refactor Backlog (Maintainability + System Integrity)

Last updated: 2026-03-12

Priority 1 — Split actions/index.js by concern

  • Problem: Single high-coupling module mixes API clients, hash/token helpers, logging, file/email/domain operations.
  • Why it matters: Hard to reason about changes; high regression risk from unrelated edits.
  • Target outcome: Small modules with explicit boundaries (e.g. relayClient, fileClient, notifyClient, caseService, authService).
  • Initial scope: create façade layer first, then migrate call sites incrementally.
  • Detailed plan: memory-bank/refactor-plan-actions-index.md
  • Test gate: add unit regression tests + coverage reporting as part of this refactor.

Priority 2 — Centralize relay/hash/token forwarding logic

  • Problem: pages/api/endpoint/** and related routes duplicate request-signing + token + forwarding behavior.
  • Why it matters: Security-sensitive drift and inconsistent error handling.
  • Target outcome: Shared relay utility enforcing one signing contract, one timeout/retry policy, one error map, one redacted logging strategy.
  • Initial scope: pilot on a small endpoint group, then roll out pattern.
  • Problem: Navigation logic in components/breadcrumbs.js and case summary is branch-heavy and query-dependent.
  • Why it matters: Frequent regressions in search -> case -> myportal paths.
  • Target outcome: Pure route-state helpers with table-driven tests; UI component mainly renders output.
  • Initial scope: isolate va/adv/ads/key decision matrix first.

Priority 4 — Standardize security guards in pages/api/file/**

  • Problem: Hash/guard enforcement appears inconsistent across file endpoints.
  • Why it matters: Uneven protection for document upload/download/delete paths.
  • Target outcome: Shared guard middleware for hash/auth/input validation + consistent negative-path responses.
  • Initial scope: enforce a common pre-handler contract on high-risk routes first.

Priority 4 — Current slice status (2026-03-23)

  • Completed on TASK22224-file-endpoint-contract-bundle:
    • pages/api/file/downloadblob.js hardening + hotfix closure
    • path normalization compatibility (filename-only + prefixed path)
    • encoded/raw hash validation compatibility guard
  • Confirmed outcome:
    • user-reported download failures resolved
    • phase21 file + combined contract suites passing
  • Target routes:
    • pages/api/file/deleteblob.js
    • pages/api/file/deleteblobcase.js
    • pages/api/file/deleteblobrep.js
  • Scope:
    • align hash canonicalization strategy with downloadblob.js
    • enforce explicit respondError contracts (MISSING_REQUIRED_QUERY, INVALID_HASH, route-specific *_FAILED)
    • preserve existing success payload shapes
    • extend tests/phase21/file-handler-contract.test.cjs with mixed encoded/raw hash variants and negative paths

Priority 5 — Establish minimum automated regression baseline

  • Problem: Limited automated tests for high-risk logic.
  • Why it matters: Repeated regressions and heavy manual verification burden.
  • Target outcome: Focused test suite for pure logic and high-risk decisions.
  • Initial scope:
    1. breadcrumb decision matrix
    2. representation eligibility/date windows
    3. hash utility behavior
    4. locale rewrite mapping sanity checks

Sequencing recommendation

  1. Priorities 2 + 4 (security/integrity foundation)
  2. Priority 3 (high-change regression hotspot)
  3. Priority 1 (structural maintainability)
  4. Priority 5 (continuous safety net, starts early and expands)