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
- API route drift between the two entry points β
workers/api/src/index.ts(Node/CF) andindex-aws.ts(Lambda) have diverged: ~8 route groups registered only on one side and ~10 only on the other (e.g.workshopRoutes,supportChat,jobsRoutesmissing from Lambda;acrRoutes,promo,pdfAuditRoutes,sendEmailRoutesmissing 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. - 19 production npm vulnerabilities (9 high β mostly
undici,ws), and no.github/dependabot.yml. Overlaps with open issues #1114/#1117. role="note"in apps/photos βsrc/components/photos/BatchUploadZone.tsxandPhotoUploadZone.tsx; explicitly forbidden by project standards (userole="status"/role="alert").- Stripe webhook TODOs β
workers/api/src/routes/stripe.ts:373,754: no user email onpayment_intent.payment_failed, no admin alert oncharge.dispute.created. Silent payment failures/disputes. - Fire-and-forget conversion on Lambda β
workers/api/src/routes/forms.ts:191:void conversionTaskwhenwaitUntilis unavailable; form conversions can silently die on the Lambda runtime. - 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)
- Footer standard not followed β home, audit, vpat, forms, links, music, photos, org-chart use custom footers instead of
<AccessibleOrgFooter />; apps/beta is worst: missinglogo.png/logo-dark.pngand still titled βThe Accessible PDF Converterβ (retired name β overlaps issue #1378). <WorkshopPromoBar>missing from beta, course-map, flowchart, forms, links, music, photos, power.- Missing standard scripts β
test:a11yabsent in ~8 apps; power/beta/home lacktestentirely.
Medium β apps/web code health
- 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. - Swallowed errors:
.catch(() => {})inPromoWelcomeModal.tsx; silent service-worker registration failure (ServiceWorkerRegistrar.tsx:12); clipboard/tag-fetch errors with no user feedback;FileActions.tsx:49usesalert()for download errors. - 17+
console.warn/errorin the settings billing flow with no user-facing toasts;transactions: any[]and otheranytypes inTeamDashboardClient.tsxandapi.ts. - 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
- Branch
fix/ai-fix-nova-fallbackhas 2 commits and no PR, plus uncommittedapps/web/vitest.config.tschanges and two untracked test files (PlanPricingTable.test.tsx,PlanTiers.test.tsx) β finish and open the PR, or park deliberately. - 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. - Stray files:
workers/firebase-debug.log,.DS_Storefiles β gitignore + remove. - 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.