This file is the single source of truth for tracked technical debt in SYNCRO.
Every TODO / FIXME in a critical path (auth, payments, integrations)
must reference a GitHub issue, and that issue should appear in the table below.
The CI job Tech Debt Policy (.github/workflows/debt-policy.yml) blocks any
pull request that adds an untracked TODO/FIXME to a critical path.
// TODO(#491): migrate to the new payment SDK(#NNN)is the GitHub issue number — required in critical paths.- Keep the description short; the issue holds the detail.
- Bare
// TODO: ...(no issue ref) is allowed outside critical paths but will show as a warning in the scan.
Untracked TODO/FIXME here fails CI:
backend/sdk/shared/quota_guard/client/app/api/(API routes — auth, payments, webhooks, CSP report)client/lib/app/api/contracts/(Soroban smart contracts — subscription renewal, escrow, virtual card)
Adjust this list in scripts/check-todos.mjs (CRITICAL_PATHS) and here together.
| Issue | Location | Severity | Owner | Description | Added |
|---|---|---|---|---|---|
| #494 | backend/... |
med | unassigned | Price changes / consolidation suggestions fetched from DB | 2026-05-29 |
| #698 | backend/src/services/api-latency-service.ts:68 |
med | unassigned | Redis-based API latency storage (currently in-memory fallback) | 2026-05-31 |
The rows above are seeded from existing issue summaries. Verify the file paths and owners, then keep this table in sync as TODOs are added or resolved.
Note: Issue #496 (PayPal integration) has been completed. The PayPal service now includes:
- Real PayPal Orders API v2 integration with OAuth authentication
- Automatic retry logic for transient failures
- Comprehensive error handling with specific error codes
- Webhook support for payment status updates
- Database idempotency checks
- Production-ready payment processing
- Create — Before adding a TODO/FIXME in a critical path, open a GitHub
issue describing the debt. Reference its number in the code comment:
// TODO(#NNN): .... - Label — Tag the issue
tech-debtplus a severity label (severity:high/severity:med/severity:low). Auth/payment/integration gaps default tohigh. - Register — Add a row to the table above (issue, location, severity, owner, one-line description, date).
- Triage — In the weekly engineering sync, review open
tech-debtissues. Assign owners and a target milestone for everyseverity:highitem. - Resolve — When the work is done, remove the TODO from the code, close the issue, and delete its row here. CI keeps code and registry from drifting: a removed-but-still-referenced TODO can't pass, and a new untracked one can't either.
node scripts/check-todos.mjs # fails on untracked critical TODOs
node scripts/check-todos.mjs --warn-only # report everything, never fail
npm run lint:todos # same, via package script