Skip to content

Monorepo Worklist (survey of 2026-07-06)

Consolidated from a four-way survey: apps/web, backend workers/packages, the 15 smaller apps, and repo-wide engineering health. Roughly prioritized. No work done yet β€” this is a candidate list.

High priority β€” correctness & prod risk

  1. API route drift between the two entry points β€” workers/api/src/index.ts (Node/CF) and index-aws.ts (Lambda) have diverged: ~8 route groups registered only on one side and ~10 only on the other (e.g. workshopRoutes, supportChat, jobsRoutes missing from Lambda; acrRoutes, promo, pdfAuditRoutes, sendEmailRoutes missing from Node). api.theaccessible.org load-balances across both, so these intermittently 404 in prod β€” same failure mode as the #1367 worksheet incident. Action: audit + add a CI check that the two registration lists match.
  2. 19 production npm vulnerabilities (9 high β€” mostly undici, ws), and no .github/dependabot.yml. Overlaps with open issues #1114/#1117.
  3. role="note" in apps/photos β€” src/components/photos/BatchUploadZone.tsx and PhotoUploadZone.tsx; explicitly forbidden by project standards (use role="status"/role="alert").
  4. Stripe webhook TODOs β€” workers/api/src/routes/stripe.ts:373,754: no user email on payment_intent.payment_failed, no admin alert on charge.dispute.created. Silent payment failures/disputes.
  5. Fire-and-forget conversion on Lambda β€” workers/api/src/routes/forms.ts:191: void conversionTask when waitUntil is unavailable; form conversions can silently die on the Lambda runtime.
  6. Stale open PRs (20) β€” real fixes rotting since May: #763 (api_keys schema drift), #821 (wrong table name for images_externalized), #863 (0-byte upload rejection), #1268 (PDF hyperlinks dropped in prod), #1269 (WCAG warnings never auto-fixed). Triage pass to land or close.

Medium β€” product/branding consistency (smaller apps)

  1. Footer standard not followed β€” home, audit, vpat, forms, links, music, photos, org-chart use custom footers instead of <AccessibleOrgFooter />; apps/beta is worst: missing logo.png/logo-dark.png and still titled β€œThe Accessible PDF Converter” (retired name β€” overlaps issue #1378).
  2. <WorkshopPromoBar> missing from beta, course-map, flowchart, forms, links, music, photos, power.
  3. Missing standard scripts β€” test:a11y absent in ~8 apps; power/beta/home lack test entirely.

Medium β€” apps/web code health

  1. Monster files: src/lib/api.ts (4,029 lines), settings/page.tsx (1,890), landing/page.tsx (1,395), FileTable.tsx (1,004), useDashboardState.ts (838) β€” all far past the 300-line guideline; api.ts is the biggest maintainability tax.
  2. Swallowed errors: .catch(() => {}) in PromoWelcomeModal.tsx; silent service-worker registration failure (ServiceWorkerRegistrar.tsx:12); clipboard/tag-fetch errors with no user feedback; FileActions.tsx:49 uses alert() for download errors.
  3. 17+ console.warn/error in the settings billing flow with no user-facing toasts; transactions: any[] and other any types in TeamDashboardClient.tsx and api.ts.
  4. Test gaps: all admin pages, account/integrations pages, benchmark/pipeline, and big dashboard components (FileTable, FileCard, DocumentPreview) have zero tests. Repo-wide, 21 workspaces have no tests at all (beta, bugs, home, power, skills, packages/editor, workers/convert, workers/remediate, all services/*, …).

Housekeeping & loose ends

  1. Branch fix/ai-fix-nova-fallback has 2 commits and no PR, plus uncommitted apps/web/vitest.config.ts changes and two untracked test files (PlanPricingTable.test.tsx, PlanTiers.test.tsx) β€” finish and open the PR, or park deliberately.
  2. Untracked docs/orgchart-enterprise-migration.md β€” draft zero-knowledge/GovCloud OrgChart design doc; commit it (or move to docs/admin) so it isn’t lost.
  3. Stray files: workers/firebase-debug.log, .DS_Store files β€” gitignore + remove.
  4. Issue backlog at 200+ open issues. Standouts to pull forward: #1188 (AI-fix dialog hangs forever), #1169 (vpat-parse cost events silently lost), #1103 (VPAT batch-upload failures swallowed), #1327 (migration tracking + DB-test CI), #1161/#1162 (model retirement / centralized model management).

Suggested starting points

  • #1 (route-drift audit + CI guard) and #6 (stale-PR triage): most prod-risk reduction per hour, little new code.
  • #14 is a 15-minute cleanup of work already done.