| 2026-04-14 |
Initial quality tracking created |
| 2026-04-14 |
First real assessment — graded Infrastructure B, API routes C, UI components C |
| 2026-05-14 |
Added 13 retry tests across 5 API route test files (account +3, feedback +3, purge-trash +2, versions +2, versionId +3). Vitest total: 1900 |
| 2026-04-16 |
Full reassessment after MVP completion (issues #23–#105). All 10 MVP features implemented. 11 test files (58 tests), 8 E2E specs. Lint, typecheck, all tests passing. No open bugs. |
| 2026-04-16 |
Post-MVP update (#119). Pages upgraded B→A (page-tree extraction + 35 unit tests from #113). Import/Export upgraded B→A (E2E added in #111). Search and Members notes updated with E2E specs from #110/#112 and flaky test bug #118. Test totals: 12 Vitest files (93 tests), 11 E2E specs (42 tests). |
| 2026-04-17 |
Full reassessment (#155). Auth B→A (sign-in 8 tests + sign-up 9 tests added). App Shell B→A (sidebar-context 8 tests added). Search B→A (flaky test bug #118 closed). Removed 5 resolved known gaps. Added new test files: page-search (5), relative-time (7), retry (6), sentry.unit (20), lexical-dispatch-safety (1). Test totals: 21 Vitest files (174 tests), 11 E2E specs (42 tests). |
| 2026-04-18 |
Test count refresh (#227). Counts drifted as features landed without quality.md updates. Added 11 new Vitest files and 9 new E2E specs. Updated counts for existing files that grew. Test totals: 32 Vitest files (252 tests), 20 E2E specs (74 tests). |
| 2026-04-19 |
Test count drift fix (#245). Added missing invite-form.test.ts (4 tests) to Members domain. Test totals: 33 Vitest files (256 tests), 20 E2E specs (74 tests). |
| 2026-04-19 |
Test count drift fix (#257). Added 3 error boundary test files from #252: route-error.test.ts (6), [workspaceSlug]/error.test.ts (4), [workspaceSlug]/[pageId]/error.test.ts (4). Test totals: 36 Vitest files (270 tests), 20 E2E specs (74 tests). |
| 2026-04-20 |
Test count drift fix (#273). Added 3 missing test files: floating-image-toolbar.test.ts (20), image-node.test.ts (17), dialog-design-spec.test.ts (3). Test totals: 39 Vitest files (310 tests), 20 E2E specs (74 tests). |
| 2026-04-20 |
Test count drift fix (#286). Updated 4 files that grew: sign-up/page.test.tsx (10→11), floating-image-toolbar.test.ts (20→21), image-node.test.ts (17→19), sentry.test.ts (2→3). Added missing create-workspace-dialog.test.tsx (5 tests). Test totals: 40 Vitest files (320 tests), 20 E2E specs (74 tests). |
| 2026-04-20 |
Test count drift fix (#291). Added missing account/route.test.ts (5 tests) from account deletion feature (#288). Updated API Routes domain summary. Test totals: 41 Vitest files (325 tests), 20 E2E specs (74 tests). |
| 2026-04-21 |
Test count refresh (#333). Added 5 missing Vitest files: oauth-buttons.test.tsx (6), page-visit.test.ts (2), word-count.test.ts (18), use-persisted-expanded.test.ts (9), migrations.test.ts (15). Added 3 missing E2E specs: account-deletion.spec.ts (4), workspace-limit.spec.ts (2), visual-regression.spec.ts (1). Updated 3 files with grown counts: sentry.unit.test.ts (20→28), search/route.test.ts (8→9), callback/route.test.ts (3→7). Test totals: 46 Vitest files (388 tests), 23 E2E specs (81 tests). |
| 2026-04-21 |
Test count refresh (#405). Added 8 new Vitest files: auto-link-plugin.test.ts (12), table-serialization.test.ts (6), version-save-error-handling.test.ts (3), focus-mode-hint-design-spec.test.ts (3), workspace-home-design-spec.test.ts (5), cron/purge-trash/route.test.ts (7), pages/[pageId]/versions/route.test.ts (11), pages/[pageId]/versions/[versionId]/route.test.ts (11). Added 6 new E2E specs: editor-table.spec.ts (5), favorites.spec.ts (7), page-cover.spec.ts (5), page-duplicate.spec.ts (4), trash.spec.ts (7), version-history.spec.ts (5). Updated 3 files with grown counts: sidebar-context.test.tsx (12→19), sentry.unit.test.ts (28→44), migrations.test.ts (15→19). Test totals: 54 Vitest files (473 tests), 29 E2E specs (114 tests). |
| 2026-04-21 |
Test count drift fix (#425). Added 5 new Vitest files: feedback/route.test.ts (15), feedback-form-design-spec.test.ts (5), track-event-server.test.ts (5), track-event.test.ts (3), use-screenshot.test.ts (2). Updated 3 files with grown counts: sentry.unit.test.ts (44→47), search/route.test.ts (9→10), editor-table.spec.ts (5→8). Added Feedback domain. Test totals: 59 Vitest files (507 tests), 29 E2E specs (117 tests). |
| 2026-04-22 |
Test count refresh (#521). Added Database domain (grade A). Added 7 new Vitest files: database.test.ts (36), database-filters.test.ts (47), formula.test.ts (80), formula-design-spec.test.ts (2), person-skeleton-design-spec.test.ts (1), calendar-view-design-spec.test.ts (1), gallery-view-design-spec.test.ts (2). Added 1 missing Editor Vitest file: save-error-handling.test.ts (5). Added 6 new E2E specs: database-crud.spec.ts (6), database-board.spec.ts (4), database-calendar.spec.ts (4), database-row-page.spec.ts (6), database-views.spec.ts (6), page-link-search.spec.ts (4). Updated 4 files with grown counts: page-tree.test.ts (35→37), sentry.unit.test.ts (47→84), sentry.test.ts (3→4), migrations.test.ts (19→22). Test totals: 67 Vitest files (724 tests), 35 E2E specs (147 tests). |
| 2026-04-22 |
Test count drift fix (#531). Added 1 new Vitest file: filter-sort-toolbar-design-spec.test.ts (2). Added 3 new E2E specs: database-gallery.spec.ts (4), database-inline.spec.ts (4), database-list.spec.ts (4). Corrected Vitest file count from 67→68 (supabase/migrations was already tracked but miscounted). Test totals: 68 Vitest files (726 tests), 38 E2E specs (159 tests). Note: previous summary (724 tests) was based on grep which overcounts; 726 is the authoritative Vitest output. |
| 2026-04-22 |
Test count drift fix (#545). Added 2 new Vitest files: property-type-picker.test.ts (6), save-debounce.test.ts (6). Added 1 new E2E spec: database-column-reorder.spec.ts (3). Updated Auth domain notes: OAuth is fully functional (removed stale "coming soon" note). Removed stale OAuth entry from Known Gaps. Test totals: 70 Vitest files (738 tests), 39 E2E specs (162 tests). |
| 2026-04-22 |
Test count drift fix (#576). Added 1 new Vitest file: database-width.test.ts (3). Updated 4 files with grown counts: sentry.unit.test.ts (84→90), oauth-buttons.test.tsx (6→10), collapsible-toggle.test.ts (8→12), property-type-picker.test.ts (6→14). Test totals: 71 Vitest files (763 tests), 39 E2E specs (162 tests). |
| 2026-04-22 |
Test count refresh (#602). Added 2 new Vitest files: property-type-picker-completeness.test.ts (5), table-view-value-format.test.ts (10). Added 4 new E2E specs: database-select-options.spec.ts (3), database-table-editor-portal.spec.ts (2), editor-turn-into.spec.ts (6), editor-focus-mode.spec.ts (5). Updated 4 files with grown counts: sentry.unit.test.ts (90→103), migrations.test.ts (22→26), database-crud.spec.ts (6→8), database-row-page.spec.ts (6→7). Test totals: 73 Vitest files (795 tests), 43 E2E specs (181 tests). |
| 2026-04-23 |
Test count drift fix (#613). Added 1 new E2E spec: editor-auto-link.spec.ts (5 tests) from #598. Updated database-select-options.spec.ts (3→6) from #611. Vitest grew by 5 tests (795→800) across existing files. Test totals: 73 Vitest files (800 tests), 44 E2E specs (189 tests). |
| 2026-04-23 |
Test count drift fix (#627). Added 1 new Vitest file: usage-tracking-guard.test.ts (5 tests). Added 1 new E2E spec: database-view-config.spec.ts (4 tests). Updated 4 files with grown counts: sentry.unit.test.ts (103→108), track-event-server.test.ts (5→6), track-event.test.ts (3→4), migrations.test.ts (26→27). Updated database-views.spec.ts (6→10). Test totals: 74 Vitest files (808 tests), 45 E2E specs (197 tests). |
| 2026-04-24 |
Test count drift fix (#650). Added 2 new Vitest files: [workspaceSlug]/settings/error.test.ts (4 tests), [workspaceSlug]/settings/members/error.test.ts (4 tests). Added 2 new E2E specs: theme-toggle.spec.ts (4 tests), database-filter-types.spec.ts (4 tests). Updated 1 file with grown count: database-filters.test.ts (47→54). Test totals: 76 Vitest files (823 tests), 47 E2E specs (205 tests). |
| 2026-04-24 |
Test count drift fix (#696). Added 2 new Vitest files: column-helpers.test.ts (65 tests), table-defaults.test.ts (27 tests). Added 2 new E2E specs: database-table-keyboard.spec.ts (6 tests), skip-to-content.spec.ts (2 tests). Updated 4 Vitest files with grown counts: database.test.ts (36→55), table-view-value-format.test.ts (10→33), migrations.test.ts (27→29), loading.test.ts ×3 (14→15). Updated 2 E2E specs with grown counts: database-table-editor-portal.spec.ts (2→3), editor-drag.spec.ts (3→4). Test totals: 78 Vitest files (960 tests), 49 E2E specs (215 tests). |
| 2026-04-25 |
Test count drift fix (#786). Added 38 new Vitest files (mostly database component, hook, property type, and view tests): csv-export.test.ts (38), table-cell.test.tsx (40), database-view-client.test.tsx (6), filter-bar.test.tsx (20), filter-value-editor.test.tsx (34), sort-menu.test.tsx (19), rename-property-dialog.test.tsx (14), row-properties-header.test.tsx (17), view-tabs.test.tsx (24), use-database-filters.test.ts (18), use-database-properties.test.ts (18), use-database-rows.test.ts (19), use-database-views.test.ts (24), checkbox.test.tsx (8), computed.test.tsx (15), date.test.tsx (12), email.test.tsx (8), files.test.tsx (11), formula.test.tsx (6), multi-select.test.tsx (10), number.test.tsx (14), person.test.tsx (9), phone.test.tsx (10), relation.test.tsx (12), select-dropdown.test.tsx (32), select.test.tsx (11), status.test.tsx (14), text.test.tsx (10), url.test.tsx (10), board-view-helpers.test.ts (18), board-view.test.tsx (13), calendar-view-helpers.test.ts (35), calendar-view.test.tsx (15), database-empty-state.test.tsx (14), gallery-view.test.tsx (17), list-keyboard.test.ts (14), list-view.test.tsx (22), row-count-announcer.test.tsx (7), row-count-status-bar.test.tsx (5). Added 2 new loading test files: [workspaceSlug]/settings/loading.test.ts (5), [workspaceSlug]/settings/members/loading.test.ts (5). Added 10 new E2E specs: database-add-property-types.spec.ts (10), database-board-keyboard.spec.ts (6), database-csv-export.spec.ts (3), database-files.spec.ts (4), database-filter-keyboard.spec.ts (6), database-formula.spec.ts (3), database-gallery-keyboard.spec.ts (5), database-list-keyboard.spec.ts (6), database-relation.spec.ts (3), public-routes.spec.ts (11). Updated 3 files with grown counts: gallery-view-design-spec.test.ts (2→3), migrations.test.ts (29→33), database-crud.spec.ts (8→10). Test totals: 119 Vitest files (1618 tests), 59 E2E specs (274 tests). |
| 2026-04-29 |
Font family selector (#848). Added 1 new E2E spec: editor-font-family.spec.ts (5 tests). Test totals: 126 Vitest files (1722 tests), 62 E2E specs (289 tests). |
| 2026-04-29 |
Mobile sidebar close-on-navigate fix (#853). Updated sidebar-context.test.tsx (19→21 tests): added mobile close-on-navigate and desktop no-close-on-navigate tests. Updated e2e/sidebar-responsive.spec.ts (3→4 tests): added mobile Sheet auto-close after page navigation. Test totals: 126 Vitest files (1724 tests), 63 E2E specs (300 tests). |
| 2026-05-01 |
Timeseries aggregator fix (#877). Added 1 new Vitest file: build-timeseries.test.mjs (6 tests) — regression tests for missing distribution buckets and CI pass rate fallback. Test totals: 127 Vitest files (1736 tests), 64 E2E specs (318 tests). |
| 2026-04-29 |
API route transient error classification fix (#856). Updated 4 files with regression tests: feedback/route.test.ts (15→17), account/route.test.ts (5→6), search/route.test.ts (10→11), cron/purge-trash/route.test.ts (7→8). Test totals: 126 Vitest files (1730 tests), 63 E2E specs (300 tests). |
| 2026-04-29 |
Interactive demo editor on landing page (#860). Added 1 new E2E spec: demo-editor.spec.ts (11 tests). Corrected public-routes.spec.ts count (11→14 tests). Test totals: 126 Vitest files (1730 tests), 64 E2E specs (314 tests). |
| 2026-04-30 |
SEO routes auth middleware fix (#870). Updated public-routes.spec.ts (14→18 tests): added 4 regression tests for /robots.txt, /sitemap.xml, /opengraph-image, /twitter-image. Test totals: 126 Vitest files (1730 tests), 64 E2E specs (318 tests). |
| 2026-05-01 |
ARIA labels and data-testid attributes for database property type editors (#873). Added aria-label and data-testid to 24 database component files. No new tests — attribute-only changes. Test totals unchanged: 126 Vitest files (1730 tests), 64 E2E specs (318 tests). |
| 2026-05-04 |
W19 automation audit. Vitest run confirms 127 files (1736 tests), 64 E2E specs (~318 tests). All domains remain at grade A. No new test files this week — changes were attribute-only (ARIA), bug fixes with existing test coverage, and chore PRs. |
| 2026-05-04 |
Health endpoint latency fix (#892). Updated health/route.test.ts count (6→7 tests) — was undercounted. Test totals unchanged: 127 Vitest files (1736 tests), 64 E2E specs (318 tests). |
| 2026-05-04 |
Bundle size reduction (#893). Lazy-loaded Supabase client in auth forms, dynamically imported OAuthButtons, extracted delete-workspace-section, added client wrappers for workspace-home and members-page. All 11 routes now under 200kB gzipped first-load JS. No test changes. Test totals unchanged: 127 Vitest files (1736 tests), 64 E2E specs (318 tests). |
| 2026-05-06 |
Design-spec compliance checks (#697). Added 1 new Vitest file: design-spec-compliance.test.ts (6 tests) — global static checks for rounded corners, hex/RGB/HSL colors, hardcoded font-family, and arbitrary spacing values across all component files (excluding shadcn/ui). Test totals: 128 Vitest files (1742 tests), 64 E2E specs (318 tests). |
| 2026-05-06 |
Database search filter (#732). Added 1 new E2E spec: e2e/database-search.spec.ts (2 tests). Added database-search-input.tsx component with stories. Test totals: 128 Vitest files (1742 tests), 65 E2E specs (320 tests). |
| 2026-05-06 |
Optimistic database mutations (#804). Updated 2 Vitest files with grown counts: use-database-rows.test.ts (19→23), use-database-properties.test.ts (18→20). New tests cover optimistic insert with placeholder, server replacement, rollback on failure, and concurrent temp ID uniqueness. Test totals: 130 Vitest files (1766 tests), 67 E2E specs (328 tests). |
| 2026-05-06 |
Row virtualization for database table view (#778). Added @tanstack/react-virtual dependency. Modified table-view.tsx (virtualizer for rows >50), table-row.tsx (own grid when virtualized), table-navigation.ts (scroll-to-row for off-screen cells). Added 2 new Storybook stories (Virtualized, VirtualizedCompact). Updated visual regression baselines. No new test files. Test totals unchanged: 128 Vitest files (1742 tests), 65 E2E specs (320 tests). |
| 2026-05-06 |
Fix database duplication (#908). Added duplicateDatabase and remapViewConfig to src/lib/database.ts. Updated both duplicate code paths (sidebar and page-menu) to handle database pages. Added 1 new Vitest file: database-duplicate.test.ts (11 tests). Added 1 new E2E spec: e2e/database-duplicate.spec.ts (2 tests). Test totals: 129 Vitest files (1753 tests), 66 E2E specs (322 tests). |
| 2026-05-06 |
Bulk row selection and delete (#779). Added use-row-selection.ts hook, bulk-action-bar.tsx component, checkbox column in table view, bulk delete in use-database-rows.ts. Added 1 new Vitest file: use-row-selection.test.ts (10 tests). Added 1 new E2E spec: e2e/database-bulk-select.spec.ts (6 tests). Test totals: 130 Vitest files (1763 tests), 67 E2E specs (328 tests). |
| 2026-05-07 |
Duplicate row action (#909). Added duplicateRow to database.ts, handleDuplicateRow to use-database-rows.ts. Added right-click context menus with Duplicate action to table view (table-row.tsx), board view (board-view.tsx), and list view (list-view.tsx). Added 1 new E2E spec: e2e/database-duplicate-row.spec.ts (3 tests). Updated stories for table-row, board-view, list-view. Test totals: 130 Vitest files (1766 tests), 68 E2E specs (331 tests). |
| 2026-05-07 |
ESLint no-restricted-imports rule for lazyCaptureException (#914). Added lint rule to eslint.config.mjs blocking direct imports of lazyCaptureException from @/lib/capture. Migrated 5 remaining production files to import from @/lib/sentry. Updated 3 test mocks. No new tests. Test totals unchanged: 130 Vitest files (1766 tests), 68 E2E specs (331 tests). |
| 2026-05-07 |
Confirmation dialog for property deletion (#920). Added AlertDialog confirmation to table-column-header.tsx. Added 1 new E2E test to database-crud.spec.ts (10→11): cancel property deletion via confirmation dialog. Updated 2 existing E2E tests to handle confirmation step. Added DeleteConfirmation Storybook story. Test totals: 130 Vitest files (1766 tests), 68 E2E specs (332 tests). |
| 2026-05-07 |
Confirmation dialog for bulk row deletion (#921). Added AlertDialog confirmation to bulk-action-bar.tsx. Replaced 1 E2E test with 2 new tests (confirm + cancel) in database-bulk-select.spec.ts (6→7). Added 2 Storybook stories (DeleteConfirmation, DeleteConfirmationSingleRow). Test totals: 130 Vitest files (1766 tests), 68 E2E specs (333 tests). |
| 2026-05-07 |
Calendar keyboard navigation (#924). Added calendar-keyboard.ts hook and wired into calendar-view.tsx. Added 1 new Vitest file: calendar-keyboard.test.ts (25 tests). Added 1 new E2E spec: e2e/database-calendar-keyboard.spec.ts (7 tests). Test totals: 131 Vitest files (1791 tests), 69 E2E specs (340 tests). |
| 2026-05-07 |
E2E test request browser context fallback (#931). Updated sentry.unit.test.ts (108→149 tests): added 4 regression tests for browser context fallback in isE2ETestRequest. Test totals: 131 Vitest files (1795 tests), 69 E2E specs (340 tests). |
| 2026-05-07 |
Client-side Supabase cookie null-safety (#933). Added null guard to createBrowserClient cookie options in client.ts, matching server-side pattern. Added 1 new Vitest file: supabase/client.test.ts (7 tests). Test totals: 132 Vitest files (1802 tests), 69 E2E specs (340 tests). |
| 2026-05-07 |
Transient fetch retry on search RPC (#937). Extended retryOnNetworkError to handle thrown transient errors. Wrapped search route RPC call with retry. Updated 2 files with grown counts: search/route.test.ts (11→14), retry.test.ts (6→9). Test totals: 132 Vitest files (1808 tests), 69 E2E specs (340 tests). |
| 2026-05-07 |
Prefers-reduced-motion accessibility (#940). Added @media (prefers-reduced-motion: reduce) rule to globals.css. Added 1 new Vitest file: reduced-motion.test.ts (6 tests). Test totals: 133 Vitest files (1818 tests), 69 E2E specs (340 tests). |
| 2026-05-07 |
Floating toolbar tooltips with keyboard shortcuts (#927). Added Tooltip wrapping to ToolbarButton in floating-toolbar-plugin.tsx with OS-aware shortcut labels. Updated stories with TooltipProvider decorator and 2 new stories (WindowsShortcuts, MacShortcuts). No new test files. Test totals unchanged: 131 Vitest files (1795 tests), 69 E2E specs (340 tests). |
| 2026-05-08 |
Replace direct sonner imports with lazy @/lib/toast wrapper (#949). Updated 5 source files and 5 test mocks. Added ESLint no-restricted-imports rule for sonner toast. Extended ToastData type with action property. No new tests. Test totals unchanged: 133 Vitest files (1818 tests), 69 E2E specs (340 tests). |
| 2026-05-08 |
Automated accessibility audit with axe-core (#956). Added @axe-core/playwright dev dependency. New E2E spec e2e/accessibility.spec.ts (5 tests) scanning sign-in, workspace home, page editor, workspace settings, and members pages. Fixed button-name violation on role select triggers (added aria-label). Fixed aria-input-field-name violation on editor contenteditable (added aria-label). Known pre-existing violations (color-contrast, link-in-text-block) documented and excluded. Test totals: 133 Vitest files (1818 tests), 70 E2E specs (345 tests). |
| 2026-05-08 |
Storybook coverage for 30 components (#957). Added 30 co-located *.stories.tsx files for components that predated the story requirement: 18 editor plugins (auto-link, callout, code-highlight, code-language-selector, collapsible, database, demo-slash-command, draggable-block, editor, floating-image-toolbar, image-node, image-plugin, list-tab-indentation, local-persistence, page-link, table-action-menu, turn-into, word-count), 8 top-level components (danger-zone-settings, delete-workspace-section, page-content-client, page-view-client, providers, settings-page-client, settings-page-content, workspace-home-client), 2 sidebar components (app-shell, sidebar-context), 2 members components (members-page, members-page-client). Updated 160 visual regression baselines. No new test files — stories only. Test totals unchanged: 133 Vitest files (1818 tests), 70 E2E specs (345 tests). |
| 2026-05-08 |
Mobile viewport E2E tests (#958). Added e2e/mobile-responsive.spec.ts (5 tests) covering page creation/editing, database table horizontal scroll, board view card interaction with snap-scroll indicator, slash command menu positioning, and floating toolbar positioning at 375×667 mobile viewport. Test totals: 133 Vitest files (1818 tests), 71 E2E specs (350 tests). |
| 2026-05-08 |
Bundle budget CI check (#960). Added scripts/check-bundle.mjs — standalone script that parses .next/diagnostics/route-bundle-stats.json, gzips each chunk, and asserts every page route is ≤ 200 kB. Added pnpm test:bundle script and bundle CI job in .github/workflows/ci.yml. Supports allowlist for exceptions. Not a Vitest/E2E test — runs as a separate CI job after pnpm build. Test totals unchanged: 133 Vitest files (1818 tests), 71 E2E specs (350 tests). |
| 2026-05-08 |
Account settings page (#941). Added /account route with display name edit, avatar upload, change password, and delete account sections. New component account-settings-form.tsx with stories. New E2E spec e2e/account-settings.spec.ts (5 tests). New migration 20260508140327_create_avatars_bucket.sql. Vitest count +1 test (migration validation). Test totals: 133 Vitest files (1819 tests), 72 E2E specs (355 tests). |
| 2026-05-08 |
Fix design spec violations in account settings (#970). Added next/navigation mock to Storybook config so AccountSettingsForm stories render. Added --overlay-backdrop and --overlay-backdrop-foreground design tokens. Replaced hardcoded bg-black/50, text-white, text-lg, and rounded with token-based classes. Added 4 new visual regression baselines for AccountSettingsForm stories. Test totals unchanged: 133 Vitest files (1819 tests), 72 E2E specs (355 tests). |
| 2026-05-08 |
Resolve axe-core accessibility violations (#967). Bumped dark --muted-foreground lightness 0.55→0.63 (contrast 4.15:1→5.75:1). Switched light --label-faint from alpha-blended to solid oklch(0.54) (1.90:1→4.84:1). Bumped dark --label-faint alpha 0.30→0.48 (~5.0:1). Bumped --label-muted in both themes. Added persistent underlines to auth page inline links. Emptied KNOWN_VIOLATION_RULES in accessibility spec — both color-contrast and link-in-text-block rules re-enabled. Updated 2 visual regression baselines. Test totals unchanged: 133 Vitest files (1819 tests), 72 E2E specs (355 tests). |
| 2026-05-08 |
Expand design-spec compliance tests (#972). Added 3 new checks to design-spec-compliance.test.ts: bg-black/white opacity (use overlay tokens), text-white/text-black (use label/semantic tokens), large text outside editor (text-lg+ with allowlist). Updated rounded corners regex to also catch bare rounded class. Fixed 5 bare rounded violations in page-content-client.tsx (skeleton loading states). Allowlisted editor/image-expand-dialog.tsx for bg-black/90 (lightbox backdrop). Allowlisted 9 non-editor files for legitimate large text per design spec. Test totals: 133 Vitest files (1822 tests), 72 E2E specs (355 tests). |
| 2026-05-09 |
Storybook story for AccountPageClient (#974). Added account-page-client.stories.tsx with Default and WithAvatar stories. Added 2 visual regression baselines. No new test files — stories only. Test totals unchanged: 133 Vitest files (1822 tests), 72 E2E specs (355 tests). |
| 2026-05-09 |
Remove bundle budget allowlist (#980). All 3 workspace/settings routes now under 200kB gzipped (181–183kB), down from 223–265kB. Removed allowlist entries from scripts/check-bundle.mjs. No new tests — script-only change. Test totals unchanged: 133 Vitest files (1822 tests), 72 E2E specs (355 tests). |
| 2026-05-09 |
Feedback form E2E tests (#985). Added 1 new E2E spec: e2e/feedback.spec.ts (6 tests) covering sheet open, type selection, character count, form submission with mocked API, form reset after submission, and empty message validation. Test totals: 133 Vitest files (1822 tests), 73 E2E specs (361 tests). |
| 2026-05-10 |
Extend axe-core accessibility audit to database views (#993). Added 3 new tests to e2e/accessibility.spec.ts (5→8 tests): database table view, database board view, database calendar view. Fixed aria-required-children in table-view.tsx (added role="columnheader" to checkbox and add-column header cells). Fixed aria-required-children and aria-required-parent in calendar-view.tsx (moved day headers inside grid, wrapped week cells in role="row" divs). Fixed color-contrast in calendar-view.tsx (changed out-of-month day numbers from text-muted-foreground/50 to text-muted-foreground). Test totals: 133 Vitest files (1822 tests), 73 E2E specs (364 tests). |
| 2026-05-10 |
Auth error boundaries and loading states (#994). Added 5 error boundary files (sign-in/error.tsx, sign-up/error.tsx, forgot-password/error.tsx, reset-password/error.tsx, invite/[token]/error.tsx) and 1 loading state (invite/[token]/loading.tsx). Added 5 test files (22 tests). Extended RouteError component with optional title, description, and children props. Test totals: 138 Vitest files (1844 tests), 73 E2E specs (364 tests). |
| 2026-05-10 |
Fix E2E failures after PR #997 (#998). Fixed text-destructive color contrast in dark mode: changed --destructive from oklch(0.55 0.2 25) to oklch(0.65 0.2 25) in dark theme, achieving ≥4.5:1 contrast ratio against dark backgrounds. Hardened fillCell helper in database-views.spec.ts to verify cell value renders after blur, reducing flakiness on slower environments. Test totals unchanged: 133 Vitest files (1822 tests), 73 E2E specs (364 tests). |
| 2026-05-10 |
Fix page-versions FK violation returning 500 instead of 404 (#1004). Updated pages/[pageId]/versions/route.test.ts (11→12 tests): added regression test for FK violation → 404 response. Test totals: 138 Vitest files (1845 tests), 73 E2E specs (364 tests). |
| 2026-05-10 |
Add Storybook stories for sign-in and sign-up forms (#996). Added sign-in-form.stories.tsx (6 stories: Default, PreFilledEmail, EmailConfirmed, OAuthError, Loading, ValidationError) and sign-up-form.stories.tsx (4 stories: Default, Loading, ValidationError, ConfirmationPending). Generated 10 visual regression baselines. Test totals unchanged: 138 Vitest files (1844 tests), 73 E2E specs (364 tests). |
| 2026-05-10 |
Bundle size reduction (#1000). Replaced client component imports in not-found.tsx with inline SVG and plain <a> to eliminate lucide/base-ui from every page's RSC fallback. Added lazy-route-error.tsx wrapper and migrated all 10 error boundaries to use it, deferring RouteError + lucide + Button loading until an error occurs. Auth pages: 194→179 kB, settings pages: 182→173 kB. No test changes. Test totals unchanged: 138 Vitest files (1845 tests), 73 E2E specs (364 tests). |
| 2026-05-10 |
Add E2E tests for keyboard shortcuts dialog (#1001). Added e2e/keyboard-shortcuts.spec.ts (5 tests): open via ? key with category verification, shortcut display from each category, close on Escape, open via user menu, input-focus guard. Test totals: 138 Vitest files (1845 tests), 74 E2E specs (369 tests). |
| 2026-05-10 |
Fix FK violation Sentry leak on page-versions (#1013). Updated sentry.unit.test.ts (149→163 tests): added 2 tests for message-based FK detection fallback, 4 tests for isE2ETestRequest extra.userAgent fallback, 4 tests for userAgent propagation in captureSupabaseError/captureApiError. Updated pages/[pageId]/versions/route.test.ts (12→15 tests): added 3 tests for catch-block FK handling and User-Agent propagation. Test totals: 138 Vitest files (1858 tests), 74 E2E specs (369 tests). |
| 2026-05-11 |
Rate limiting for API routes (#995). Added 1 new Vitest file: rate-limit.test.ts (17 tests) covering IP extraction, window sliding, limit enforcement, reset, key isolation, async keyFn, and handler bypass. Test totals: 139 Vitest files (1875 tests), 74 E2E specs (369 tests). |
| 2026-05-11 |
Extend axe-core accessibility audit to gallery and list views (#1022). Added 2 new tests to e2e/accessibility.spec.ts (8→10 tests): database gallery view, database list view. Fixed aria-required-children in gallery-view.tsx (moved add-row button outside role="list" container). Fixed aria-required-children in list-view.tsx (moved add-row button outside role="list" container). Fixed aria-allowed-attr in list-view.tsx (replaced invalid aria-selected on role="listitem" with aria-current). Updated e2e/database-list-keyboard.spec.ts to match aria-current change. Test totals: 139 Vitest files (1875 tests), 74 E2E specs (371 tests). |
| 2026-05-11 |
DB latency optimization (#1029). Updated health/route.test.ts (7→9 tests): added best-of-2 sampling test and GET method verification test. Test totals: 139 Vitest files (1877 tests), 74 E2E specs (371 tests). |
| 2026-05-11 |
Decompose sentry.ts into focused modules (#1023). Moved sentry.test.ts and sentry.unit.test.ts into src/lib/sentry/ directory. No new tests, no test count changes. Pure refactor — all 1877 Vitest tests pass unchanged. Test totals: 139 Vitest files (1877 tests), 74 E2E specs (371 tests). |
| 2026-05-11 |
Clipboard image paste in editor (#1025). Added PASTE_COMMAND handler to image-plugin.tsx. Added 1 new E2E spec: e2e/editor-image-paste.spec.ts (2 tests). Test totals: 139 Vitest files (1877 tests), 75 E2E specs (373 tests). |
| 2026-05-11 |
New Database button on workspace home (#1026). Added 1 new E2E spec: e2e/workspace-home-new-database.spec.ts (1 test). Test totals: 139 Vitest files (1877 tests), 76 E2E specs (374 tests). |
| 2026-05-11 |
Reduce shared base JS below 150 kB (#1030). Replaced next/dynamic with React.lazy in providers, split lazy-loaded providers into separate chunk, disabled Sentry route manifest injection, consolidated client-side Sentry filters. Framework baseline: 152→150 kB gzipped. No test changes. Test totals unchanged: 139 Vitest files (1877 tests), 76 E2E specs (374 tests). |
| 2026-05-12 |
Fix workspace home header mobile overflow (#1038). Added flex-wrap and responsive button labels to prevent header buttons from overflowing on mobile. Added 1 new E2E spec: e2e/workspace-home-mobile-header.spec.ts (1 test). Updated workspace-home.stories.tsx with shared header component and MobileViewport story. Test totals: 139 Vitest files (1877 tests), 77 E2E specs (375 tests). |
| 2026-05-12 |
Add E2E tests for workspace home page interactions (#1041). Added 1 new E2E spec: e2e/workspace-home.spec.ts (6 tests) covering new page creation, filter by title, sort dropdown reorder, page list navigation, clear filter reset, and recently visited section. Test totals: 139 Vitest files (1877 tests), 78 E2E specs (381 tests). |
| 2026-05-12 |
Add data-testid attributes to members components (#1058). Added testids to member-list, invite-form, pending-invite-list, and role-select. Updated e2e/members.spec.ts to use testid selectors instead of fragile text/CSS selectors. No new test files. Test totals unchanged: 139 Vitest files (1877 tests), 78 E2E specs (381 tests). |
| 2026-05-13 |
Add data-testid attributes to favorites, trash, and page-link-search (#1061). Added testids to favorites-section (fav-section, fav-item, fav-remove-btn), trash-section (trash-section, trash-item, trash-restore-btn, trash-delete-btn), and page-link-plugin (pls-dropdown, pls-search-input, pls-result-item). Updated e2e/favorites.spec.ts (replaced 6 parent traversals), e2e/trash.spec.ts (replaced bare text selector), and e2e/page-link-search.spec.ts (replaced double parent traversal). No new test files. Test totals unchanged: 139 Vitest files (1877 tests), 78 E2E specs (381 tests). |
| 2026-05-13 |
Migrate row-page, relation, and files E2E specs to data-testid selectors (#1065). Replaced 10 fragile locator("text=...") and CSS-class selectors across database-row-page.spec.ts, database-relation.spec.ts, and database-files.spec.ts with getByTestId targeting existing db-row-property-* and db-cell-editor-* testids. No new testids needed — all existing attributes were sufficient. No new test files. Test totals unchanged: 139 Vitest files (1877 tests), 78 E2E specs (381 tests). |
| 2026-05-13 |
Expand import/export E2E coverage (#1076). Added 5 new tests to e2e/import-export.spec.ts (2→7): unsupported elements graceful handling, empty file import, code block special characters export, nested list export, round-trip export-then-import. Test totals: 139 Vitest files (1877 tests), 78 E2E specs (386 tests). |
| 2026-05-14 |
Add rate limiting to page versions API routes (#1080). Added 2 new Vitest files: pages/[pageId]/versions/route.rate-limit.test.ts (3 tests), pages/[pageId]/versions/[versionId]/route.rate-limit.test.ts (3 tests). Updated API Routes domain: page versions endpoints 22→28 tests, added rate limits for version create (20/min) and restore (10/min). Test totals: 141 Vitest files (1883 tests), 78 E2E specs (386 tests). |
| 2026-05-14 |
Fix Supabase SSR cookie null-safety in proxy and Sentry E2E filter race condition (#1083). Added supabase/proxy.test.ts (2 tests) for proxy cookie null guard. Added 2 tests to sentry.unit.test.ts (163→165) for HeadlessChrome userAgent fallback in isE2ETestSession. Test totals: 142 Vitest files (1887 tests), 78 E2E specs (386 tests). |
| 2026-05-14 |
Suppress transient fetch warnings server-side and add trackEvent retry (#1084). Added server-filter.ts with shouldDropServerEvent. Updated sentry.unit.test.ts (165→171): 6 tests for shouldDropServerEvent. Updated track-event-server.test.ts (6→9): 3 tests for retry on transient network errors. Test totals: 142 Vitest files (1896 tests), 78 E2E specs (386 tests). |
| 2026-05-14 |
Add keyboard shortcuts for Duplicate (⌘D) and Export (⌘⇧E) page actions (#1089). Added e2e/page-shortcuts.spec.ts (4 tests): duplicate via shortcut, export via shortcut, shortcuts suppressed when editor focused, shortcut hints visible in page menu. Updated e2e/keyboard-shortcuts.spec.ts to verify new "Page" section in dialog. Test totals: 142 Vitest files (1900 tests), 79 E2E specs (390 tests). |
| 2026-05-14 |
Page type indicator on workspace home (#1090). Added child_count to page data and RecentPageVisit type. Server component fetches child page counts in parallel. Workspace home shows "Database" or "N sub-pages" between title and timestamp. Updated stories with type indicator rendering. No new test files. Test totals: 142 Vitest files (1900 tests), 79 E2E specs (390 tests). |
| 2026-05-14 |
Add Import Markdown action to workspace home page (#1091). Extracted useMarkdownImport hook from page-menu.tsx to src/lib/use-markdown-import.ts. Added Import Markdown button to workspace home header and empty state. Added 1 new E2E spec: e2e/workspace-home-import.spec.ts (3 tests). Updated 5 visual regression baselines. Test totals: 142 Vitest files (1909 tests), 80 E2E specs (393 tests). |
| 2026-05-14 |
Fix date picker popover clipping at container boundary (#1098). Added autoUpdate from @floating-ui/react to RegistryEditorCell so portaled editors continuously reposition on scroll/resize. Added 1 E2E test to database-table-editor-portal.spec.ts (3→4) verifying date picker stays within viewport when opened near bottom edge. Updated table-cell.test.tsx mock to include autoUpdate. Test totals: 142 Vitest files (1909 tests), 80 E2E specs (394 tests). |
| 2026-05-14 |
Add E2E tests for database table column resize (#1100). Added 1 new E2E spec: e2e/database-column-resize.spec.ts (4 tests): drag to increase width, drag to decrease width, minimum width constraint, resizing one column does not affect others. Added data-testid to resize handle in table-column-header.tsx. Test totals: 142 Vitest files (1909 tests), 81 E2E specs (398 tests). |
| 2026-05-14 |
Filter HeadlessChrome submissions from feedback API (#1097). Updated feedback/route.test.ts (20→22): 2 tests for HeadlessChrome UA filter (silent discard without insert, normal UA inserts normally). Test totals: 142 Vitest files (1911 tests), 81 E2E specs (398 tests). |
| 2026-05-15 |
Add E2E tests for database person property type (#1101). Added 1 new E2E spec: e2e/database-person.spec.ts (5 tests): open picker and select member, search filters members by name, clear value by deselecting, person value on row detail page, editor closes on Escape. Test totals: 142 Vitest files (1911 tests), 82 E2E specs (403 tests). |
| 2026-05-15 |
Extend axe-core accessibility audit to account and password reset pages (#1110). Added 3 tests to e2e/accessibility.spec.ts (10→13): forgot-password, reset-password, account settings. Test totals: 142 Vitest files (1911 tests), 82 E2E specs (406 tests). |
| 2026-05-16 |
API route error-handling consistency tests (#1118). Added 1 new Vitest file: api-route-consistency.test.ts (6 tests) — structural convention tests verifying API routes with Supabase mutations import error classification utilities (captureSupabaseError, captureApiError, isForeignKeyViolationError) and use Sentry capture in catch blocks instead of bare console.error. Test totals: 143 Vitest files (1918 tests), 82 E2E specs (406 tests). |
| 2026-05-17 |
Unit tests for use-page-tree-actions hook (#1126). Added 1 new Vitest file: use-page-tree-actions.test.ts (35 tests) — covers handleCreate, handleCreateDatabase, handleDuplicate (regular + database), handleDelete with descendant cleanup and navigation redirect, handleMoveUp/handleMoveDown, handleNest/handleUnnest, handleToggleFavorite with optimistic updates and error rollback. All Supabase calls mocked. Error paths verify captureSupabaseError. Test totals: 144 Vitest files (1953 tests), 82 E2E specs (406 tests). |
| 2026-05-17 |
E2E test for page backlinks rendering (#1127). Added 1 new E2E spec: e2e/backlinks.spec.ts (1 test) — creates two pages, inserts an inline page link from page A to page B via the slash command, waits for auto-save and page_links sync, navigates to page B and verifies the Backlinks section appears with a link to page A, clicks the backlink and verifies navigation back to page A. Test totals: 144 Vitest files (1953 tests), 83 E2E specs (407 tests). |
| 2026-05-18 |
Mobile header page title (#1136). Added mobile-header-title.tsx component and 1 new E2E spec: e2e/mobile-header-title.spec.ts (5 tests) — workspace name on home, title update on navigation, Settings on settings page, hidden on desktop, truncation styles. Added Storybook stories for MobileHeaderTitle (5 stories) and MobileLongTitle story in AppShell. Test totals: 144 Vitest files (1953 tests), 84 E2E specs (412 tests). |
| 2026-05-18 |
Fixed 11 E2E test failures (#1142). Fixed account-deletion tests (hydration timing with retry pattern), database-bulk-select tests (optimistic row ID race condition, aria-checked assertions), database-column-reorder tests (checkbox column offset in getColumnOrder), database-csv-export tests (gridcell count mismatch from checkbox column). Added data-row-id attribute to table rows for temp-ID detection. Fixed DeleteAccountSection component to avoid AlertDialogTrigger + controlled open pattern. Updated visual regression baselines. Test totals unchanged: 144 Vitest files (1953 tests), 84 E2E specs (412 tests). |
| 2026-05-18 |
Title Enter/Tab focuses editor (#1137). Added onAdvance callback to PageTitle, wired in PageViewClient to focus Lexical editor on Enter/Tab. Added 1 new E2E spec: e2e/title-advance.spec.ts (3 tests). Added WithAdvance Storybook story and visual regression baseline. Test totals: 144 Vitest files (1953 tests), 85 E2E specs (415 tests). |
| 2026-05-18 |
Add aria-live region to editor save status indicator (#1138). Added sr-only role="status" span to editor save status div so screen readers announce terminal states (Saved, Save failed) without noisy Saving... announcements. No new test files. Test totals: 144 Vitest files (1962 tests), 85 E2E specs (415 tests). |
| 2026-05-19 |
Add keyboard navigation to sidebar page tree (#1150). Added WAI-ARIA Treeview keyboard navigation (ArrowUp/Down, ArrowLeft/Right expand/collapse, Enter, Home, End) with roving tabindex pattern. Added getVisibleItems and findParentNode to page-tree.ts. Updated page-tree.test.ts (37→46): 9 new tests for visible item traversal and parent lookup. Added 1 new E2E spec: e2e/sidebar-keyboard-nav.spec.ts (10 tests). Test totals: 144 Vitest files (1971 tests), 86 E2E specs (425 tests). |