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
1fa7e29691
docs: link PRD from WEB_AI_FAST_ROADMAP companion list
...
Made-with: Cursor
2026-03-31 12:50:26 -07:00
6dc5464dd5
docs: add WEB_AI_FAST_ROADMAP and index cross-links
...
- New phased plan for web (command palette, autosave, saved views, task scan,
context packs, semantic search, copilot, MCP onboarding, sharing, polish)
- Link from AGENT_TASK_ROADMAP; index entry in ROADMAP.md
- Fix task-summary table total row; rename meta sections to avoid clash with Phase N
Made-with: Cursor
2026-03-31 12:50:21 -07:00
85292b61dc
docs(mobile): checkboxes for auth-gated hydrates, telemetry flush, tests
...
- AGENT_TASK_ROADMAP: Current State + remaining gaps
- MOBILE_DELEGATION: Remaining/deferred table, Block A/G/H, audit follow-up
Made-with: Cursor
2026-03-31 01:51:11 -07:00
370e96fa45
test(mobile): settings smoke test; docs: capture points to blob-upload
...
- settings.test.tsx mirrors auth/home import smoke pattern
- Capture screen comment: future uploads via api/blob-upload
Made-with: Cursor
2026-03-31 01:51:07 -07:00
6620e5dabb
fix(mobile): auth-gated hydrates and telemetry flush on background
...
- Run notes/workspace/inbox hydrate, broadcast/survey polling, and offline
queue flush timers only when hasBootstrapped && isAuthenticated
- Split effects: kill switch, bootstrap, initPlatform, global AppState flush
- Avoid pre-auth 401s from parallel API hydrates
Made-with: Cursor
2026-03-31 01:51:05 -07:00
e920d724e4
fix(mobile): export flushTelemetry for background buffer flush
...
Expose telemetryClient.flush() from platform.ts for AppState wiring.
Made-with: Cursor
2026-03-31 01:51:03 -07:00
4ee604be76
docs(mobile): post-review gaps in AGENT + MOBILE_DELEGATION roadmaps
...
- AGENT_TASK_ROADMAP: mobile summary row, dated bump, ordered gap list → blocks
- MOBILE_DELEGATION_ROADMAP: post-review checklist table + NomGap SDK note
Made-with: Cursor
2026-03-31 01:36:57 -07:00
saravanakumardb1
db2874174b
feat(mobile): blob upload abstraction via shared blobClient (Block F)
...
- Create mobile/src/api/blob-upload.ts with uploadNoteAttachment() and uploadNoteImage()
- All mobile uploads route through shared blobClient from lib/platform.ts
- No duplicate SAS logic or raw fetch paths
- Update MOBILE_DELEGATION_ROADMAP to mark Block F complete
2026-03-31 01:32:30 -07:00
saravanakumardb1
cfcb25e379
docs(mobile): add post-completion audit summary to MOBILE_DELEGATION_ROADMAP
...
- Document 7 bugs/gaps found and fixed during systematic review of blocks A–H
- Note remaining blocks F and I as deferred/optional
2026-03-31 01:19:41 -07:00
saravanakumardb1
6acd1a70d4
fix(backend): fix trackEvent call signature and route registration tests
...
- auth.ts: type requireWriter param as { headers: { authorization?: string } } instead of unknown
- notes/routes.ts: fix 3 trackEvent calls from object form to positional args (event, userId, properties)
- workspaces/routes.ts: fix 1 trackEvent call from object form to positional args
- 5 route registration tests: add missing delete mock to app object for Phase 2 DELETE endpoints
2026-03-31 01:00:32 -07:00
saravanakumardb1
83f4953870
fix(mobile): add missing accessibilityLabels across all screens
...
- settings.tsx: labels on sign-out, feedback type chips, submit button
- capture.tsx: labels on workspace selection chips
- index.tsx: labels on workspace filter chips, note card pressables
- search.tsx: labels on search input, result row pressables
- note/[id].tsx: labels on edit, save, cancel buttons
2026-03-31 00:55:05 -07:00
saravanakumardb1
a4124949d1
fix(mobile): auto-dismiss queue status banner when queue is empty
...
- Skip flush call and clear lastFlushed when getNoteQueueSize() is 0
- Prevents stale 'Flushed on last attempt: N' persisting after queue drains
2026-03-31 00:52:24 -07:00
saravanakumardb1
c96c7855c6
fix(mobile): add error handling to store hydrate methods
...
- notes-store: wrap hydrate() and openNote() in try/catch to prevent isLoading stuck true
- inbox-store: wrap hydrate() in try/catch to prevent isLoading stuck true on API failure
- openNote falls back to cached list note when detail fetch fails
2026-03-31 00:51:16 -07:00
saravanakumardb1
9d3ac06234
fix(mobile): use dynamic platform in feedback, add null coercion, add Content-Type on flush
...
- settings.tsx: replace hardcoded platform: 'ios' with APP_PLATFORM from app-metadata
- feedback-client.ts: add ?? '' null coercion on getAuthToken (matches broadcast/survey pattern)
- offline-queue.ts: add Content-Type: application/json header on flush requests
2026-03-31 00:49:40 -07:00
saravanakumardb1
a761ec9ee0
docs(mobile): update roadmap with Block H completion and commit links
2026-03-31 00:44:03 -07:00
saravanakumardb1
5a0175fa66
feat(mobile): add Block H — Vitest RN mock aliases + component smoke tests
...
- Create __mocks__/ with react-native, expo-router, expo-constants, expo-status-bar, react-native-mmkv, @testing-library/react-native
- Update vitest.config.ts with resolve aliases for all native modules
- Add AuthScreen smoke test (3 tests)
- Add HomeScreen smoke test (2 tests)
- Add @types/react-test-renderer dev dependency
- Total: 32 passing tests (27 store + 5 component)
2026-03-31 00:42:49 -07:00
saravanakumardb1
5f231816bd
docs(mobile): mark block G done with commit link
2026-03-31 00:24:48 -07:00
saravanakumardb1
e4683ad695
fix(mobile): complete block G metadata and accessibility
2026-03-31 00:23:57 -07:00
saravanakumardb1
a9172e4230
docs(mobile): mark block E done with commit link
2026-03-31 00:18:58 -07:00
saravanakumardb1
5d8216066a
feat(mobile): wire offline queue enqueue and flush
2026-03-31 00:17:41 -07:00
saravanakumardb1
c37d6443f4
docs(mobile): mark block D done with commit link
2026-03-31 00:11:38 -07:00
saravanakumardb1
746cba74ff
feat(mobile): add settings tab with feedback client
2026-03-31 00:10:50 -07:00
saravanakumardb1
d26d9946b3
docs(mobile): mark block C done with commit link
2026-03-31 00:04:03 -07:00
saravanakumardb1
48896ab879
feat(mobile): integrate broadcast and survey clients
2026-03-31 00:03:20 -07:00
saravanakumardb1
97c9eaed24
docs(mobile): mark block B done with commit link
2026-03-30 23:58:37 -07:00
saravanakumardb1
acdedbcb9a
feat(mobile): add kill switch gate in root layout
2026-03-30 23:58:03 -07:00
saravanakumardb1
8162a086d1
docs(mobile): mark block A done with commit link
2026-03-30 23:56:56 -07:00
saravanakumardb1
ae0a481504
feat(mobile): complete block A auth session flow
2026-03-30 23:56:18 -07:00
8aff92d6b2
docs(mobile): add MOBILE_DELEGATION_ROADMAP for NoteLett
...
- Sequential blocks A–I (auth, kill switch, broadcast/survey, feedback,
offline queue, blob, health, RNTL, optional sync) with file paths under mobile/
- Cross-link from AGENT_TASK_ROADMAP Current State section
Made-with: Cursor
2026-03-30 23:48:38 -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
fbd299d386
docs: update roadmap — mark Phase 4 and 5 complete with commit links
...
Made-with: Cursor
2026-03-29 20:58:02 -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
8d84bcb841
feat: add DELETE endpoints, role enforcement, telemetry and feature flags
...
Phase 2 of the execution roadmap:
- Add DELETE endpoints for notes (soft-delete), workspaces, tasks, artifacts, relationships
- Add requireWriter() role enforcement on all write routes (POST/PATCH/DELETE)
- Activate trackEvent() telemetry on note.created, note.updated, note.archived, workspace.created
- Gate notes search behind isFeatureEnabled('notes.enabled')
- Update all test mocks to include role and new auth exports
Made-with: Cursor
2026-03-29 20:47:12 -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
f308a362fd
fix(docs): correct agent task roadmap after codebase verification
...
- Add Phase 0: 5 backend @bytelyst/* packages missing from common_plat
(backend-config, backend-flags, backend-telemetry, fastify-auth,
field-encrypt) — shared blocker with NomGap
- Remove dead-code deletion task: mock-data.ts and review-data.ts
already do not exist
- Flag stale .env.example product identity (agentic-notes → notelett)
- Note that Gitea CI is already active alongside disabled GitHub CI
- Update task counts (28 → 32) and effort estimates
Made-with: Cursor
2026-03-29 19:25:38 -07:00
6be7ee470f
docs: add agent task roadmap for delegated execution
...
Systematic review identified 28 tasks across 6 phases covering
auth UI, backend hardening, web UX polish, MCP wiring, and DevOps.
Made-with: Cursor
2026-03-29 19:21:29 -07:00
saravanakumardb1
3fdd2d0bca
fix: add missing @playwright/test devDep for E2E CI
2026-03-29 11:05:59 -07:00
saravanakumardb1
5be6a18813
ci: fix YAML formatting — normalize blank lines
2026-03-29 11:04:16 -07:00
saravanakumardb1
c0a33473f4
chore: update dependencies
2026-03-29 10:50:57 -07:00
saravanakumardb1
d6cf0d1265
chore: add .nvmrc pinning Node 22
2026-03-29 10:48:30 -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
a75c22b5c0
docs(agents): add @bytelyst/ui and @bytelyst/design-tokens to AGENTS.md
2026-03-29 01:44:00 -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