Commit Graph

19 Commits

Author SHA1 Message Date
saravanakumardb1
7103660c95 test(e2e): fix 4 pre-existing E2E failures and make port-conflict-proof
Audit of the full E2E suite (43 specs) surfaced four issues that were
hiding behind 'all 96/96 web unit tests pass' but actually meant the
browser-level coverage was broken end-to-end. All four are fixed and
the suite now passes 43/43.

1. Port conflict silently testing wrong app. playwright.config.ts hard-
   coded baseURL=http://localhost:3000 with reuseExistingServer:true on
   non-CI hosts. When the dev host had ANY service on :3000 (Grafana,
   chronomind, etc), Playwright happily ran the entire E2E suite
   against the wrong app and reported the unrelated failures as
   'real'. Now honors NOTELETT_WEB_PORT env (default 3000) so a
   contributor can opt into any free port and Playwright drives both
   baseURL and the dev-server PORT consistently.

2. Missing test dependency. web/e2e/accessibility.spec.ts imports
   @axe-core/playwright but web/package.json never declared it.
   The accessibility coverage was DOA — every CI run that included
   this spec would module-not-found-error before a single check ran.
   Added @axe-core/playwright to devDependencies.

3. Mock that never fires. smart-actions.spec.ts 'history API mock
   returns items' used page.route() to mock /api/note-prompts/history
   then bypassed the mock entirely with page.request.get() (which uses
   Playwright's separate request context, not the browser context that
   page.route intercepts). The request went to the dev server and got
   404. Replaced with page.goto + page.evaluate(fetch(...)) so the
   browser-side fetch hits the page.route mock as intended.

4. Missing visual-regression baselines. visual-regression.spec.ts had
   no committed baseline screenshots for dashboard / workspaces /
   search. First run on a clean host always reported 'snapshot doesn't
   exist, writing actual'. Generated and committed darwin baselines.

Verified end-to-end (NOTELETT_WEB_PORT=3050 against this host's free
port):
  43 passed (34.8s)

Total test-tier counts on main now:
  backend unit + integration (memory)   380/380
  backend cosmos emulator (live)        4/4
  web vitest                            96/96
  mobile vitest                         97/97
  web playwright e2e                    43/43
  ---
  TOTAL                                 620/620
2026-05-23 00:50:29 -07:00
6b896949d4 chore(web): add bundle analysis gate 2026-05-05 12:45:20 -07:00
saravanakumardb1
4813c850a3 feat(web,mobile): add @bytelyst/billing-client and platform-client
Web:
- New lib/billing-client.ts: factory wrapper using shared getAccessToken.
- Add @bytelyst/billing-client to web deps.

Mobile:
- New lib/billing-client.ts: factory wrapper using MMKV token storage.
- New lib/platform-api.ts: typed platform-client wrapper for settings,
  sessions, and profile management.
- Add @bytelyst/billing-client and @bytelyst/platform-client to deps.
2026-04-13 10:30:02 -07:00
saravanakumardb1
ddb5bfb49a chore(deps): use wildcard (*) for @bytelyst/* internal packages
All @bytelyst/* packages are internal to the ByteLyst ecosystem and
published to the private Gitea registry. Using "*" eliminates version
bump noise — always resolves to latest available.
2026-04-13 01:05:35 -07:00
root
a73b3e5bc4 chore: bump @bytelyst/* deps to latest registry versions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 06:04:34 +00:00
root
105ae3493a fix(web): prepare Vercel build and standalone runtime 2026-03-31 06:05:16 +00: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
f05b7474f3 ci: add Playwright E2E job + test:e2e script 2026-03-28 00:35:42 -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
90dd2d3bd5 feat(repo): migrate notelett workspace to pnpm 2026-03-22 15:50:54 -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
878c644dd8 feat(platform): wire shared platform packages into mobile + refactor web blob-client (DRY)
Phase 1 — Platform SDK integration:
- Mobile: added @bytelyst/telemetry-client, feature-flag-client, kill-switch-client, blob-client deps
- Mobile: created src/lib/platform.ts — centralized platform init (telemetry, flags, kill-switch, blob)
- Mobile: wired initPlatform() into root layout startup
- Web: refactored blob-client.ts to use shared @bytelyst/blob-client (eliminates hand-rolled SAS fetch code)
- Web: added @bytelyst/blob-client dep

DRY: Both web and mobile now use the same @bytelyst/blob-client package for blob operations.

Verification: web typecheck + mobile typecheck pass.
2026-03-10 19:29:00 -07:00
saravanakumardb1
8755661049 feat(web): wire feature-flag and kill-switch platform clients
- Added @bytelyst/feature-flag-client and @bytelyst/kill-switch-client deps
- Created web/src/lib/feature-flags.ts — poll-based flag client (fail-open)
- Created web/src/lib/kill-switch.ts — kill-switch check client (fail-open)
- Telemetry, diagnostics, extraction were already wired

Verification: web typecheck + 6 tests pass.
2026-03-10 18:56:14 -07:00
saravanakumardb1
e1fde25afd feat(identity): lock NoteLett product identity across all surfaces
- productId: notelett
- displayName: NoteLett
- domain: notelett.app
- iOS bundle: com.bytelyst.notelett
- Android bundle: com.notelett.app
- backend port: 4016
- token namespace: --nl-* (CSS), NoteLettTheme (native)

Rippled through:
- shared/product.json (canonical source)
- backend package.json, config, cosmos-init, all 10 test files
- web package.json, landing page, notes-client test
- mobile app.json, package.json, auth screen
- docs: PRD, ROADMAP, architecture review, foundations, web/mobile roadmaps
- registered in learning_ai_common_plat/products/notelett/

Verification: backend typecheck + 18 tests, web typecheck + 6 tests, mobile typecheck — all pass.
2026-03-10 18:47:01 -07:00
saravanakumardb1
4fb859c81c feat(notes): scaffold product surfaces and backend MCP slices 2026-03-10 08:53:07 -07:00