821d9aee35
fix(share): sanitize public HTML and harden token handling
...
Add a conservative sanitizer for shared note bodies before dangerouslySetInnerHTML.
Normalize dynamic route params, reject blank tokens, and require noteId in the JSON payload so empty titles still render.
Made-with: Cursor
2026-03-31 13:05:32 -07:00
a697752d15
feat: implement WEB_AI_FAST_ROADMAP (web + backend + docs)
...
Phase 1: Command palette (⌘K), editor autosave with quiet auto-saves, dashboard
saved views from API + quick links + onboarding seed CTA, explicit task scan panel.
Phase 2: Context pack formatter with YAML frontmatter, copy on note + workspace .md export.
Phase 3: ADR for hybrid search without embeddings; POST /notes/search (lexical +
ranked hybrid); search UI mode toggle.
Phase 4: POST copilot + suggest-title; in-editor copilot actions; /chat retrieval
answers with citations (backend chat.rag_enabled).
Phase 5: Settings MCP snippet, offline queue note, API token deferral; DEEP_LINKS.md.
Phase 6: Note shares + public GET; share page; POST onboarding-seed.
Phase 7: note_versions on PATCH; version panel; create-note templates; PWA manifest.
Flags: search.hybrid_enabled, copilot.enabled, chat.rag_enabled, onboarding.seed_enabled.
Made-with: Cursor
2026-03-31 13:00:36 -07:00
root
105ae3493a
fix(web): prepare Vercel build and standalone runtime
2026-03-31 06:05:16 +00:00
a493e83ae4
fix: correct BroadcastBanner and SurveyBanner API usage
...
BroadcastBanner: use {messages} destructure from listMessages(),
replace broken pollMessages callback with manual setInterval refetch,
use real InAppMessage type from @bytelyst/broadcast-client.
SurveyBanner: destructure {survey} from getActiveSurvey(), replace
broken pollSurveys callback with manual setInterval, pass typed
QuestionAnswer objects to submitAnswer() instead of raw strings,
align question type rendering with actual API types (single_choice,
rating, nps, text_short, text_long, etc).
Made-with: Cursor
2026-03-29 22:10:07 -07:00
02bcb0d122
feat: integrate feedback, broadcast, survey, offline-queue clients + settings page + devops
...
Phase 4: Add @bytelyst/feedback-client, broadcast-client, survey-client, offline-queue
wrappers. Revamp settings page with profile, password change, feedback form.
Add BroadcastBanner and SurveyBanner to app layout. Wire offline queue flush on boot.
Phase 5: Fix .env.example branding (NoteLett), update docker-compose with all env vars,
enable GitHub Actions CI workflow with lint steps.
Made-with: Cursor
2026-03-29 20:57:27 -07:00
a5b0a89527
feat: add Pagination component, file upload, fix N+1, remove unused deps
...
Phase 3 (Web UX Polish) of the execution roadmap:
- Add reusable Pagination component for list views
- Fix getNoteDetail to avoid fetching all notes when workspaceId is unknown
- Add file upload button to ArtifactPanel using uploadArtifact() from blob-client
- Remove unused zustand and zod from web dependencies
- SSR safety already addressed via existing lazy-init patterns
Made-with: Cursor
2026-03-29 20:49:13 -07:00
839218a19c
feat: add auth pages, AuthGuard, Tiptap editor, workspace CRUD, toast notifications
...
Phase 1 of the execution roadmap:
- Build login, register, forgot-password pages using useAuth() from @bytelyst/react-auth
- Add AuthGuard with kill-switch check wrapping (app) routes
- Replace plain textarea NoteEditor with Tiptap rich text editor
- Add workspace create/delete with CreateWorkspaceModal
- Wire sonner toast notifications on all mutation handlers
Made-with: Cursor
2026-03-29 20:38:33 -07:00
7babee791d
feat: replace broken @bytelyst/ui with sonner, adopt dashboard-components, use @bytelyst/extraction
...
Phase 0.5 of the execution roadmap:
- Remove phantom @bytelyst/ui dep, add sonner for toast notifications
- Replace custom error.tsx, not-found.tsx, loading.tsx with @bytelyst/dashboard-components
- Replace raw extraction-client.ts with @bytelyst/extraction createExtractionClient()
- Add @bytelyst/dashboard-components and @bytelyst/extraction to transpilePackages
Made-with: Cursor
2026-03-29 20:33:33 -07:00
saravanakumardb1
3fdd2d0bca
fix: add missing @playwright/test devDep for E2E CI
2026-03-29 11:05:59 -07:00
saravanakumardb1
c0a33473f4
chore: update dependencies
2026-03-29 10:50:57 -07:00
saravanakumardb1
360ef367d0
fix(a11y): add confirmation dialog for saved view delete
2026-03-29 01:57:19 -07:00
saravanakumardb1
00fd39f594
fix(tokens): remove duplicate hand-written token block — now imported via design-tokens pkg
2026-03-29 01:54:46 -07:00
saravanakumardb1
275f966441
fix(tokens): import product-specific notelett tokens instead of generic base
2026-03-29 01:49:41 -07:00
saravanakumardb1
547031531b
feat(settings): add dark/light theme toggle to Settings page
2026-03-29 01:33:01 -07:00
saravanakumardb1
82ede5a107
fix(web): add Next.js module mocks for Vitest — all 14 tests pass (was 10/14)
2026-03-29 01:03:11 -07:00
saravanakumardb1
e716ca1ef6
fix(e2e): fix escaped backticks in visual-regression template literals
2026-03-29 01:01:13 -07:00
saravanakumardb1
c6a86dd220
feat(web): wire ToastProvider from @bytelyst/ui into NoteLett providers
2026-03-29 00:12:47 -07:00
saravanakumardb1
d3bfc0c538
fix(web): add next/navigation mock to AppShell test after client component conversion
2026-03-29 00:09:55 -07:00
saravanakumardb1
89edf59a4e
fix(web): wire responsive sidebar — add toggle to AppShell, open prop on Sidebar, CSS !important overrides
2026-03-29 00:03:27 -07:00
saravanakumardb1
e362f2aefe
feat(web): add responsive sidebar CSS breakpoints for mobile
2026-03-28 23:30:02 -07:00
saravanakumardb1
7ee0c6d481
fix(web): add interactive hover/active states for buttons and links
2026-03-28 23:20:59 -07:00
saravanakumardb1
96b4453e95
test(visual): add Playwright visual regression screenshot tests
2026-03-28 00:56:17 -07:00
saravanakumardb1
619b27103b
fix(web): add id=main-content to main element for skip-link target
2026-03-28 00:51:29 -07:00
saravanakumardb1
36a95609ff
chore(design-system): add responsive sidebar CSS breakpoints (768px collapse)
2026-03-28 00:50:31 -07:00
saravanakumardb1
0db213af1c
fix(web): add skip-to-content link for WCAG keyboard accessibility
2026-03-28 00:46:50 -07:00
saravanakumardb1
926c3b4b12
fix(web): add prefers-reduced-motion media query for accessibility
2026-03-28 00:38:47 -07:00
saravanakumardb1
f05b7474f3
ci: add Playwright E2E job + test:e2e script
2026-03-28 00:35:42 -07:00
saravanakumardb1
8e26b91ae1
fix(web): wire next/font CSS variables into product font-family declarations
2026-03-28 00:34:22 -07:00
saravanakumardb1
7a032be9e3
fix(web): add sr-only, prefers-color-scheme, and next/font canonical fonts
2026-03-28 00:25:57 -07:00
saravanakumardb1
0f56b12f3c
feat(a11y): add semantic <main> landmark to app layout
2026-03-27 16:43:55 -07:00
saravanakumardb1
1bab8a87ac
feat(a11y): add axe-core accessibility E2E spec with focus-visible test
2026-03-27 16:42:03 -07:00
saravanakumardb1
4905e351e2
feat(design-system): add use-theme hook for dark/light toggle
2026-03-27 16:39:22 -07:00
saravanakumardb1
bc8c120145
feat(design-system): add focus-visible CSS for keyboard accessibility
2026-03-27 16:36:21 -07:00
saravanakumardb1
99292bdb1d
feat(design-system): add not-found, error, loading pages
2026-03-27 16:34:37 -07:00
saravanakumardb1
ac1d48bd2f
fix(e2e): add page.route() API mocking to dashboard spec
2026-03-27 13:34:51 -07:00
saravanakumardb1
aa0f720b6e
fix(docker): correct web Dockerfile EXPOSE/PORT to 3045 matching docker-compose
2026-03-24 11:45:27 -07:00
saravanakumardb1
e9dc45d9bc
fix(docker): remove hardcoded corporate proxy and jfrog registry from Dockerfiles
2026-03-24 11:10:33 -07:00
saravanakumardb1
33f9379f4a
feat(docker): migrate NoteLett to Gitea registry-backed Docker pattern
...
- Convert all @bytelyst/* file: refs to semver ^0.1.0 (backend, web, mobile)
- Remove sibling common-plat workspace references from pnpm-workspace.yaml
- Add .npmrc and .npmrc.docker for local Gitea registry
- Rewrite backend/web Dockerfiles: pnpm + BuildKit secret mount + corp proxy
- Fix backend tsconfig.json: remove explicit lib to resolve fetch Response types
- Verified: host-side pnpm install, backend tests (86 pass), backend+web Docker builds
2026-03-23 20:11:12 -07:00
saravanakumardb1
cbbd9ddce9
fix(docker): upgrade Dockerfiles to node:22-slim + add NODE_TLS + fix next.config.ts
...
- backend/Dockerfile: alpine→slim, add NODE_TLS_REJECT_UNAUTHORIZED=0, 3-stage pattern
- web/Dockerfile: alpine→slim, add NODE_TLS_REJECT_UNAUTHORIZED=0, remove non-existent public/ COPY
- web/next.config.ts: add transpilePackages + webpack symlinks for pnpm @bytelyst/* resolution
Docker smoke tests: backend + web builds pass
2026-03-22 21:06:07 -07:00
saravanakumardb1
90dd2d3bd5
feat(repo): migrate notelett workspace to pnpm
2026-03-22 15:50:54 -07:00
saravanakumardb1
8fdc7b57d0
fix(web): add --nl-* CSS token aliases — previous rename broke all styling since vars had no definitions
2026-03-21 20:48:35 -07:00
saravanakumardb1
304d2ae865
feat: wire feature flag checks into web Sidebar and upgrade mobile flag client
2026-03-21 20:34:16 -07:00
saravanakumardb1
85968e7b2a
fix(web): replace --ml-* (MindLyst) with --nl-* (NoteLett) CSS namespace across 18 files
2026-03-21 20:18:44 -07:00
saravanakumardb1
f95ba73c31
feat(web): upgrade feature-flag-client to SSE streaming + getValue()
2026-03-21 17:41:58 -07:00
saravanakumardb1
dbe3988284
chore: Remove unused deps — auth-client from web, platform-client + react-native-platform-sdk from mobile
2026-03-21 00:08:17 -07:00
saravanakumardb1
4a5a782333
refactor(web): migrate telemetry + diagnostics to createWebTelemetry/createWebDiagnostics
...
- telemetry.ts: 35 → 13 lines via createWebTelemetry()
- diagnostics.ts: 43 → 16 lines via createWebDiagnostics()
- 14/14 web tests pass, typecheck clean
2026-03-20 18:54:07 -07:00
saravanakumardb1
e5535252c7
feat(backend+web): note summarization + export endpoints [B3, B6]
...
- backend: POST /notes/:id/summarize — calls extraction-service, stores summary artifact
- backend: GET /notes/export — JSON + Markdown format support
- backend: extraction-client.ts for extraction-service integration
- backend: 4 new integration tests (summarize, export JSON, export MD, invalid format)
- web: summarizeNote + exportNotes client functions
- web: Summarize button on note detail page
- web: Export Notes button on workspaces page
- web: exclude e2e/ from vitest config
- Total: 80 backend, 14 web, 23 mobile = 117 tests
2026-03-19 08:59:26 -07:00
saravanakumardb1
dd62d3bf5c
test(web+mobile): Playwright E2E scaffold + 23 mobile store tests [C4, B7]
...
- web: playwright.config.ts + e2e/navigation.spec.ts (7 navigation tests, scaffolded)
- web: exclude e2e/ from tsconfig (playwright not yet installed as dep)
- mobile: notes-store.test.ts (7 tests: hydrate, openNote, saveDraft, updateNote)
- mobile: workspace-store.test.ts (5 tests: hydrate, preserve/reset active, set/clear)
- mobile: inbox-store.test.ts (5 tests: hydrate, approve, reject, unknown id guards)
- mobile: auth-store.test.ts (6 tests: bootstrap, signIn, signOut, failure paths)
- Total: 76 backend, 14 web, 23 mobile = 113 tests
2026-03-19 08:51:36 -07:00
saravanakumardb1
a71747e3fb
chore(devops): add Dockerfiles, docker-compose, CI workflow, docker-prep script [C1-C5]
...
- backend/Dockerfile: multi-stage Node.js build (install → build → runtime)
- web/Dockerfile: multi-stage Next.js standalone build
- docker-compose.yml: backend (4016) + web (3000) with health check
- scripts/docker-prep.sh: pack @bytelyst/* tarballs + rewrite file: refs (--restore to undo)
- .github/workflows/ci.yml: backend (typecheck+test+build), web (typecheck+test+build), mobile (typecheck)
2026-03-19 08:47:04 -07:00
saravanakumardb1
a3267e4b1b
feat(web+backend): add create note, archive/restore, link note flows [B1, B2, B8]
...
- backend: add POST /notes/:id/restore endpoint (mirrors archive pattern)
- web: CreateNoteModal component (workspace picker, title, body, tags)
- web: LinkNoteModal component (search, select, relationship type picker)
- web: Dashboard 'New Note' button + CreateNoteModal integration
- web: Note detail Archive/Restore buttons + LinkNote button
- web: 4 CreateNoteModal tests + 4 LinkNoteModal tests
- backend: 1 restore integration test
- Total: 76 backend tests, 14 web tests
2026-03-19 08:44:39 -07:00