F1-F4: Inline editor AI - Backend: expand CopilotAction with fix-rewrite, change-tone, continue, explain - Backend: add tone parameter to copilot route for change-tone action - Web: copilot-client adds CopilotTone type and tone parameter - Web: NoteEditor toolbar gains AI row with Fix & Rewrite, Change Tone dropdown, Continue Writing (appends at cursor), Explain (inline popover) F15-F19: Mobile capture enhancements - Backend: POST /note-prompts/url-extract endpoint (fetch, strip HTML, LLM summarize) - Mobile API: extractFromUrl() and copilotTransform() client functions - Mobile: capture tab rewritten with 6 capture modes grid (text, photo, voice, URL, scan, paste) — URL extract + clipboard paste fully wired, camera/voice/scan surface native permission prompts (require expo-av/expo-image-picker) - expo-clipboard added as dependency F25-F27: Scheduled actions, webhook triggers, approval-gated actions - New scheduler.ts module with PromptScheduleDoc + PromptWebhookDoc types - Schedule CRUD: GET/POST/PATCH/DELETE /prompt-schedules - Webhook CRUD: GET/POST/PATCH/DELETE /prompt-webhooks - POST /prompt-webhooks/:id/trigger — execute template against note - Scheduler loop (60s tick) with cron next-run calculation - Diagnostics endpoint: GET /prompt-schedules/diagnostics - Cosmos containers: note_prompt_schedules, note_prompt_webhooks - PromptTemplateDoc gains requiresApproval field (F27) - Runner produces approvalState: proposed|applied based on template flag - Create/Update schemas accept requiresApproval boolean |
||
|---|---|---|
| .gitea/workflows | ||
| .github | ||
| .husky | ||
| backend | ||
| docs | ||
| mobile | ||
| scripts | ||
| shared | ||
| web | ||
| .aider.conf.yml | ||
| .clinerules | ||
| .cursorrules | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitignore | ||
| .npmrc | ||
| .npmrc.docker | ||
| .nvmrc | ||
| .windsurfrules | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
NoteLett
Structured notes platform for humans and AI agents — part of the ByteLyst ecosystem.
Quick Start
pnpm install
# Backend (port 4016)
pnpm --filter @notelett/backend run dev
# Web (port 3000)
pnpm --filter @notelett/web run dev
# Mobile
pnpm --filter @notelett/mobile run start
Architecture
| Surface | Stack | Port |
|---|---|---|
| Backend | Fastify 5 + TypeScript ESM | 4016 |
| Web | Next.js 16 + React 19 | 3000 |
| Mobile | Expo + React Native | 8081 |
| Platform | platform-service (shared) | 4003 |
| Extraction | extraction-service (shared) | 4005 |
Key Features
- 6 backend modules: notes, workspaces, relationships, tasks, artifacts, agent actions
- 8 MCP tools: list, get, search, create_draft, update, link_notes, extract_tasks, attach_artifact
- Agent audit trail: every write tool records agent action history
- Datastore abstraction: Cosmos DB in production, in-memory for tests
- Platform integrations: auth (JWT), telemetry, diagnostics, feature flags, kill-switch, blob storage
Environment
Copy backend/.env.example to backend/.env and fill in:
JWT_SECRET— shared secret with platform-serviceCOSMOS_ENDPOINT/COSMOS_KEY— Azure Cosmos DB credentials (or useDB_PROVIDER=memory)
Tests
pnpm --filter @notelett/backend run test
pnpm --filter @notelett/web run test
pnpm --filter @notelett/mobile run test
pnpm run verify
Docs
AGENTS.md— AI agent onboarding guidedocs/PRD.md— Product requirementsdocs/ROADMAP.md— Master execution tracker