CLAUDE.md: new "2026-06-09 audit" enforced-rules section (mandatory coercion helpers, deterministic id-tiebreak ordering, $queryRaw FOR-UPDATE locking discipline, uniqueness-in-transaction, guard reads, Rules-of-Hooks, seed prod guard), lint/typecheck/format commands, and the app_test/.env.test testing section with the hard-throw guard. README rewritten from the placeholder stub (setup/run/build/test/gates/migrations). REVIEW.md / REVIEW_FINDINGS.md / REVIEW_FIXES.md: the full audit record — 277 files reviewed, ~362 findings, every one fixed and verified. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
387 lines
11 KiB
Markdown
387 lines
11 KiB
Markdown
# Codebase Audit — REVIEW.md
|
|
|
|
**Date:** 2026-06-08
|
|
**Scope:** entire repository (tracked source/config files via `git ls-files`)
|
|
**Method:** file-by-file review. Source of truth for progress — re-read before continuing after any compaction.
|
|
|
|
**Total files to review:** 277
|
|
|
|
---
|
|
|
|
|
|
## .claude/hooks/
|
|
|
|
- [x] .claude/hooks/block-env.js
|
|
- [x] .claude/hooks/format-on-save.js
|
|
|
|
## .claude/
|
|
|
|
- [x] .claude/settings.json
|
|
- [x] .claude/settings.local.json
|
|
|
|
## ./
|
|
|
|
- [x] .env.example
|
|
- [x] CLAUDE.md
|
|
- [x] boneyard.config.json
|
|
- [x] index.html
|
|
- [x] package.json
|
|
|
|
## prisma/
|
|
|
|
- [x] prisma/schema.prisma
|
|
- [x] prisma/seed.ts
|
|
|
|
## scripts/
|
|
|
|
- [x] scripts/migrate-received-invoices-to-nas.ts
|
|
- [x] scripts/rotate-totp-key.ts
|
|
|
|
## src/
|
|
|
|
- [x] src/App.tsx
|
|
|
|
## src/__tests__/
|
|
|
|
- [x] src/__tests__/ai.test.ts
|
|
- [x] src/__tests__/auth.service.test.ts
|
|
- [x] src/__tests__/auth.test.ts
|
|
- [x] src/__tests__/customers.schema.test.ts
|
|
- [x] src/__tests__/env.test.ts
|
|
- [x] src/__tests__/exchange-rates.test.ts
|
|
- [x] src/__tests__/helpers.ts
|
|
- [x] src/__tests__/invoices.service.test.ts
|
|
- [x] src/__tests__/manual-create.test.ts
|
|
- [x] src/__tests__/nas-file-manager.test.ts
|
|
- [x] src/__tests__/nas-project-folder.test.ts
|
|
- [x] src/__tests__/numbering.test.ts
|
|
- [x] src/__tests__/plan.test.ts
|
|
- [x] src/__tests__/planAuditDescription.test.ts
|
|
- [x] src/__tests__/planCategory.test.ts
|
|
- [x] src/__tests__/received-invoices-vat.test.ts
|
|
- [x] src/__tests__/schema-nan.test.ts
|
|
- [x] src/__tests__/setup.ts
|
|
- [x] src/__tests__/warehouse.test.ts
|
|
|
|
## src/admin/
|
|
|
|
- [x] src/admin/AdminApp.tsx
|
|
- [x] src/admin/GlobalStyles.tsx
|
|
|
|
## src/admin/components/
|
|
|
|
- [x] src/admin/components/AlertContainer.tsx
|
|
- [x] src/admin/components/AttendanceShiftTable.tsx
|
|
- [x] src/admin/components/BulkAttendanceModal.tsx
|
|
- [x] src/admin/components/BulkPlanModal.tsx
|
|
- [x] src/admin/components/ErrorBoundary.tsx
|
|
- [x] src/admin/components/Forbidden.tsx
|
|
- [x] src/admin/components/OrderConfirmationModal.tsx
|
|
- [x] src/admin/components/PlanCategoriesModal.tsx
|
|
- [x] src/admin/components/PlanCellModal.tsx
|
|
- [x] src/admin/components/PlanGrid.tsx
|
|
- [x] src/admin/components/PlanRangeChips.tsx
|
|
- [x] src/admin/components/ProjectFileManager.tsx
|
|
- [x] src/admin/components/RichEditor.tsx
|
|
- [x] src/admin/components/ShiftFormModal.tsx
|
|
- [x] src/admin/components/ShortcutsHelp.tsx
|
|
|
|
## src/admin/components/dashboard/
|
|
|
|
- [x] src/admin/components/dashboard/DashActivityFeed.tsx
|
|
- [x] src/admin/components/dashboard/DashAttendanceToday.tsx
|
|
- [x] src/admin/components/dashboard/DashKpiCards.tsx
|
|
- [x] src/admin/components/dashboard/DashProfile.tsx
|
|
- [x] src/admin/components/dashboard/DashQuickActions.tsx
|
|
- [x] src/admin/components/dashboard/DashSessions.tsx
|
|
- [x] src/admin/components/dashboard/DashTodayPlan.tsx
|
|
|
|
## src/admin/components/odin/
|
|
|
|
- [x] src/admin/components/odin/InvoiceReviewCard.tsx
|
|
- [x] src/admin/components/odin/OdinChat.tsx
|
|
- [x] src/admin/components/odin/OdinComposer.tsx
|
|
- [x] src/admin/components/odin/OdinMark.tsx
|
|
- [x] src/admin/components/odin/OdinSidebar.tsx
|
|
- [x] src/admin/components/odin/OdinThread.tsx
|
|
- [x] src/admin/components/odin/types.ts
|
|
|
|
## src/admin/components/warehouse/
|
|
|
|
- [x] src/admin/components/warehouse/ItemPicker.tsx
|
|
- [x] src/admin/components/warehouse/ReservationPicker.tsx
|
|
|
|
## src/admin/context/
|
|
|
|
- [x] src/admin/context/AlertContext.tsx
|
|
- [x] src/admin/context/AuthContext.tsx
|
|
|
|
## src/admin/hooks/
|
|
|
|
- [x] src/admin/hooks/useAttendanceAdmin.ts
|
|
- [x] src/admin/hooks/useDebounce.ts
|
|
- [x] src/admin/hooks/useModalLock.ts
|
|
- [x] src/admin/hooks/usePaginatedQuery.ts
|
|
- [x] src/admin/hooks/usePlanWork.ts
|
|
- [x] src/admin/hooks/useReducedMotion.ts
|
|
- [x] src/admin/hooks/useTableSort.ts
|
|
|
|
## src/admin/lib/
|
|
|
|
- [x] src/admin/lib/apiAdapter.ts
|
|
- [x] src/admin/lib/entityTypeLabels.ts
|
|
|
|
## src/admin/lib/queries/
|
|
|
|
- [x] src/admin/lib/queries/ai.ts
|
|
- [x] src/admin/lib/queries/attendance.ts
|
|
- [x] src/admin/lib/queries/auditLog.ts
|
|
- [x] src/admin/lib/queries/common.ts
|
|
- [x] src/admin/lib/queries/dashboard.ts
|
|
- [x] src/admin/lib/queries/invoices.ts
|
|
- [x] src/admin/lib/queries/leave.ts
|
|
- [x] src/admin/lib/queries/mutations.ts
|
|
- [x] src/admin/lib/queries/offers.ts
|
|
- [x] src/admin/lib/queries/orders.ts
|
|
- [x] src/admin/lib/queries/plan.ts
|
|
- [x] src/admin/lib/queries/projects.ts
|
|
- [x] src/admin/lib/queries/settings.ts
|
|
- [x] src/admin/lib/queries/trips.ts
|
|
- [x] src/admin/lib/queries/users.ts
|
|
- [x] src/admin/lib/queries/vehicles.ts
|
|
- [x] src/admin/lib/queries/warehouse.ts
|
|
|
|
## src/admin/lib/
|
|
|
|
- [x] src/admin/lib/queryClient.ts
|
|
|
|
## src/admin/pages/
|
|
|
|
- [x] src/admin/pages/Attendance.tsx
|
|
- [x] src/admin/pages/AttendanceAdmin.tsx
|
|
- [x] src/admin/pages/AttendanceBalances.tsx
|
|
- [x] src/admin/pages/AttendanceCreate.tsx
|
|
- [x] src/admin/pages/AttendanceHistory.tsx
|
|
- [x] src/admin/pages/AttendanceLocation.tsx
|
|
- [x] src/admin/pages/AuditLog.tsx
|
|
- [x] src/admin/pages/CompanySettings.tsx
|
|
- [x] src/admin/pages/Dashboard.tsx
|
|
- [x] src/admin/pages/InvoiceDetail.tsx
|
|
- [x] src/admin/pages/Invoices.tsx
|
|
- [x] src/admin/pages/LeaveApproval.tsx
|
|
- [x] src/admin/pages/LeaveRequests.tsx
|
|
- [x] src/admin/pages/Login.tsx
|
|
- [x] src/admin/pages/NotFound.tsx
|
|
- [x] src/admin/pages/Odin.tsx
|
|
- [x] src/admin/pages/OfferDetail.tsx
|
|
- [x] src/admin/pages/Offers.tsx
|
|
- [x] src/admin/pages/OffersCustomers.tsx
|
|
- [x] src/admin/pages/OffersTemplates.tsx
|
|
- [x] src/admin/pages/OrderDetail.tsx
|
|
- [x] src/admin/pages/Orders.tsx
|
|
- [x] src/admin/pages/PlanWork.tsx
|
|
- [x] src/admin/pages/ProjectDetail.tsx
|
|
- [x] src/admin/pages/Projects.tsx
|
|
- [x] src/admin/pages/ReceivedInvoices.tsx
|
|
- [x] src/admin/pages/Settings.tsx
|
|
- [x] src/admin/pages/Trips.tsx
|
|
- [x] src/admin/pages/TripsAdmin.tsx
|
|
- [x] src/admin/pages/TripsHistory.tsx
|
|
- [x] src/admin/pages/UiKit.tsx
|
|
- [x] src/admin/pages/Users.tsx
|
|
- [x] src/admin/pages/Vehicles.tsx
|
|
- [x] src/admin/pages/Warehouse.tsx
|
|
- [x] src/admin/pages/WarehouseCategories.tsx
|
|
- [x] src/admin/pages/WarehouseInventory.tsx
|
|
- [x] src/admin/pages/WarehouseInventoryDetail.tsx
|
|
- [x] src/admin/pages/WarehouseInventoryForm.tsx
|
|
- [x] src/admin/pages/WarehouseIssueDetail.tsx
|
|
- [x] src/admin/pages/WarehouseIssueForm.tsx
|
|
- [x] src/admin/pages/WarehouseIssues.tsx
|
|
- [x] src/admin/pages/WarehouseItemDetail.tsx
|
|
- [x] src/admin/pages/WarehouseItems.tsx
|
|
- [x] src/admin/pages/WarehouseLocations.tsx
|
|
- [x] src/admin/pages/WarehouseReceiptDetail.tsx
|
|
- [x] src/admin/pages/WarehouseReceiptForm.tsx
|
|
- [x] src/admin/pages/WarehouseReceipts.tsx
|
|
- [x] src/admin/pages/WarehouseReports.tsx
|
|
- [x] src/admin/pages/WarehouseReservations.tsx
|
|
- [x] src/admin/pages/WarehouseSuppliers.tsx
|
|
|
|
## src/admin/
|
|
|
|
- [x] src/admin/theme.test.ts
|
|
- [x] src/admin/theme.ts
|
|
|
|
## src/admin/ui/
|
|
|
|
- [x] src/admin/ui/Alert.tsx
|
|
- [x] src/admin/ui/AppShell.tsx
|
|
- [x] src/admin/ui/Button.tsx
|
|
- [x] src/admin/ui/Card.tsx
|
|
- [x] src/admin/ui/Checkbox.tsx
|
|
- [x] src/admin/ui/ConfirmDialog.tsx
|
|
- [x] src/admin/ui/DataTable.tsx
|
|
- [x] src/admin/ui/DateField.tsx
|
|
- [x] src/admin/ui/EmptyState.tsx
|
|
- [x] src/admin/ui/Field.tsx
|
|
- [x] src/admin/ui/FileUpload.tsx
|
|
- [x] src/admin/ui/FilterBar.tsx
|
|
- [x] src/admin/ui/LoadingState.tsx
|
|
- [x] src/admin/ui/Modal.tsx
|
|
- [x] src/admin/ui/MonthField.tsx
|
|
- [x] src/admin/ui/MuiProvider.tsx
|
|
- [x] src/admin/ui/PageEnter.tsx
|
|
- [x] src/admin/ui/PageHeader.tsx
|
|
- [x] src/admin/ui/Pagination.tsx
|
|
- [x] src/admin/ui/ProgressBar.tsx
|
|
- [x] src/admin/ui/RichText.tsx
|
|
- [x] src/admin/ui/Select.tsx
|
|
- [x] src/admin/ui/SidebarNav.tsx
|
|
- [x] src/admin/ui/StatCard.tsx
|
|
- [x] src/admin/ui/StatusChip.tsx
|
|
- [x] src/admin/ui/Tabs.tsx
|
|
- [x] src/admin/ui/TextField.tsx
|
|
- [x] src/admin/ui/ThemeToggle.tsx
|
|
- [x] src/admin/ui/TimeField.tsx
|
|
- [x] src/admin/ui/index.ts
|
|
- [x] src/admin/ui/navData.tsx
|
|
- [x] src/admin/ui/useDialogScrollLock.ts
|
|
|
|
## src/admin/utils/
|
|
|
|
- [x] src/admin/utils/api.ts
|
|
- [x] src/admin/utils/attendanceHelpers.ts
|
|
- [x] src/admin/utils/dashboardHelpers.ts
|
|
- [x] src/admin/utils/formatters.ts
|
|
|
|
## src/config/
|
|
|
|
- [x] src/config/database.ts
|
|
- [x] src/config/env.ts
|
|
|
|
## src/context/
|
|
|
|
- [x] src/context/ThemeContext.tsx
|
|
|
|
## src/
|
|
|
|
- [x] src/main.tsx
|
|
|
|
## src/middleware/
|
|
|
|
- [x] src/middleware/auth.ts
|
|
- [x] src/middleware/security.ts
|
|
|
|
## src/routes/admin/
|
|
|
|
- [x] src/routes/admin/ai.ts
|
|
- [x] src/routes/admin/attendance.ts
|
|
- [x] src/routes/admin/audit-log.ts
|
|
- [x] src/routes/admin/auth.ts
|
|
- [x] src/routes/admin/bank-accounts.ts
|
|
- [x] src/routes/admin/company-settings.ts
|
|
- [x] src/routes/admin/customers.ts
|
|
- [x] src/routes/admin/dashboard.ts
|
|
- [x] src/routes/admin/invoices-pdf.ts
|
|
- [x] src/routes/admin/invoices.ts
|
|
- [x] src/routes/admin/leave-requests.ts
|
|
- [x] src/routes/admin/offers-pdf.ts
|
|
- [x] src/routes/admin/orders-pdf.ts
|
|
- [x] src/routes/admin/orders.ts
|
|
- [x] src/routes/admin/plan.ts
|
|
- [x] src/routes/admin/profile.ts
|
|
- [x] src/routes/admin/project-files.ts
|
|
- [x] src/routes/admin/projects.ts
|
|
- [x] src/routes/admin/quotations.ts
|
|
- [x] src/routes/admin/received-invoices.ts
|
|
- [x] src/routes/admin/roles.ts
|
|
- [x] src/routes/admin/scope-templates.ts
|
|
- [x] src/routes/admin/sessions.ts
|
|
- [x] src/routes/admin/totp.ts
|
|
- [x] src/routes/admin/trips.ts
|
|
- [x] src/routes/admin/users.ts
|
|
- [x] src/routes/admin/vehicles.ts
|
|
- [x] src/routes/admin/warehouse.ts
|
|
|
|
## src/schemas/
|
|
|
|
- [x] src/schemas/ai.schema.ts
|
|
- [x] src/schemas/attendance.schema.ts
|
|
- [x] src/schemas/auth.schema.ts
|
|
- [x] src/schemas/bank-accounts.schema.ts
|
|
- [x] src/schemas/common.ts
|
|
- [x] src/schemas/customers.schema.ts
|
|
- [x] src/schemas/invoices.schema.ts
|
|
- [x] src/schemas/leave-requests.schema.ts
|
|
- [x] src/schemas/offers.schema.ts
|
|
- [x] src/schemas/orders.schema.ts
|
|
- [x] src/schemas/plan.schema.ts
|
|
- [x] src/schemas/planCategory.schema.ts
|
|
- [x] src/schemas/profile.schema.ts
|
|
- [x] src/schemas/projects.schema.ts
|
|
- [x] src/schemas/received-invoices.schema.ts
|
|
- [x] src/schemas/roles.schema.ts
|
|
- [x] src/schemas/scope-templates.schema.ts
|
|
- [x] src/schemas/settings.schema.ts
|
|
- [x] src/schemas/trips.schema.ts
|
|
- [x] src/schemas/users.schema.ts
|
|
- [x] src/schemas/vehicles.schema.ts
|
|
- [x] src/schemas/warehouse.schema.ts
|
|
|
|
## src/
|
|
|
|
- [x] src/server.ts
|
|
|
|
## src/services/
|
|
|
|
- [x] src/services/ai.service.ts
|
|
- [x] src/services/attendance.service.ts
|
|
- [x] src/services/audit.ts
|
|
- [x] src/services/auth.ts
|
|
- [x] src/services/exchange-rates.ts
|
|
- [x] src/services/invoice-alerts.ts
|
|
- [x] src/services/invoices.service.ts
|
|
- [x] src/services/leave-notification.ts
|
|
- [x] src/services/mailer.ts
|
|
- [x] src/services/nas-file-manager.ts
|
|
- [x] src/services/nas-financials-manager.ts
|
|
- [x] src/services/nas-offers-manager.ts
|
|
- [x] src/services/numbering.service.ts
|
|
- [x] src/services/offers.service.ts
|
|
- [x] src/services/orders.service.ts
|
|
- [x] src/services/plan.service.ts
|
|
- [x] src/services/planCategory.service.ts
|
|
- [x] src/services/projects.service.ts
|
|
- [x] src/services/system-settings.ts
|
|
- [x] src/services/users.service.ts
|
|
- [x] src/services/warehouse.service.ts
|
|
|
|
## src/types/
|
|
|
|
- [x] src/types/fastify.d.ts
|
|
- [x] src/types/index.ts
|
|
|
|
## src/utils/
|
|
|
|
- [x] src/utils/czech-holidays.ts
|
|
- [x] src/utils/date.ts
|
|
- [x] src/utils/encryption.ts
|
|
- [x] src/utils/html-to-pdf.ts
|
|
- [x] src/utils/pagination.ts
|
|
- [x] src/utils/planAuditDescription.ts
|
|
- [x] src/utils/response.ts
|
|
- [x] src/utils/totp.ts
|
|
|
|
## src/
|
|
|
|
- [x] src/vite-env.d.ts
|
|
|
|
## ./
|
|
|
|
- [x] tsconfig.app.json
|
|
- [x] tsconfig.json
|
|
- [x] tsconfig.server.json
|
|
- [x] vite.config.ts
|
|
- [x] vitest.config.ts
|