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
25 lines
1016 B
Markdown
25 lines
1016 B
Markdown
# NoteLett — Deep links for agents and humans
|
|
|
|
**Product id:** `notelett` (see `shared/product.json`).
|
|
|
|
## Web URLs
|
|
|
|
| Purpose | Pattern | Example |
|
|
|--------|---------|---------|
|
|
| Note (authenticated) | `{origin}/notes/{noteId}` | `https://app.example.com/notes/abc-123` |
|
|
| Search with query | `{origin}/search?q={query}` | `https://app.example.com/search?q=draft` |
|
|
| Reviews | `{origin}/reviews` | |
|
|
| Workspace chat | `{origin}/chat` | |
|
|
| Read-only share | `{origin}/share/{shareToken}` | After **Copy share link** on a note |
|
|
|
|
Set `NEXT_PUBLIC_WEB_APP_ORIGIN` in production so copied share links use the public hostname when SSR runs.
|
|
|
|
## Custom URL scheme (optional)
|
|
|
|
For desktop or mobile handlers you can register `notelett://note/{noteId}` with the OS; the web app currently uses HTTPS routes as the source of truth.
|
|
|
|
## API bases
|
|
|
|
- **Notes backend:** `NEXT_PUBLIC_NOTES_API_URL` (e.g. `https://api.example.com/api`)
|
|
- **Public share JSON:** `GET {NOTES_API_URL}/public/note-shares/{token}` (no auth)
|