From fcfc6b0c8fd7a68b240670f960169d9de15ceed0 Mon Sep 17 00:00:00 2001 From: "flaremo-update[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 3 Oct 2026 11:02:33 +0000 Subject: [PATCH 1/6] Update FlareMo from v0.20.0 to v0.22.0 --- .dev.vars.example | 9 + AGENTS.md | 72 +- CHANGELOG.md | 140 + CONTRIBUTING.md | 12 +- README.ar.md | 223 + README.en.md | 200 - README.es.md | 219 + README.fr.md | 219 + README.ja.md | 219 + README.ko.md | 219 + README.md | 454 +- README.ru.md | 219 + README.zh-CN.md | 225 + ROADMAP.md | 3 +- SECURITY.md | 1 + apps/site/AGENTS.md | 4 +- apps/site/components.json | 21 + apps/site/index.html | 1 + apps/site/package.json | 16 +- .../docs-assets/flaremo-desktop-dark.png | Bin 0 -> 133523 bytes .../docs-assets/flaremo-desktop-light.png | Bin 0 -> 133020 bytes .../public/docs-assets/flaremo-desktop.png | Bin 62301 -> 133020 bytes .../public/docs-assets/flaremo-mobile.png | Bin 46876 -> 91647 bytes apps/site/public/showcase/card-daily.png | Bin 0 -> 31788 bytes apps/site/public/showcase/card-plain.png | Bin 0 -> 35609 bytes apps/site/public/showcase/card-postcard.png | Bin 0 -> 53449 bytes apps/site/public/showcase/card-stamp.png | Bin 0 -> 58466 bytes apps/site/public/showcase/card-ticket.png | Bin 0 -> 36028 bytes apps/site/scripts/build.mjs | 134 +- .../src/components/card-gallery-section.tsx | 65 + .../src/components/interactive-showcase.tsx | 179 + apps/site/src/components/locale-switcher.tsx | 123 +- apps/site/src/components/motion.tsx | 202 + apps/site/src/components/root-layout.tsx | 40 +- .../site/src/components/showcase/composer.tsx | 123 + .../components/showcase/desktop-device.tsx | 150 + .../components/showcase/device-sidebar.tsx | 437 ++ apps/site/src/components/showcase/fixtures.ts | 53 + .../src/components/showcase/memo-card.tsx | 202 + .../src/components/showcase/mobile-device.tsx | 167 + .../src/components/showcase/mobile-drawer.tsx | 101 + apps/site/src/components/site-footer.tsx | 202 +- apps/site/src/components/site-nav.tsx | 399 +- apps/site/src/components/theme-provider.tsx | 72 + apps/site/src/components/ui/badge.tsx | 53 + apps/site/src/components/ui/button.tsx | 70 + apps/site/src/components/ui/card.tsx | 74 + apps/site/src/components/ui/dropdown-menu.tsx | 175 + apps/site/src/components/ui/progress.tsx | 30 + .../site/src/components/ui/spotlight-card.tsx | 47 + apps/site/src/content/card-gallery-i18n.ts | 160 + apps/site/src/content/comparison-i18n.ts | 40 + apps/site/src/content/copy.ts | 246 +- apps/site/src/content/docs-nav.ts | 83 +- apps/site/src/content/ecosystem-i18n.ts | 240 + apps/site/src/content/home/ar.ts | 130 + apps/site/src/content/home/en.ts | 130 + apps/site/src/content/home/es.ts | 131 + apps/site/src/content/home/fr.ts | 130 + apps/site/src/content/home/ja.ts | 129 + apps/site/src/content/home/ko.ts | 129 + apps/site/src/content/home/ru.ts | 130 + apps/site/src/content/home/zh.ts | 129 + apps/site/src/content/showcase-i18n.ts | 80 + apps/site/src/content/showcase/ar.ts | 70 + apps/site/src/content/showcase/en.ts | 73 + apps/site/src/content/showcase/es.ts | 73 + apps/site/src/content/showcase/fr.ts | 73 + apps/site/src/content/showcase/ja.ts | 70 + apps/site/src/content/showcase/ko.ts | 71 + apps/site/src/content/showcase/ru.ts | 73 + apps/site/src/content/showcase/zh.ts | 70 + apps/site/src/content/static-page-meta.ts | 87 + apps/site/src/lib/docs-source.generated.ts | 38 +- apps/site/src/lib/html-shell.ts | 24 +- apps/site/src/lib/route-meta.ts | 118 - apps/site/src/lib/seo.ts | 177 +- apps/site/src/lib/theme.ts | 64 + apps/site/src/lib/utils.ts | 6 + apps/site/src/main.tsx | 4 + apps/site/src/pages/docs-detail-page.tsx | 101 +- apps/site/src/pages/docs-index-page.tsx | 77 +- apps/site/src/pages/home-page.tsx | 307 +- .../src/pages/home/bento-features-section.tsx | 58 + .../src/pages/home/comparison-section.tsx | 72 + apps/site/src/pages/home/cta-section.tsx | 70 + .../site/src/pages/home/ecosystem-section.tsx | 50 + apps/site/src/pages/home/faq-section.tsx | 45 + apps/site/src/pages/home/hero-section.tsx | 179 + apps/site/src/router.tsx | 41 +- apps/site/src/ssr-render.tsx | 137 +- apps/site/src/styles/prose.css | 2 +- apps/site/src/styles/tokens.css | 441 +- apps/site/src/typography.test.ts | 136 + apps/telegram-bot/package.json | 3 +- apps/web/index.html | 24 +- apps/web/package.json | 36 +- .../brand/amber/flaremo-mark-dark-320.png | Bin 0 -> 19575 bytes .../brand/amber/flaremo-mark-light-300.png | Bin 0 -> 32813 bytes .../brand/crimson/flaremo-mark-dark-320.png | Bin 0 -> 19575 bytes .../brand/crimson/flaremo-mark-light-300.png | Bin 0 -> 33658 bytes .../brand/indigo/flaremo-mark-dark-320.png | Bin 0 -> 19575 bytes .../brand/indigo/flaremo-mark-light-300.png | Bin 0 -> 30847 bytes .../brand/iris/flaremo-mark-dark-320.png | Bin 0 -> 19575 bytes .../brand/iris/flaremo-mark-light-300.png | Bin 0 -> 29210 bytes .../brand/jade/flaremo-mark-dark-320.png | Bin 0 -> 19575 bytes .../brand/jade/flaremo-mark-light-300.png | Bin 0 -> 36280 bytes .../brand/ocean/flaremo-mark-dark-320.png | Bin 0 -> 19575 bytes .../brand/ocean/flaremo-mark-light-300.png | Bin 0 -> 26860 bytes .../brand/teal/flaremo-mark-dark-320.png | Bin 0 -> 19575 bytes .../brand/teal/flaremo-mark-light-300.png | Bin 0 -> 36896 bytes apps/web/public/offline.html | 8 +- apps/web/public/robots.txt | 7 + apps/web/public/site.webmanifest | 18 +- apps/web/public/sw.js | 46 +- apps/web/scripts/generate-accent-brand.mjs | 125 + apps/web/src/App.tsx | 764 +-- apps/web/src/api.ts | 1108 +--- apps/web/src/api/account.ts | 160 + apps/web/src/api/articles.ts | 81 + apps/web/src/api/attachments.ts | 99 + apps/web/src/api/auth.ts | 143 + apps/web/src/api/branding.ts | 145 + apps/web/src/api/capture.ts | 51 + apps/web/src/api/client.ts | 59 + apps/web/src/api/data-tasks.ts | 56 + apps/web/src/api/integrations.ts | 94 + apps/web/src/api/memories.ts | 220 + apps/web/src/api/memos.ts | 221 + apps/web/src/api/notifications.ts | 18 + apps/web/src/api/plugins.ts | 134 + apps/web/src/api/projects.ts | 133 + apps/web/src/api/push.ts | 27 + apps/web/src/api/releases.ts | 45 + apps/web/src/api/shares.ts | 30 + apps/web/src/api/types.ts | 185 + apps/web/src/api/voice.ts | 38 + apps/web/src/branding.tsx | 190 + apps/web/src/components/article-editor.tsx | 82 + .../article-preview-highlight.test.tsx | 47 + .../src/components/article-publish-dialog.tsx | 150 + .../src/components/article-roundtrip.test.ts | 44 + .../web/src/components/article-shiki-body.tsx | 74 + .../web/src/components/attachment-gallery.tsx | 128 +- apps/web/src/components/auth-page-frame.tsx | 45 +- apps/web/src/components/captcha-field.tsx | 8 - .../src/components/capture/capture-button.tsx | 104 + .../capture/capture-transcribing.tsx | 19 + .../components/capture/capture-waveform.tsx | 84 + .../src/components/composer-roundtrip.test.ts | 74 + .../composer/composer-canvas-actions.tsx | 78 + .../composer/composer-canvas-header.tsx | 73 + .../composer/composer-canvas-toolbar.tsx | 358 ++ .../composer/composer-file-chips.tsx | 59 + .../composer/composer-focus-canvas-lazy.tsx | 22 + .../composer/composer-focus-canvas.tsx | 358 ++ .../composer/composer-suggestion-lists.tsx | 94 + .../components/composer/composer-toolbar.tsx | 190 + .../composer/composer-type-menu.test.tsx | 27 + .../composer/composer-type-menu.tsx | 77 + .../composer/composer-visibility-menu.tsx | 112 + .../components/composer/voice-capture-bar.tsx | 103 + apps/web/src/components/flaremo-calendar.tsx | 334 -- apps/web/src/components/flaremo-explorer.tsx | 350 +- .../flaremo-mini-calendar-panel.tsx | 84 +- .../src/components/flaremo-time-horizon.tsx | 414 ++ apps/web/src/components/image-lightbox.tsx | 191 + apps/web/src/components/info-tip.tsx | 18 +- apps/web/src/components/lazy-memo-content.tsx | 19 + apps/web/src/components/locale-switcher.tsx | 45 + apps/web/src/components/memo-card.tsx | 621 +- .../components/memo-card/memo-card-badges.tsx | 93 + .../components/memo-card/memo-card-body.tsx | 147 + .../components/memo-card/memo-card-editor.tsx | 113 + .../components/memo-card/memo-card-header.tsx | 133 + .../components/memo-card/memo-card-menu.tsx | 225 + .../memo-card/use-memo-card-actions.ts | 167 + apps/web/src/components/memo-composer.tsx | 435 +- apps/web/src/components/memo-content.test.tsx | 24 + apps/web/src/components/memo-content.tsx | 164 +- apps/web/src/components/memo-list.tsx | 137 +- .../web/src/components/memo-snapshot-card.tsx | 20 +- .../src/components/memo-visibility-dialog.tsx | 253 + .../src/components/new-password-fields.tsx | 63 + apps/web/src/components/notification-bell.tsx | 166 +- apps/web/src/components/query-error-state.tsx | 57 + .../src/components/reading/memo-outline.tsx | 8 +- .../components/reading/memo-reading-view.tsx | 118 +- .../components/reading/reading-audio-bar.tsx | 19 +- .../reading/reading-audio-provider.tsx | 117 +- .../components/rich-composer-editor-lazy.tsx | 21 + .../src/components/rich-composer-editor.tsx | 322 + apps/web/src/components/scope-switcher.tsx | 126 + .../components/share-card-document.test.tsx | 106 + .../src/components/share-card-document.tsx | 430 ++ .../src/components/share-card-sandbox.test.ts | 94 + .../web/src/components/share-card-sandbox.tsx | 355 ++ .../web/src/components/share-image-dialog.tsx | 390 ++ apps/web/src/components/spotlight-search.tsx | 480 ++ apps/web/src/components/subpage-header.tsx | 30 - .../src/components/tag-highlight-extension.ts | 44 + apps/web/src/components/theme-provider.tsx | 77 +- .../time-horizon/day-horizon-view.tsx | 477 ++ .../time-horizon/month-horizon-view.tsx | 226 + .../web/src/components/time-horizon/shared.ts | 24 + .../time-horizon/week-horizon-view.tsx | 156 + .../time-horizon/year-horizon-view.tsx | 157 + apps/web/src/components/ui/alert-dialog.tsx | 48 +- apps/web/src/components/ui/avatar.tsx | 118 + apps/web/src/components/ui/badge.tsx | 35 +- apps/web/src/components/ui/button.tsx | 33 +- apps/web/src/components/ui/dialog.tsx | 40 +- apps/web/src/components/ui/dropdown-menu.tsx | 109 +- apps/web/src/components/ui/filter-pill.tsx | 59 + apps/web/src/components/ui/input-group.tsx | 2 +- apps/web/src/components/ui/input.tsx | 2 +- apps/web/src/components/ui/password-input.tsx | 26 + apps/web/src/components/ui/select.tsx | 37 + apps/web/src/components/ui/sheet.tsx | 40 +- apps/web/src/components/ui/slider.tsx | 38 +- apps/web/src/components/ui/sonner.tsx | 4 +- apps/web/src/components/ui/switch.tsx | 6 +- apps/web/src/components/ui/tabs.tsx | 17 +- apps/web/src/components/ui/textarea.tsx | 2 +- apps/web/src/components/ui/toggle-group.tsx | 15 +- apps/web/src/components/ui/toggle.tsx | 8 +- apps/web/src/components/ui/tooltip.tsx | 37 +- apps/web/src/components/update-status.tsx | 154 +- .../upload-placeholder-extension.ts | 101 + apps/web/src/components/user-menu.tsx | 229 + .../web/src/components/workspace-composer.tsx | 123 +- apps/web/src/components/workspace-search.tsx | 13 +- .../components/workspace/shortcuts-dialog.tsx | 57 + .../workspace/task-search-results.tsx | 51 + .../workspace/workspace-filter-chips.tsx | 90 + .../components/workspace/workspace-header.tsx | 117 + .../components/workspace/workspace-layout.tsx | 216 + .../workspace/workspace-page-header.tsx | 87 + .../workspace/workspace-sidebar.tsx | 275 + apps/web/src/dev-proxy-parity.test.ts | 73 + apps/web/src/dev/react-grab.test.ts | 62 + apps/web/src/dev/react-grab.ts | 88 + apps/web/src/features/team-projects/copy.js | 307 + .../web/src/features/team-projects/flaremo.js | 214 + apps/web/src/features/team-projects/model.js | 348 ++ .../src/features/team-projects/navigation.js | 98 + .../features/team-projects/navigation.test.ts | 31 + .../features/team-projects/select-menu.jsx | 202 + .../team-projects/team-projects-app.jsx | 2857 +++++++++ .../features/team-projects/team-projects.css | 1481 +++++ apps/web/src/glass.test.ts | 54 + apps/web/src/hooks/use-clipboard.ts | 58 + .../web/src/hooks/use-composer-suggestions.ts | 122 + apps/web/src/hooks/use-composer-voice.ts | 106 + apps/web/src/hooks/use-debounced-value.ts | 12 - .../web/src/hooks/use-inline-image-uploads.ts | 77 + apps/web/src/hooks/use-memo-mutations.ts | 240 +- apps/web/src/hooks/use-sign-out.ts | 37 + apps/web/src/hooks/use-workspace-filters.ts | 117 + apps/web/src/hooks/use-workspace-queries.ts | 243 + apps/web/src/hooks/use-workspace-shortcuts.ts | 147 + apps/web/src/i18n.tsx | 1549 +---- apps/web/src/i18n/key.ts | 6 + apps/web/src/i18n/messages/ar.ts | 1196 ++++ apps/web/src/i18n/messages/en-US.ts | 1218 ++++ apps/web/src/i18n/messages/es.ts | 1244 ++++ apps/web/src/i18n/messages/fr.ts | 1259 ++++ apps/web/src/i18n/messages/ja.ts | 1229 ++++ apps/web/src/i18n/messages/ko.ts | 1220 ++++ apps/web/src/i18n/messages/parity.test.ts | 63 + apps/web/src/i18n/messages/ru.ts | 1238 ++++ apps/web/src/i18n/messages/zh-CN.ts | 1144 ++++ apps/web/src/index.css | 675 ++- apps/web/src/lib/activity.test.ts | 43 + apps/web/src/lib/activity.ts | 31 + apps/web/src/lib/article-submission.test.ts | 81 + apps/web/src/lib/article-submission.ts | 73 + apps/web/src/lib/attachment-refs.ts | 45 + .../src/lib/audio-capture/batch-recorder.ts | 235 + apps/web/src/lib/audio-capture/batch.test.ts | 118 + apps/web/src/lib/audio-capture/batch.ts | 92 + .../src/lib/audio-capture/controller.test.ts | 390 +- apps/web/src/lib/audio-capture/controller.ts | 400 +- .../web/src/lib/audio-capture/encoder.test.ts | 201 + apps/web/src/lib/audio-capture/encoder.ts | 361 ++ apps/web/src/lib/audio-capture/microphone.ts | 25 +- apps/web/src/lib/audio-capture/pcm.test.ts | 5 +- .../src/lib/audio-capture/plain-text.test.ts | 30 + apps/web/src/lib/audio-capture/plain-text.ts | 21 + .../src/lib/audio-capture/stream-transport.ts | 295 + .../src/lib/audio-capture/transcript.test.ts | 80 +- apps/web/src/lib/audio-capture/transcript.ts | 24 +- apps/web/src/lib/audio-capture/types.ts | 5 +- apps/web/src/lib/brand-ramp.test.ts | 116 + apps/web/src/lib/brand-ramp.ts | 230 + apps/web/src/lib/calendar-date.test.ts | 78 +- apps/web/src/lib/calendar-date.ts | 102 +- apps/web/src/lib/capture-reconcile.test.ts | 200 + apps/web/src/lib/capture-reconcile.ts | 82 + apps/web/src/lib/composer-focus.ts | 16 + apps/web/src/lib/date-format.test.ts | 38 + apps/web/src/lib/date-format.ts | 45 + apps/web/src/lib/error.test.ts | 27 + apps/web/src/lib/error.ts | 26 + apps/web/src/lib/format-duration.test.ts | 20 + apps/web/src/lib/format-duration.ts | 13 + apps/web/src/lib/han-locale.test.ts | 33 + apps/web/src/lib/han-locale.ts | 17 + apps/web/src/lib/haptics.ts | 10 + apps/web/src/lib/idle-prefetch.ts | 32 + apps/web/src/lib/local-memo-capture.test.ts | 14 +- apps/web/src/lib/local-memo-capture.ts | 25 +- apps/web/src/lib/markdown-outline.test.ts | 13 +- apps/web/src/lib/markdown-outline.ts | 5 - apps/web/src/lib/memo-cache.test.ts | 611 ++ apps/web/src/lib/memo-cache.ts | 198 + apps/web/src/lib/memo-submission.test.ts | 124 + apps/web/src/lib/memo-submission.ts | 15 +- apps/web/src/lib/memo-tasks.test.ts | 67 + apps/web/src/lib/memo-tasks.ts | 58 + apps/web/src/lib/memo.test.ts | 47 + apps/web/src/lib/memo.ts | 9 + apps/web/src/lib/ogg-repage.test.ts | 275 + apps/web/src/lib/ogg-repage.ts | 263 + apps/web/src/lib/plugin-cards.test.ts | 122 + apps/web/src/lib/plugin-cards.ts | 181 + apps/web/src/lib/query-keys.ts | 28 + apps/web/src/lib/rich-editor-upload.ts | 94 + apps/web/src/lib/tag-autocomplete.test.ts | 71 + apps/web/src/lib/tag-autocomplete.ts | 66 + apps/web/src/lib/tag-highlight.test.ts | 28 + apps/web/src/lib/tag-highlight.ts | 22 + apps/web/src/lib/time-horizon.ts | 145 + apps/web/src/lib/timeline-search.ts | 16 + apps/web/src/lib/upload-compression.test.ts | 807 +++ apps/web/src/lib/upload-compression.ts | 79 + apps/web/src/lib/upload-settings.ts | 41 + apps/web/src/lib/upload/audio-compression.ts | 226 + apps/web/src/lib/upload/audio-format.ts | 134 + apps/web/src/lib/upload/capabilities.ts | 23 + apps/web/src/lib/upload/image-compression.ts | 261 + apps/web/src/lib/web-highlighter.ts | 61 + .../web/src/lib/wikilink-autocomplete.test.ts | 35 + apps/web/src/lib/wikilink-autocomplete.ts | 29 + apps/web/src/main.tsx | 46 +- apps/web/src/pages/account-page.tsx | 756 +-- ...el.tsx => account-credentials-section.tsx} | 432 +- .../pages/account/account-panel-presets.ts | 63 + apps/web/src/pages/account/account-panel.tsx | 253 + .../pages/account/account-profile-section.tsx | 417 ++ .../pages/account/account-tokens-section.tsx | 363 ++ .../src/pages/account/appearance-panel.tsx | 119 + .../src/pages/account/apple-settings-ui.tsx | 159 + .../src/pages/account/install-app-card.tsx | 105 - .../src/pages/account/integrations-card.tsx | 668 +++ apps/web/src/pages/account/profile-panel.tsx | 118 - apps/web/src/pages/account/push-panel.tsx | 141 + apps/web/src/pages/account/settings-nav.ts | 138 + .../account/settings-section-content.tsx | 129 + apps/web/src/pages/account/tokens-panel.tsx | 304 - apps/web/src/pages/account/transfer-panel.tsx | 226 +- apps/web/src/pages/account/uploads-panel.tsx | 65 + apps/web/src/pages/account/usage-panel.tsx | 208 +- .../pages/account/use-account-page-state.ts | 357 ++ .../account/use-account-settings-mutations.ts | 397 ++ apps/web/src/pages/account/voice-panel.tsx | 466 ++ apps/web/src/pages/admin-page.tsx | 698 +-- apps/web/src/pages/admin/accent-picker.tsx | 91 + apps/web/src/pages/admin/branding-card.tsx | 481 ++ apps/web/src/pages/admin/plugins-card.tsx | 73 + .../admin/plugins/plugin-cards-manager.tsx | 205 + .../pages/admin/plugins/plugin-list-card.tsx | 97 + .../web/src/pages/admin/plugins/plugin-row.ts | 19 + .../pages/admin/plugins/plugin-store-card.tsx | 232 + .../admin/plugins/use-plugin-settings.ts | 331 ++ apps/web/src/pages/admin/use-admin-users.ts | 93 + apps/web/src/pages/admin/users-card.tsx | 211 + .../pages/admin/users-card/users-dialogs.tsx | 295 + .../pages/admin/users-card/users-table.tsx | 334 ++ apps/web/src/pages/article-editor-page.tsx | 469 ++ apps/web/src/pages/articles-page.tsx | 255 + apps/web/src/pages/calendar-page.tsx | 658 --- apps/web/src/pages/capture-page.tsx | 1039 ++-- .../src/pages/capture/capture-review-form.tsx | 184 + .../src/pages/capture/use-capture-session.ts | 472 ++ .../src/pages/capture/use-capture-submit.ts | 158 + apps/web/src/pages/daily-review-page.tsx | 200 +- apps/web/src/pages/forgot-password-page.tsx | 9 +- apps/web/src/pages/login-page.tsx | 123 +- apps/web/src/pages/memo-detail-page.tsx | 618 +- .../web/src/pages/memo-detail/content-tab.tsx | 97 + .../web/src/pages/memo-detail/history-tab.tsx | 55 + .../src/pages/memo-detail/relations-tab.tsx | 210 + .../web/src/pages/memo-detail/sharing-tab.tsx | 118 + .../src/pages/memo-detail/use-memo-detail.ts | 201 + apps/web/src/pages/memory-page.tsx | 1011 +--- apps/web/src/pages/memory/memory-card.tsx | 308 + apps/web/src/pages/memory/memory-filters.ts | 30 + .../src/pages/memory/memory-form-dialog.tsx | 199 + .../src/pages/memory/memory-lens-dialog.tsx | 95 + apps/web/src/pages/memory/memory-list.tsx | 87 + .../pages/memory/memory-quick-composer.tsx | 275 + .../web/src/pages/memory/memory-revisions.tsx | 60 + .../pages/memory/memory-workspace-header.tsx | 69 + apps/web/src/pages/memory/project-groups.tsx | 237 + .../src/pages/memory/use-memory-mutations.ts | 111 + apps/web/src/pages/projects-page.tsx | 868 +-- apps/web/src/pages/projects/board.tsx | 415 ++ apps/web/src/pages/projects/constants.ts | 38 + .../pages/projects/project-form-dialog.tsx | 100 + apps/web/src/pages/projects/project-row.tsx | 180 + apps/web/src/pages/projects/task-cache.ts | 44 + apps/web/src/pages/projects/task-card.tsx | 341 ++ .../src/pages/projects/task-form-dialog.tsx | 251 + apps/web/src/pages/projects/trash-section.tsx | 164 + apps/web/src/pages/random-walk-page.tsx | 83 +- apps/web/src/pages/recover-page.tsx | 46 +- apps/web/src/pages/register-page.tsx | 20 +- apps/web/src/pages/reset-page.tsx | 47 +- apps/web/src/pages/setup-page.tsx | 21 +- apps/web/src/pages/team-projects-page.tsx | 57 + .../src/pages/verify-email-change-page.tsx | 66 +- apps/web/src/pages/verify-email-page.tsx | 66 +- apps/web/src/pages/verify-token-page.tsx | 80 + apps/web/src/pwa.ts | 24 +- apps/web/src/router-tree.tsx | 213 +- apps/web/src/routes/index-route.tsx | 6 + apps/web/src/routes/root-route.tsx | 76 +- apps/web/src/sheet-motion.test.ts | 35 + apps/web/src/typography.test.ts | 403 ++ apps/web/tsconfig.team-projects.json | 14 + apps/web/vite.config.ts | 90 +- apps/worker/package.json | 9 +- apps/worker/src/api.test.ts | 3471 ----------- apps/worker/src/api/app-memos.test.ts | 551 ++ apps/worker/src/api/branding.test.ts | 278 + apps/worker/src/api/capture.test.ts | 482 ++ .../src/api/context-attachments.test.ts | 93 + apps/worker/src/api/export-import.test.ts | 247 + apps/worker/src/api/gc-scheduled.test.ts | 206 + apps/worker/src/api/memo-crud.test.ts | 218 + apps/worker/src/api/offline-replay.test.ts | 119 + apps/worker/src/api/quota-usage.test.ts | 188 + apps/worker/src/api/ratelimit-account.test.ts | 239 + .../worker/src/api/registration-email.test.ts | 514 ++ .../src/api/registration-visibility.test.ts | 136 + apps/worker/src/api/review-related.test.ts | 282 + apps/worker/src/api/share.test.ts | 122 + apps/worker/src/api/team-admin.test.ts | 849 +++ apps/worker/src/api/team-mode-upgrade.test.ts | 125 + apps/worker/src/article-page.test.ts | 278 + apps/worker/src/article-rtl.test.ts | 73 + apps/worker/src/articles-api.test.ts | 271 + apps/worker/src/artifact-cleanup.ts | 5 +- apps/worker/src/asr/batch.ts | 36 + apps/worker/src/asr/configuration.test.ts | 83 + apps/worker/src/asr/configuration.ts | 161 + apps/worker/src/asr/dashscope.ts | 12 +- apps/worker/src/asr/minimax.test.ts | 267 + apps/worker/src/asr/minimax.ts | 229 + apps/worker/src/asr/provider.test.ts | 41 +- apps/worker/src/asr/provider.ts | 63 +- apps/worker/src/asr/tencent.ts | 8 +- apps/worker/src/asr/types.ts | 19 + apps/worker/src/asr/volcengine.test.ts | 224 + apps/worker/src/asr/volcengine.ts | 405 ++ apps/worker/src/auth-env.ts | 296 + apps/worker/src/auth.test.ts | 54 +- apps/worker/src/auth.ts | 378 +- apps/worker/src/calendar-api.test.ts | 40 +- apps/worker/src/captcha.ts | 22 +- apps/worker/src/cf-analytics.test.ts | 272 + apps/worker/src/cf-analytics.ts | 389 ++ .../src/compatibility/current-auth.test.ts | 239 + .../src/compatibility/current-mcp.test.ts | 348 ++ .../compatibility/current-memo-facade.test.ts | 365 ++ .../src/compatibility/export-import.test.ts | 197 + .../worker/src/compatibility/memo-dto.test.ts | 147 + .../src/compatibility/memo-query.test.ts | 140 + apps/worker/src/compatibility/openapi.test.ts | 62 + .../src/compatibility/share-isolation.test.ts | 100 + apps/worker/src/context.ts | 139 +- apps/worker/src/email-templates.test.ts | 160 + apps/worker/src/email-templates.ts | 317 + apps/worker/src/email.ts | 243 +- apps/worker/src/embedding.ts | 49 +- apps/worker/src/env.ts | 61 +- apps/worker/src/export-task.ts | 120 + apps/worker/src/http.test.ts | 91 + apps/worker/src/http.ts | 17 + apps/worker/src/index.ts | 413 +- apps/worker/src/integrations-api.test.ts | 352 ++ apps/worker/src/integrations/config.ts | 253 + apps/worker/src/integrations/secret-box.ts | 108 + apps/worker/src/lazy-routes.test.ts | 327 ++ apps/worker/src/lazy-routes.ts | 124 + apps/worker/src/mcp-protocol.ts | 87 + apps/worker/src/memo-context.ts | 2 + apps/worker/src/memory-api.test.ts | 35 + apps/worker/src/memory-dreaming.ts | 282 + apps/worker/src/memory-mcp.test.ts | 3 +- apps/worker/src/memos-auth-golden.test.ts | 50 +- .../src/memos-compat/attachment-delete.ts | 26 + apps/worker/src/memos-compat/base64.ts | 17 + apps/worker/src/memos-compat/credential.ts | 32 + .../worker/src/memos-compat/current-errors.ts | 125 + apps/worker/src/memos-compat/errors.ts | 77 + .../worker/src/memos-compat/member-service.ts | 59 + apps/worker/src/memos-compat/memo-creator.ts | 18 + .../worker/src/memos-compat/memo-relations.ts | 38 + apps/worker/src/memos-compat/parsing.ts | 135 + apps/worker/src/memos-compat/pat.ts | 27 + apps/worker/src/memos-compat/payload.ts | 49 + apps/worker/src/memos-compat/proto-wire.ts | 223 + .../worker/src/memos-compat/resource-names.ts | 13 + apps/worker/src/memos-compat/user-dto.ts | 39 + apps/worker/src/memos-compatibility.test.ts | 1399 ----- apps/worker/src/memos-connect-client.test.ts | 44 +- apps/worker/src/memos-native-auth.ts | 8 +- apps/worker/src/memos-protobuf.ts | 2490 +------- apps/worker/src/memos-social.test.ts | 108 +- apps/worker/src/memos-transport.test.ts | 1494 ----- apps/worker/src/projects-api.test.ts | 33 + apps/worker/src/routes/account-api.ts | 66 +- apps/worker/src/routes/admin-api.ts | 482 +- apps/worker/src/routes/admin/branding.ts | 212 + apps/worker/src/routes/admin/context.ts | 82 + apps/worker/src/routes/admin/index.ts | 20 + apps/worker/src/routes/admin/maintenance.ts | 207 + apps/worker/src/routes/admin/plugins.ts | 57 + apps/worker/src/routes/admin/reader-seats.ts | 291 + apps/worker/src/routes/admin/settings.ts | 44 + apps/worker/src/routes/admin/users.ts | 136 + apps/worker/src/routes/app-api.ts | 582 +- apps/worker/src/routes/app/helpers.ts | 41 + apps/worker/src/routes/app/index.ts | 21 + apps/worker/src/routes/app/me.ts | 207 + apps/worker/src/routes/app/memos.ts | 271 + apps/worker/src/routes/app/push.ts | 88 + apps/worker/src/routes/app/review.ts | 117 + apps/worker/src/routes/app/timeline.ts | 129 + apps/worker/src/routes/app/usage.ts | 69 + apps/worker/src/routes/article-page.ts | 588 ++ apps/worker/src/routes/articles-api.ts | 188 + apps/worker/src/routes/auth-api.ts | 63 +- apps/worker/src/routes/branding-api.ts | 40 +- apps/worker/src/routes/capture-api.ts | 128 +- apps/worker/src/routes/email-settings-api.ts | 233 + apps/worker/src/routes/markdown-render.ts | 120 + apps/worker/src/routes/mcp.ts | 1777 +----- apps/worker/src/routes/mcp/index.ts | 216 + apps/worker/src/routes/mcp/input.ts | 319 + apps/worker/src/routes/mcp/legacy-jsonrpc.ts | 226 + apps/worker/src/routes/mcp/protocol.ts | 114 + apps/worker/src/routes/mcp/tool-schemas.ts | 420 ++ .../src/routes/mcp/tools/attachments.ts | 59 + .../src/routes/mcp/tools/memo-subresources.ts | 241 + apps/worker/src/routes/mcp/tools/memos.ts | 155 + apps/worker/src/routes/mcp/tools/shortcuts.ts | 86 + apps/worker/src/routes/memory-api.ts | 185 +- apps/worker/src/routes/memory-mcp.ts | 240 +- apps/worker/src/routes/memos-api.ts | 1002 +--- apps/worker/src/routes/memos-api/bundle.ts | 102 + apps/worker/src/routes/memos-api/index.ts | 15 + apps/worker/src/routes/memos-api/memos.ts | 463 ++ apps/worker/src/routes/memos-api/transfer.ts | 425 ++ apps/worker/src/routes/memos-connect-api.ts | 3183 ---------- .../memos-connect/attachment-methods.ts | 195 + .../src/routes/memos-connect/auth-methods.ts | 291 + .../memos-connect/connect/binary-body.ts | 97 + .../memos-connect/connect/public-routes.ts | 69 + .../routes/memos-connect/connect/router.ts | 248 + .../memos-connect/connect/service-names.ts | 6 + apps/worker/src/routes/memos-connect/index.ts | 58 + .../routes/memos-connect/instance-methods.ts | 309 + .../src/routes/memos-connect/memo-methods.ts | 35 + .../memos-connect/memo-methods/details.ts | 255 + .../routes/memos-connect/memo-methods/read.ts | 229 + .../memos-connect/memo-methods/shared-memo.ts | 30 + .../memos-connect/memo-methods/subresource.ts | 301 + .../memos-connect/memo-methods/write.ts | 114 + .../routes/memos-connect/protobuf-loader.ts | 28 + .../worker/src/routes/memos-connect/shared.ts | 159 + .../routes/memos-connect/shortcut-methods.ts | 92 + .../src/routes/memos-connect/transport.ts | 180 + .../src/routes/memos-connect/user-methods.ts | 8 + .../memos-connect/user-methods/accounts.ts | 115 + .../memos-connect/user-methods/index.ts | 58 + .../memos-connect/user-methods/members.ts | 68 + .../user-methods/notifications.ts | 135 + .../memos-connect/user-methods/settings.ts | 109 + .../memos-connect/user-methods/shared.ts | 61 + .../memos-connect/user-methods/users.ts | 254 + .../memos-connect/user-methods/webhooks.ts | 137 + apps/worker/src/routes/memos-current-api.ts | 1648 ------ .../routes/memos-current/attachment-routes.ts | 183 + .../src/routes/memos-current/auth-routes.ts | 306 + .../src/routes/memos-current/helpers.ts | 392 ++ apps/worker/src/routes/memos-current/index.ts | 15 + .../src/routes/memos-current/memo-routes.ts | 346 ++ .../src/routes/memos-current/schemas.ts | 86 + .../src/routes/memos-current/user-routes.ts | 196 + apps/worker/src/routes/memos-file-api.ts | 5 +- apps/worker/src/routes/memos-social-api.ts | 836 +-- apps/worker/src/routes/memos-sse.ts | 13 +- apps/worker/src/routes/oauth-settings-api.ts | 245 + apps/worker/src/routes/plugins-api.ts | 107 + apps/worker/src/routes/plugins-store-api.ts | 371 ++ apps/worker/src/routes/projects-api.ts | 60 +- apps/worker/src/routes/public-api.ts | 39 +- apps/worker/src/routes/share-page.ts | 461 ++ apps/worker/src/routes/shiki-highlighter.ts | 134 + apps/worker/src/routes/social/comments.ts | 84 + apps/worker/src/routes/social/hydrate.ts | 167 + apps/worker/src/routes/social/index.ts | 40 + apps/worker/src/routes/social/parsing.ts | 287 + apps/worker/src/routes/social/reactions.ts | 104 + apps/worker/src/routes/social/shortcuts.ts | 169 + apps/worker/src/routes/tasks-api.ts | 59 +- apps/worker/src/routes/voice-settings-api.ts | 327 ++ apps/worker/src/scheduled-tasks.ts | 362 ++ apps/worker/src/scheduled.test.ts | 292 + apps/worker/src/share-lang.test.ts | 22 + apps/worker/src/share-page.test.ts | 308 + apps/worker/src/share-render-lang.test.ts | 47 + apps/worker/src/spa-routes.ts | 56 + apps/worker/src/tasks-api.test.ts | 709 +++ apps/worker/src/test-support/app.ts | 199 + .../src/test-support/memos-transport.ts | 287 + apps/worker/src/test-support/runtime.ts | 111 + apps/worker/src/test-support/sign-in.ts | 63 + .../src/transport/auth-boundaries.test.ts | 213 + .../src/transport/binary-transports.test.ts | 270 + .../src/transport/connect-boundaries.test.ts | 158 + .../connect-json-attachments.test.ts | 259 + .../transport/connect-json-lifecycle.test.ts | 215 + apps/worker/src/transport/sse-stream.test.ts | 59 + .../transport/user-service-webhooks.test.ts | 304 + bin/flaremo | 733 +++ biome.json | 9 +- docs/agent-deploy.md | 8 +- docs/agent-ingestion.md | 5 + docs/agent-memory-landscape.md | 113 + docs/agent-memory.md | 74 +- docs/architecture-notes.md | 9 +- docs/article-publishing-design.md | 184 + docs/asr-admin-settings.md | 162 + docs/asr-minimax.md | 54 + docs/assets/flaremo-desktop-dark.png | Bin 0 -> 133523 bytes docs/assets/flaremo-desktop-light.png | Bin 0 -> 133020 bytes docs/assets/flaremo-desktop.png | Bin 62301 -> 0 bytes docs/assets/flaremo-mobile.png | Bin 46876 -> 91647 bytes docs/audio-compression-research.md | 119 + docs/base-ui-migration.md | 254 + docs/brand-color-theming.md | 146 + docs/cf-usage-ui-config.md | 105 + docs/composer-editor-wysiwyg.md | 138 + docs/composer-fullscreen-article-design.md | 227 + docs/composer-wysiwyg-closing.md | 65 + docs/concept-model.md | 80 + docs/content-authority.md | 77 + docs/deploy.md | 113 +- docs/design-principle-rollout.md | 243 + docs/design-system.md | 38 +- docs/en/agent-memory.md | 131 + docs/en/deploy.md | 34 +- docs/en/github-action-deploy.md | 125 + docs/en/plugins.md | 83 + docs/en/team-mode.md | 246 + docs/en/update.md | 4 +- docs/flomo-alignment-ux-refinement.md | 183 + docs/github-action-deploy.md | 125 + docs/harness-adapter-spec.md | 246 + docs/image-compression-design.md | 135 + docs/liquid-glass-design.md | 234 + docs/maintenance.md | 5 +- docs/memory-ledger-design.md | 627 ++ docs/memos-compatibility.md | 8 +- docs/memos-ecosystem.md | 16 +- docs/plugin-platform-standard.md | 293 + docs/plugins.md | 83 + docs/product-requirements.md | 20 +- docs/projects-tasks-audit.md | 242 + docs/quality-backlog.md | 103 + docs/release.md | 12 +- docs/semantic-search.md | 12 +- docs/seo-share-pages-best-practices.md | 139 + docs/tag-system-audit.md | 466 ++ docs/team-mode.md | 194 +- docs/team-projects-workbench.md | 25 + docs/team-space-ux.md | 168 + docs/time-task-mental-model-audit.md | 208 + docs/update.md | 4 +- docs/ux-differentiation.md | 73 + docs/vector-namespace-design.md | 199 + docs/voice-capture-rollout.md | 213 + docs/voice-capture.md | 22 +- docs/voice-settings.md | 32 + harness/.agents/plugins/marketplace.json | 20 + harness/README.md | 55 + harness/antigravity/hooks.json | 18 + harness/antigravity/plugin.json | 5 + harness/antigravity/rules/flaremo-memory.md | 13 + harness/antigravity/skills/flaremo-memory | 1 + harness/codex/.codex-plugin/plugin.json | 6 + harness/codex/hooks/hooks.json | 49 + harness/core/credentials.mjs | 42 + harness/core/hooks.mjs | 264 + harness/core/importer.mjs | 421 ++ harness/core/install.mjs | 709 +++ harness/core/outbox.mjs | 204 + harness/core/paths.mjs | 85 + harness/core/project.mjs | 50 + harness/core/state.mjs | 188 + harness/core/texts.mjs | 26 + harness/core/transport.mjs | 77 + harness/install.sh | 11 + harness/pi/flaremo-memory.ts | 156 + harness/zcode/.zcode-plugin/plugin.json | 15 + harness/zcode/commands/flaremo-setup.md | 41 + harness/zcode/hooks/hooks.json | 37 + llms.txt | 6 +- migrations/0019_sticky_adam_warlock.sql | 2 + migrations/0020_illegal_pandemic.sql | 75 + migrations/0021_overjoyed_paibok.sql | 1 + migrations/0022_violet_raza.sql | 26 + migrations/0023_clever_union_jack.sql | 13 + migrations/0024_gray_madrox.sql | 6 + migrations/0025_clammy_sunspot.sql | 27 + migrations/0026_workable_nemesis.sql | 3 + migrations/0027_reader_memberships.sql | 3 + migrations/0028_ambiguous_dracula.sql | 7 + migrations/0029_faithful_mandrill.sql | 28 + migrations/0030_memory_ledger_v2.sql | 58 + migrations/0031_memory_ledger_followup.sql | 21 + migrations/0032_omniscient_energizer.sql | 2 + migrations/0033_large_multiple_man.sql | 51 + migrations/meta/0019_snapshot.json | 3820 ++++++++++++ migrations/meta/0020_snapshot.json | 4098 +++++++++++++ migrations/meta/0021_snapshot.json | 4105 +++++++++++++ migrations/meta/0022_snapshot.json | 4112 +++++++++++++ migrations/meta/0023_snapshot.json | 4200 +++++++++++++ migrations/meta/0024_snapshot.json | 4238 ++++++++++++++ migrations/meta/0025_snapshot.json | 4259 ++++++++++++++ migrations/meta/0026_snapshot.json | 4281 ++++++++++++++ migrations/meta/0028_snapshot.json | 4326 ++++++++++++++ migrations/meta/0029_snapshot.json | 4529 ++++++++++++++ migrations/meta/0032_snapshot.json | 5135 ++++++++++++++++ migrations/meta/0033_snapshot.json | 5212 +++++++++++++++++ migrations/meta/_journal.json | 105 + package.json | 38 +- packages/contracts/package.json | 2 +- packages/contracts/src/articles.ts | 104 + packages/contracts/src/calendar.ts | 41 + packages/contracts/src/capture.ts | 13 + packages/contracts/src/embedding.ts | 2 + packages/contracts/src/index.ts | 1 + packages/contracts/src/memory.ts | 282 +- packages/contracts/src/memos.ts | 151 +- packages/contracts/src/openapi-current.ts | 1564 +---- .../src/openapi-current/components.ts | 104 + .../src/openapi-current/connect-paths.ts | 280 + .../contracts/src/openapi-current/document.ts | 36 + .../src/openapi-current/rest-paths.ts | 914 +++ .../contracts/src/openapi-current/shared.ts | 245 + packages/contracts/src/openapi.ts | 2 +- packages/contracts/src/projects.ts | 61 +- packages/db/package.json | 2 +- packages/db/src/schema.ts | 1149 +--- packages/db/src/schema/auth.ts | 266 + packages/db/src/schema/content.ts | 155 + packages/db/src/schema/instance.ts | 19 + packages/db/src/schema/memory.ts | 421 ++ packages/db/src/schema/memos.ts | 291 + packages/db/src/schema/ops.ts | 86 + packages/db/src/schema/rows.ts | 94 + packages/db/src/schema/social.ts | 179 + packages/db/src/schema/tasks.ts | 110 + packages/db/src/schema/usage.ts | 80 + packages/domain/package.json | 5 +- packages/domain/src/articles.test.ts | 446 ++ packages/domain/src/articles.ts | 537 ++ packages/domain/src/attachments-lifecycle.ts | 217 + packages/domain/src/attachments-list.ts | 440 ++ packages/domain/src/attachments-metadata.ts | 207 + packages/domain/src/attachments.test.ts | 61 + packages/domain/src/attachments.ts | 863 +-- packages/domain/src/auth.ts | 181 +- packages/domain/src/branding.test.ts | 133 + packages/domain/src/branding.ts | 193 +- packages/domain/src/calendar-view.ts | 96 +- packages/domain/src/data-tasks.test.ts | 80 + packages/domain/src/data-tasks.ts | 29 + packages/domain/src/embedding-outbox.test.ts | 146 +- packages/domain/src/embedding-outbox.ts | 521 +- packages/domain/src/embedding-processors.ts | 351 ++ packages/domain/src/embedding-rebuild.ts | 135 + packages/domain/src/embedding-task-store.ts | 146 + packages/domain/src/embedding.ts | 39 + packages/domain/src/ids.ts | 2 + packages/domain/src/import-export.ts | 540 +- .../domain/src/import-export/export-data.ts | 244 + .../domain/src/import-export/import-data.ts | 685 +++ packages/domain/src/index.ts | 6 + packages/domain/src/integrations.ts | 66 + packages/domain/src/memo-context.ts | 9 +- packages/domain/src/memo-filter-lazy.test.ts | 167 + packages/domain/src/memo-filter.test.ts | 301 +- packages/domain/src/memo-filter.ts | 1182 ---- packages/domain/src/memo-filter/ast-utils.ts | 148 + packages/domain/src/memo-filter/compile.ts | 243 + .../domain/src/memo-filter/environment.ts | 139 + packages/domain/src/memo-filter/index.ts | 9 + packages/domain/src/memo-filter/limits.ts | 4 + packages/domain/src/memo-filter/normalize.ts | 118 + packages/domain/src/memo-filter/regex.ts | 132 + packages/domain/src/memo-filter/scanner.ts | 135 + .../domain/src/memo-filter/sql-pushdown.ts | 68 + packages/domain/src/memo-filter/validate.ts | 421 ++ .../domain/src/memo-hourly-counts.test.ts | 710 +++ packages/domain/src/memo-hourly-counts.ts | 447 ++ packages/domain/src/memory-followup.test.ts | 697 +++ packages/domain/src/memory-v2.test.ts | 556 ++ packages/domain/src/memory.test.ts | 184 +- packages/domain/src/memory.ts | 1348 ----- packages/domain/src/memory/adapters.ts | 89 + packages/domain/src/memory/compiler.ts | 294 + packages/domain/src/memory/consolidation.ts | 476 ++ packages/domain/src/memory/dto.ts | 148 + packages/domain/src/memory/index.ts | 103 + packages/domain/src/memory/lifecycle.ts | 786 +++ packages/domain/src/memory/link.ts | 191 + packages/domain/src/memory/maintenance.ts | 486 ++ packages/domain/src/memory/memo-link.ts | 133 + packages/domain/src/memory/query.ts | 351 ++ packages/domain/src/memory/recall.ts | 520 ++ packages/domain/src/memory/shared.ts | 444 ++ packages/domain/src/memory/write.ts | 663 +++ packages/domain/src/memos-comments.ts | 501 ++ packages/domain/src/memos-helpers.ts | 92 + packages/domain/src/memos-lifecycle.ts | 99 + packages/domain/src/memos-query.ts | 114 + packages/domain/src/memos-reactions.ts | 324 + packages/domain/src/memos-read.ts | 617 ++ packages/domain/src/memos-shortcuts.ts | 232 + packages/domain/src/memos-social-shared.ts | 48 + packages/domain/src/memos-social.ts | 979 +--- packages/domain/src/memos-space.test.ts | 370 ++ packages/domain/src/memos-sse.ts | 43 +- .../domain/src/memos-user-notifications.ts | 574 ++ packages/domain/src/memos-user-shared.ts | 25 + packages/domain/src/memos-user-webhooks.ts | 323 + packages/domain/src/memos-user.ts | 775 +-- packages/domain/src/memos-webhooks.ts | 171 +- packages/domain/src/memos-write.ts | 499 ++ packages/domain/src/memos.ts | 1027 +--- packages/domain/src/plugins.test.ts | 185 + packages/domain/src/plugins.ts | 403 ++ packages/domain/src/projects.test.ts | 273 +- packages/domain/src/projects.ts | 139 +- packages/domain/src/push.test.ts | 190 + packages/domain/src/push.ts | 415 ++ packages/domain/src/quotas.test.ts | 125 +- packages/domain/src/quotas.ts | 58 +- packages/domain/src/relations.ts | 80 +- packages/domain/src/review.ts | 126 +- packages/domain/src/revisions.ts | 60 +- packages/domain/src/semantic-search.test.ts | 65 +- packages/domain/src/semantic-search.ts | 42 +- packages/domain/src/settings.ts | 25 +- packages/domain/src/shares.test.ts | 108 + packages/domain/src/shares.ts | 4 - packages/domain/src/tags.ts | 379 +- packages/domain/src/tasks.ts | 292 +- packages/domain/src/team-permissions.test.ts | 118 +- packages/domain/src/team-permissions.ts | 231 +- packages/domain/src/test-support.ts | 78 + packages/domain/src/usage.test.ts | 97 +- packages/domain/src/usage.ts | 114 +- packages/domain/src/users.test.ts | 250 +- packages/domain/src/users.ts | 393 +- packages/domain/src/voice-service.ts | 47 + packages/memos/package.json | 2 +- packages/memos/src/adapter.test.ts | 6 - packages/memos/src/adapter.ts | 14 +- packages/memos/src/current-adapter.ts | 32 +- playwright.config.ts | 6 +- plugins/README.md | 229 + .../community/kosx-pack/cards/editorial.json | 102 + .../cards/kosx-editorial.preview.png | Bin 0 -> 53308 bytes plugins/community/kosx-pack/plugin.json | 44 + plugins/community/kosx-pack/preview.png | Bin 0 -> 53308 bytes .../official/flaremo-cards/cards/daily.json | 97 + .../flaremo-cards/cards/daily.preview.png | Bin 0 -> 31788 bytes .../official/flaremo-cards/cards/ember.json | 91 + .../official/flaremo-cards/cards/mono.json | 78 + .../official/flaremo-cards/cards/plain.json | 68 + .../flaremo-cards/cards/plain.preview.png | Bin 0 -> 35609 bytes .../flaremo-cards/cards/postcard.json | 101 + .../flaremo-cards/cards/postcard.preview.png | Bin 0 -> 53449 bytes .../official/flaremo-cards/cards/quote.json | 84 + .../official/flaremo-cards/cards/ticket.json | 96 + .../flaremo-cards/cards/ticket.preview.png | Bin 0 -> 36028 bytes plugins/official/flaremo-cards/cards/zen.json | 71 + plugins/official/flaremo-cards/plugin.json | 152 + plugins/official/flaremo-cards/preview.png | Bin 0 -> 53449 bytes .../sandbox-demo/cards/stamp.preview.png | Bin 0 -> 58466 bytes .../sandbox-demo/cards/stamp/index.html | 151 + plugins/official/sandbox-demo/plugin.json | 61 + plugins/official/sandbox-demo/preview.png | Bin 0 -> 58466 bytes plugins/package.json | 33 + plugins/registry.json | 312 + plugins/src/check.test.ts | 588 ++ plugins/src/check.ts | 191 + plugins/src/check/checker.ts | 35 + plugins/src/check/constants.ts | 147 + plugins/src/check/rules/bindings.ts | 57 + plugins/src/check/rules/card.ts | 114 + plugins/src/check/rules/color.ts | 54 + plugins/src/check/rules/font.ts | 58 + plugins/src/check/rules/node.ts | 136 + plugins/src/check/rules/preview.ts | 34 + plugins/src/check/rules/sandbox.ts | 112 + plugins/src/check/rules/style.ts | 152 + plugins/src/check/rules/svg.ts | 116 + plugins/src/document.test.ts | 178 + plugins/src/document.ts | 308 + plugins/src/index.ts | 5 + plugins/src/package.test.ts | 145 + plugins/src/package.ts | 223 + plugins/src/registry.test.ts | 76 + plugins/src/registry.ts | 120 + plugins/src/spec.ts | 147 + plugins/src/validate.ts | 274 + plugins/tsconfig.json | 10 + pnpm-lock.yaml | 4152 +++++++------ pnpm-workspace.yaml | 1 + renovate.json | 37 + scripts/backup-drill.mjs | 58 +- scripts/capture-local-server.mjs | 2 + scripts/capture-phone-server.mjs | 3 +- scripts/check-persistence-manifest.mjs | 21 +- scripts/dev-hot.mjs | 225 + scripts/e2e-server.mjs | 1 + scripts/lib/dev-server.mjs | 5 + scripts/persistence-manifest.mjs | 62 +- scripts/plugin-check.ts | 198 + scripts/plugin-new.ts | 301 + scripts/plugins-build.ts | 257 + scripts/preflight.mjs | 4 + scripts/provision-cloudflare.mjs | 459 ++ scripts/provision-cloudflare.test.mjs | 107 + scripts/release.mjs | 51 +- scripts/remote-restore-drill.mjs | 283 +- scripts/setup-usage.mjs | 309 + scripts/setup-usage.test.mjs | 85 + scripts/smoke-check.mjs | 91 + scripts/smoke-check.test.mjs | 54 + scripts/startup-graph.mjs | 237 + scripts/sync-worker-secrets.mjs | 94 + scripts/sync-worker-secrets.test.mjs | 25 + scripts/write-wrangler-config.mjs | 106 + scripts/write-wrangler-config.test.mjs | 58 + skills/flaremo-memory/SKILL.md | 155 + tests/e2e/attachment-inline.spec.ts | 24 +- tests/e2e/audio-transcript-reading.spec.ts | 45 +- tests/e2e/auth-flow.spec.ts | 39 + tests/e2e/auth-redirect.spec.ts | 12 +- tests/e2e/auth-ui-flow.spec.ts | 125 +- tests/e2e/branding.spec.ts | 205 +- tests/e2e/capture-flow.spec.ts | 53 +- tests/e2e/memo-flow.spec.ts | 273 +- tests/e2e/memory-flow.spec.ts | 60 +- tests/e2e/space-flow.spec.ts | 243 + tests/e2e/team-projects.spec.ts | 64 + tests/e2e/voice-settings-flow.spec.ts | 217 + tests/e2e/workspace-flow.spec.ts | 54 +- tests/e2e/workspace-helpers.ts | 203 + tests/harness/helpers.ts | 117 + tests/harness/hooks.test.ts | 496 ++ tests/harness/importer.test.ts | 217 + tests/harness/install.test.ts | 181 + tests/harness/outbox.test.ts | 280 + tests/harness/project.test.ts | 61 + tests/harness/transport.test.ts | 72 + tests/team-projects/workbench.test.ts | 273 + tsconfig.json | 1 + vitest.config.ts | 35 + wrangler.json | 103 + wrangler.jsonc.example | 27 +- 990 files changed, 195087 insertions(+), 44949 deletions(-) create mode 100644 README.ar.md delete mode 100644 README.en.md create mode 100644 README.es.md create mode 100644 README.fr.md create mode 100644 README.ja.md create mode 100644 README.ko.md create mode 100644 README.ru.md create mode 100644 README.zh-CN.md create mode 100644 apps/site/components.json create mode 100644 apps/site/public/docs-assets/flaremo-desktop-dark.png create mode 100644 apps/site/public/docs-assets/flaremo-desktop-light.png create mode 100644 apps/site/public/showcase/card-daily.png create mode 100644 apps/site/public/showcase/card-plain.png create mode 100644 apps/site/public/showcase/card-postcard.png create mode 100644 apps/site/public/showcase/card-stamp.png create mode 100644 apps/site/public/showcase/card-ticket.png create mode 100644 apps/site/src/components/card-gallery-section.tsx create mode 100644 apps/site/src/components/interactive-showcase.tsx create mode 100644 apps/site/src/components/motion.tsx create mode 100644 apps/site/src/components/showcase/composer.tsx create mode 100644 apps/site/src/components/showcase/desktop-device.tsx create mode 100644 apps/site/src/components/showcase/device-sidebar.tsx create mode 100644 apps/site/src/components/showcase/fixtures.ts create mode 100644 apps/site/src/components/showcase/memo-card.tsx create mode 100644 apps/site/src/components/showcase/mobile-device.tsx create mode 100644 apps/site/src/components/showcase/mobile-drawer.tsx create mode 100644 apps/site/src/components/theme-provider.tsx create mode 100644 apps/site/src/components/ui/badge.tsx create mode 100644 apps/site/src/components/ui/button.tsx create mode 100644 apps/site/src/components/ui/card.tsx create mode 100644 apps/site/src/components/ui/dropdown-menu.tsx create mode 100644 apps/site/src/components/ui/progress.tsx create mode 100644 apps/site/src/components/ui/spotlight-card.tsx create mode 100644 apps/site/src/content/card-gallery-i18n.ts create mode 100644 apps/site/src/content/comparison-i18n.ts create mode 100644 apps/site/src/content/ecosystem-i18n.ts create mode 100644 apps/site/src/content/home/ar.ts create mode 100644 apps/site/src/content/home/en.ts create mode 100644 apps/site/src/content/home/es.ts create mode 100644 apps/site/src/content/home/fr.ts create mode 100644 apps/site/src/content/home/ja.ts create mode 100644 apps/site/src/content/home/ko.ts create mode 100644 apps/site/src/content/home/ru.ts create mode 100644 apps/site/src/content/home/zh.ts create mode 100644 apps/site/src/content/showcase-i18n.ts create mode 100644 apps/site/src/content/showcase/ar.ts create mode 100644 apps/site/src/content/showcase/en.ts create mode 100644 apps/site/src/content/showcase/es.ts create mode 100644 apps/site/src/content/showcase/fr.ts create mode 100644 apps/site/src/content/showcase/ja.ts create mode 100644 apps/site/src/content/showcase/ko.ts create mode 100644 apps/site/src/content/showcase/ru.ts create mode 100644 apps/site/src/content/showcase/zh.ts create mode 100644 apps/site/src/content/static-page-meta.ts delete mode 100644 apps/site/src/lib/route-meta.ts create mode 100644 apps/site/src/lib/theme.ts create mode 100644 apps/site/src/lib/utils.ts create mode 100644 apps/site/src/pages/home/bento-features-section.tsx create mode 100644 apps/site/src/pages/home/comparison-section.tsx create mode 100644 apps/site/src/pages/home/cta-section.tsx create mode 100644 apps/site/src/pages/home/ecosystem-section.tsx create mode 100644 apps/site/src/pages/home/faq-section.tsx create mode 100644 apps/site/src/pages/home/hero-section.tsx create mode 100644 apps/site/src/typography.test.ts create mode 100644 apps/web/public/brand/amber/flaremo-mark-dark-320.png create mode 100644 apps/web/public/brand/amber/flaremo-mark-light-300.png create mode 100644 apps/web/public/brand/crimson/flaremo-mark-dark-320.png create mode 100644 apps/web/public/brand/crimson/flaremo-mark-light-300.png create mode 100644 apps/web/public/brand/indigo/flaremo-mark-dark-320.png create mode 100644 apps/web/public/brand/indigo/flaremo-mark-light-300.png create mode 100644 apps/web/public/brand/iris/flaremo-mark-dark-320.png create mode 100644 apps/web/public/brand/iris/flaremo-mark-light-300.png create mode 100644 apps/web/public/brand/jade/flaremo-mark-dark-320.png create mode 100644 apps/web/public/brand/jade/flaremo-mark-light-300.png create mode 100644 apps/web/public/brand/ocean/flaremo-mark-dark-320.png create mode 100644 apps/web/public/brand/ocean/flaremo-mark-light-300.png create mode 100644 apps/web/public/brand/teal/flaremo-mark-dark-320.png create mode 100644 apps/web/public/brand/teal/flaremo-mark-light-300.png create mode 100644 apps/web/public/robots.txt create mode 100644 apps/web/scripts/generate-accent-brand.mjs create mode 100644 apps/web/src/api/account.ts create mode 100644 apps/web/src/api/articles.ts create mode 100644 apps/web/src/api/attachments.ts create mode 100644 apps/web/src/api/auth.ts create mode 100644 apps/web/src/api/branding.ts create mode 100644 apps/web/src/api/capture.ts create mode 100644 apps/web/src/api/client.ts create mode 100644 apps/web/src/api/data-tasks.ts create mode 100644 apps/web/src/api/integrations.ts create mode 100644 apps/web/src/api/memories.ts create mode 100644 apps/web/src/api/memos.ts create mode 100644 apps/web/src/api/notifications.ts create mode 100644 apps/web/src/api/plugins.ts create mode 100644 apps/web/src/api/projects.ts create mode 100644 apps/web/src/api/push.ts create mode 100644 apps/web/src/api/releases.ts create mode 100644 apps/web/src/api/shares.ts create mode 100644 apps/web/src/api/types.ts create mode 100644 apps/web/src/api/voice.ts create mode 100644 apps/web/src/components/article-editor.tsx create mode 100644 apps/web/src/components/article-preview-highlight.test.tsx create mode 100644 apps/web/src/components/article-publish-dialog.tsx create mode 100644 apps/web/src/components/article-roundtrip.test.ts create mode 100644 apps/web/src/components/article-shiki-body.tsx create mode 100644 apps/web/src/components/capture/capture-button.tsx create mode 100644 apps/web/src/components/capture/capture-transcribing.tsx create mode 100644 apps/web/src/components/capture/capture-waveform.tsx create mode 100644 apps/web/src/components/composer-roundtrip.test.ts create mode 100644 apps/web/src/components/composer/composer-canvas-actions.tsx create mode 100644 apps/web/src/components/composer/composer-canvas-header.tsx create mode 100644 apps/web/src/components/composer/composer-canvas-toolbar.tsx create mode 100644 apps/web/src/components/composer/composer-file-chips.tsx create mode 100644 apps/web/src/components/composer/composer-focus-canvas-lazy.tsx create mode 100644 apps/web/src/components/composer/composer-focus-canvas.tsx create mode 100644 apps/web/src/components/composer/composer-suggestion-lists.tsx create mode 100644 apps/web/src/components/composer/composer-toolbar.tsx create mode 100644 apps/web/src/components/composer/composer-type-menu.test.tsx create mode 100644 apps/web/src/components/composer/composer-type-menu.tsx create mode 100644 apps/web/src/components/composer/composer-visibility-menu.tsx create mode 100644 apps/web/src/components/composer/voice-capture-bar.tsx delete mode 100644 apps/web/src/components/flaremo-calendar.tsx create mode 100644 apps/web/src/components/flaremo-time-horizon.tsx create mode 100644 apps/web/src/components/image-lightbox.tsx create mode 100644 apps/web/src/components/locale-switcher.tsx create mode 100644 apps/web/src/components/memo-card/memo-card-badges.tsx create mode 100644 apps/web/src/components/memo-card/memo-card-body.tsx create mode 100644 apps/web/src/components/memo-card/memo-card-editor.tsx create mode 100644 apps/web/src/components/memo-card/memo-card-header.tsx create mode 100644 apps/web/src/components/memo-card/memo-card-menu.tsx create mode 100644 apps/web/src/components/memo-card/use-memo-card-actions.ts create mode 100644 apps/web/src/components/memo-content.test.tsx create mode 100644 apps/web/src/components/memo-visibility-dialog.tsx create mode 100644 apps/web/src/components/new-password-fields.tsx create mode 100644 apps/web/src/components/query-error-state.tsx create mode 100644 apps/web/src/components/rich-composer-editor-lazy.tsx create mode 100644 apps/web/src/components/rich-composer-editor.tsx create mode 100644 apps/web/src/components/scope-switcher.tsx create mode 100644 apps/web/src/components/share-card-document.test.tsx create mode 100644 apps/web/src/components/share-card-document.tsx create mode 100644 apps/web/src/components/share-card-sandbox.test.ts create mode 100644 apps/web/src/components/share-card-sandbox.tsx create mode 100644 apps/web/src/components/share-image-dialog.tsx create mode 100644 apps/web/src/components/spotlight-search.tsx delete mode 100644 apps/web/src/components/subpage-header.tsx create mode 100644 apps/web/src/components/tag-highlight-extension.ts create mode 100644 apps/web/src/components/time-horizon/day-horizon-view.tsx create mode 100644 apps/web/src/components/time-horizon/month-horizon-view.tsx create mode 100644 apps/web/src/components/time-horizon/shared.ts create mode 100644 apps/web/src/components/time-horizon/week-horizon-view.tsx create mode 100644 apps/web/src/components/time-horizon/year-horizon-view.tsx create mode 100644 apps/web/src/components/ui/avatar.tsx create mode 100644 apps/web/src/components/ui/filter-pill.tsx create mode 100644 apps/web/src/components/ui/password-input.tsx create mode 100644 apps/web/src/components/ui/select.tsx create mode 100644 apps/web/src/components/upload-placeholder-extension.ts create mode 100644 apps/web/src/components/user-menu.tsx create mode 100644 apps/web/src/components/workspace/shortcuts-dialog.tsx create mode 100644 apps/web/src/components/workspace/task-search-results.tsx create mode 100644 apps/web/src/components/workspace/workspace-filter-chips.tsx create mode 100644 apps/web/src/components/workspace/workspace-header.tsx create mode 100644 apps/web/src/components/workspace/workspace-layout.tsx create mode 100644 apps/web/src/components/workspace/workspace-page-header.tsx create mode 100644 apps/web/src/components/workspace/workspace-sidebar.tsx create mode 100644 apps/web/src/dev-proxy-parity.test.ts create mode 100644 apps/web/src/dev/react-grab.test.ts create mode 100644 apps/web/src/dev/react-grab.ts create mode 100644 apps/web/src/features/team-projects/copy.js create mode 100644 apps/web/src/features/team-projects/flaremo.js create mode 100644 apps/web/src/features/team-projects/model.js create mode 100644 apps/web/src/features/team-projects/navigation.js create mode 100644 apps/web/src/features/team-projects/navigation.test.ts create mode 100644 apps/web/src/features/team-projects/select-menu.jsx create mode 100644 apps/web/src/features/team-projects/team-projects-app.jsx create mode 100644 apps/web/src/features/team-projects/team-projects.css create mode 100644 apps/web/src/glass.test.ts create mode 100644 apps/web/src/hooks/use-clipboard.ts create mode 100644 apps/web/src/hooks/use-composer-suggestions.ts create mode 100644 apps/web/src/hooks/use-composer-voice.ts delete mode 100644 apps/web/src/hooks/use-debounced-value.ts create mode 100644 apps/web/src/hooks/use-inline-image-uploads.ts create mode 100644 apps/web/src/hooks/use-sign-out.ts create mode 100644 apps/web/src/hooks/use-workspace-filters.ts create mode 100644 apps/web/src/hooks/use-workspace-queries.ts create mode 100644 apps/web/src/hooks/use-workspace-shortcuts.ts create mode 100644 apps/web/src/i18n/key.ts create mode 100644 apps/web/src/i18n/messages/ar.ts create mode 100644 apps/web/src/i18n/messages/en-US.ts create mode 100644 apps/web/src/i18n/messages/es.ts create mode 100644 apps/web/src/i18n/messages/fr.ts create mode 100644 apps/web/src/i18n/messages/ja.ts create mode 100644 apps/web/src/i18n/messages/ko.ts create mode 100644 apps/web/src/i18n/messages/parity.test.ts create mode 100644 apps/web/src/i18n/messages/ru.ts create mode 100644 apps/web/src/i18n/messages/zh-CN.ts create mode 100644 apps/web/src/lib/activity.test.ts create mode 100644 apps/web/src/lib/article-submission.test.ts create mode 100644 apps/web/src/lib/article-submission.ts create mode 100644 apps/web/src/lib/audio-capture/batch-recorder.ts create mode 100644 apps/web/src/lib/audio-capture/batch.test.ts create mode 100644 apps/web/src/lib/audio-capture/batch.ts create mode 100644 apps/web/src/lib/audio-capture/encoder.test.ts create mode 100644 apps/web/src/lib/audio-capture/encoder.ts create mode 100644 apps/web/src/lib/audio-capture/plain-text.test.ts create mode 100644 apps/web/src/lib/audio-capture/plain-text.ts create mode 100644 apps/web/src/lib/audio-capture/stream-transport.ts create mode 100644 apps/web/src/lib/brand-ramp.test.ts create mode 100644 apps/web/src/lib/brand-ramp.ts create mode 100644 apps/web/src/lib/capture-reconcile.test.ts create mode 100644 apps/web/src/lib/capture-reconcile.ts create mode 100644 apps/web/src/lib/composer-focus.ts create mode 100644 apps/web/src/lib/date-format.test.ts create mode 100644 apps/web/src/lib/date-format.ts create mode 100644 apps/web/src/lib/error.test.ts create mode 100644 apps/web/src/lib/format-duration.test.ts create mode 100644 apps/web/src/lib/format-duration.ts create mode 100644 apps/web/src/lib/han-locale.test.ts create mode 100644 apps/web/src/lib/han-locale.ts create mode 100644 apps/web/src/lib/haptics.ts create mode 100644 apps/web/src/lib/idle-prefetch.ts create mode 100644 apps/web/src/lib/memo-cache.test.ts create mode 100644 apps/web/src/lib/memo-cache.ts create mode 100644 apps/web/src/lib/memo-submission.test.ts create mode 100644 apps/web/src/lib/memo-tasks.test.ts create mode 100644 apps/web/src/lib/memo-tasks.ts create mode 100644 apps/web/src/lib/memo.test.ts create mode 100644 apps/web/src/lib/ogg-repage.test.ts create mode 100644 apps/web/src/lib/ogg-repage.ts create mode 100644 apps/web/src/lib/plugin-cards.test.ts create mode 100644 apps/web/src/lib/plugin-cards.ts create mode 100644 apps/web/src/lib/query-keys.ts create mode 100644 apps/web/src/lib/rich-editor-upload.ts create mode 100644 apps/web/src/lib/tag-autocomplete.test.ts create mode 100644 apps/web/src/lib/tag-autocomplete.ts create mode 100644 apps/web/src/lib/tag-highlight.test.ts create mode 100644 apps/web/src/lib/tag-highlight.ts create mode 100644 apps/web/src/lib/time-horizon.ts create mode 100644 apps/web/src/lib/timeline-search.ts create mode 100644 apps/web/src/lib/upload-compression.test.ts create mode 100644 apps/web/src/lib/upload-compression.ts create mode 100644 apps/web/src/lib/upload-settings.ts create mode 100644 apps/web/src/lib/upload/audio-compression.ts create mode 100644 apps/web/src/lib/upload/audio-format.ts create mode 100644 apps/web/src/lib/upload/capabilities.ts create mode 100644 apps/web/src/lib/upload/image-compression.ts create mode 100644 apps/web/src/lib/web-highlighter.ts create mode 100644 apps/web/src/lib/wikilink-autocomplete.test.ts create mode 100644 apps/web/src/lib/wikilink-autocomplete.ts rename apps/web/src/pages/account/{security-panel.tsx => account-credentials-section.tsx} (66%) create mode 100644 apps/web/src/pages/account/account-panel-presets.ts create mode 100644 apps/web/src/pages/account/account-panel.tsx create mode 100644 apps/web/src/pages/account/account-profile-section.tsx create mode 100644 apps/web/src/pages/account/account-tokens-section.tsx create mode 100644 apps/web/src/pages/account/appearance-panel.tsx create mode 100644 apps/web/src/pages/account/apple-settings-ui.tsx delete mode 100644 apps/web/src/pages/account/install-app-card.tsx create mode 100644 apps/web/src/pages/account/integrations-card.tsx delete mode 100644 apps/web/src/pages/account/profile-panel.tsx create mode 100644 apps/web/src/pages/account/push-panel.tsx create mode 100644 apps/web/src/pages/account/settings-nav.ts create mode 100644 apps/web/src/pages/account/settings-section-content.tsx delete mode 100644 apps/web/src/pages/account/tokens-panel.tsx create mode 100644 apps/web/src/pages/account/uploads-panel.tsx create mode 100644 apps/web/src/pages/account/use-account-page-state.ts create mode 100644 apps/web/src/pages/account/use-account-settings-mutations.ts create mode 100644 apps/web/src/pages/account/voice-panel.tsx create mode 100644 apps/web/src/pages/admin/accent-picker.tsx create mode 100644 apps/web/src/pages/admin/branding-card.tsx create mode 100644 apps/web/src/pages/admin/plugins-card.tsx create mode 100644 apps/web/src/pages/admin/plugins/plugin-cards-manager.tsx create mode 100644 apps/web/src/pages/admin/plugins/plugin-list-card.tsx create mode 100644 apps/web/src/pages/admin/plugins/plugin-row.ts create mode 100644 apps/web/src/pages/admin/plugins/plugin-store-card.tsx create mode 100644 apps/web/src/pages/admin/plugins/use-plugin-settings.ts create mode 100644 apps/web/src/pages/admin/use-admin-users.ts create mode 100644 apps/web/src/pages/admin/users-card.tsx create mode 100644 apps/web/src/pages/admin/users-card/users-dialogs.tsx create mode 100644 apps/web/src/pages/admin/users-card/users-table.tsx create mode 100644 apps/web/src/pages/article-editor-page.tsx create mode 100644 apps/web/src/pages/articles-page.tsx delete mode 100644 apps/web/src/pages/calendar-page.tsx create mode 100644 apps/web/src/pages/capture/capture-review-form.tsx create mode 100644 apps/web/src/pages/capture/use-capture-session.ts create mode 100644 apps/web/src/pages/capture/use-capture-submit.ts create mode 100644 apps/web/src/pages/memo-detail/content-tab.tsx create mode 100644 apps/web/src/pages/memo-detail/history-tab.tsx create mode 100644 apps/web/src/pages/memo-detail/relations-tab.tsx create mode 100644 apps/web/src/pages/memo-detail/sharing-tab.tsx create mode 100644 apps/web/src/pages/memo-detail/use-memo-detail.ts create mode 100644 apps/web/src/pages/memory/memory-card.tsx create mode 100644 apps/web/src/pages/memory/memory-filters.ts create mode 100644 apps/web/src/pages/memory/memory-form-dialog.tsx create mode 100644 apps/web/src/pages/memory/memory-lens-dialog.tsx create mode 100644 apps/web/src/pages/memory/memory-list.tsx create mode 100644 apps/web/src/pages/memory/memory-quick-composer.tsx create mode 100644 apps/web/src/pages/memory/memory-revisions.tsx create mode 100644 apps/web/src/pages/memory/memory-workspace-header.tsx create mode 100644 apps/web/src/pages/memory/project-groups.tsx create mode 100644 apps/web/src/pages/memory/use-memory-mutations.ts create mode 100644 apps/web/src/pages/projects/board.tsx create mode 100644 apps/web/src/pages/projects/constants.ts create mode 100644 apps/web/src/pages/projects/project-form-dialog.tsx create mode 100644 apps/web/src/pages/projects/project-row.tsx create mode 100644 apps/web/src/pages/projects/task-cache.ts create mode 100644 apps/web/src/pages/projects/task-card.tsx create mode 100644 apps/web/src/pages/projects/task-form-dialog.tsx create mode 100644 apps/web/src/pages/projects/trash-section.tsx create mode 100644 apps/web/src/pages/team-projects-page.tsx create mode 100644 apps/web/src/pages/verify-token-page.tsx create mode 100644 apps/web/src/sheet-motion.test.ts create mode 100644 apps/web/src/typography.test.ts create mode 100644 apps/web/tsconfig.team-projects.json delete mode 100644 apps/worker/src/api.test.ts create mode 100644 apps/worker/src/api/app-memos.test.ts create mode 100644 apps/worker/src/api/branding.test.ts create mode 100644 apps/worker/src/api/capture.test.ts create mode 100644 apps/worker/src/api/context-attachments.test.ts create mode 100644 apps/worker/src/api/export-import.test.ts create mode 100644 apps/worker/src/api/gc-scheduled.test.ts create mode 100644 apps/worker/src/api/memo-crud.test.ts create mode 100644 apps/worker/src/api/offline-replay.test.ts create mode 100644 apps/worker/src/api/quota-usage.test.ts create mode 100644 apps/worker/src/api/ratelimit-account.test.ts create mode 100644 apps/worker/src/api/registration-email.test.ts create mode 100644 apps/worker/src/api/registration-visibility.test.ts create mode 100644 apps/worker/src/api/review-related.test.ts create mode 100644 apps/worker/src/api/share.test.ts create mode 100644 apps/worker/src/api/team-admin.test.ts create mode 100644 apps/worker/src/api/team-mode-upgrade.test.ts create mode 100644 apps/worker/src/article-page.test.ts create mode 100644 apps/worker/src/article-rtl.test.ts create mode 100644 apps/worker/src/articles-api.test.ts create mode 100644 apps/worker/src/asr/batch.ts create mode 100644 apps/worker/src/asr/configuration.test.ts create mode 100644 apps/worker/src/asr/configuration.ts create mode 100644 apps/worker/src/asr/minimax.test.ts create mode 100644 apps/worker/src/asr/minimax.ts create mode 100644 apps/worker/src/asr/volcengine.test.ts create mode 100644 apps/worker/src/asr/volcengine.ts create mode 100644 apps/worker/src/auth-env.ts create mode 100644 apps/worker/src/cf-analytics.test.ts create mode 100644 apps/worker/src/cf-analytics.ts create mode 100644 apps/worker/src/compatibility/current-auth.test.ts create mode 100644 apps/worker/src/compatibility/current-mcp.test.ts create mode 100644 apps/worker/src/compatibility/current-memo-facade.test.ts create mode 100644 apps/worker/src/compatibility/export-import.test.ts create mode 100644 apps/worker/src/compatibility/memo-dto.test.ts create mode 100644 apps/worker/src/compatibility/memo-query.test.ts create mode 100644 apps/worker/src/compatibility/openapi.test.ts create mode 100644 apps/worker/src/compatibility/share-isolation.test.ts create mode 100644 apps/worker/src/email-templates.test.ts create mode 100644 apps/worker/src/email-templates.ts create mode 100644 apps/worker/src/export-task.ts create mode 100644 apps/worker/src/http.test.ts create mode 100644 apps/worker/src/integrations-api.test.ts create mode 100644 apps/worker/src/integrations/config.ts create mode 100644 apps/worker/src/integrations/secret-box.ts create mode 100644 apps/worker/src/lazy-routes.test.ts create mode 100644 apps/worker/src/lazy-routes.ts create mode 100644 apps/worker/src/mcp-protocol.ts create mode 100644 apps/worker/src/memory-dreaming.ts create mode 100644 apps/worker/src/memos-compat/attachment-delete.ts create mode 100644 apps/worker/src/memos-compat/base64.ts create mode 100644 apps/worker/src/memos-compat/credential.ts create mode 100644 apps/worker/src/memos-compat/current-errors.ts create mode 100644 apps/worker/src/memos-compat/errors.ts create mode 100644 apps/worker/src/memos-compat/member-service.ts create mode 100644 apps/worker/src/memos-compat/memo-creator.ts create mode 100644 apps/worker/src/memos-compat/memo-relations.ts create mode 100644 apps/worker/src/memos-compat/parsing.ts create mode 100644 apps/worker/src/memos-compat/pat.ts create mode 100644 apps/worker/src/memos-compat/payload.ts create mode 100644 apps/worker/src/memos-compat/proto-wire.ts create mode 100644 apps/worker/src/memos-compat/resource-names.ts create mode 100644 apps/worker/src/memos-compat/user-dto.ts delete mode 100644 apps/worker/src/memos-compatibility.test.ts delete mode 100644 apps/worker/src/memos-transport.test.ts create mode 100644 apps/worker/src/routes/admin/branding.ts create mode 100644 apps/worker/src/routes/admin/context.ts create mode 100644 apps/worker/src/routes/admin/index.ts create mode 100644 apps/worker/src/routes/admin/maintenance.ts create mode 100644 apps/worker/src/routes/admin/plugins.ts create mode 100644 apps/worker/src/routes/admin/reader-seats.ts create mode 100644 apps/worker/src/routes/admin/settings.ts create mode 100644 apps/worker/src/routes/admin/users.ts create mode 100644 apps/worker/src/routes/app/helpers.ts create mode 100644 apps/worker/src/routes/app/index.ts create mode 100644 apps/worker/src/routes/app/me.ts create mode 100644 apps/worker/src/routes/app/memos.ts create mode 100644 apps/worker/src/routes/app/push.ts create mode 100644 apps/worker/src/routes/app/review.ts create mode 100644 apps/worker/src/routes/app/timeline.ts create mode 100644 apps/worker/src/routes/app/usage.ts create mode 100644 apps/worker/src/routes/article-page.ts create mode 100644 apps/worker/src/routes/articles-api.ts create mode 100644 apps/worker/src/routes/email-settings-api.ts create mode 100644 apps/worker/src/routes/markdown-render.ts create mode 100644 apps/worker/src/routes/mcp/index.ts create mode 100644 apps/worker/src/routes/mcp/input.ts create mode 100644 apps/worker/src/routes/mcp/legacy-jsonrpc.ts create mode 100644 apps/worker/src/routes/mcp/protocol.ts create mode 100644 apps/worker/src/routes/mcp/tool-schemas.ts create mode 100644 apps/worker/src/routes/mcp/tools/attachments.ts create mode 100644 apps/worker/src/routes/mcp/tools/memo-subresources.ts create mode 100644 apps/worker/src/routes/mcp/tools/memos.ts create mode 100644 apps/worker/src/routes/mcp/tools/shortcuts.ts create mode 100644 apps/worker/src/routes/memos-api/bundle.ts create mode 100644 apps/worker/src/routes/memos-api/index.ts create mode 100644 apps/worker/src/routes/memos-api/memos.ts create mode 100644 apps/worker/src/routes/memos-api/transfer.ts delete mode 100644 apps/worker/src/routes/memos-connect-api.ts create mode 100644 apps/worker/src/routes/memos-connect/attachment-methods.ts create mode 100644 apps/worker/src/routes/memos-connect/auth-methods.ts create mode 100644 apps/worker/src/routes/memos-connect/connect/binary-body.ts create mode 100644 apps/worker/src/routes/memos-connect/connect/public-routes.ts create mode 100644 apps/worker/src/routes/memos-connect/connect/router.ts create mode 100644 apps/worker/src/routes/memos-connect/connect/service-names.ts create mode 100644 apps/worker/src/routes/memos-connect/index.ts create mode 100644 apps/worker/src/routes/memos-connect/instance-methods.ts create mode 100644 apps/worker/src/routes/memos-connect/memo-methods.ts create mode 100644 apps/worker/src/routes/memos-connect/memo-methods/details.ts create mode 100644 apps/worker/src/routes/memos-connect/memo-methods/read.ts create mode 100644 apps/worker/src/routes/memos-connect/memo-methods/shared-memo.ts create mode 100644 apps/worker/src/routes/memos-connect/memo-methods/subresource.ts create mode 100644 apps/worker/src/routes/memos-connect/memo-methods/write.ts create mode 100644 apps/worker/src/routes/memos-connect/protobuf-loader.ts create mode 100644 apps/worker/src/routes/memos-connect/shared.ts create mode 100644 apps/worker/src/routes/memos-connect/shortcut-methods.ts create mode 100644 apps/worker/src/routes/memos-connect/transport.ts create mode 100644 apps/worker/src/routes/memos-connect/user-methods.ts create mode 100644 apps/worker/src/routes/memos-connect/user-methods/accounts.ts create mode 100644 apps/worker/src/routes/memos-connect/user-methods/index.ts create mode 100644 apps/worker/src/routes/memos-connect/user-methods/members.ts create mode 100644 apps/worker/src/routes/memos-connect/user-methods/notifications.ts create mode 100644 apps/worker/src/routes/memos-connect/user-methods/settings.ts create mode 100644 apps/worker/src/routes/memos-connect/user-methods/shared.ts create mode 100644 apps/worker/src/routes/memos-connect/user-methods/users.ts create mode 100644 apps/worker/src/routes/memos-connect/user-methods/webhooks.ts delete mode 100644 apps/worker/src/routes/memos-current-api.ts create mode 100644 apps/worker/src/routes/memos-current/attachment-routes.ts create mode 100644 apps/worker/src/routes/memos-current/auth-routes.ts create mode 100644 apps/worker/src/routes/memos-current/helpers.ts create mode 100644 apps/worker/src/routes/memos-current/index.ts create mode 100644 apps/worker/src/routes/memos-current/memo-routes.ts create mode 100644 apps/worker/src/routes/memos-current/schemas.ts create mode 100644 apps/worker/src/routes/memos-current/user-routes.ts create mode 100644 apps/worker/src/routes/oauth-settings-api.ts create mode 100644 apps/worker/src/routes/plugins-api.ts create mode 100644 apps/worker/src/routes/plugins-store-api.ts create mode 100644 apps/worker/src/routes/share-page.ts create mode 100644 apps/worker/src/routes/shiki-highlighter.ts create mode 100644 apps/worker/src/routes/social/comments.ts create mode 100644 apps/worker/src/routes/social/hydrate.ts create mode 100644 apps/worker/src/routes/social/index.ts create mode 100644 apps/worker/src/routes/social/parsing.ts create mode 100644 apps/worker/src/routes/social/reactions.ts create mode 100644 apps/worker/src/routes/social/shortcuts.ts create mode 100644 apps/worker/src/routes/voice-settings-api.ts create mode 100644 apps/worker/src/scheduled-tasks.ts create mode 100644 apps/worker/src/scheduled.test.ts create mode 100644 apps/worker/src/share-lang.test.ts create mode 100644 apps/worker/src/share-page.test.ts create mode 100644 apps/worker/src/share-render-lang.test.ts create mode 100644 apps/worker/src/spa-routes.ts create mode 100644 apps/worker/src/tasks-api.test.ts create mode 100644 apps/worker/src/test-support/app.ts create mode 100644 apps/worker/src/test-support/memos-transport.ts create mode 100644 apps/worker/src/test-support/runtime.ts create mode 100644 apps/worker/src/test-support/sign-in.ts create mode 100644 apps/worker/src/transport/auth-boundaries.test.ts create mode 100644 apps/worker/src/transport/binary-transports.test.ts create mode 100644 apps/worker/src/transport/connect-boundaries.test.ts create mode 100644 apps/worker/src/transport/connect-json-attachments.test.ts create mode 100644 apps/worker/src/transport/connect-json-lifecycle.test.ts create mode 100644 apps/worker/src/transport/sse-stream.test.ts create mode 100644 apps/worker/src/transport/user-service-webhooks.test.ts create mode 100755 bin/flaremo create mode 100644 docs/agent-memory-landscape.md create mode 100644 docs/article-publishing-design.md create mode 100644 docs/asr-admin-settings.md create mode 100644 docs/asr-minimax.md create mode 100644 docs/assets/flaremo-desktop-dark.png create mode 100644 docs/assets/flaremo-desktop-light.png delete mode 100644 docs/assets/flaremo-desktop.png create mode 100644 docs/audio-compression-research.md create mode 100644 docs/base-ui-migration.md create mode 100644 docs/brand-color-theming.md create mode 100644 docs/cf-usage-ui-config.md create mode 100644 docs/composer-editor-wysiwyg.md create mode 100644 docs/composer-fullscreen-article-design.md create mode 100644 docs/composer-wysiwyg-closing.md create mode 100644 docs/concept-model.md create mode 100644 docs/content-authority.md create mode 100644 docs/design-principle-rollout.md create mode 100644 docs/en/agent-memory.md create mode 100644 docs/en/github-action-deploy.md create mode 100644 docs/en/plugins.md create mode 100644 docs/en/team-mode.md create mode 100644 docs/flomo-alignment-ux-refinement.md create mode 100644 docs/github-action-deploy.md create mode 100644 docs/harness-adapter-spec.md create mode 100644 docs/image-compression-design.md create mode 100644 docs/liquid-glass-design.md create mode 100644 docs/memory-ledger-design.md create mode 100644 docs/plugin-platform-standard.md create mode 100644 docs/plugins.md create mode 100644 docs/projects-tasks-audit.md create mode 100644 docs/quality-backlog.md create mode 100644 docs/seo-share-pages-best-practices.md create mode 100644 docs/tag-system-audit.md create mode 100644 docs/team-projects-workbench.md create mode 100644 docs/team-space-ux.md create mode 100644 docs/time-task-mental-model-audit.md create mode 100644 docs/ux-differentiation.md create mode 100644 docs/vector-namespace-design.md create mode 100644 docs/voice-capture-rollout.md create mode 100644 docs/voice-settings.md create mode 100644 harness/.agents/plugins/marketplace.json create mode 100644 harness/README.md create mode 100644 harness/antigravity/hooks.json create mode 100644 harness/antigravity/plugin.json create mode 100644 harness/antigravity/rules/flaremo-memory.md create mode 120000 harness/antigravity/skills/flaremo-memory create mode 100644 harness/codex/.codex-plugin/plugin.json create mode 100644 harness/codex/hooks/hooks.json create mode 100644 harness/core/credentials.mjs create mode 100644 harness/core/hooks.mjs create mode 100644 harness/core/importer.mjs create mode 100644 harness/core/install.mjs create mode 100644 harness/core/outbox.mjs create mode 100644 harness/core/paths.mjs create mode 100644 harness/core/project.mjs create mode 100644 harness/core/state.mjs create mode 100644 harness/core/texts.mjs create mode 100644 harness/core/transport.mjs create mode 100755 harness/install.sh create mode 100644 harness/pi/flaremo-memory.ts create mode 100644 harness/zcode/.zcode-plugin/plugin.json create mode 100644 harness/zcode/commands/flaremo-setup.md create mode 100644 harness/zcode/hooks/hooks.json create mode 100644 migrations/0019_sticky_adam_warlock.sql create mode 100644 migrations/0020_illegal_pandemic.sql create mode 100644 migrations/0021_overjoyed_paibok.sql create mode 100644 migrations/0022_violet_raza.sql create mode 100644 migrations/0023_clever_union_jack.sql create mode 100644 migrations/0024_gray_madrox.sql create mode 100644 migrations/0025_clammy_sunspot.sql create mode 100644 migrations/0026_workable_nemesis.sql create mode 100644 migrations/0027_reader_memberships.sql create mode 100644 migrations/0028_ambiguous_dracula.sql create mode 100644 migrations/0029_faithful_mandrill.sql create mode 100644 migrations/0030_memory_ledger_v2.sql create mode 100644 migrations/0031_memory_ledger_followup.sql create mode 100644 migrations/0032_omniscient_energizer.sql create mode 100644 migrations/0033_large_multiple_man.sql create mode 100644 migrations/meta/0019_snapshot.json create mode 100644 migrations/meta/0020_snapshot.json create mode 100644 migrations/meta/0021_snapshot.json create mode 100644 migrations/meta/0022_snapshot.json create mode 100644 migrations/meta/0023_snapshot.json create mode 100644 migrations/meta/0024_snapshot.json create mode 100644 migrations/meta/0025_snapshot.json create mode 100644 migrations/meta/0026_snapshot.json create mode 100644 migrations/meta/0028_snapshot.json create mode 100644 migrations/meta/0029_snapshot.json create mode 100644 migrations/meta/0032_snapshot.json create mode 100644 migrations/meta/0033_snapshot.json create mode 100644 packages/contracts/src/articles.ts create mode 100644 packages/contracts/src/openapi-current/components.ts create mode 100644 packages/contracts/src/openapi-current/connect-paths.ts create mode 100644 packages/contracts/src/openapi-current/document.ts create mode 100644 packages/contracts/src/openapi-current/rest-paths.ts create mode 100644 packages/contracts/src/openapi-current/shared.ts create mode 100644 packages/db/src/schema/auth.ts create mode 100644 packages/db/src/schema/content.ts create mode 100644 packages/db/src/schema/instance.ts create mode 100644 packages/db/src/schema/memory.ts create mode 100644 packages/db/src/schema/memos.ts create mode 100644 packages/db/src/schema/ops.ts create mode 100644 packages/db/src/schema/rows.ts create mode 100644 packages/db/src/schema/social.ts create mode 100644 packages/db/src/schema/tasks.ts create mode 100644 packages/db/src/schema/usage.ts create mode 100644 packages/domain/src/articles.test.ts create mode 100644 packages/domain/src/articles.ts create mode 100644 packages/domain/src/attachments-lifecycle.ts create mode 100644 packages/domain/src/attachments-list.ts create mode 100644 packages/domain/src/attachments-metadata.ts create mode 100644 packages/domain/src/attachments.test.ts create mode 100644 packages/domain/src/branding.test.ts create mode 100644 packages/domain/src/data-tasks.test.ts create mode 100644 packages/domain/src/embedding-processors.ts create mode 100644 packages/domain/src/embedding-rebuild.ts create mode 100644 packages/domain/src/embedding-task-store.ts create mode 100644 packages/domain/src/import-export/export-data.ts create mode 100644 packages/domain/src/import-export/import-data.ts create mode 100644 packages/domain/src/integrations.ts create mode 100644 packages/domain/src/memo-filter-lazy.test.ts delete mode 100644 packages/domain/src/memo-filter.ts create mode 100644 packages/domain/src/memo-filter/ast-utils.ts create mode 100644 packages/domain/src/memo-filter/compile.ts create mode 100644 packages/domain/src/memo-filter/environment.ts create mode 100644 packages/domain/src/memo-filter/index.ts create mode 100644 packages/domain/src/memo-filter/limits.ts create mode 100644 packages/domain/src/memo-filter/normalize.ts create mode 100644 packages/domain/src/memo-filter/regex.ts create mode 100644 packages/domain/src/memo-filter/scanner.ts create mode 100644 packages/domain/src/memo-filter/sql-pushdown.ts create mode 100644 packages/domain/src/memo-filter/validate.ts create mode 100644 packages/domain/src/memo-hourly-counts.test.ts create mode 100644 packages/domain/src/memo-hourly-counts.ts create mode 100644 packages/domain/src/memory-followup.test.ts create mode 100644 packages/domain/src/memory-v2.test.ts delete mode 100644 packages/domain/src/memory.ts create mode 100644 packages/domain/src/memory/adapters.ts create mode 100644 packages/domain/src/memory/compiler.ts create mode 100644 packages/domain/src/memory/consolidation.ts create mode 100644 packages/domain/src/memory/dto.ts create mode 100644 packages/domain/src/memory/index.ts create mode 100644 packages/domain/src/memory/lifecycle.ts create mode 100644 packages/domain/src/memory/link.ts create mode 100644 packages/domain/src/memory/maintenance.ts create mode 100644 packages/domain/src/memory/memo-link.ts create mode 100644 packages/domain/src/memory/query.ts create mode 100644 packages/domain/src/memory/recall.ts create mode 100644 packages/domain/src/memory/shared.ts create mode 100644 packages/domain/src/memory/write.ts create mode 100644 packages/domain/src/memos-comments.ts create mode 100644 packages/domain/src/memos-helpers.ts create mode 100644 packages/domain/src/memos-lifecycle.ts create mode 100644 packages/domain/src/memos-query.ts create mode 100644 packages/domain/src/memos-reactions.ts create mode 100644 packages/domain/src/memos-read.ts create mode 100644 packages/domain/src/memos-shortcuts.ts create mode 100644 packages/domain/src/memos-social-shared.ts create mode 100644 packages/domain/src/memos-space.test.ts create mode 100644 packages/domain/src/memos-user-notifications.ts create mode 100644 packages/domain/src/memos-user-shared.ts create mode 100644 packages/domain/src/memos-user-webhooks.ts create mode 100644 packages/domain/src/memos-write.ts create mode 100644 packages/domain/src/plugins.test.ts create mode 100644 packages/domain/src/plugins.ts create mode 100644 packages/domain/src/push.test.ts create mode 100644 packages/domain/src/push.ts create mode 100644 packages/domain/src/shares.test.ts create mode 100644 packages/domain/src/test-support.ts create mode 100644 packages/domain/src/voice-service.ts create mode 100644 plugins/README.md create mode 100644 plugins/community/kosx-pack/cards/editorial.json create mode 100644 plugins/community/kosx-pack/cards/kosx-editorial.preview.png create mode 100644 plugins/community/kosx-pack/plugin.json create mode 100644 plugins/community/kosx-pack/preview.png create mode 100644 plugins/official/flaremo-cards/cards/daily.json create mode 100644 plugins/official/flaremo-cards/cards/daily.preview.png create mode 100644 plugins/official/flaremo-cards/cards/ember.json create mode 100644 plugins/official/flaremo-cards/cards/mono.json create mode 100644 plugins/official/flaremo-cards/cards/plain.json create mode 100644 plugins/official/flaremo-cards/cards/plain.preview.png create mode 100644 plugins/official/flaremo-cards/cards/postcard.json create mode 100644 plugins/official/flaremo-cards/cards/postcard.preview.png create mode 100644 plugins/official/flaremo-cards/cards/quote.json create mode 100644 plugins/official/flaremo-cards/cards/ticket.json create mode 100644 plugins/official/flaremo-cards/cards/ticket.preview.png create mode 100644 plugins/official/flaremo-cards/cards/zen.json create mode 100644 plugins/official/flaremo-cards/plugin.json create mode 100644 plugins/official/flaremo-cards/preview.png create mode 100644 plugins/official/sandbox-demo/cards/stamp.preview.png create mode 100644 plugins/official/sandbox-demo/cards/stamp/index.html create mode 100644 plugins/official/sandbox-demo/plugin.json create mode 100644 plugins/official/sandbox-demo/preview.png create mode 100644 plugins/package.json create mode 100644 plugins/registry.json create mode 100644 plugins/src/check.test.ts create mode 100644 plugins/src/check.ts create mode 100644 plugins/src/check/checker.ts create mode 100644 plugins/src/check/constants.ts create mode 100644 plugins/src/check/rules/bindings.ts create mode 100644 plugins/src/check/rules/card.ts create mode 100644 plugins/src/check/rules/color.ts create mode 100644 plugins/src/check/rules/font.ts create mode 100644 plugins/src/check/rules/node.ts create mode 100644 plugins/src/check/rules/preview.ts create mode 100644 plugins/src/check/rules/sandbox.ts create mode 100644 plugins/src/check/rules/style.ts create mode 100644 plugins/src/check/rules/svg.ts create mode 100644 plugins/src/document.test.ts create mode 100644 plugins/src/document.ts create mode 100644 plugins/src/index.ts create mode 100644 plugins/src/package.test.ts create mode 100644 plugins/src/package.ts create mode 100644 plugins/src/registry.test.ts create mode 100644 plugins/src/registry.ts create mode 100644 plugins/src/spec.ts create mode 100644 plugins/src/validate.ts create mode 100644 plugins/tsconfig.json create mode 100644 renovate.json create mode 100644 scripts/dev-hot.mjs create mode 100644 scripts/plugin-check.ts create mode 100644 scripts/plugin-new.ts create mode 100644 scripts/plugins-build.ts create mode 100644 scripts/provision-cloudflare.mjs create mode 100644 scripts/provision-cloudflare.test.mjs create mode 100644 scripts/setup-usage.mjs create mode 100644 scripts/setup-usage.test.mjs create mode 100644 scripts/smoke-check.mjs create mode 100644 scripts/smoke-check.test.mjs create mode 100644 scripts/startup-graph.mjs create mode 100644 scripts/sync-worker-secrets.mjs create mode 100644 scripts/sync-worker-secrets.test.mjs create mode 100644 scripts/write-wrangler-config.mjs create mode 100644 scripts/write-wrangler-config.test.mjs create mode 100644 skills/flaremo-memory/SKILL.md create mode 100644 tests/e2e/space-flow.spec.ts create mode 100644 tests/e2e/team-projects.spec.ts create mode 100644 tests/e2e/voice-settings-flow.spec.ts create mode 100644 tests/e2e/workspace-helpers.ts create mode 100644 tests/harness/helpers.ts create mode 100644 tests/harness/hooks.test.ts create mode 100644 tests/harness/importer.test.ts create mode 100644 tests/harness/install.test.ts create mode 100644 tests/harness/outbox.test.ts create mode 100644 tests/harness/project.test.ts create mode 100644 tests/harness/transport.test.ts create mode 100644 tests/team-projects/workbench.test.ts create mode 100644 wrangler.json diff --git a/.dev.vars.example b/.dev.vars.example index a31df632..395d746c 100644 --- a/.dev.vars.example +++ b/.dev.vars.example @@ -10,3 +10,12 @@ FLAREMO_TRUSTED_ORIGINS= BETTER_AUTH_SECRET= FLAREMO_BOOTSTRAP_SECRET= FLAREMO_RECOVERY_SECRET= + +# 可选:Cloudflare 资源用量面板(设置→用量)。生产用 `pnpm setup:usage` +# 写入 Worker secret;本地 dev 想看这块时手动填入(token 只需要 +# Account Analytics: Read 权限)。留空则面板隐藏该区块。 +# FLAREMO_CF_ANALYTICS_TOKEN= +# FLAREMO_CF_ACCOUNT_ID=<32-hex-account-id> +# FLAREMO_CF_WORKER_NAME=flaremo +# FLAREMO_CF_D1_ID= +# FLAREMO_CF_R2_BUCKET=flaremo-attachments diff --git a/AGENTS.md b/AGENTS.md index c311279c..3111e17b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -23,25 +23,42 @@ pnpm install pnpm check pnpm test pnpm build -pnpm verify pnpm backup:drill ``` +`pnpm verify`(13 步全量门禁)只在维护者明确要求时运行,见下方「敏捷开发节奏」。 + 本地开发: ```bash pnpm migrate:local -pnpm dev +pnpm dev:hot # 推荐:前端 HMR + Worker 热重载 +pnpm dev # 无热重载:先构建前端,再由 Worker 托管该产物 ``` +`pnpm dev:hot` 同时起 Vite(前端,默认 **5573**)和 `wrangler dev`(Worker,默认 8787),浏览器只开 **5573**: + +- 改前端源码 → Vite 即时热更新(React Fast Refresh,页面状态不丢) +- 改 worker / packages 源码 → wrangler 自动重新打包,刷新即见 +- API、SSR 分享页 `/share/:token`、文章页 `/article/:slug`、R2 附件 `/file/*`、`/mcp`、feed 与 sitemap 由 Vite 代理到 Worker,因此同源,cookie 与 origin 校验照常工作 + +端口用 `FLAREMO_DEV_WEB_PORT` / `FLAREMO_DEV_WORKER_PORT` 覆盖(第二个 checkout 或端口转发时用)。首次运行若 `apps/web/dist` 不存在会先构建一次(`wrangler dev` 要求 assets 目录存在);该分支只跑 `vite build`,不含 `tsc`,不会因类型错误挡住 dev 启动。 + +改 `wrangler.jsonc` 的 `assets.run_worker_first` 时必须同步 `apps/web/vite.config.ts` 的 `server.proxy`——两者不一致会让某条路径在 dev 下走错的服务器(`apps/web/src/dev-proxy-parity.test.ts` 会失败提醒)。 + +dev:hot 下额外启用 **React Grab**(`apps/web/src/dev/react-grab.ts`):悬停任意界面元素即可复制其组件名、源码行列与 CSS 选择器,粘贴给 agent 比用文字描述位置准确得多。引入点在 `main.tsx` 的 `import.meta.env.DEV` 分支,生产构建实测不含其任何代码;`pnpm dev`(Worker 托管构建产物)与部署产物同样没有它。SSR 分享页/文章页是 Worker 渲染的独立文档,不在其作用范围。初始化显式传 `telemetry: false`,不向 react-grab.com 发版本检查。 + +已知小限制:组件栈里的文件名只有基名(`input.tsx` 而非完整路径)——Vite dev 的 sourcemap `sources` 本身就只发布基名,拾取器只是如实转述。靠组件名 + 行列号 + CSS 选择器足以定位。 + 生产部署: ```bash -pnpm verify pnpm deploy:dry-run pnpm deploy ``` +`pnpm verify` 是 13 步全量门禁(含 e2e),**只在维护者明确要求时执行**(发版也不需要)。 + 只验证 Cloudflare 配置和打包: ```bash @@ -50,29 +67,29 @@ pnpm deploy:dry-run ## 修改规则 -- 改数据库结构时,先改 `packages/db/src/schema.ts`,再运行 `pnpm db:generate`。 +- 改数据库结构时,先改 `packages/db/src/schema/` 下的对应模块(`schema.ts` 只是 barrel),再运行 `pnpm db:generate`。 - 生成的 SQL migration 必须提交到 `migrations/`。 - 自动部署会先迁移再发布 Worker;migration 必须向后兼容上一正式版本,破坏性收缩要拆到后续 release。 - 业务访问数据必须通过 Drizzle 和 domain services,不要在路由里堆散装 SQL。 - `/api/v1/*` 是兼容层;新增字段或行为时同步检查 `packages/memos` 和 OpenAPI。 - `/api/app/*` 可以服务前端体验,但必须复用同一套 domain services。 - 前端只展示已经接上后端能力的入口;不要放未实现功能的按钮、菜单或文案。 +- 产品与界面改动遵循设计原则「简约不简单,克制不放肆」;视觉、动效和文案细节见 `docs/design-system.md`。 - 应用层认证边界是 Better Auth;不要新增绕开 Better Auth 的登录页、共享密码或第二套应用令牌。Cloudflare Access 可以作为可选外层防线,但不能被误当成应用用户身份映射。 - 凭据相关的 Origin 契约必须保持不变:cookie session 的状态变更请求(包括 `POST`、`PATCH`、`DELETE` 等非安全方法)必须携带并精确匹配 `FLAREMO_PUBLIC_URL` 或 `FLAREMO_TRUSTED_ORIGINS`;PAT 请求可以省略 Origin,但一旦携带也必须精确匹配同一 allowlist,否则返回 `403`。不要用 wildcard、`Referer` 或 Cloudflare Access headers 替代 Origin 校验。 - 不得把 `BETTER_AUTH_SECRET`、`FLAREMO_BOOTSTRAP_SECRET`、初始密码、cookie 或 `memos_pat_` 明文写进代码、文档、migration、issue、PR、日志或聊天;生产 secret 只能通过 Wrangler secret 或 Cloudflare 控制台安全配置。 - `Temp/` 是参考仓库目录,不能提交。 -- 使用 GitHub Actions 时只允许两类 workflow:`.github/workflows/ci.yml`(瘦 CI:format / lint / typecheck / 单元测试,兕底与外部 PR 门禁)和 `.github/workflows/flaremo-update.yml`(只服务自部署用户自己的部署仓库,同步上游 Release 并创建升级 PR)。永远不用 GitHub Actions 做生产部署器(no CI/CD),不跑 E2E 进 CI;完整门禁 `pnpm verify` 仍由维护者发版前本地执行。不重新启用 Dependabot 或 Workers Builds。 -- 改路由、守卫、导航行为时必须同步补 e2e 用例(2026-09-10 事故教训:v0.15.3 守卫重构后门禁拦不住匿名首页无限加载,因为 e2e 只覆盖了深度链接没覆盖 `/`;门禁的有效性 = 测试覆盖率)。 +- 使用 GitHub Actions 时只允许两类 workflow:`.github/workflows/ci.yml`(瘦 CI:format / lint / typecheck / 单元测试,兕底与外部 PR 门禁)和 `.github/workflows/flaremo-update.yml`(只服务自部署用户自己的部署仓库,同步上游 Release 并创建升级 PR)。永远不用 GitHub Actions 做生产部署器(no CI/CD),不跑 E2E 进 CI;全量门禁 `pnpm verify` 只在维护者明确要求时于本地执行(发版也不需要)。不重新启用 Dependabot 或 Workers Builds。 +- 改路由、守卫、导航行为时必须同步补 e2e 用例(2026-09-10 事故教训:v0.15.3 守卫重构后门禁拦不住匿名首页无限加载,因为 e2e 只覆盖了深度链接没覆盖 `/`;门禁的有效性 = 测试覆盖率)。**补用例 ≠ 主动跑**:写进仓库即可,跑不跑由维护者决定。 +- 敏捷开发节奏(2026-09-16 维护者定调):小步快跑,验证只跑与改动直接相关的定向用例(单个 Vitest 文件 / e2e spec)。**全量门禁 `pnpm verify` 只在维护者明确要求时执行——发版、部署、日常提交都不跑**。质量底线不变:改动涉及的测试必须绿、`pnpm format` 通过。 ## Issue 和 PR 流程 -`main` 永远代表可发布状态。不要直接在 `main` 上做功能或文档任务;除非是维护者明确要求的紧急修正,否则都按 issue 分支和 PR 流程走。 +`main` 永远代表可发布状态。 -标准流程: +**维护者当面指派的任务直接在 `main` 上提交并 push(2026-09-17 维护者定调)。** Kim 的日常节奏是"在 main 上快速迭代"——给他做的小步功能/修复,做完 `git switch main && git pull` 后直接 commit + push,**不要开分支、不要开 PR**(2026-09-17 我给一个已完成的设置弹窗改动擅自开 PR,被当即否决:"我要在 main 上面快速迭代")。 -```text -issue -> branch -> commit -> push -> PR -> squash merge -> delete branch -> update local main -``` +issue -> branch -> PR 流程只用于:对外贡献者、维护者明确要求走分支/审查的大型改动、以及需要 CI 门禁的外部 PR 门禁场景。Agent 拿不准时按直接进 main 处理,拿得准要开 PR 的理由时先问一句。 操作规则: @@ -83,37 +100,32 @@ issue -> branch -> commit -> push -> PR -> squash merge -> delete branch -> upda - 合并使用 squash merge;合并后删除远端任务分支。 - 合并后本地执行 `git switch main && git pull --ff-only`,确认 `main` 已包含合并提交。 -验证强度按改动类型选择: +验证强度按改动类型选择(默认只跑定向测试,不跑全量 `pnpm verify`): - 纯文档、拼写、链接:`pnpm format:check`。 - 部署、Wrangler、D1、R2、Access 相关文档或配置:`pnpm format:check` 和 `pnpm deploy:dry-run`。 -- API、domain service、Memos 兼容、测试夹具:`pnpm verify`。 -- UI 改动:`pnpm verify`,再用 `pnpm dev` 检查桌面和移动端。 -- 真实 Cloudflare 资源演练:`pnpm verify`、`pnpm deploy:dry-run`,再执行对应的远端 D1/R2/Access 验证。 - -## 验收口径 +- API、domain service、Memos 兼容、测试夹具:改动文件对应的 vitest 用例(如 `pnpm exec vitest run apps/worker/src/api/memo-crud.test.ts -t "<用例名>"`)。 +- UI 改动:秒级静态检查(`tsc --noEmit` + 改动文件的 vitest)+ 开发过程中目检。 +- 全量 `pnpm verify`:**只在维护者明确要求时执行**,其他任何时候(含发版)都不要跑。 -改动完成前至少跑: +**E2E 一律 opt-in(2026-09-16 维护者定调)**:Agent 任何时候都不要主动跑 Playwright e2e——开发中途不跑、收尾也不跑,即使是很小的功能也如此。只有维护者明确说"跑 e2e"时才跑。日常 UI 改动用秒级手段验收:`tsc --noEmit`、定向 vitest、`pnpm build`(几百毫秒)、必要时 `pnpm dev` 起服务目检。e2e 冷启动要分钟级(wrangler dev + 全量构建),是本次主题色开发实测出的最大时间黑洞;新写的 e2e 用例留在仓库里,等维护者要求跑或下次触碰同一 spec 时一起跑。 -```bash -pnpm verify -``` - -涉及部署、Wrangler、D1、R2 或 Access 的改动,还要跑: +## 验收口径 -```bash -pnpm deploy:dry-run -``` +敏捷开发期(2026-09-16 起)默认验收线: -涉及 UI 的改动,要启动本地服务检查桌面和移动端: +- 改动涉及的测试必须绿:只跑该改动相关的 vitest 文件(e2e 见上:opt-in,不主动跑)。 +- 提交前跑一次 `pnpm format`(很快)。 +- 部署不需要先跑全量门禁:直接部署(`deploy-kosx.mjs` 默认已跳过 verify),迁移、构建和线上冒烟仍由部署脚本执行。 +- 全量 `pnpm verify` 只在维护者明确要求时执行;发版脚本(`pnpm release`)默认不跑,`--verify` 可按需开启。 -```bash -pnpm dev -``` +涉及部署、Wrangler、D1、R2 或 Access 的改动,建议跑 `pnpm deploy:dry-run`。 +涉及 UI 的改动,用 `pnpm dev:hot` 目检桌面和移动端(改样式即时生效,省掉每次重建);e2e 不主动跑(见上)。 ## 文档入口 - `README.md`:项目入口和部署入口。 +- **README 语言版本规则(2026-09-22 整理后定案)**:`README.md` 是唯一基准(英文),`README.zh-CN` / `.ja` / `.ko` / `.fr` / `.es` / `.ru` / `.ar` 七个翻译版是它的结构镜像(逐节 1:1,只差译文)。改主 README 时必须同步更新对应翻译版;只动某一节也要把该节同步到全部语言版。各版本专有约定:zh-CN 的文档链接指向中文文档根 `docs/`,其他语言版指向 `docs/en/`(`plugin-platform-standard.md` 无英文专版,保持根路径);语言切换器里的链接名保持各语言原生写法,不算混排。 - `docs/tech-stack.md`:确定的技术栈。 - `docs/architecture-notes.md`:架构和兼容边界。 - `docs/deploy.md`:人类部署指南。 diff --git a/CHANGELOG.md b/CHANGELOG.md index 619da577..3a8501fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,146 @@ FlareMo 使用 SemVer。每个 release 都要写清楚升级影响、Cloudflare 资源变化和 Memos 兼容面变化。 +## v0.22.0 + +团队项目工作台版本:新增团队项目视图(外部贡献合并),并完成一轮安全审计、全量 E2E 修复与工程卫生清理。**无 migration、无新增 Cloudflare 资源、无 API 破坏性变化。** + +### 新增与改进 + +- **团队项目工作台**(`/team-projects`,外部贡献 PR #148):集中查看项目、负责人、状态、当前进展、下一步与跟进日期,并可进入详情维护概况、记录进展/会议结论、上传与查看资料。项目仍是团队 memo,通过正文里的 ```kosx-pm 元数据块(协议 `kosx.pm/1`)识别;只有含有效元数据块的记录进入项目列表,普通笔记不受影响。团队/我的项目筛选只改变展示、不构成权限隔离;个人任务看板 `/projects` 原样保留。 +- 团队项目完整文案提供中文与英文两套;其余语言使用英文文案。 + +### 安全审计 + +对本次发布范围(含新合并的外部贡献)做了完整审计,结论与处置: + +- **依赖**:`pnpm audit` 无已知漏洞;供应链策略(`minimumReleaseAge`、构建脚本白名单、overrides 钉版本)校验通过。 +- **新贡献的代码**:无 DOM XSS sink(无 `dangerouslySetInnerHTML`/`innerHTML`/`eval`/`new Function`);元数据块解析全程 fail-closed(非法 JSON、重复块、未闭合块均降级为错误提示,不误解析);所有跳转均为内部路径且经 `validListUrl` 校验,无开放重定向;引用的外链经 `http/https` 协议白名单校验;不存在可触达的原型污染(仅保留 `__proto__`/`constructor` 作为普通键,无递归合并);**未新增任何后端端点、表、migration 或权限模型**,读写全部经由既有的、由服务端重新鉴权的 API。 +- **凭据卫生**:本次范围内无密钥泄漏,`.dev.vars` 与 `wrangler.jsonc` 均未被 git 跟踪。 +- **已修**:英文文案 23 处以 `":s"` 结尾的错字(所有英文标签与错误提示此前显示为 `Owner:s`、`Save failed:s`),成因是目录构造处的 `replace(/\\s/g, " ")` 在模板字符串里匹配的是字面反斜杠而非空白符。 + +**需要维护者决策的既有行为(非本次引入,未改动)**:`canEditMemo` 是「仅作者」,不含角色谓词,因此一名曾被设为成员、发表过团队笔记、之后被降级为读者的账号,仍可编辑自己既有的团队笔记内容(读者被明确拒绝的是**新建/重新发布**,即 `canPublishTeamMemo`)。这是作者本位权限模型的固有性质,改动会波及 Web/API/MCP/兼容面四个入口,故留待明确决策,不在本版静默变更。 + +### 修复 + +- 团队项目路由的 `validateSearch` 不再把 `edit=false` 写进 URL(此前每次访问都会被序列化,导致鉴权守卫捕获的跳转目标与实际落地地址不一致)。 +- 团队项目英文文案的 `":s"` 错字(见上)。 +- 删除时间轴组件里为旧 E2E 契约保留的隐藏 `monthLabels` 容器及其已失效的 prop 链路——纯死代码,唯一消费者是一个已失效的断言。 + +### 工程卫生 + +- 清理 24 条既有 biome 告警(未使用导入/变量、可选链、非空断言),全为语义等价的机械修正;仓库告警从 44 降至 20,剩余的均为移植 CSS 的 `noDescendingSpecificity`(样式组织建议、非错误,已按视觉验收,重排有回归风险故保留)。 +- **全量 E2E 达到 75/75 全绿**。此前长期有 1–2 个用例在整轮里必挂、单独跑却通过,逐个查明都是共享浏览器 profile 的持久状态串味,而非产品缺陷: + - workspace 布局统一改版后,多份 spec 仍指向旧 UI(内联搜索已迁至 ⌘K spotlight 弹窗、设置面板按断点挂载两份、语音设置改为「状态行 + 配置弹窗」、记忆页改为内联快速输入器、`/capture` 并入统一工作区)。 + - 新增 `startWithCleanClientState` 测试助手,统一清理 composer 发送目标偏好(`localStorage`)、标签折叠、PWA 提示,并清空 IndexedDB 的草稿与提交队列。发送目标是 per-space 记忆的:前一个用例把个人空间记成 private 后,团队空间里本该 protected 的新记录会被正确地填成个人,于是「它出现在团队时间线」的断言失败——产品行为正确,是测试互相污染。 + - 清理 IndexedDB 一律「清空 object store」而非 `deleteDatabase`:删除在应用持有连接时会被阻塞并落到用例中途,把刚写好的草稿一起删掉;且对不存在的库调用 `open` 会创建空库,使应用自身的 `open` 跳过 `onupgradeneeded`。 + - 另修掉两处测试自身缺陷:共享页 `preload="none"` 音频的断言与模板设计相悖(访客按下播放前浏览器不取媒体,duration 恒为空)、记忆编辑用例未限定卡片的 `.first()` 会打开别人的菜单。 + +### Memos 兼容面变化 + +- 无变化。 + +### 数据库 migration + +- 无。 + +### Cloudflare 资源变化 + +- 无新增或改名。部署前无需手动操作。 + +### Better Auth 应用认证变化 + +- 无。cookie session、bootstrap、注册开关、PAT 前缀与撤销行为、`FLAREMO_PUBLIC_URL` / `FLAREMO_TRUSTED_ORIGINS` 与各 secret 的配置要求均不变。 + +### 升级步骤 + +1. 直接部署即可(无 migration、无资源变化)。 +2. 部署后 `/team-projects` 立即可用;既有的 `/projects` 个人任务看板不受影响。 + +### 已知问题 + +- 团队项目工作台目前只有中英文文案,其余语言回落到英文。 +- 项目记录的原始协议元数据在普通 memo 视图中可见(记录本身仍是团队 memo)。 +- 工作台使用内置的精简 fetch 层而非共享 API client,因此不会在 401 时触发全局「需重新登录」事件,而是就地显示未登录状态;服务端仍会对每个请求独立鉴权。 +- 上述「降级为读者后仍可编辑自己既有团队笔记」的权限边界待决策。 +- 兼容面仍未覆盖完整 CEL、完整上游 webhook 事件/egress 语义、完整多用户 ACL、原生 JWT parity,第三方客户端 smoke test 仍未完成。 + +## v0.21.0 + +记忆账本与启动性能版本:Harness 适配落地(ZCode / Codex / Antigravity 插件 + 本地核心 + 原生记忆搬家)、记忆账本 v2 领域层与审核减负、Horizon 天文表盘、Workspace 统一布局,以及一轮幅度很大的 Worker 启动图瘦身。**这是自 v0.20.1 以来的 81 个提交的合并发布,含 4 个新 migration(纯新增 + 回填,向后兼容)。** + +### 新增与改进 + +- **记忆账本 v2**:事实键版本断代、证据链、双时态与混合召回;接入层与 CLI(裁决/复原/版本链端点、`memory_compile` 工具、退出码契约);v2.4 审核减负(AI 提炼默认直接生效、一眼扫替代逐条裁决、seed 直生效);键槽口径对齐唯一索引,提案不占位、不被误退位。 +- **Harness 适配(P0 替换式)**:ZCode / Codex / Antigravity 插件、本地核心与原生记忆搬家,另含 Pi Agent 进程内扩展;导入遇瞬时不可达会退避重试。 +- **Web**:独立子页收敛为持久 Workspace 布局;记忆项目面板、FilterPill 与设计系统对齐;Horizon 天文表盘(12 小时表盘、月/周/年视图深度对齐、卫星光子)。 +- **导出走 Queue**:绑定 `flaremo-data-export` 后 `POST /api/v1/export/tasks` 投递 `{taskId}` 并立即返回 queued,由 queue 消费端与 scheduled maintenance 共用的同一幂等 executor 执行导出;未绑定 Queue 的部署维持请求内执行不变。cron 兜底(stale 任务过期标记 + 过期产物清理)语义不变。 + +### 性能 + +- **Worker 启动图**:静态可达模块 1229 → 488、源码 5.87 → 2.54 MiB(约 -57%)。移出启动图的有 Better Auth 全簇、kysely、@noble、jose、@bufbuild(Connect protobuf)、cel-js、transliteration、fflate、shiki,以及 articles / SSR 公开页 / MCP / 采集四块路由树的入口态惰性化。可用 `pnpm startup-graph` 持续度量。 +- **D1 读放大**:新增按「作者 + UTC 小时 + 当前 status」分桶的聚合表 `memo_hourly_counts`,`stats` 的 `counts` / `active_days` / `activity` 三项与写入路径的 memo 配额检查不再扫 `memos` 全表;成本从「随 memo 总数增长」变为「随实际有活动的 UTC 小时数增长」。`tags` 字段与带 space 分区的查询仍是实时扫表(见 `docs/deploy.md` 的覆盖范围表)。 +- **其他**:记忆分页与批量水合、认证单查、import 与 webhook 串行往返收拢为 `inArray` + `db.batch`、前端首屏减重(ShareImageDialog / 插件 payload 懒加载 + i18n 按需语言包)。 + +### 修复 + +- **重复邮箱身份修复(`/api/app/*`)**:添加成员、修改邮箱使用一个已被占用的地址时,此前会落到 `users` / `auth_users` 唯一索引的裸驱动错误上,返回 500 `Internal server error`——真实原因只在日志里。现在由 domain 层统一判定为 409 `That email is already in use.`,前端映射为本地化文案;邮箱在写入 domain 表时归一化为小写并做大小写不敏感占用比较,堵掉「大小写变体绕过字节唯一索引、进而留下一条无团队归属的孤儿成员记录」的路径。`jsonError` 同时收口:保留框架异常(Better Auth 等)自带的 4xx 与其可读文案,不再一律压成 500(仅 4xx 生效,5xx 与无状态错误仍返回泛化文案,避免内部细节外泄)。**状态码变更**:修改邮箱撞已占用地址从 400 改为 409(`/api/app/*` 自有面,仅前端消费)。 +- **聚合表一致性**:评论创建与成员移除此前会写坏 `memo_hourly_counts`;聚合表重算会撞穿 D1 的 100 绑定参数上限,导致夜间校准从未真正生效——两者均已修复。 +- **Memos 兼容面错误处理收口**:`/api/v1` current REST 与 social 树的 `{code, message, details}` 错误信封合并为单份实现;`CompatValidationError` 与非法 JSON body 现在正确映射 400(此前会落 500)。 +- **评论创建的 memo 配额检查此前从未生效**;编辑 memo 时从新内容重新提取标签;年视图按导航年份锚定活动窗口、热力图年视图请求 366 天窗口;跳年笔记的绝对时间补上年份。 +- **Web**:服务端拒绝退出时不再假装已退出;403 不再误报「登录状态已失效」,Origin 不受信时给出明确提示;侧栏跳时间线补全 search 参数;窗口聚焦时的全量重拉导致的列表重放动画已停止(全局 staleTime 30s + 关闭 refetchOnWindowFocus)。 +- **分享卡**:长文本自适应高度、段落间距收紧、容器不再溢出裁切;视频内联播放的 403 已修(video.twimg.com 按 Referer 白名单防盗链)。 +- **备份/恢复**:`memo_hourly_counts` 此前未登记持久化清单,导致恢复演练既不覆盖也不校验它——现已归类为可重建表,并在恢复时从 `memos` 直接重算(不重放陈旧计数)。恢复清单另补记忆账本三张新表。恢复脚本的 R2 bucket 校验改为从 `wrangler.jsonc` 读取绑定名(此前硬编码 `flaremo-attachments`,任何自定义 bucket 名的部署都会卡在发布门禁上)。 + +### Memos 兼容面变化 + +- current REST 与 social 树的错误信封合并为单份实现;非法 JSON body 与 `CompatValidationError` 由 500 归位 400。 +- Connect 与 current 面的注册路径同样受重复邮箱修复影响(域层统一判定)。 +- 兼容子集范围未扩大:仍不主张完整 Memos Server parity。 + +### 数据库 migration + +- `0030_memory_ledger_v2`:新增 `memory_evidence`、`memory_events`、`memory_rejections` 三表 + `memory_items` 的 `(user_id, scope_type, scope_key, fact_key)` 索引。 +- `0031_memory_ledger_followup`:新增 `memory_compile_archives`;删除 `memory_items_user_fingerprint_idx`(已被 0030 的复合索引取代)。 +- `0032_omniscient_energizer`:新增两个部分索引(推理待审扫描、向量回收扫描)。 +- `0033_large_multiple_man`:新增 `memo_hourly_counts` 聚合并从 `memos` 回填(用 `strftime` 打 ISO 时间戳,避免被下一次校准误判为陈旧墓碑而删除)。 +- 全部为**纯新增 + 回填**,向后兼容上一正式版本的 Worker;自动部署会先迁移再发布。 + +### Cloudflare 资源变化 + +- 可选新增 Queue:`flaremo-data-export`(binding `DATA_EXPORT_QUEUE`)。不绑定则该能力维持旧的请求内执行,无需强制创建。 +- `wrangler.jsonc.example` 的 `assets.run_worker_first` 补齐 worker 渲染路径(`/article/*`、`/share/*`、`/feed.xml`、`/sitemap.xml`、`/sitemap-articles.xml`、`/favicon.ico`)。**自托管升级需同步自己的 `wrangler.jsonc`**,否则这些路径会落回 SPA fallback。 +- 无 R2 / D1 / Vectorize 资源的新增或改名。 + +### Better Auth 应用认证变化 + +- 无 cookie session、bootstrap、注册开关、PAT 前缀或撤销行为的变化。 +- 新增的重复邮箱判定改变了「修改邮箱撞已占用地址」的状态码(400 → 409)与「添加成员撞已占用邮箱」的响应(500 → 409),均为 `/api/app/*` 自有面。 +- `FLAREMO_PUBLIC_URL`、`FLAREMO_TRUSTED_ORIGINS` 与各 secret 的配置要求不变。 + +### 升级步骤 + +1. 备份 D1 与 R2(认证表在恢复清单内)。 +2. 同步自己的 `wrangler.jsonc`:补 `run_worker_first` 路径;如需队列导出能力,创建 `flaremo-data-export` 并加 `DATA_EXPORT_QUEUE` 绑定。 +3. 部署(自动先应用 migration 再发布 Worker)。 +4. 升级后无需手动操作:聚合表已在迁移里回填,夜间校准会继续自愈。 + +### 已知问题 + +- `tags` 字段与带 space 分区的 stats 查询仍是实时扫表;D1 免费套餐下高频调用 `/api/app/stats` 仍可能触顶每日行数预算(估算方法与量级换算见 `docs/deploy.md`)。 +- 仓库内仍有 44 条 biome warning(未使用导入/变量、可选链风格、非空断言等),非门禁项,不影响发布。 +- 兼容面仍未覆盖完整 CEL、完整上游 webhook 事件/egress 语义、完整多用户 ACL、原生 JWT parity,第三方客户端 smoke test 仍未完成。 + +## v0.20.1 + +稳健性收口版本:修复工作区乐观更新的一处缓存键读取错位——乐观插入与乐观更新此前按错误的槽位解析时间线缓存键,主时间线的新记录只能等服务端失效后才出现,回收站/归档视图里的更新会把卡片短暂闪没;现在按真实键形(space/view/query/tag/untagged)逐槽读取并按可见性判定落位(私有记录不再被乐观插进团队时间线)。/calendar 日历页正式下线:任务管理收敛至 /projects(看板/截止日期/逾期提醒),逾期推送、通知铃、任务搜索、PWA 快捷方式全部改指 /projects,文案统一为「任务」;探索页只读小月历与逾期提醒保留;后端 `/api/app/calendar` 聚合端点保留(Memos 兼容面零变化)。地基清理:删除日历下线后的 8 语言死键(46 键/语言)、前端孤儿 `getCalendarView`、SPA 白名单死表项;README 与 PRD 的日历段落改写/补注记;长文件按职责再拆(worker 装配入口、import/export、管理端用户卡),函数体逐字搬移、消费方 import 零改动。稳健性:注册开关与集成凭证读取失败时留下错误日志(此前静默降级);`pnpm release` 新增 tag 与全部 workspace 版本、`FLAREMO_API_VERSION` 的一致性断言,漏 bump 会在发版前置被拦截。无 API 变化、无数据变化。 + +### 升级影响 + +- 无 migration、无资源变化、无 API 变化,直接部署即可。 +- 依赖 /calendar 深链的自动化或收藏请改指 /projects(/calendar 路由已移除);站内所有跳转已同步迁移。 +- 乐观更新修复会让「发送后卡片立即出现」恢复为预期行为,此前依赖失效回包的延迟不受影响。 + ## v0.20.0 工作区流畅度版本:搜索输入 250ms 防抖并随新请求中断旧请求(列表与语义搜索均可携带 AbortSignal);worker 端 /memos 的创建者昵称与附件两个查询并行化,减少首屏往返;搜索/筛选场景的乐观更新修复——编辑搜索结果不再被时间线状态过滤错误吞掉;加载失败可恢复——刷新/加载更多失败时保留已加载内容并给出重试入口,筛选命中为空、归档、回收站各有专属空态;搜索与标签筛选新增一键清除;工作区编辑器与搜索抽为独立组件(WorkspaceComposer/WorkspaceSearch),App.tsx 大幅瘦身。无 API 变化、无数据变化。 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b3612974..7347b9a7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,9 +7,11 @@ ```bash pnpm install pnpm migrate:local -pnpm dev +pnpm dev:hot # 前端 HMR + Worker 热重载,浏览器开 http://localhost:5573 ``` +`pnpm dev:hot` 起 Vite 与 `wrangler dev` 两个进程,把 Worker 拥有的路径(API、SSR 分享页、R2 附件、feed)代理给后者,所以浏览器只访问一个源。前端跑在 **5573**(避开其他 Vite 项目的默认 5173)。该模式下还启用了 React Grab——悬停元素即可复制其组件与源码位置给 agent。想要无热重载的单进程模式仍可用 `pnpm dev`(Worker 托管前端构建产物,端口 8787)。 + 推荐 Node.js 22+ 和仓库声明的 pnpm 版本: ```bash @@ -21,16 +23,17 @@ pnpm install ```bash pnpm format:check -pnpm verify ``` +默认只跑与改动直接相关的测试(对应的 Vitest 文件或 e2e spec),不要求全量 `pnpm verify`。全量门禁(9 步,含 E2E)只在维护者明确要求时运行。 + 涉及 Cloudflare 配置、D1、R2 或部署脚本时: ```bash pnpm deploy:dry-run ``` -仓库带一个瘦 CI(`.github/workflows/ci.yml`:format / lint / typecheck / 单元测试,约 3 分钟),作为兜底与外部 PR 的强制门禁。它不跑 E2E、不部署;完整门禁 `pnpm verify`(含 Playwright E2E)仍由 PR 作者在本地跑完并在 PR 里写明结果。仓库中的 `flaremo-update.yml` 只服务自部署用户自己的部署仓库,用于把上游 Release 准备成升级 PR。 +仓库带一个瘦 CI(`.github/workflows/ci.yml`:format / lint / typecheck / 单元测试,约 3 分钟),作为兜底与外部 PR 的强制门禁。它不跑 E2E、不部署;如果维护者要求,PR 作者再在本地跑完整门禁 `pnpm verify`(含 Playwright E2E)并在 PR 里写明结果。仓库中的 `flaremo-update.yml` 只服务自部署用户自己的部署仓库,用于把上游 Release 准备成升级 PR。 如需自动修复格式: @@ -41,6 +44,7 @@ pnpm format ## PR 要求 - 描述用户可见变化。 +- 产品与界面改动遵循设计原则「简约不简单,克制不放肆」,细节见 `docs/design-system.md`。 - 说明是否影响 D1 migration。 - 说明是否影响 Memos 兼容 API。 - 说明是否影响 Cloudflare Access、D1、R2 或部署流程。 @@ -78,7 +82,7 @@ Memos 兼容问题请说明客户端、请求路径、请求体和返回体。 - `main` 永远代表可发布状态。 - 功能开发使用 `feat/*` 或 `codex/*` 分支。 - 每个 release 必须有 Git tag、GitHub Release、`CHANGELOG.md` 条目和升级说明。 -- 维护者发布前执行 `pnpm verify`、`pnpm deploy:dry-run` 和 `pnpm backup:drill`。 +- 维护者发布前执行 `pnpm deploy:dry-run` 和 `pnpm backup:drill`;全量 `pnpm verify` 仅在明确要求时(`pnpm release vX.Y.Z --verify`)执行。 ## 社区和支持 diff --git a/README.ar.md b/README.ar.md new file mode 100644 index 00000000..03d486de --- /dev/null +++ b/README.ar.md @@ -0,0 +1,223 @@ +
+ +# FlareMo 🔥 + +

+ بدون خوادم · تكلفة صيانة صفرية · متاح عالمياً على مدار الساعة · تحكم وسيادة كاملة في بياناتك
+ للأفراد: مساحة هادئة لتدوين الأفكار وعقل ثانٍ مدعوم بالذكاء الاصطناعي. ولفرق العمل: قاعدة معرفية مشتركة مع إدارة دقيقة للأدوار والصلاحيات. +

+ +

+ English • + 简体中文 • + 日本語 • + Français • + Español • + 한국어 • + Русский • + العربية +

+ +

+ GitHub stars + License + Cloudflare Workers + Memos Compatible + Better Auth + Website +

+ +
+ +| ☀️ سطح المكتب · الوضع الفاتح | 🌙 سطح المكتب · الوضع الداكن | 📱 الهاتف المحمول · متجاوب | +| :---: | :---: | :---: | +| واجهة FlareMo في الوضع الفاتح | واجهة FlareMo في الوضع الداكن | واجهة FlareMo للهاتف | + +لقطات حية لتجربة الاستخدام: تبديل سلس بين الوضعين الفاتح والداكن وتجاوب كامل مع الهواتف الذكية. جميع الميزات المعروضة متصلة بقدرات فعلية في الواجهة الخلفية. + +
+ +--- + +## 💡 لماذا تختار FlareMo؟ + +أثبتت أدوات مثل Flomo وMemos القيمة الهائلة للتدوين السريع بلا عوائق والخط الزمني الخالي من التشتت. لكن استضافة نظام تدوين تقليدي ذاتياً تعني عادةً استئجار خادم VPS، وإعداد Docker وPostgreSQL، وكتابة نصوص نسخ احتياطي آلي، والخوف الدائم من أعطال القرص أو العتاد. + +يجيب FlareMo عن سؤال أبسط: **هل يمكنك الحصول على قاعدة معرفية تعمل 24/7 ومرونة عالية وتسريع عالمي، من دون أي صيانة خوادم، وباستخدام حساب Cloudflare مجاني فقط؟** + +- **Serverless حقيقي**: تعمل الشيفرة والأصول الثابتة على عُقد حافة Cloudflare Workers القريبة منك بزمن استجابة يُقاس بأجزاء الثانية. +- **متانة بمستوى المؤسسات من الصندوق**: تتولى Cloudflare D1 الملاحظات والبيانات الوصفية، بينما تحفظ Cloudflare R2 المرفقات الوسائطية مع نسخ متعددة المناطق. +- **عقل ثانٍ أصيل الذكاء الاصطناعي (AI-Native)**: يأتي مركز «Agent Memory» مع واجهة سطر أوامر (CLI) ومهارة تعمل عبر الوكلاء، تتيحان لوكلاء الذكاء الاصطناعي (Claude، Cursor، Codex، ChatGPT، ZCode) قراءة تفضيلاتك طويلة المدى وسياقات ذاكرتك وتحديثها؛ كما تبقى نقاط نهاية MCP متاحة. +- **هدوء للفرد وقوة للفريق**: الوضع الافتراضي مساحة شخصية خاصة ومشفّرة، وبمجرد تفعيل وضع الفريق تتحول فوراً إلى بيئة عمل تعاونية بأدوار ورؤية ثلاثية المستويات. +- **بسيط لا ناقص**: تبقى الواجهة هادئة ولكل عنصر تحكم مكانه المستحق — لا زخرفة تصرخ لجذب الانتباه، ولا ميزة مفيدة غائبة. + +--- + +## ✨ المميزات الرئيسية + +### 1. تدوين فوري ومراجعة ملهمة +- **دوّن في أجزاء من الثانية**: خط زمني على شكل بطاقات، وسوم، دعم Markdown/GFM، ومعاينات لمرفقات الصور والصوت. +- **بحث سريع كالبرق**: فهرسة نصية كاملة عبر SQLite FTS5 مع معاملات بحث (`has:attachment`، `is:pinned`، `before:YYYY-MM-DD`، `after:YYYY-MM-DD`، `in:timeline|archive|trash`). +- **بحث دلالي «اكتشف» (Vector Search)**: تضمينات Workers AI مقترنة بفهارس Vectorize المشتقة لاستدعاء الملاحظات حسب السياق، مع إعادة التحقق من الصلاحيات مقابل D1 وتراجع سلس إلى FTS5. +- **تنشيط الأفكار**: **مراجعة يومية** مدمجة (في مثل هذا اليوم)، و**مسار عشوائي** (تجوال في شبكات الوسوم والروابط الخلفية مع ملخصات بطاقات بريدية)، واقتراحات ملاحظات ذات صلة. +- **سجل المراجعات**: مقارنة كاملة بين الإصدارات واستعادة أي نسخة سابقة بنقرة واحدة. + +### 2. ذاكرة الذكاء الاصطناعي طويلة المدى (CLI + Skills) +- **Agent Memory**: يتضمن أداة سطر الأوامر `flaremo` والمهارة `flaremo-memory` — يسجّل وكلاء الذكاء الاصطناعي الذاكرة طويلة المدى عبر الجلسات ويحدّثونها (التفضيلات، قرارات المشاريع، القيود، الدروس المستفادة) على أساس REST مشترك. +- **الإنسان في الحلقة**: راجع الذكريات التي سجّلها الذكاء الاصطناعي وتحقق منها وثبّتها أو صححها عبر `/memory`. +- **نظام بيئي مفتوح**: المسار الموصى به هو CLI + Skills، مع بقاء نقاطي النهاية `/memory/mcp` (Streamable HTTP MCP) و`/mcp` متاحتين لعملاء MCP الحاليين. + +### 3. المشاريع والمهام +- **اجمع العمل ضمن المشاريع**: نظّم الملاحظات والمهام في مشاريع، مع لوحة كانبان (سحب بين أعمدة الحالة)، وأولويات، وترتيب يدوي، ومواعيد استحقاق. +- **شخصي بطبعه وحذف قابل للتراجع**: المهام تخص مالكاً واحداً؛ الحذف ينقلها إلى سلة المهملات حتى تُستعاد أو تُمسح تلقائياً. + +### 4. إدارة المهام والتذكيرات +- **المهام تعيش في المشاريع**: لوحة `/projects` (سحب بين أعمدة الحالة)، والأولويات، والترتيب اليدوي، ومواعيد الاستحقاق تجعل صفحات المشاريع الموطن الوحيد لجدولة العمل. +- **الأطر الزمنية في لمحة**: تجمع الواجهة الرئيسية للاستكشاف بين تقويم شهري مصغّر وتذكيرات للمتأخر ومهام اليوم، فلا يختبئ ما يستحق بسببك خلف اللوحة. +- **تذكيرات المتأخر**: تُطلق المهام المتأخرة إشعارات داخل التطبيق، مع Web Push اختياري في المتصفح. + +### 5. تعاون الفرق والرؤية ثلاثية المستويات +- **حوكمة بالأدوار**: أدوار `owner` و`admin` و`member`. يدعو المسؤولون الأعضاء عبر روابط تفعيل لمرة واحدة (يختار كل عضو كلمة مروره بنفسه؛ ولا يطّلع المسؤولون على أي بيانات دخول صريحة). +- **3 مستويات للرؤية**: + - 🔒 **خاص**: لا يراه إلا مؤلفه. + - 👥 **للفريق**: قراءة مشتركة فقط لأعضاء الفريق النشطين. + - 🌐 **عام**: قراءة مجهولة عبر روابط مشاركة محددة المدة. +- **مغادرة آمنة**: إزالة عضو تطلق تنظيفاً خلفياً موثوقاً يمحو بياناته الخاصة بينما تحتفظ بملاحظات الفريق والعامة. +- **مقاعد قرّاء**: منح مقعد قراءة فقط بمدة محددة — للقرّاء الضيوف، أو دفعات الدورات، أو تسليم العملاء. تنتهي المقاعد تلقائياً عند انتهاء صلاحيتها (فشل مغلق عند حل بيانات الاعتماد، دون حاجة إلى cron). أدرها من صفحة الأعضاء، أو افتحها عبر البريد بواسطة `PUT /api/app/admin/team/reader` مع رمز وصول شخصي (انظر `docs/team-mode.md`). + +### 6. أولوية العمل دون اتصال وتجربة PWA +- **PWA قابل للتثبيت**: ثبّته على الشاشة الرئيسية في macOS أو Windows أو iOS أو Android بتجربة تحس كأنها تطبيق أصلي. +- **مزامنة موثوقة دون اتصال**: تُحفظ المسودات محلياً فوراً، وتصطف الإرسالات والملفات المرفوعة دون اتصال في قائمة انتظار تُعاد تلقائياً فور عودة الاتصال. +- **إملاء صوتي حي**: افتح `/capture` لتحويل مباشر للكلام إلى نص (ASR) بالبث في الوقت الفعلي. + +### 7. أمان متين عبر Better Auth +- **مدعوم بـ Better Auth**: جلسات كوكيز في المتصفح بخاصيتي `HttpOnly` و`SameSite=Lax`؛ ورموز وصول شخصية `memos_pat_` قابلة للإلغاء للنصوص البرمجية وواجهة سطر الأوامر وMCP. +- **حماية صارمة للـ Origin**: تفرض الطلبات التي تعدّل الحالة قائمة سماح مطابقة تماماً للمصدر. ويبقى Cloudflare Access متاحاً كمحيط دفاعي خارجي اختياري. + +### 8. التوافق مع Memos والترحيل السلس +- **توافق `/api/v1` مع Memos**: يوفر نقاط نهاية API الأساسية لـ Memos (بصيغة camelCase افتراضياً، وsnake_case القديمة عبر ترويسة) ومخطط OpenAPI. +- **جاهز لتطبيقات الطرف الثالث**: يعمل مباشرة مع عملاء الهاتف مثل Moe Memos. +- **استيراد وتصدير باتجاهين**: استيراد بنقرة واحدة من Memos / flomo مع استراتيجيات للتعامل مع التعارض، وحزم تصدير خام كاملة. + +--- + +### 9. نظام الإضافات: البطاقات كإضافات +- **خمس بطاقات مدمجة**: عادية، يومية، تذكرة، بطاقة بريدية، إضافة إلى عرض توضيحي «ختم بريدي» مرسوم على canvas. +- **المتجر والتنسيق**: تصفّح الأدلة، وتثبيت بنقرة واحدة (بتحقق SHA-256)، وتفعيل/تعطيل، وإعادة ترتيب، وتعيين البطاقة الافتراضية، والإخفاء — كل ذلك من إعدادات الحساب. الدليل الرسمي متاح على [flaremo.app/plugins](https://flaremo.app/plugins/registry.json). +- **ارفع إضافاتك الخاصة**: يمكن للمديرين تثبيت حزمة محلية — توجد على تلك النسخة فقط ولا تُرسل إلى أي مكان. +- **أدوات التأليف**: `pnpm plugin:new` ينشئ الهيكل، و`pnpm plugin:check` يتحقق وفق **نفس القواعد التي تفرضها النسخ عند التثبيت**، و`pnpm plugins:build` يحزم. بطاقات المستندات تخطيطات JSON صافية؛ وبطاقات sandbox تشغّل HTML/CSS/JS الخاصة بك. راجع [دليل الإضافات](./docs/en/plugins.md). +- **آمنة افتراضياً**: تعمل البطاقات في صندوق رملي بأصل معتم و**من دون أي وصول إلى الشبكة**؛ وتبقى حزم المجتمع والعلامات التجارية معطلة حتى يفعّلها المدير. + +## 📊 ما مدى سخاء الخطة المجانية من Cloudflare؟ + +يظن كثيرون أن «مجاني» يعني «مقيّد بشدة». أما بالنسبة لقاعدة معرفية شخصية يغلب عليها النص، فحصة Cloudflare المجانية تكاد تكون لا تنضب: + +| المورد | الحصة المجانية | السعة المكافئة | العمر الافتراضي العملي | +| :--- | :--- | :--- | :--- | +| **Cloudflare D1** | **قاعدة بيانات 5 جيجابايت** | نحو **2.5 مليون** ملاحظة نصية | كتابة 100 ملاحظة يومياً تستغرق **68 عاماً** لملئها | +| **Cloudflare R2** | **تخزين 10 جيجابايت** | نحو **5,000–10,000** صورة / **80 ساعة** صوت | **صفر تكاليف egress**؛ المشاركة العامة لن تُطلق فواتير عرض نطاق | +| **Cloudflare Workers** | حدود طلبات مجانية سخية | أكثر من 300 موقع حافة عالمياً | زمن استجابة بالميلي ثانية في كل مكان دون إقلاع بارد | + +--- + +## 🥊 مقارنة: الحل الأصيل على Cloudflare مقابل NAS منزلي مقابل VPS تقليدي + +| البُعد | أصيل على Cloudflare (FlareMo) | NAS منزلي / حاسوب مصغّر | VPS تقليدي | +| :--- | :--- | :--- | :--- | +| **متانة البيانات** | **نسخ متعددة المناطق بمستوى المؤسسات**، بلا أي خطر عطل عتاد | عطل قرص واحد أو انقطاع كهرباء قد يفقدك بياناتك كلها | يعتمد على روتين لقطات ونسخ احتياطي يدوي | +| **الصيانة** | **صفر**: لا تحديثات نظام، ولا Docker compose، ولا صيانة قاعدة بيانات | تحديثات نظام، وعناية بـ Docker، وتنبيهات SMART، وإعدادات موجّه | ترقيات نواة، وترقيعات أمنية، وبرامج مراقبة | +| **زمن الوصول** | **CDN حافة عالمي**، استجابة دون 100ms من أي مكان | يتطلب أنفاق DDNS / frp / Tailscale، ومقيّد بخط المنزل الصاعد | يعتمد على منطقة سحابية واحدة؛ زمن وصول عالٍ عبر الحدود | +| **SSL والنطاقات** | **HTTPS تلقائي** وربط نطاقات مخصصة | إصدار شهادات يدوي وإعداد وكيل عكسي | إعداد Nginx / Caddy وصيانة تجديد Let's Encrypt | +| **التكلفة المالية** | **0$ / شهر** على الخطة المجانية | تكلفة عتاد مسبقة مرتفعة + كهرباء مستمرة | فواتير شهرية / سنوية مستمرة للخادم وعرض النطاق | + +--- + +## 🚀 النشر السريع خلال 5 دقائق + +### الطريقة 1: نشر بنقرة واحدة إلى Cloudflare + +[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/realchendahuang/FlareMo) + +يستنسخ المستودع إلى حسابك على GitHub ويجهّز D1 وR2 وQueues وVectorize تلقائياً. بعد النشر الأولي، اضبط `FLAREMO_PUBLIC_URL` والأسرار (انظر [docs/en/deploy.md](./docs/en/deploy.md#one-click-deploy-community-supported)). إن جاءت المحاولة الأولى برسالة «Github API Limit Exceeded» فانتظر بضع دقائق وأعد المحاولة. + +### الطريقة 2: GitHub Action (استضافة ذاتية عبر fork) + +في نسختك المتفرعة (fork)، شغّل سير العمل **Deploy to Cloudflare** من تبويب Actions لتجهيز الموارد ونشر الـ Worker ومزامنة أسرار المصادقة. عمليات الدفع (push) لا تنشر من تلقاء نفسها. انظر [docs/en/github-action-deploy.md](./docs/en/github-action-deploy.md). + +### الطريقة 3: النشر بواسطة وكيل ذكاء اصطناعي (موصى بها) + +قدّم المستودع إلى وكيل قادر على تنفيذ أوامر الطرفية (مثل Claude Code أو Cursor Agent أو Codex) مع المستند [docs/en/agent-deploy.md](./docs/en/agent-deploy.md): +> «يرجى نشر FlareMo على حسابي في Cloudflare باتباع docs/en/agent-deploy.md». + +--- + +### الطريقة 4: النشر اليدوي في 3 خطوات + +#### 1. إنشاء موارد Cloudflare +```bash +pnpm exec wrangler whoami +pnpm exec wrangler d1 create flaremo +pnpm exec wrangler r2 bucket create flaremo-attachments +``` + +أو شغّل `pnpm provision:remote` بدلاً من ذلك: ينشئ موارد D1 / R2 / Queue / Vectorize الناقصة ويكتب `database_id` الخاص بـ D1 في `wrangler.jsonc` نيابة عنك. وهو أمر idempotent — الموارد القائمة تُتخطى. + +#### 2. ضبط الإعدادات والأسرار +```bash +cp wrangler.jsonc.example wrangler.jsonc +``` +املأ `database_id` الناتج واضبط `FLAREMO_PUBLIC_URL` على نطاقك الإنتاجي. ثم اضبط الأسرار: +```bash +pnpm exec wrangler secret put BETTER_AUTH_SECRET --config ./wrangler.jsonc +pnpm exec wrangler secret put FLAREMO_BOOTSTRAP_SECRET --config ./wrangler.jsonc +``` + +#### 3. النشر +```bash +pnpm deploy:dry-run +pnpm deploy +``` + +(تُشغَّل بوابة `pnpm verify` الكاملة فقط عندما يطلبها المشرف صراحةً.) +افتح نطاقك الإنتاجي على المسار `/setup` وأدخل `FLAREMO_BOOTSTRAP_SECRET` لتهيئة حساب المالك. + +أدلة مفصلة: [دليل النشر](./docs/en/deploy.md) · [النشر عبر GitHub Action](./docs/en/github-action-deploy.md) · [دليل التحديث](./docs/en/update.md). + +--- + +## 🧱 البنية المعمارية وحزمة التقنيات + +```mermaid +flowchart LR + Browser["FlareMo Web UI (React 19 / PWA)"] --> Worker["Cloudflare Worker"] + Clients["Memos Clients / Scripts / MCP"] --> Worker + + Worker --> Auth["Better Auth (Session / PAT)"] + Worker --> D1["Cloudflare D1 (Memos / Relations / Settings)"] + Access["Cloudflare Access (Optional Outer Perimeter)"] -.-> Worker + Worker --> R2["Cloudflare R2 (Attachments & Exports)"] + Worker --> Assets["Workers Static Assets"] +``` + +- **بيئة التشغيل**: Cloudflare Workers +- **الواجهة الأمامية**: React 19، Vite، TanStack Router، Tailwind CSS 4، Radix UI +- **قاعدة البيانات**: Cloudflare D1، Drizzle ORM +- **التخزين**: Cloudflare R2 +- **المصادقة**: Better Auth (جلسة كوكيز HttpOnly + رمز `memos_pat_` قابل للإلغاء) +- **الذكاء الاصطناعي والبحث**: Workers AI، Vectorize، SQLite FTS5 +- **الإضافات**: منصة امتدادات قائمة على الفتحات ([المعيار](./docs/plugin-platform-standard.md)، [الدليل](./docs/en/plugins.md))؛ تعيش الحزم في R2 وتعمل البطاقات في صندوق رملي دون وصول إلى الشبكة + +--- + +## 🌟 سجل النجوم (Star History) + +[![Star History Chart](https://api.star-history.com/svg?repos=realchendahuang/FlareMo&type=Date)](https://star-history.com/#realchendahuang/FlareMo&Date) + +--- + +## 📄 الترخيص + +مشروع مفتوح المصدر بموجب ترخيص [GNU AGPL-3.0](./LICENSE). +Copyright (c) 2026 realchendahuang. + +
diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 2812020d..00000000 --- a/README.en.md +++ /dev/null @@ -1,200 +0,0 @@ -# FlareMo - -**A Cloudflare-native team knowledge base that runs all day on a free Cloudflare account. Use it alone and it is a quiet personal notebook; use it with a team and it becomes a shared knowledge base with roles and three visibility levels (private, team-visible, public). It ships with D1, R2, Better Auth native authentication, an optional Cloudflare Access outer layer, a quiet memo timeline, and a Memos-compatible API subset.** - -[![GitHub stars](https://img.shields.io/github/stars/realchendahuang/FlareMo?style=social)](https://github.com/realchendahuang/FlareMo) -[![license](https://img.shields.io/github/license/realchendahuang/FlareMo)](./LICENSE) -[![Powered by Cloudflare](https://img.shields.io/badge/powered%20by-Cloudflare-F38020?logo=cloudflare&logoColor=white)](https://www.cloudflare.com/) -[![Memos compatible](https://img.shields.io/badge/Memos-compatible-0466c1)](https://github.com/usememos/memos) - -[中文 README](./README.md) - -

- FlareMo desktop timeline - FlareMo mobile timeline -

- -The screenshots show the current backend-backed timeline, editor, filtering, and mobile navigation. Features that are not implemented yet, such as messaging-app capture, are not exposed as placeholder UI. - -## What It Does - -- Quick memo capture with tags and attachments. -- Timeline, archive, trash, D1 FTS5 search, tag filtering, and activity heatmap. Search spans timeline and archived notes by default and supports `has:attachment`, `is:pinned`, `before:YYYY-MM-DD`, `after:YYYY-MM-DD`, and `in:timeline|archive|trash`. -- Semantic search ("Find"): Workers AI embeddings plus a Vectorize derived index, with every hit re-checked against D1 permissions; it degrades to FTS5 keyword search when the embedding provider or index is absent. See [docs/semantic-search.md](./docs/semantic-search.md) for the boundary. -- Daily review (`/review/daily`, this-day-in-history), random walk (`/review/walk`, tag/relation strolls with a postcard summary), and related notes on the memo detail page. -- An installable PWA; new memo drafts are saved locally, while offline submissions (including attachments) wait in a local queue and are submitted in order when connectivity returns. -- Markdown/GFM with image and audio attachment previews. -- Memo detail pages with relations, backlinks, and revision restore. -- Revocable public share links. -- Team mode: `owner` / `admin` / `member` roles with member management. Admins add members in the Team Management page (name + email; the server issues a one-time activation link and members set their own passwords — the admin never handles or sees a password), promote or demote admins, and remove members with a retryable data cleanup that deletes private data while keeping team and public content. -- Three visibility levels: private (author only), team-visible (read-only for active members), and public (anonymous read-only). The web UI, Memos-compatible API, MCP, attachments, search, and SSE all share one permission matrix. -- Memos-style import and export with conflict strategies. -- A current Memos-style camelCase/protobuf-JSON `/api/v1` subset for memos, attachments, relations, shares, social resources, the auth facade, and PAT resources; the Connect JSON/protobuf/gRPC-Web surface also covers the single-user UserService webhook CRUD/signing-secret and notification list/update/delete subset, including comment/mention payloads. The legacy snake_case wire remains available through an explicit header. -- Chinese and English interface. - -FlareMo keeps the UI honest: if a feature is not wired to the backend, it does not appear as a fake entry point. - -## Deployment - -Deployment is manual by design: the repository does not track `wrangler.jsonc`, and there is no one-click button or automatic deployer. Two ways to get there — pick one. - -### Agent Deployment - -Use the repository [agent deployment runbook](./docs/agent-deploy.md) with Codex, Claude Code, Cursor Agent, or another command-capable agent. The agent copies `wrangler.jsonc.example`, creates the D1 / R2 resources, fills in the `database_id`, applies migrations, and deploys. - -### Manual Deployment - -```bash -pnpm install -pnpm exec wrangler d1 create flaremo -pnpm exec wrangler r2 bucket create flaremo-attachments -``` - -Copy `wrangler.jsonc.example` to `wrangler.jsonc` (the repository does not track `wrangler.jsonc` itself), fill in the generated D1 `database_id`, and set `FLAREMO_PUBLIC_URL` to your public origin, then run: - -```bash -pnpm verify -pnpm deploy:dry-run -pnpm deploy -``` - -Full deployment docs: [docs/deploy.md](./docs/deploy.md). - -### Pre-deployment Checklist - -- Wrangler is logged in to the target Cloudflare account: `pnpm exec wrangler whoami`. -- `wrangler.jsonc` uses `DB` as the D1 binding and contains the target D1 `database_id`. -- `wrangler.jsonc` uses `ATTACHMENTS` as the R2 binding, and the target bucket exists. -- `pnpm deploy` applies pending remote D1 migrations before publishing the Worker. -- `FLAREMO_PUBLIC_URL` is set to the production canonical origin, and Better Auth secrets are configured through Wrangler or the Cloudflare dashboard. -- The one-time owner bootstrap, native login, and PAT creation have been verified; if Cloudflare Access is enabled, the outer policy and application authentication have both been tested. -- Cloudflare Access policies are optional outer controls for human access, Service Tokens, and public share bypass routes. -- The release gate has passed: `pnpm verify` and `pnpm deploy:dry-run`. - -## Auth Boundary: Better Auth, with optional Access - -FlareMo's application authentication is provided by Better Auth. On the first production deployment, the operator manually enters the one-time bootstrap secret, username, display name, email, and password in the HTTPS `/setup` page to create the single owner. Public signup is disabled after bootstrap. The main team path is adding members in the Team Management page: the server issues a one-time activation link and members set their own passwords. The owner can still enable open registration as a compatibility path (off by default), letting anyone create a member account through `/register` or the Memos-compatible `signup`. `FLAREMO_SINGLE_USER_EMAIL` and `FLAREMO_SINGLE_USER_NAME` are legacy variables for existing `users/owner` domain metadata, not login credentials or bootstrap inputs; the setup form is authoritative. Team roles, visibility permissions, and member-removal semantics are documented in [docs/team-mode.md](./docs/team-mode.md). The data model leaves room for future mapped users without changing existing memo IDs. - -- Browser login uses an `HttpOnly`, `SameSite=Lax` cookie session. -- Scripts, MCP, and Memos-compatible clients use a revocable `memos_pat_` Personal Access Token created by an authenticated account. -- The plaintext PAT is returned only at creation time; list and revoke responses do not expose it. -- Cookie-session state-changing requests such as `POST`, `PATCH`, and `DELETE` must carry an `Origin` that exactly matches `FLAREMO_PUBLIC_URL` or `FLAREMO_TRUSTED_ORIGINS`; missing or untrusted origins return `403`. PAT requests may omit `Origin` for desktop scripts and MCP clients, but a supplied `Origin` must match the same allowlist or the request returns `403`. Wildcards, `Referer`, and Access headers are not substitutes for Origin validation. -- Cloudflare Access is an optional outer layer. An Access Service Token only passes the outer policy; it does not become a FlareMo user session. If Access is enabled, clients need both layers. -- Public shares continue to use FlareMo share tokens, expiry, and memo-state checks. - -Set the production `FLAREMO_PUBLIC_URL` to an origin without a path, query, or fragment, then configure the two Worker secrets interactively: - -```bash -pnpm exec wrangler secret put BETTER_AUTH_SECRET --config ./wrangler.jsonc -pnpm exec wrangler secret put FLAREMO_BOOTSTRAP_SECRET --config ./wrangler.jsonc -``` - -Never put real secrets, the initial password, cookies, or PATs in `wrangler.jsonc`, documentation, Git, logs, or chat. See the [deployment guide](./docs/deploy.md) for the setup sequence. - -Native PAT example (`FLAREMO_MEMOS_PAT` must come from a secure local configuration): - -```bash -curl "$FLAREMO_URL/api/v1/memos" \ - -H "Authorization: Bearer $FLAREMO_MEMOS_PAT" -``` - -When Access remains enabled, add its headers as well; an Access Service Token alone is not enough for private application data: - -```bash -curl "$FLAREMO_URL/api/v1/memos" \ - -H "CF-Access-Client-Id: $FLAREMO_ACCESS_CLIENT_ID" \ - -H "CF-Access-Client-Secret: $FLAREMO_ACCESS_CLIENT_SECRET" \ - -H "Authorization: Bearer $FLAREMO_MEMOS_PAT" -``` - -## Tech Stack - -- Runtime: Cloudflare Workers -- Web: React, Vite, Tailwind CSS, shadcn/radix primitives -- API: Hono-style Worker routes, Zod contracts, OpenAPI -- Database: Cloudflare D1, Drizzle -- Object storage: Cloudflare R2 -- Auth boundary: Better Auth; optional Cloudflare Access outer layer -- Package manager: pnpm - -D1 is the source of truth for notes, users, relations, shares, settings, and attachment metadata. R2 stores only binary objects and export bundles. - -## Positioning: AI-native personal knowledge management - -FlareMo is built as **AI-native personal knowledge management**: use it alone and it is a quiet personal notebook, use it with a team and it becomes a shared knowledge base, with semantic search, AI memory, and agent read/write as first-class parts of the product. Its goals differ from Memos, so **full compatibility is not a goal**. - -Memos is the ecosystem anchor FlareMo chose, not a template to reproduce: - -- **Reuse what works**: the domain model, resource naming, the `/api/v1` protocol, OpenAPI, import/export, and the MCP direction, along with the third-party clients and scripts built around them. -- **Extend where upstream has nothing**: Agent Memory, semantic search ("Find"), projects and tasks, and audio-transcript reading are FlareMo-native capabilities, not constrained by upstream shape. -- **Take upstream features on demand**: adopt them only where we need them and the semantics make sense. Upstream interfaces such as `AIService.Transcribe` return `501` in FlareMo, because AI is FlareMo's own track. - -**Diverging from upstream over time is an expected outcome, not an accident.** Compatibility is a way to start from a mature foundation and avoid wasted effort, not a product goal in itself; FlareMo's direction is defined by its own needs. - -One engineering discipline applies to the compatibility surface: the **existing fields and semantics of `/api/v1/*` are a contract for third-party clients**, so we only add to it and never reshape it. New capabilities go to the FlareMo-native `/api/app/*` surface first, or into the freely extensible memo payload. That keeps the Memos ecosystem usable without limiting where FlareMo can grow. See the compatibility strategy section in [docs/architecture-notes.md](./docs/architecture-notes.md). - ---- - -## Memos Compatibility - -FlareMo uses Memos as an ecosystem anchor, not as an internal server fork. The compatibility layer is an adapter over FlareMo domain services. - -Current docs: - -- [Memos compatibility matrix](./docs/memos-compatibility.md) -- [Memos ecosystem matrix](./docs/memos-ecosystem.md) -- [Semantic search architecture](./docs/semantic-search.md) -- [OpenAPI](./packages/contracts/src/openapi.ts) - -The important auth detail is the two-layer boundary. A third-party Memos client must send a FlareMo PAT, and if the production instance is behind Access it must also send these headers: - -```text -CF-Access-Client-Id -CF-Access-Client-Secret -``` - -`memos_pat_` is a FlareMo-native application credential, not proof of complete Memos Server auth parity. The Origin security direction follows the [Memos 0.30 MCP browser-origin model](https://usememos.com/docs/integrations/mcp). The default `/api/v1` wire is now the implemented current camelCase/protobuf-JSON subset, while `X-FlareMo-Wire: legacy` keeps the older snake_case surface available. The Better Auth-backed auth facade and PAT resources are implemented as a subset; `accessToken` is an opaque session-backed token, not a native Memos JWT. The root `/mcp` endpoint is a stateless Streamable HTTP MCP tool subset. FlareMo has bounded social routes and a UserService webhook CRUD/signing-secret plus notification list/update/delete subset, including comment/mention payloads, and a bounded asynchronous outbox for four memo webhook events with retries; complete Memos Server parity, full CEL/Connect/SSE, complete upstream comments/reactions/shortcuts service/wire parity, full multi-user notification ACL, complete upstream webhook event semantics/egress SSRF protection, and real smoke tests for third-party clients remain unfinished. See the [compatibility matrix](./docs/memos-compatibility.md) and [ecosystem matrix](./docs/memos-ecosystem.md). - -## Development - -```bash -pnpm install -pnpm migrate:local -pnpm dev -``` - -Local URL: - -```text -http://localhost:8787 -``` - -Quality gate: - -```bash -pnpm verify -pnpm deploy:dry-run -``` - -Maintenance commands: - -```bash -pnpm format:check -pnpm screenshots -pnpm backup:drill -pnpm release vX.Y.Z -``` - -A thin CI (format / lint / typecheck / unit tests, ~3 min) guards every push and external PR. It does not run E2E and never deploys. Maintainers run the full local release gate before publishing: A self-hosted deployment repository includes the least-privilege `Prepare FlareMo update` workflow that only prepares upstream Release updates as pull requests; Cloudflare Workers Builds remains the deployer for repositories connected to it. See [the update guide](./docs/en/update.md). - -## Contributing - -Read [CONTRIBUTING.md](./CONTRIBUTING.md), [SUPPORT.md](./SUPPORT.md), [SECURITY.md](./SECURITY.md), and [ROADMAP.md](./ROADMAP.md). - -## License - -FlareMo is open source under the [GNU AGPL-3.0](./LICENSE) (AGPL-3.0-only). - -- Self-hosting, modification, and redistribution follow the AGPL-3.0 terms; if you offer a modified version as a network service, you must make the corresponding source available to that service's users. -- Copyright (c) 2026 realchendahuang. The copyright holder may dual-license beyond AGPL-3.0 for the FlareMo hosted offering. -- The "FlareMo" name and marks are not licensed under AGPL-3.0; forks and derivatives must not use the FlareMo brand for promotion or imply official endorsement. diff --git a/README.es.md b/README.es.md new file mode 100644 index 00000000..ac8e907d --- /dev/null +++ b/README.es.md @@ -0,0 +1,219 @@ +# FlareMo 🔥 + +

+ Cero Servidores · Cero Costes de Mantenimiento · Disponibilidad Global 24/7 en el Edge · Control Absoluto de tus Datos
+ Para personas: un espacio íntimo de captura de ideas y segundo cerebro con IA. Para equipos: una base de conocimiento compartida con roles detallados. +

+ +

+ English • + 简体中文 • + 日本語 • + Français • + Español • + 한국어 • + Русский • + العربية +

+ +

+ GitHub stars + License + Cloudflare Workers + Memos Compatible + Better Auth + Website +

+ +
+ +| ☀️ Escritorio · Modo Claro | 🌙 Escritorio · Modo Oscuro | 📱 Móvil · Adaptable | +| :---: | :---: | :---: | +| Interfaz de escritorio de FlareMo en modo claro | Interfaz de escritorio de FlareMo en modo oscuro | Interfaz móvil de FlareMo | + +Capturas reales de la aplicación: alternancia fluida entre temas claro y oscuro y diseño móvil completamente adaptable. Cada funcionalidad mostrada está conectada al backend. + +
+ +--- + +## 💡 ¿Por qué elegir FlareMo? + +Herramientas como Flomo y Memos han demostrado el inmenso valor de registrar notas sin fricción en una línea de tiempo limpia. Sin embargo, autohospedar un sistema de notas tradicional suele significar pagar un VPS, configurar Docker y PostgreSQL, mantener scripts de respaldo y vivir con el miedo a un fallo de disco o de hardware. + +FlareMo responde a una pregunta más simple: **¿Es posible tener una base de conocimiento en línea las 24 horas, resiliente, con aceleración global y sin mantenimiento de servidores, usando solo una cuenta gratuita de Cloudflare?** + +- **Auténtico serverless**: El código y los archivos estáticos se ejecutan en los nodos perimetrales (edge) de Cloudflare Workers más cercanos a ti, con latencia de milisegundos. +- **Durabilidad de nivel empresarial desde el primer minuto**: Cloudflare D1 almacena notas y metadatos; Cloudflare R2 guarda los archivos adjuntos con replicación multirregional. +- **Segundo cerebro nativo de IA**: El centro «Agent Memory» incluye un CLI y un skill multiagente para que los agentes de IA (Claude, Cursor, Codex, ChatGPT, ZCode) lean y actualicen tus preferencias y ámbitos de memoria a largo plazo; también hay endpoints MCP disponibles. +- **Silencioso para uno, potente para muchos**: Por defecto es un santuario privado y cifrado de usuario único. Activa el modo de equipo y se transforma al instante en un espacio de trabajo colaborativo con roles y tres niveles de visibilidad. +- **Mínimo, no simplificado**: La interfaz serena y cada control se gana su lugar — nada de decoración estridente, ninguna función útil ausente. + +--- + +## ✨ Características principales + +### 1. Captura instantánea y revisión que inspira +- **Captura en milisegundos**: Línea de tiempo en tarjetas, etiquetas, Markdown/GFM y vista previa de imágenes y audios adjuntos. +- **Búsqueda ultrarrápida**: Indexación de texto completo SQLite FTS5 con operadores de consulta (`has:attachment`, `is:pinned`, `before:YYYY-MM-DD`, `after:YYYY-MM-DD`, `in:timeline|archive|trash`). +- **Búsqueda semántica («Find» vectorial)**: Embeddings de Workers AI combinados con índices vectoriales derivados de Vectorize para recordar por contexto; revalida permisos contra D1 y degrada con elegancia a FTS5. +- **Reactivación de ideas**: **Revisión diaria** (un día como hoy), **Paseo aleatorio** (deambular por los grafos de etiquetas y enlaces con resúmenes tipo postal) y sugerencias de notas relacionadas. +- **Historial de versiones**: Comparación completa de versiones y restauración histórica con un solo clic. + +### 2. Memoria de IA a largo plazo (CLI + Skills) +- **Agent Memory**: Incluye el CLI `flaremo` y el skill `flaremo-memory` — los agentes de IA registran y actualizan memoria a largo plazo entre sesiones (preferencias, decisiones de proyecto, restricciones, lecciones) sobre una base REST común. +- **Humano en el bucle**: En `/memory` puedes revisar, verificar, fijar o corregir las memorias registradas por la IA. +- **Ecosistema abierto**: La vía recomendada es CLI + Skills; los endpoints `/memory/mcp` (MCP por HTTP en streaming) y `/mcp` siguen disponibles para clientes MCP existentes. + +### 3. Proyectos y tareas +- **Agrupa el trabajo por proyectos**: Organiza notas y pendientes en proyectos, con tablero kanban (arrastrar entre columnas de estado), prioridades, orden manual y fechas límite. +- **Privado por diseño, borrado reversible**: Las tareas pertenecen a un solo propietario; al eliminarlas van a la papelera hasta que se restauren o se purguen automáticamente. + +### 4. Gestión de tareas y recordatorios +- **Las tareas viven en los proyectos**: El tablero de `/projects` (arrastrar entre columnas de estado), las prioridades, el orden manual y las fechas límite convierten las páginas de proyecto en el único hogar para planificar el trabajo. +- **Horizontes temporales de un vistazo**: La vista de inicio del explorador combina un mini calendario mensual con recordatorios de vencidos y de hoy, para que lo que vence nunca se esconda tras el tablero. +- **Recordatorios de vencidos**: Las tareas atrasadas generan notificaciones dentro de la app, con Web Push opcional en el navegador. + +### 5. Colaboración en equipo y visibilidad en 3 niveles +- **Gobernanza por roles**: Roles `owner`, `admin` y `member`. Los administradores invitan a los miembros mediante enlaces de activación de un solo uso (cada miembro elige su propia contraseña; los administradores nunca manejan credenciales en texto plano). +- **3 niveles de visibilidad**: + - 🔒 **Privado**: Solo visible para el autor. + - 👥 **Equipo**: Lectura compartida con los miembros activos del equipo. + - 🌐 **Público**: Lectura anónima mediante enlaces de compartir con tiempo límite. +- **Salida segura**: Al retirar a un miembro se activa una limpieza fiable en segundo plano que purga sus datos privados preservando las notas de equipo y públicas. +- **Asientos de lector**: Concede un asiento de solo lectura por tiempo limitado — lectores invitados, alumnos de un curso, entregas a clientes. Los asientos caducan automáticamente a su vencimiento (fail-closed al resolver la credencial, sin cron). Gestiónalos desde la página de miembros o aprovisiónalos por email mediante `PUT /api/app/admin/team/reader` con un token de acceso personal (ver `docs/team-mode.md`). + +### 6. Sin conexión primero y experiencia PWA +- **PWA instalable**: Instala FlareMo en la pantalla de inicio de macOS, Windows, iOS o Android con tacto de app nativa. +- **Sincronización offline fiable**: Los borradores se guardan al instante en local; los envíos y las subidas sin conexión se ponen en cola y se reproducen automáticamente al recuperar la red. +- **Captura de voz en vivo**: Accede a `/capture` para transcripción de voz a texto en streaming en tiempo real (ASR). + +### 7. Seguridad robusta con Better Auth +- **Impulsado por Better Auth**: Sesiones por cookie de navegador `HttpOnly` y `SameSite=Lax`; tokens de acceso personal `memos_pat_` revocables para scripts, CLI y MCP. +- **Protección estricta de Origin**: Las peticiones con cambio de estado exigen una lista blanca de origen exacta. Cloudflare Access sigue disponible como perímetro defensivo exterior opcional. + +### 8. Compatibilidad con Memos y migración sin costuras +- **Compatibilidad con la API `/api/v1` de Memos**: Proporciona los endpoints principales de la API de Memos (camelCase por defecto, snake_case heredado vía cabecera) y el esquema OpenAPI. +- **Listo para apps de terceros**: Funciona directamente con clientes móviles como Moe Memos. +- **Importación y exportación bidireccionales**: Importación en un clic desde Memos / flomo con estrategias de conflicto y paquetes de exportación completos en formato original. + +--- + +### 9. Sistema de plugins: las tarjetas son plugins +- **Cinco tarjetas incluidas**: Sencilla, Diaria, Billete, Postal y un Matasellos demo dibujado con canvas. +- **Tienda y curación**: explora directorios, instalación en un clic (verificación SHA-256), activar/desactivar, reordenar, fijar la predeterminada, ocultar — todo en los ajustes de cuenta. El directorio oficial vive en [flaremo.app/plugins](https://flaremo.app/plugins/registry.json). +- **Sube los tuyos**: los administradores pueden instalar un paquete local — solo existe en esa instancia y nunca se envía a ningún sitio. +- **Herramientas de autor**: `pnpm plugin:new` genera el esqueleto, `pnpm plugin:check` valida con **exactamente las reglas que las instancias aplican al instalar**, `pnpm plugins:build` empaqueta. Las tarjetas de documento son maquetaciones JSON puras; las tarjetas sandbox ejecutan tu propio HTML/CSS/JS. Ver la [guía de plugins](./docs/en/plugins.md). +- **Seguro por defecto**: las tarjetas se ejecutan en un sandbox de origen opaco y **sin acceso a la red**; los paquetes de comunidad y de marca permanecen desactivados hasta que un administrador los active. + +## 📊 ¿Cuán generoso es el plan gratuito de Cloudflare? + +Muchos asumen que «gratis» significa «severamente limitado». Para bases de conocimiento personales con mucho texto, la cuota gratuita de Cloudflare es prácticamente inagotable: + +| Recurso | Cuota gratuita | Capacidad equivalente | Vida útil práctica | +| :--- | :--- | :--- | :--- | +| **Cloudflare D1** | **Base de datos de 5 GB** | ~**2,5 millones** de notas de texto | Escribiendo 100 notas al día tardarías **68 años** en llenarla | +| **Cloudflare R2** | **10 GB de almacenamiento** | ~**5.000–10.000** fotos / **80 horas** de voz | **0 $ de costes de salida**; compartir en público no genera facturas de ancho de banda | +| **Cloudflare Workers** | Límites generosos de peticiones gratuitas | Más de 300 ubicaciones edge globales | Latencia de milisegundos en todo el mundo sin arranques en frío | + +--- + +## 🥊 Comparativa: Cloudflare nativo vs NAS casero vs VPS tradicional + +| Dimensión | Cloudflare nativo (FlareMo) | NAS casero / Mini PC | VPS tradicional | +| :--- | :--- | :--- | :--- | +| **Durabilidad de los datos** | **Replicación multirregional empresarial**, cero riesgo de fallo de hardware | Un fallo de disco o un corte de luz puede suponer la pérdida total de datos | Depende de rutinas manuales de snapshots y copias de seguridad | +| **Mantenimiento** | **Cero**: sin parches de SO, sin Docker compose, sin mantenimiento de BD | Actualizaciones del SO, mantenimiento de Docker, alertas SMART de disco, configuración del router | Actualizaciones de kernel, parches de seguridad, daemons de vigilancia | +| **Latencia de acceso** | **CDN global en el edge**, respuesta de menos de 100 ms en cualquier lugar | Requiere túneles DDNS / frp / Tailscale, limitado por la subida de casa | Depende de una única región cloud; alta latencia transfronteriza | +| **SSL y dominios** | **HTTPS automatizado** y enlace de dominios personalizados | Emisión manual de certificados, configuración de proxy inverso | Configuración de Nginx / Caddy y renovación de Let's Encrypt | +| **Coste económico** | **0 $ / mes** en el plan gratuito | Alto coste inicial de hardware + electricidad continua | Facturas mensuales / anuales continuas de servidor y ancho de banda | + +--- + +## 🚀 Despliegue rápido en 5 minutos + +### Método 1: Despliegue en un clic en Cloudflare + +[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/realchendahuang/FlareMo) + +Clona el repositorio en tu cuenta de GitHub y aprovisiona automáticamente D1, R2, Queues y Vectorize. Tras el despliegue inicial, configura `FLAREMO_PUBLIC_URL` y los secretos (ver [docs/en/deploy.md](./docs/en/deploy.md#one-click-deploy-community-supported)). Si el primer intento informa de «Github API Limit Exceeded», espera unos minutos y reintenta. + +### Método 2: GitHub Action (fork autohospedado) + +En tu fork, ejecuta **Deploy to Cloudflare** desde Actions para aprovisionar los recursos, publicar el Worker y sincronizar los secretos de autenticación. Los push no publican. Ver [docs/en/github-action-deploy.md](./docs/en/github-action-deploy.md). + +### Método 3: Despliegue con un agente IA (recomendado) + +Proporciona este repositorio a un agente capaz de ejecutar comandos de terminal (p. ej. Claude Code, Cursor Agent, Codex) junto con [docs/en/agent-deploy.md](./docs/en/agent-deploy.md): +> «Por favor, despliega FlareMo en mi cuenta de Cloudflare siguiendo docs/en/agent-deploy.md». + +--- + +### Método 4: Despliegue manual en 3 pasos + +#### 1. Crear recursos de Cloudflare +```bash +pnpm exec wrangler whoami +pnpm exec wrangler d1 create flaremo +pnpm exec wrangler r2 bucket create flaremo-attachments +``` + +O ejecuta `pnpm provision:remote` en su lugar: crea los recursos D1 / R2 / Queue / Vectorize que falten y escribe el `database_id` de D1 en `wrangler.jsonc` por ti. Es idempotente — los recursos existentes se omiten. + +#### 2. Configurar ajustes y secretos +```bash +cp wrangler.jsonc.example wrangler.jsonc +``` +Rellena el `database_id` generado y establece `FLAREMO_PUBLIC_URL` en tu dominio de producción. Después configura los secretos: +```bash +pnpm exec wrangler secret put BETTER_AUTH_SECRET --config ./wrangler.jsonc +pnpm exec wrangler secret put FLAREMO_BOOTSTRAP_SECRET --config ./wrangler.jsonc +``` + +#### 3. Desplegar +```bash +pnpm deploy:dry-run +pnpm deploy +``` + +(El gate completo `pnpm verify` solo se ejecuta cuando el mantenedor lo solicita explícitamente.) +Visita `/setup` en tu dominio de producción e introduce el `FLAREMO_BOOTSTRAP_SECRET` para inicializar tu cuenta de Owner. + +Guías detalladas: [Guía de despliegue](./docs/en/deploy.md) · [Despliegue con GitHub Action](./docs/en/github-action-deploy.md) · [Guía de actualización](./docs/en/update.md). + +--- + +## 🧱 Arquitectura y stack tecnológico + +```mermaid +flowchart LR + Browser["FlareMo Web UI (React 19 / PWA)"] --> Worker["Cloudflare Worker"] + Clients["Memos Clients / Scripts / MCP"] --> Worker + + Worker --> Auth["Better Auth (Session / PAT)"] + Worker --> D1["Cloudflare D1 (Memos / Relations / Settings)"] + Access["Cloudflare Access (Optional Outer Perimeter)"] -.-> Worker + Worker --> R2["Cloudflare R2 (Attachments & Exports)"] + Worker --> Assets["Workers Static Assets"] +``` + +- **Runtime**: Cloudflare Workers +- **Frontend**: React 19, Vite, TanStack Router, Tailwind CSS 4, Radix UI +- **Base de datos**: Cloudflare D1, Drizzle ORM +- **Almacenamiento**: Cloudflare R2 +- **Autenticación**: Better Auth (sesión por cookie HttpOnly + `memos_pat_` revocable) +- **IA y búsqueda**: Workers AI, Vectorize, SQLite FTS5 +- **Plugins**: plataforma de extensión basada en slots ([estándar](./docs/plugin-platform-standard.md), [guía](./docs/en/plugins.md)); los paquetes viven en R2 y las tarjetas sandbox se ejecutan sin acceso a la red + +--- + +## 🌟 Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=realchendahuang/FlareMo&type=Date)](https://star-history.com/#realchendahuang/FlareMo&Date) + +--- + +## 📄 Licencia + +Publicado como código abierto bajo licencia [GNU AGPL-3.0](./LICENSE). +Copyright (c) 2026 realchendahuang. diff --git a/README.fr.md b/README.fr.md new file mode 100644 index 00000000..d1095979 --- /dev/null +++ b/README.fr.md @@ -0,0 +1,219 @@ +# FlareMo 🔥 + +

+ Zéro serveur · Aucun coût de maintenance · Haute disponibilité globale 24/7 · Maîtrise totale de vos données
+ Pour les particuliers : un espace de prise de notes intime et second cerveau IA. Pour les équipes : une base de connaissances partagée avec gestion fine des rôles. +

+ +

+ English • + 简体中文 • + 日本語 • + Français • + Español • + 한국어 • + Русский • + العربية +

+ +

+ GitHub stars + License + Cloudflare Workers + Memos Compatible + Better Auth + Website +

+ +
+ +| ☀️ Bureau · Thème Clair | 🌙 Bureau · Thème Sombre | 📱 Mobile · Adaptatif | +| :---: | :---: | :---: | +| Interface FlareMo thème clair | Interface FlareMo thème sombre | Interface mobile FlareMo | + +Captures réelles d'utilisation : transition fluide entre modes clair et sombre, design mobile entièrement réactif. Toutes les fonctionnalités présentées sont reliées au backend. + +
+ +--- + +## 💡 Pourquoi choisir FlareMo ? + +Les outils comme Flomo ou Memos ont démontré la puissance d'une capture d'idées fluide et d'un fil chronologique sans distraction. Cependant, auto-héberger un système traditionnel implique souvent de payer un VPS chaque mois, de configurer Docker et PostgreSQL, d'écrire des scripts de sauvegarde et de redouter la panne d'un disque dur. + +FlareMo répond à une question plus simple : **Peut-on obtenir une base de connaissances en ligne 24h/24, résiliente, accélérée mondialement et sans maintenance de serveur, simplement avec un compte gratuit Cloudflare ?** + +- **Véritablement Serverless** : Le code et les fichiers statiques s'exécutent sur les nœuds edge Cloudflare les plus proches de vous, avec une latence en millisecondes. +- **Durabilité de classe entreprise dès l'installation** : Cloudflare D1 gère les notes et les métadonnées ; Cloudflare R2 stocke les pièces jointes avec réplication multi-régions. +- **Second cerveau pensé pour l'IA** : le hub « Agent Memory » embarque un CLI et un skill multi-agents permettant à vos agents IA (Claude, Cursor, Codex, ChatGPT, ZCode) de lire et mettre à jour vos préférences et votre mémoire à long terme ; des endpoints MCP restent également disponibles. +- **Discret pour un seul, puissant pour une équipe** : Par défaut, un sanctuaire personnel chiffré et privé. Activez le mode équipe, et il se transforme instantanément en espace de travail collaboratif avec rôles et visibilité à trois niveaux. +- **Minimal, pas simplifié** : L'interface reste silencieuse et chaque commande mérite sa place — rien de décoratif qui crie, rien d'utile qui manque. + +--- + +## ✨ Fonctionnalités clés + +### 1. Capture instantanée & Revue stimulante +- **Prise de note immédiate** : Flux chronologique sous forme de cartes, multi-étiquettes, Markdown/GFM, prévisualisation des pièces jointes image et audio. +- **Recherche plein texte ultra-rapide** : Indexation SQLite FTS5 avec opérateurs de requête (`has:attachment`, `is:pinned`, `before:YYYY-MM-DD`, `after:YYYY-MM-DD`, `in:timeline|archive|trash`). +- **Recherche sémantique vectorielle** : Embeddings Workers AI couplés aux index vectoriels dérivés de Vectorize pour un rappel contextuel ; re-vérification des permissions contre D1 et repli transparent sur FTS5. +- **Activation de la pensée** : **Revue quotidienne** (ce jour-là dans l'histoire), **Balade aléatoire** (dérive dans les graphes d'étiquettes et de liens retour, avec résumés en carte postale) et suggestions de notes connexes. +- **Historique des versions** : Diff complet des versions et restauration historique en un clic. + +### 2. Mémoire IA à long terme (CLI + Skills) +- **Agent Memory** : Livré avec le CLI `flaremo` et le skill `flaremo-memory` — vos agents IA enregistrent et mettent à jour une mémoire à long terme transversale aux sessions (préférences, décisions de projet, contraintes, leçons) sur une base REST commune. +- **Contrôle humain** : Consultez, vérifiez, verrouillez ou corrigez les souvenirs enregistrés par l'IA sur la page `/memory`. +- **Écosystème ouvert** : La voie recommandée est CLI + Skills ; les endpoints `/memory/mcp` (Streamable HTTP MCP) et `/mcp` restent disponibles pour les clients MCP existants. + +### 3. Projets et tâches +- **Rassemblez le travail par projet** : Notes et tâches organisées en projets, avec tableau kanban (glisser entre les colonnes de statut), priorités, tri manuel et échéances. +- **Privé par conception, suppression réversible** : Les tâches appartiennent à un seul propriétaire ; la suppression les déplace vers une corbeille jusqu'à restauration ou purge automatique. + +### 4. Gestion des tâches et rappels +- **Les tâches vivent dans les projets** : Le tableau `/projects` (glisser entre les colonnes de statut), les priorités, le tri manuel et les échéances font des pages projet l'endroit unique où planifier le travail. +- **Le temps en un coup d'œil** : La vue d'accueil de l'explorateur associe un mini-calendrier mensuel aux rappels des tâches en retard et du jour, pour qu'aucune échéance ne se cache derrière le tableau. +- **Rappels des retards** : Les tâches en retard déclenchent des notifications dans l'application, avec Web Push navigateur en option. + +### 5. Collaboration d'équipe & Visibilité à 3 niveaux +- **Gouvernance par rôles** : Rôles `owner`, `admin` et `member`. Les administrateurs invitent les membres via des liens d'activation à usage unique (les membres choisissent leur propre mot de passe ; les administrateurs ne manipulent jamais d'identifiants en clair). +- **Visibilité à 3 niveaux** : + - 🔒 **Privé** : Visible uniquement par l'auteur. + - 👥 **Équipe** : Lecture partagée avec les membres actifs de l'équipe. + - 🌐 **Public** : Lecture anonyme via des liens de partage à durée limitée. +- **Départ sécurisé** : Le retrait d'un membre déclenche un nettoyage fiable en arrière-plan qui purge les données privées tout en préservant les notes d'équipe et publiques. +- **Sièges lecteurs** : Attribuez un siège en lecture seule à durée limitée — lecteurs invités, cohortes de cours, livraisons client. Les sièges expirent automatiquement à leur échéance (fail-closed à la résolution des identifiants, sans cron). Gérez-les depuis la page membres, ou provisionnez-les par e-mail via `PUT /api/app/admin/team/reader` avec un jeton d'accès personnel (voir `docs/team-mode.md`). + +### 6. Mode hors-ligne & Expérience PWA +- **PWA installable** : Installez FlareMo sur l'écran d'accueil de macOS, Windows, iOS ou Android, avec une sensation d'application native. +- **Synchronisation hors-ligne fiable** : Les brouillons s'enregistrent localement instantanément. Les soumissions et envois hors-ligne sont mis en file d'attente et rejoués automatiquement dès le retour de la connexion. +- **Dictée vocale en direct** : Page `/capture` avec transcription vocale continue en temps réel (ASR). + +### 7. Sécurité applicative Better Auth +- **Propulsé par Better Auth** : Sessions par cookies `HttpOnly` et `SameSite=Lax` pour le navigateur ; jetons d'accès personnels révocables (`memos_pat_`) pour les scripts, le CLI et MCP. +- **Protection stricte de l'Origin** : Les requêtes modifiant l'état imposent une liste blanche d'origines exactes. Cloudflare Access reste disponible comme périmètre défensif externe optionnel. + +### 8. Compatibilité Memos & Migration sans friction +- **Compatibilité `/api/v1` de Memos** : Fournit les principaux endpoints de l'API Memos (camelCase par défaut, snake_case historique via en-tête) et le schéma OpenAPI. +- **Prêt pour les applications tierces** : Fonctionne directement avec des clients mobiles comme Moe Memos. +- **Import / Export bidirectionnel** : Import en un clic depuis Memos / flomo avec stratégies de gestion des conflits et paquets d'export brut complets. + +--- + +### 9. Système d'extensions : les cartes sont des extensions +- **Cinq cartes incluses** : Blanc, Citation du jour, Ticket, Carte postale, plus un Cachet dessiné au canvas. +- **Boutique et gestion** : dans les réglages du compte — parcourir les répertoires, installation en un clic (vérification SHA-256), activation/désactivation, réordonnancement, carte par défaut, masquage. Le répertoire officiel : [flaremo.app/plugins](https://flaremo.app/plugins/registry.json). +- **Importez les vôtres** : un administrateur peut installer un paquet local — il n'existe que sur cette instance et n'est jamais transmis ailleurs. +- **Outils d'auteur** : `pnpm plugin:new` génère un squelette, `pnpm plugin:check` valide avec **exactement les règles appliquées à l'installation**, `pnpm plugins:build` empaquette. Les cartes document sont de pures mises en page JSON ; les cartes sandbox exécutent votre HTML/CSS/JS. Voir le [guide des extensions](./docs/en/plugins.md). +- **Sûr par défaut** : les cartes s'exécutent dans un bac à sable à origine opaque, **sans aucun accès réseau** ; les paquets communautaires et de marque restent désactivés jusqu'à validation par un administrateur. + +## 📊 Jusqu'où va la générosité du niveau gratuit Cloudflare ? + +Beaucoup pensent que « gratuit » rime avec « sévèrement limité ». Pour une base de connaissances personnelle à dominante textuelle, le quota gratuit de Cloudflare est quasiment inépuisable : + +| Ressource | Quota gratuit Cloudflare | Équivalent en volume | Durée d'utilisation estimée | +| :--- | :--- | :--- | :--- | +| **Cloudflare D1** | **5 Go de base de données** | Env. **2,5 millions** de notes | À raison de 100 notes par jour : **68 ans** pour remplir | +| **Cloudflare R2** | **10 Go de stockage** | Env. **5 000 à 10 000 photos** / **80 h** de voix | **0 $ de frais de bande passante sortante** ; le partage public ne déclenche aucune facture | +| **Cloudflare Workers** | Limites de requêtes gratuites généreuses | 300+ points de présence edge mondiaux | Latence en millisecondes partout, sans démarrage à froid | + +--- + +## 🥊 Comparatif : Cloudflare natif vs NAS domestique vs VPS traditionnel + +| Dimension | Cloudflare natif (FlareMo) | NAS domestique / Mini PC | VPS traditionnel | +| :--- | :--- | :--- | :--- | +| **Durabilité des données** | **Réplication multi-régions de classe entreprise**, aucun risque de panne matérielle | Une panne de disque ou de courant peut entraîner une perte totale | Dépendant de routines manuelles de snapshot et de sauvegarde | +| **Maintenance** | **Zéro** : pas de mises à jour d'OS, pas de Docker compose, pas de maintenance de base | Mises à jour d'OS, entretien Docker, alertes SMART, configuration du routeur | Mises à niveau du noyau, correctifs de sécurité, démons de surveillance | +| **Latence d'accès** | **CDN edge mondial**, réponse en moins de 100 ms partout | Nécessite DDNS / frp / tunnels Tailscale, limité par la montée en débit domestique | Dépendant d'une seule région cloud ; latence transfrontalière élevée | +| **SSL & domaines** | **HTTPS automatisé** et liaison de domaines personnalisés | Émission manuelle de certificats, configuration de reverse proxy | Configuration Nginx / Caddy et renouvellement Let's Encrypt à maintenir | +| **Coût financier** | **0 $ / mois** au niveau gratuit | Investissement matériel initial élevé + électricité en continu | Factures mensuelles / annuelles de serveur et de bande passante | + +--- + +## 🚀 Déploiement rapide en 5 minutes + +### Méthode 1 : Déploiement en un clic vers Cloudflare + +[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/realchendahuang/FlareMo) + +Clone le dépôt dans votre compte GitHub et provisionne automatiquement D1, R2, Queues et Vectorize. Après le déploiement initial, définissez `FLAREMO_PUBLIC_URL` et les secrets (voir [docs/en/deploy.md](./docs/en/deploy.md#one-click-deploy-community-supported)). Si la première tentative signale « Github API Limit Exceeded », attendez quelques minutes puis réessayez. + +### Méthode 2 : GitHub Action (fork auto-hébergé) + +Sur votre fork, lancez **Deploy to Cloudflare** depuis les Actions pour provisionner les ressources, publier le Worker et synchroniser les secrets d'authentification. Les pushes ne publient rien. Voir [docs/en/github-action-deploy.md](./docs/en/github-action-deploy.md). + +### Méthode 3 : Déploiement par Agent IA (Recommandé) + +Confiez ce dépôt à un agent capable d'exécuter des commandes dans un terminal (Claude Code, Cursor Agent, Codex…) avec le fichier [docs/en/agent-deploy.md](./docs/en/agent-deploy.md) : +> « Veuillez déployer FlareMo sur mon compte Cloudflare en suivant docs/en/agent-deploy.md. » + +--- + +### Méthode 4 : Déploiement manuel en 3 étapes + +#### 1. Créer les ressources Cloudflare +```bash +pnpm exec wrangler whoami +pnpm exec wrangler d1 create flaremo +pnpm exec wrangler r2 bucket create flaremo-attachments +``` + +Ou lancez plutôt `pnpm provision:remote` : il crée les ressources D1 / R2 / Queue / Vectorize manquantes et écrit le `database_id` D1 dans `wrangler.jsonc` à votre place. L'opération est idempotente — les ressources existantes sont ignorées. + +#### 2. Configurer les réglages et les secrets +```bash +cp wrangler.jsonc.example wrangler.jsonc +``` +Renseignez le `database_id` généré et définissez `FLAREMO_PUBLIC_URL` sur votre domaine de production. Puis configurez les secrets : +```bash +pnpm exec wrangler secret put BETTER_AUTH_SECRET --config ./wrangler.jsonc +pnpm exec wrangler secret put FLAREMO_BOOTSTRAP_SECRET --config ./wrangler.jsonc +``` + +#### 3. Déployer +```bash +pnpm deploy:dry-run +pnpm deploy +``` + +(La barrière complète `pnpm verify` ne s'exécute que lorsque le mainteneur le demande explicitement.) +Rendez-vous sur `/setup` de votre domaine de production et saisissez le `FLAREMO_BOOTSTRAP_SECRET` pour initialiser votre compte Propriétaire. + +Guides détaillés : [Guide de déploiement](./docs/en/deploy.md) · [Déploiement GitHub Action](./docs/en/github-action-deploy.md) · [Guide de mise à jour](./docs/en/update.md). + +--- + +## 🧱 Architecture & Stack technique + +```mermaid +flowchart LR + Browser["FlareMo Web UI (React 19 / PWA)"] --> Worker["Cloudflare Worker"] + Clients["Memos Clients / Scripts / MCP"] --> Worker + + Worker --> Auth["Better Auth (Session / PAT)"] + Worker --> D1["Cloudflare D1 (Memos / Relations / Settings)"] + Access["Cloudflare Access (Optional Outer Perimeter)"] -.-> Worker + Worker --> R2["Cloudflare R2 (Attachments & Exports)"] + Worker --> Assets["Workers Static Assets"] +``` + +- **Runtime** : Cloudflare Workers +- **Frontend** : React 19, Vite, TanStack Router, Tailwind CSS 4, Radix UI +- **Base de données** : Cloudflare D1, Drizzle ORM +- **Stockage** : Cloudflare R2 +- **Authentification** : Better Auth (session cookie HttpOnly + `memos_pat_` révocable) +- **IA & recherche** : Workers AI, Vectorize, SQLite FTS5 +- **Extensions** : plateforme d'extension à slots ([standard](./docs/plugin-platform-standard.md), [guide](./docs/en/plugins.md)) ; les paquets résident dans R2, les cartes sandbox s'exécutent sans accès réseau + +--- + +## 🌟 Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=realchendahuang/FlareMo&type=Date)](https://star-history.com/#realchendahuang/FlareMo&Date) + +--- + +## 📄 Licence + +Projet open source sous licence [GNU AGPL-3.0](./LICENSE). +Copyright (c) 2026 realchendahuang. diff --git a/README.ja.md b/README.ja.md new file mode 100644 index 00000000..976f294c --- /dev/null +++ b/README.ja.md @@ -0,0 +1,219 @@ +# FlareMo 🔥 + +

+ サーバー不要 · 運用コストゼロ · 24時間グローバル常時稼働 · データの完全な自己所有
+ 個人では静かで集中できる思考記録スペース&第2の脳として、チームではきめ細やかな権限を持つ共有ナレッジベースとして。 +

+ +

+ English • + 简体中文 • + 日本語 • + Français • + Español • + 한국어 • + Русский • + العربية +

+ +

+ GitHub stars + License + Cloudflare Workers + Memos Compatible + Better Auth + Website +

+ +
+ +| ☀️ デスクトップ · ライトテーマ | 🌙 デスクトップ · ダークテーマ | 📱 モバイル · レスポンシブ | +| :---: | :---: | :---: | +| FlareMo デスクトップ ライト画面 | FlareMo デスクトップ ダーク画面 | FlareMo モバイル画面 | + +実際の稼働画面:ライト・ダークテーマのシームレスな切り替えと、フル機能のモバイルレスポンシブ表示。表示されている機能はすべて、実際に動作するバックエンド機能に接続されています。 + +
+ +--- + +## 💡 FlareMoを選ぶ理由 + +FlomoやMemosといったツールは、摩擦の少ないメモ記録と邪魔の入らないタイムラインが持つ大きな価値を証明しました。しかし、従来型のノート環境をセルフホストするには、VPSを契約し、DockerとPostgreSQLを構成し、自動バックアップをスクリプトで組み、ディスクやハードウェアの故障に怯え続けることが普通でした。 + +FlareMoが立ち向かう問いはもっとシンプルです:**無料のCloudflareアカウント1つだけで、サーバー保守ゼロで、24時間365日オンラインで耐障害性が高く、世界中から高速にアクセスできるナレッジベースを持てるのか?** + +- **真のサーバーレス**:コードも静的アセットも、ユーザーの近くにあるCloudflare Workersのエッジノード上でミリ秒応答。 +- **最初からエンタープライズ級の耐久性**:ノートとメタデータはCloudflare D1が担当し、メディア添付ファイルはマルチリージョンレプリケーション付きのCloudflare R2に保存。 +- **AIネイティブな第2の脳**:Agent MemoryハブにCLIとクロスエージェントSkillを同梱。AIエージェント(Claude、Cursor、Codex、ChatGPT、ZCode)が長期的な好みや記憶スコープを読み取り・更新できます。MCPエンドポイントも利用可能です。 +- **一人には静かに、大勢には強力に**:デフォルトは暗号化された一人用のプライベートな空間。チームモードを有効にすると、ロールと3段階の公開範囲を備えた共同作業スペースに即座に変わります。 +- **シンプル、でも粗削りではない**:インターフェースは静かに保たれ、すべての操作に存在する理由がある — 見せびらかす装飾はなく、役に立つものの欠落もありません。 + +--- + +## ✨ 主な機能 + +### 1. 瞬時のメモ作成とインスピレーションの振り返り +- **ミリ秒でキャプチャ**:カード型タイムライン、タグ、Markdown/GFM、画像・音声添付のプレビューに対応。 +- **高速検索**:SQLite FTS5による全文インデックスとクエリ演算子(`has:attachment`、`is:pinned`、`before:YYYY-MM-DD`、`after:YYYY-MM-DD`、`in:timeline|archive|trash`)。 +- **セマンティックな「探す」(ベクトル検索)**:Workers AIの埋め込みとVectorizeの派生ベクトルインデックスを組み合わせ、文脈に応じた呼び出しを実現。D1で権限を再検証し、必要時はFTS5へシームレスにフォールバック。 +- **思考を呼び起こす**:内蔵の**デイリーレビュー**(この日の記録)、**ランダムウォーク**(タグやバックリンクのグラフをポストカード風の要約とともに散策)、関連ノートのおすすめ。 +- **改訂履歴**:全バージョンの差分表示とワンクリックでの過去バージョン復元。 + +### 2. AI長期記憶(CLI + Skills) +- **Agent Memory**:`flaremo` CLIと`flaremo-memory` Skillを同梱。AIエージェントが共通のREST基盤を通じてセッションを跨いだ長期記憶(好み、プロジェクトの決定事項、制約、教訓)を記録・更新できます。 +- **人間が最終確認**:`/memory` 画面でAIが記録した記憶を確認・検証・ロック・修正できます。 +- **オープンなエコシステム**:推奨パスはCLI + Skills。既存のMCPクライアント向けに `/memory/mcp`(Streamable HTTP MCP)と `/mcp` エンドポイントも提供。 + +### 3. プロジェクトとタスク +- **プロジェクトで作業をまとめる**:ノートとTODOをプロジェクトに整理。ステータス列間をドラッグできるカンバンボード、優先度、手動並べ替え、期日に対応。 +- **個人専用設計・取り消せる削除**:タスクは単一のオーナーに帰属。削除するとゴミ箱に移動し、復元するか自動消去されるまで保持されます。 + +### 4. タスク管理とリマインダー +- **タスクはプロジェクトに住む**:`/projects` ボード(ステータス列間のドラッグ)、優先度、手動並べ替え、期日により、プロジェクトページが作業スケジュールの一元的な住処になります。 +- **時間の全体像をひと目で把握**:explorerホーム画面はミニ月カレンダーと期限超過・今日のリマインダーを並べて表示。期日がボードの裏に隠れることはありません。 +- **期限超過リマインダー**:期限を過ぎたタスクはアプリ内通知で知らせ、任意でブラウザのWeb Pushにも対応。 + +### 5. チームコラボレーションと3段階の公開範囲 +- **ロールガバナンス**:`owner`、`admin`、`member` の3ロール。管理者はワンタイムアクティベーションリンクでメンバーを招待します(パスワードはメンバー自身が設定し、管理者が平文の認証情報に触れることはありません)。 +- **3段階の公開範囲**: + - 🔒 **プライベート**:作成者本人のみ閲覧可能。 + - 👥 **チーム**:アクティブなチームメンバーに読み取り専用で共有。 + - 🌐 **公開**:期限付き共有リンク経由で匿名の読み取り専用アクセス。 +- **安全なメンバー削除**:メンバーを削除すると、信頼性の高いバックグラウンドクリーンアップが走り、プライベートデータのみを消去してチームと公開のノートは保持します。 +- **リーダーシート**:期限付きの読み取り専用シートを発行できます — ゲスト読者、講座の受講者、クライアントへの納品など。シートは有効期限が切れると自動的に失効します(認証解決時にフェイルクローズ、cron不要)。メンバー画面から管理するか、Personal Access Token で `PUT /api/app/admin/team/reader` を呼び出してメールアドレスから開通できます(`docs/team-mode.md` 参照)。 + +### 6. オフラインファースト&PWA体験 +- **インストール可能なPWA**:macOS、Windows、iOS、Androidのホーム画面に追加でき、ネイティブアプリのような操作感。 +- **信頼性の高いオフライン同期**:下書きは即座にローカル保存。オフライン中の送信やアップロードはキューに積まれ、接続回復時に自動で再生されます。 +- **ライブ音声キャプチャ**:`/capture` にアクセスすると、リアルタイムのストリーミング音声文字起こし(ASR)が利用できます。 + +### 7. Secure Better Authによるアプリケーションセキュリティ +- **Better Auth基盤**:ブラウザは `HttpOnly`・`SameSite=Lax` のクッキーセッション。スクリプト、CLI、MCP向けには失効可能な `memos_pat_` Personal Access Token を提供。 +- **厳格なOrigin保護**:状態を変更するリクエストには厳密なOriginのホワイトリストを強制。Cloudflare Accessも任意の外層防御として併用できます。 + +### 8. Memos互換とシームレスな移行 +- **Memos `/api/v1` 互換**:Memosの主要APIエンドポイント(デフォルトはcamelCase、ヘッダーでレガシーのsnake_case)とOpenAPIスキーマを提供。 +- **サードパーティアプリ対応**:Moe Memosなどのモバイルクライアントから直接接続できます。 +- **双方向のインポート&エクスポート**:Memos / flomoからワンクリックでインポート(競合戦略付き)。生データ一式の完全エクスポートにも対応。 + +--- + +### 9. プラグインシステム:カードはプラグイン +- **5種の内蔵カード**:プレーン、デイリー、チケット、ポストカード、さらにcanvasで描く消印(ポストマーク)デモ。 +- **ストアとキュレーション**:ディレクトリの閲覧、ワンクリックインストール(SHA-256検証済み)、有効化・無効化、並べ替え、デフォルト設定、非表示 — すべてアカウント設定から操作できます。公式ディレクトリは [flaremo.app/plugins](https://flaremo.app/plugins/registry.json)。 +- **自作カードの導入**:管理者はローカルパッケージをインストール可能 — そのインスタンス上にのみ存在し、外部へ送信されることはありません。 +- **制作ツール**:`pnpm plugin:new` で雛形生成、`pnpm plugin:check` は**インストール時にインスタンスが適用するのと同一のルール**で検証、`pnpm plugins:build` でパッケージ化。ドキュメントカードは純粋なJSONレイアウト、サンドボックスカードは自作のHTML/CSS/JSを動かせます。詳しくは[プラグインガイド](./docs/en/plugins.md)。 +- **デフォルトで安全**:カードは不透明オリジンのサンドボックス上で動作し、**ネットワークアクセスは一切ありません**。コミュニティやブランドパックは管理者が有効化するまでオフのままです。 + +## 📊 Cloudflareの無料枠はどれだけ寛容か? + +「無料」=「大きく制限されている」と考えがちですが、テキスト中心の個人ナレッジベースにとって、Cloudflareの無料枠は事実上枯渇しないレベルです: + +| リソース | 無料枠 | 想定容量 | 実用上の寿命 | +| :--- | :--- | :--- | :--- | +| **Cloudflare D1** | **5 GBデータベース** | 約 **250万件** のテキストメモ | 毎日100件書いても **68年** かかる容量 | +| **Cloudflare R2** | **10 GBストレージ** | 写真 約 **5,000〜10,000枚** / 音声 **80時間** | **Egress料金 $0**。公開共有でも帯域請求は発生しない | +| **Cloudflare Workers** | 寛容な無料リクエスト枠 | 世界300以上のエッジロケーション | コールドブートなしで世界中ミリ秒応答 | + +--- + +## 🥊 比較:Cloudflareネイティブ vs 自宅NAS vs 従来型VPS + +| 項目 | Cloudflareネイティブ (FlareMo) | 自宅NAS / ミニPC | 従来型VPS | +| :--- | :--- | :--- | :--- | +| **データの耐久性** | **エンタープライズ級マルチリージョンレプリケーション**、ハードウェア故障リスクゼロ | ドライブ故障や停電で全データ消失の恐れ | 手動のスナップショット・バックアップ運用に依存 | +| **保守** | **ゼロ**:OSパッチなし、Docker composeなし、DB保守なし | OSアップデート、Docker管理、SMART監視、ルーター設定 | カーネル更新、セキュリティパッチ、監視デーモン | +| **アクセス遅延** | **グローバルエッジCDN**、どこからでも100ms未満 | DDNS / frp / Tailscaleトンネルが必要で、自宅上り回線に律速 | 単一クラウドリージョンに依存、越境遅延が大きい | +| **SSLとドメイン** | **HTTPS自動化**とカスタムドメイン紐付け | 証明書の手動発行、リバースプロキシ設定 | Nginx / Caddy設定とLet's Encrypt更新の保守 | +| **費用** | 無料枠で **$0 / 月** | 高額な初期ハードウェア投資+継続的な電気代 | サーバー・帯域の月額/年額料金が継続 | + +--- + +## 🚀 5分でできるクイックデプロイ + +### 方法1:Cloudflareへワンクリックデプロイ + +[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/realchendahuang/FlareMo) + +リポジトリをGitHubアカウントにクローンし、D1・R2・Queues・Vectorizeを自動でプロビジョニングします。初回デプロイ後、`FLAREMO_PUBLIC_URL` とシークレットを設定してください([docs/en/deploy.md](./docs/en/deploy.md#one-click-deploy-community-supported) 参照)。初回試行で「Github API Limit Exceeded」と表示された場合は、数分待ってから再試行してください。 + +### 方法2:GitHub Action(フォークでのセルフホスト) + +フォーク上でActionsの **Deploy to Cloudflare** を実行すると、リソースのプロビジョニング、Workerの公開、認証シークレットの同期が行われます。pushでは公開されません。詳しくは [docs/en/github-action-deploy.md](./docs/en/github-action-deploy.md) を参照してください。 + +### 方法3:AIエージェントによるデプロイ(推奨) + +ターミナルコマンドを実行できるエージェント(Claude Code、Cursor Agent、Codexなど)に、[docs/en/agent-deploy.md](./docs/en/agent-deploy.md) とともにリポジトリを渡してください: +> 「docs/en/agent-deploy.md に従って、FlareMo を私の Cloudflare アカウントにデプロイしてください。」 + +--- + +### 方法4:手動3ステップデプロイ + +#### 1. Cloudflareリソースの作成 +```bash +pnpm exec wrangler whoami +pnpm exec wrangler d1 create flaremo +pnpm exec wrangler r2 bucket create flaremo-attachments +``` + +または `pnpm provision:remote` を実行する方法もあります:不足しているD1 / R2 / Queue / Vectorizeリソースを作成し、D1の `database_id` を `wrangler.jsonc` に書き込みます。冪等に動作し、既存リソースはスキップされます。 + +#### 2. 設定とシークレットの構成 +```bash +cp wrangler.jsonc.example wrangler.jsonc +``` +生成された `database_id` を記入し、`FLAREMO_PUBLIC_URL` を本番ドメインに設定します。その後、シークレットを設定します: +```bash +pnpm exec wrangler secret put BETTER_AUTH_SECRET --config ./wrangler.jsonc +pnpm exec wrangler secret put FLAREMO_BOOTSTRAP_SECRET --config ./wrangler.jsonc +``` + +#### 3. デプロイ +```bash +pnpm deploy:dry-run +pnpm deploy +``` + +(フルの `pnpm verify` ゲートは、メンテナーが明示的に求めた場合のみ実行されます。) +本番ドメインの `/setup` にアクセスし、`FLAREMO_BOOTSTRAP_SECRET` を入力してOwnerアカウントを初期化します。 + +詳細ガイド:[デプロイガイド](./docs/en/deploy.md) · [GitHub Actionデプロイ](./docs/en/github-action-deploy.md) · [アップデートガイド](./docs/en/update.md)。 + +--- + +## 🧱 アーキテクチャと技術スタック + +```mermaid +flowchart LR + Browser["FlareMo Web UI (React 19 / PWA)"] --> Worker["Cloudflare Worker"] + Clients["Memos Clients / Scripts / MCP"] --> Worker + + Worker --> Auth["Better Auth (Session / PAT)"] + Worker --> D1["Cloudflare D1 (Memos / Relations / Settings)"] + Access["Cloudflare Access (Optional Outer Perimeter)"] -.-> Worker + Worker --> R2["Cloudflare R2 (Attachments & Exports)"] + Worker --> Assets["Workers Static Assets"] +``` + +- **ランタイム**:Cloudflare Workers +- **フロントエンド**:React 19、Vite、TanStack Router、Tailwind CSS 4、Radix UI +- **データベース**:Cloudflare D1、Drizzle ORM +- **ストレージ**:Cloudflare R2 +- **認証**:Better Auth(HttpOnlyクッキーセッション + 失効可能な `memos_pat_`) +- **AIと検索**:Workers AI、Vectorize、SQLite FTS5 +- **プラグイン**:スロットベースの拡張プラットフォーム([標準仕様](./docs/plugin-platform-standard.md)、[ガイド](./docs/en/plugins.md))。パッケージはR2に置かれ、サンドボックス化されたカードはネットワークアクセスなしで動作します + +--- + +## 🌟 Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=realchendahuang/FlareMo&type=Date)](https://star-history.com/#realchendahuang/FlareMo&Date) + +--- + +## 📄 ライセンス + +[GNU AGPL-3.0](./LICENSE) ライセンスでオープンソースとして公開されています。 +Copyright (c) 2026 realchendahuang. diff --git a/README.ko.md b/README.ko.md new file mode 100644 index 00000000..eb0618a4 --- /dev/null +++ b/README.ko.md @@ -0,0 +1,219 @@ +# FlareMo 🔥 + +

+ 서버 제로 · 유지보수 비용 제로 · 24시간 글로벌 엣지 상시 가동 · 완전한 데이터 소유권
+ 개인에게는 조용하고 집중할 수 있는 생각 기록 공간이자 제2의 뇌, 팀에게는 세밀한 권한 관리를 갖춘 공유 지식 베이스. +

+ +

+ English • + 简体中文 • + 日本語 • + Français • + Español • + 한국어 • + Русский • + العربية +

+ +

+ GitHub stars + License + Cloudflare Workers + Memos Compatible + Better Auth + Website +

+ +
+ +| ☀️ 데스크톱 · 라이트 모드 | 🌙 데스크톱 · 다크 모드 | 📱 모바일 · 반응형 | +| :---: | :---: | :---: | +| FlareMo 데스크톱 라이트 모드 | FlareMo 데스크톱 다크 모드 | FlareMo 모바일 화면 | + +실제 운영 화면 스크린샷: 라이트/다크 모드 매끄러운 전환과 모바일 완전 반응형. 화면에 보이는 모든 기능은 실제로 동작하는 백엔드 기능과 연결되어 있습니다. + +
+ +--- + +## 💡 왜 FlareMo인가? + +Flomo와 Memos 같은 도구들은 부담 없는 메모 기록과 방해받지 않는 타임라인이 지닌 큰 가치를 증명해 왔습니다. 하지만 전통적인 노트 환경을 자체 호스팅하려면 VPS 비용을 지불하고, Docker와 PostgreSQL을 설정하고, 자동 백업 스크립트를 작성·관리하면서 디스크나 하드웨어 고장을 걱정해야 했습니다. + +FlareMo는 더 단순한 질문에 답합니다: **무료 Cloudflare 계정 하나만으로, 서버 유지보수 없이 24시간 온라인으로 살아있고 전 세계에서 가속되는 지식 베이스를 만들 수 없을까?** + +- **진정한 서버리스**: 코드와 정적 자산 모두 사용자 바로 근처의 Cloudflare Workers 엣지 노드에서 밀리초 단위 지연으로 실행됩니다. +- **기본 갖춰진 엔터프라이즈급 내구성**: Cloudflare D1이 메모와 메타데이터를 담당하고, Cloudflare R2가 멀티 리전 복제로 미디어 첨부파일을 저장합니다. +- **AI 네이티브 제2의 뇌**: Agent Memory 허브에 CLI와 크로스 에이전트 스킬이 내장되어, AI 에이전트(Claude, Cursor, Codex, ChatGPT, ZCode)가 장기 선호도와 기억 범위를 읽고 갱신할 수 있습니다. MCP 엔드포인트도 함께 제공됩니다. +- **혼자서는 조용히, 함께라면 강력하게**: 기본값은 암호화된 비공개 1인용 안식처입니다. 팀 모드를 켜면 역할과 3단계 공개 범위를 갖춘 협업 공간으로 즉시 바뀝니다. +- **심플하되 단순하지 않게**: 인터페이스는 조용하고 모든 컨트롤은 존재 이유가 분명합니다 — 주의를 끄는 장식도, 빠진 기능도 없습니다. + +--- + +## ✨ 핵심 기능 + +### 1. 즉석 기록 & 영감을 주는 회고 +- **밀리초 만에 기록**: 카드형 타임라인, 태그, Markdown/GFM, 이미지·오디오 첨부 미리보기. +- **번개같은 검색**: SQLite FTS5 전문 인덱싱과 쿼리 연산자 지원 (`has:attachment`, `is:pinned`, `before:YYYY-MM-DD`, `after:YYYY-MM-DD`, `in:timeline|archive|trash`). +- **의미 기반 '찾기' (벡터 검색)**: Workers AI 임베딩과 Vectorize 파생 벡터 인덱스를 결합해 문맥에 맞는 회상을 제공하며, D1 권한을 재검증하고 필요 시 FTS5로 매끄럽게 대체합니다. +- **생각 활성화**: 내장 **데일리 리뷰**(과거의 오늘), **랜덤 워크**(태그·백링크 그래프를 탐험하며 엽서 요약 수집), 관련 노트 추천. +- **버전 이력**: 전체 버전 diff 비교와 클릭 한 번으로 과거 버전 복원. + +### 2. AI 장기 기억 (CLI + Skills) +- **Agent Memory**: `flaremo` CLI와 `flaremo-memory` 스킬을 동봉 — AI 에이전트가 공용 REST 기반을 통해 세션을 넘어 이어지는 장기 기억(선호도, 프로젝트 결정, 제약 조건, 교훈)을 기록·갱신합니다. +- **Human in the loop**: `/memory` 화면에서 AI가 기록한 기억을 검토하고, 확인·잠금·수정할 수 있습니다. +- **열린 생태계**: 권장 경로는 CLI + Skills이며, 기존 MCP 클라이언트를 위해 `/memory/mcp`(Streamable HTTP MCP)와 `/mcp` 엔드포인트도 제공합니다. + +### 3. 프로젝트 & 작업 +- **프로젝트로 작업 모으기**: 관련 메모와 할 일을 프로젝트로 묶어 관리합니다. 상태 열을 드래그로 옮기는 칸반 보드, 우선순위, 수동 정렬, 마감일을 지원합니다. +- **개인 전용, 되돌릴 수 있는 삭제**: 작업은 소유자 한 사람의 소유이며, 삭제 시 휴지통으로 이동해 복원하거나 기간이 지나면 자동으로 영구 삭제됩니다. + +### 4. 작업 관리 & 알림 +- **작업은 프로젝트 안에**: `/projects` 보드(상태 열 간 드래그), 우선순위, 수동 정렬, 마감일 덕분에 프로젝트 페이지가 일정 관리의 단일한 홈이 됩니다. +- **일정이 한눈에**: 탐색기 홈 화면이 미니 월간 캘린더와 기한 초과/오늘 알림을 함께 보여줘, 마감이 보드 뒤에 숨지 않습니다. +- **기한 초과 알림**: 기한이 지난 작업은 앱 내 알림을 띄우고, 브라우저 웹 푸시도 선택적으로 켤 수 있습니다. + +### 5. 팀 협업 & 3단계 공개 범위 +- **역할 거버넌스**: `owner`, `admin`, `member` 역할. 관리자는 1회용 활성화 링크로 멤버를 초대하고, 멤버가 직접 비밀번호를 설정합니다(관리자는 평문 자격 증명을 절대 다루지 않습니다). +- **3단계 공개 범위**: + - 🔒 **비공개**: 작성자 본인만 열람 가능. + - 👥 **팀 공개**: 활성 팀원에게 읽기 전용 공유. + - 🌐 **전체 공개**: 기한이 있는 공유 링크로 익명 읽기 전용 접근. +- **안전한 멤버 제외**: 멤버 제거 시 신뢰할 수 있는 백그라운드 정리가 실행되어 비공개 데이터는 완전히 삭제하고 팀 및 공개 메모는 보존합니다. +- **리더 시트**: 기한이 있는 읽기 전용 시트를 부여할 수 있습니다 — 게스트 독자, 강의 수강생, 고객 납품 등. 시트는 만료 시점에 자동으로 접근이 차단됩니다(자격 해석 시 fail-closed, 크론 불필요). 멤버 페이지에서 관리하거나, Personal Access Token으로 `PUT /api/app/admin/team/reader` 엔드포인트를 호출해 이메일로 개통할 수 있습니다(`docs/team-mode.md` 참조). + +### 6. 오프라인 우선 & PWA 경험 +- **설치형 PWA**: macOS, Windows, iOS, Android 홈 화면에 설치해 네이티브 앱과 같은 사용감을 제공합니다. +- **신뢰할 수 있는 오프라인 동기화**: 초안은 즉시 로컬에 저장됩니다. 오프라인 상태의 제출과 업로드는 큐에 쌓였다가 연결이 복구되면 자동으로 재생됩니다. +- **실시간 음성 기록**: `/capture` 페이지에서 실시간 스트리밍 음성 인식(ASR) 전사를 지원합니다. + +### 7. 강력한 Better Auth 애플리케이션 보안 +- **Better Auth 기반**: `HttpOnly`, `SameSite=Lax` 브라우저 쿠키 세션과, 스크립트·CLI·MCP용으로 폐기 가능한 `memos_pat_` Personal Access Token을 제공합니다. +- **엄격한 Origin 보호**: 상태 변경 요청에는 정확한 Origin 화이트리스트 검증을 강제합니다. Cloudflare Access는 선택적 외부 방어선으로 계속 사용할 수 있습니다. + +### 8. Memos 호환 & 매끄러운 이전 +- **Memos `/api/v1` 호환**: 핵심 Memos API 엔드포인트(기본 camelCase, 헤더로 legacy snake_case)와 OpenAPI 스키마를 제공합니다. +- **서드파티 앱 대응**: Moe Memos 같은 모바일 클라이언트에서 바로 연결할 수 있습니다. +- **양방향 가져오기/내보내기**: Memos / flomo에서 충돌 처리 전략과 함께 원클릭 가져오기, 전체 원본 내보내기 번들을 지원합니다. + +--- + +### 9. 플러그인 시스템: 카드도 플러그인 +- **기본 카드 5장**: Plain, Daily, Ticket, Postcard, 그리고 canvas로 그리는 Postmark 데모. +- **스토어와 큐레이션**: 설정에서 디렉터리 탐색, 원클릭 설치(SHA-256 검증), 활성화/비활성화, 순서 변경, 기본 카드 지정, 숨기기를 모두 처리합니다. 공식 디렉터리는 [flaremo.app/plugins](https://flaremo.app/plugins/registry.json)에 있습니다. +- **직접 업로드**: 관리자는 로컬 패키지를 설치할 수 있습니다 — 해당 인스턴스에만 존재하며 어디로도 전송되지 않습니다. +- **제작 도구**: `pnpm plugin:new`로 스캐폴딩하고, `pnpm plugin:check`는 **인스턴스가 설치 시 강제하는 것과 정확히 동일한 규칙**으로 검증하며, `pnpm plugins:build`로 패키징합니다. document 카드는 순수 JSON 레이아웃, sandbox 카드는 직접 작성한 HTML/CSS/JS를 실행합니다. 자세한 내용은 [플러그인 가이드](./docs/en/plugins.md)를 참조하세요. +- **기본이 안전**: 카드는 불투명 오리진 샌드박스에서 **네트워크 접근 없이** 실행됩니다. 커뮤니티/브랜드 팩은 관리자가 켜기 전까지 꺼져 있습니다. + +## 📊 Cloudflare 무료 제공량은 얼마나 넉넉한가? + +'무료'는 곧 '극심한 제한'이라고 여기는 경우가 많습니다. 하지만 텍스트 중심의 개인 지식 베이스에는 Cloudflare의 무료 할당량이 사실상 무한대입니다: + +| 리소스 | 무료 제공량 | 환산 용량 | 실제 사용 가능 기간 | +| :--- | :--- | :--- | :--- | +| **Cloudflare D1** | **5 GB 데이터베이스** | 텍스트 메모 약 **250만 개** | 매일 100개씩 작성해도 채우는 데 **68년** 소요 | +| **Cloudflare R2** | **10 GB 스토리지** | 사진 약 **5,000–10,000장** / 음성 **80시간** | **아웃바운드 요금 $0**; 공개 공유로도 대역폭 청구가 발생하지 않음 | +| **Cloudflare Workers** | 넉넉한 무료 요청 한도 | 전 세계 300개 이상 엣지 로케이션 | 콜드 부트 없는 전 세계 밀리초 응답 | + +--- + +## 🥊 비교: Cloudflare 네이티브 vs 홈 NAS vs 전통적 VPS + +| 기준 | Cloudflare 네이티브 (FlareMo) | 홈 NAS / 미니 PC | 전통적 VPS | +| :--- | :--- | :--- | :--- | +| **데이터 내구성** | **엔터프라이즈급 멀티 리전 복제**, 하드웨어 고장 위험 제로 | 단일 디스크 고장이나 정전 한 번으로 데이터 전체 손실 가능 | 수동 스냅샷·백업 루틴에 의존 | +| **유지보수** | **제로**: OS 패치도, Docker compose도, DB 관리도 없음 | OS 업데이트, Docker 관리, SMART 디스크 알림, 라우터 설정 | 커널 업그레이드, 보안 패치, 감시 데몬 관리 | +| **접속 지연** | **글로벌 엣지 CDN**, 어디서나 100ms 미만 응답 | DDNS / frp / Tailscale 터널 필요, 가정용 회선 업링크에 제약 | 단일 클라우드 리전에 의존, 국경 간 지연 큼 | +| **SSL & 도메인** | **자동 HTTPS** 및 커스텀 도메인 바인딩 | 수동 인증서 발급, 리버스 프록시 설정 | Nginx / Caddy 설정과 Let's Encrypt 갱신 관리 | +| **비용** | 무료 티어에서 **월 $0** | 높은 초기 하드웨어 비용 + 지속적인 전기료 | 매월/매년 청구되는 서버·대역폭 비용 | + +--- + +## 🚀 5분 만에 배포하기 + +### 방법 1: 원클릭 Cloudflare 배포 + +[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/realchendahuang/FlareMo) + +저장소를 내 GitHub 계정으로 복제하고 D1, R2, Queues, Vectorize를 자동으로 프로비저닝합니다. 최초 배포 후 `FLAREMO_PUBLIC_URL`과 시크릿을 설정하세요([docs/en/deploy.md](./docs/en/deploy.md#one-click-deploy-community-supported) 참조). 첫 시도에서 "Github API Limit Exceeded"가 표시되면 몇 분 기다렸다가 다시 시도하세요. + +### 방법 2: GitHub Action (셀프 호스팅 포크) + +포크에서 Actions의 **Deploy to Cloudflare**를 실행하면 리소스 프로비저닝, Worker 배포, 인증 시크릿 동기화가 한 번에 이루어집니다. push만으로는 배포되지 않습니다. [docs/en/github-action-deploy.md](./docs/en/github-action-deploy.md)를 참조하세요. + +### 방법 3: AI 에이전트로 배포 (권장) + +터미널 명령을 실행할 수 있는 AI 에이전트(Claude Code, Cursor Agent, Codex 등)에게 저장소와 함께 [docs/en/agent-deploy.md](./docs/en/agent-deploy.md)를 전달하세요: +> "docs/en/agent-deploy.md 문서에 따라 내 Cloudflare 계정에 FlareMo를 배포해 줘." + +--- + +### 방법 4: 3단계 수동 배포 + +#### 1. Cloudflare 리소스 생성 +```bash +pnpm exec wrangler whoami +pnpm exec wrangler d1 create flaremo +pnpm exec wrangler r2 bucket create flaremo-attachments +``` + +또는 `pnpm provision:remote`를 대신 실행하세요: 누락된 D1 / R2 / Queue / Vectorize 리소스를 생성하고 D1 `database_id`를 `wrangler.jsonc`에 대신 기록합니다. 멱등하게 동작하며 기존 리소스는 건너뜁니다. + +#### 2. 설정 및 시크릿 구성 +```bash +cp wrangler.jsonc.example wrangler.jsonc +``` +생성된 `database_id`를 채우고 `FLAREMO_PUBLIC_URL`을 프로덕션 도메인으로 설정하세요. 그다음 시크릿을 설정합니다: +```bash +pnpm exec wrangler secret put BETTER_AUTH_SECRET --config ./wrangler.jsonc +pnpm exec wrangler secret put FLAREMO_BOOTSTRAP_SECRET --config ./wrangler.jsonc +``` + +#### 3. 배포 +```bash +pnpm deploy:dry-run +pnpm deploy +``` + +(전체 `pnpm verify` 게이트는 유지관리자가 명시적으로 요청할 때만 실행됩니다.) +프로덕션 도메인의 `/setup`에 접속해 `FLAREMO_BOOTSTRAP_SECRET`을 입력하고 Owner 계정을 초기화하세요. + +상세 가이드: [배포 가이드](./docs/en/deploy.md) · [GitHub Action 배포](./docs/en/github-action-deploy.md) · [업데이트 가이드](./docs/en/update.md). + +--- + +## 🧱 아키텍처 & 기술 스택 + +```mermaid +flowchart LR + Browser["FlareMo Web UI (React 19 / PWA)"] --> Worker["Cloudflare Worker"] + Clients["Memos Clients / Scripts / MCP"] --> Worker + + Worker --> Auth["Better Auth (Session / PAT)"] + Worker --> D1["Cloudflare D1 (Memos / Relations / Settings)"] + Access["Cloudflare Access (Optional Outer Perimeter)"] -.-> Worker + Worker --> R2["Cloudflare R2 (Attachments & Exports)"] + Worker --> Assets["Workers Static Assets"] +``` + +- **런타임**: Cloudflare Workers +- **프론트엔드**: React 19, Vite, TanStack Router, Tailwind CSS 4, Radix UI +- **데이터베이스**: Cloudflare D1, Drizzle ORM +- **스토리지**: Cloudflare R2 +- **인증**: Better Auth (HttpOnly 쿠키 세션 + 폐기 가능한 `memos_pat_`) +- **AI & 검색**: Workers AI, Vectorize, SQLite FTS5 +- **플러그인**: 슬롯 기반 확장 플랫폼([표준](./docs/plugin-platform-standard.md), [가이드](./docs/en/plugins.md)); 패키지는 R2에 저장되며 샌드박스 카드는 네트워크 접근 없이 실행됩니다 + +--- + +## 🌟 Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=realchendahuang/FlareMo&type=Date)](https://star-history.com/#realchendahuang/FlareMo&Date) + +--- + +## 📄 라이선스 + +[GNU AGPL-3.0](./LICENSE) 라이선스에 따라 오픈소스로 공개됩니다. +Copyright (c) 2026 realchendahuang. diff --git a/README.md b/README.md index c4548233..b4b6396d 100644 --- a/README.md +++ b/README.md @@ -1,379 +1,219 @@ -# FlareMo +# FlareMo 🔥 -**一个免费账号就能 24 小时跑在云端的团队知识库。一个人用,是安静的私人笔记;一个团队用,是带角色权限的共享知识库。Cloudflare 原生部署,自带数据库和对象存储,私密 / 团队 / 公开三档可见性,应用层使用 Better Auth 原生登录,对外保留 Memos 兼容 API;Cloudflare Access 可以作为可选外层防线。** - -[![GitHub stars](https://img.shields.io/github/stars/realchendahuang/FlareMo?style=social)](https://github.com/realchendahuang/FlareMo) -[![license](https://img.shields.io/github/license/realchendahuang/FlareMo)](./LICENSE) -[![Powered by Cloudflare](https://img.shields.io/badge/powered%20by-Cloudflare-F38020?logo=cloudflare&logoColor=white)](https://www.cloudflare.com/) -[![Memos compatible](https://img.shields.io/badge/Memos-compatible-0466c1)](https://github.com/usememos/memos) +

+ Zero Servers · Zero Upkeep · 24/7 Global Edge Uptime · Absolute Data Ownership
+ For individuals: a quiet, focused thought capture space and second brain. For teams: a shared knowledge base with fine-grained roles. +

-[English](./README.en.md) +

+ English • + 简体中文 • + 日本語 • + Français • + Español • + 한국어 • + Русский • + العربية +

-

- FlareMo desktop timeline - FlareMo mobile timeline +

+ GitHub stars + License + Cloudflare Workers + Memos Compatible + Better Auth + Website

-截图展示的是当前已接上后端的时间线、编辑、筛选和移动端导航体验;未实现的能力(如微信输入)不会以占位入口的形式出现在界面里。 +
---- +| ☀️ Desktop · Light Theme | 🌙 Desktop · Dark Theme | 📱 Mobile · Responsive | +| :---: | :---: | :---: | +| FlareMo Desktop Light Mode | FlareMo Desktop Dark Mode | FlareMo Mobile Mode | -## 为什么做这个项目 +Actual live screenshots: seamless light/dark mode switching and full-featured mobile responsiveness. Every feature shown is wired to working backend capabilities. -Flomo 证明了「快速记录 + 安静时间线」这种轻量笔记体验是有价值的。但自部署这类系统通常意味着一台 VPS、一个 Postgres、一堆 Docker 容器、一份每周要维护的备份脚本,以及硬盘哪天坏了数据全没的风险。 +
-FlareMo 想回答另一个问题:**能不能只用一个免费 Cloudflare 账号,不买服务器、不装数据库、不写备份脚本,就拥有一个 24 小时在线、数据不会丢、可以自定义域名、还能被各种工具调用的知识库——一个人用是私人笔记,一个团队用是共享知识库?** +--- -答案是可以。Cloudflare 免费账号就能提供: +## 💡 Why FlareMo? -- **Cloudflare D1:5 GB 数据库** —— 用来存笔记、标签、关系、分享、设置。 -- **Cloudflare R2:10 GB 对象存储** —— 用来存附件、图片、导出包。 -- **Cloudflare Workers:免费请求额度,全球边缘节点** —— 代码和前端都在离你最近的地方跑。 -- **Better Auth 原生认证** —— 一次性设置用户名和密码,浏览器使用安全 cookie session,脚本和 Memos 客户端使用可撤销的 `memos_pat_` PAT;Cloudflare Access 可继续作为外层防线。 -- **Workers Static Assets** —— 前端和 API 由同一个 Worker 提供,一次部署全搞定。 +Tools like Flomo and Memos proved the immense value of low-friction memo capture and a distraction-free timeline. However, self-hosting a traditional note-taking setup typically means paying for a VPS, configuring Docker and PostgreSQL, scripting automated backups, and dreading disk or hardware failures. -整套系统跑在一个 Worker 上。你没有一个「服务器」要照看,只有一份代码和一个免费账号。 +FlareMo answers a simpler question: **Can you get a 24/7 online, resilient, globally accelerated knowledge base with zero server maintenance, using just a free Cloudflare account?** -团队协作也不需要为此升级到付费 SaaS 或多养一台服务器:同一份部署里,管理员在「团队管理」界面添加成员,笔记按「私密 / 团队可见 / 全网公开」三档可见性共享;成员被移出时,其私密数据被完整清理,团队与公开内容保留。所有数据——包括团队成员的数据——都只存在你自己的 Cloudflare 账号里。 +- **Truly Serverless**: Both code and static assets run on Cloudflare Workers edge nodes near you with millisecond latency. +- **Enterprise-grade durability out of the box**: Cloudflare D1 handles notes and metadata; Cloudflare R2 stores media attachments with multi-region replication. +- **AI-Native Second Brain**: Agent Memory hub ships a CLI and a cross-agent skill so AI agents (Claude, Cursor, Codex, ChatGPT, ZCode) can read and update your long-term preferences and memory scopes; MCP endpoints are also available. +- **Quiet for one, powerful for many**: Default is an encrypted, private single-user sanctuary. Enable team mode, and it instantly transforms into a collaborative workspace with roles and three-tier visibility. +- **Minimal, not simplistic**: The interface stays quiet and every control earns its place — nothing decorative shouting for attention, nothing useful missing. --- -## 这点免费额度到底够用多少 - -很多人对 5 GB 数据库 / 10 GB 对象存储没概念,觉得「免费」就是「不够用」。实际上对个人笔记这种写入量极低、纯文本为主的场景,免费额度是溢出的。 +## ✨ Key Features + +### 1. Instant Capture & Inspiring Review +- **Capture in milliseconds**: Card-style timeline, tags, Markdown/GFM, and previews for image and audio attachments. +- **Lightning-fast search**: SQLite FTS5 full-text indexing with query operators (`has:attachment`, `is:pinned`, `before:YYYY-MM-DD`, `after:YYYY-MM-DD`, `in:timeline|archive|trash`). +- **Semantic "Find" (Vector Search)**: Workers AI embeddings paired with Vectorize derived vector indexes for contextual recall; re-verifies permissions against D1 and seamlessly falls back to FTS5. +- **Thought activation**: Built-in **Daily Review** (on this day), **Random Walk** (wandering through tag and backlink graphs with postcard summaries), and related note recommendations. +- **Revision history**: Full version diffs and one-click historical restore. + +### 2. AI Long-term Memory (CLI + Skills) +- **Agent Memory**: Ships `flaremo` CLI and the `flaremo-memory` skill — agents record and update cross-session long-term memory (preferences, project decisions, constraints, lessons) through a shared REST base. +- **Human in the loop**: Review, verify, lock, or correct AI-recorded memories at `/memory`. +- **Open ecosystem**: CLI + Skills are the recommended path; `/memory/mcp` (Streamable HTTP MCP) and `/mcp` endpoints are available for existing MCP clients. + +### 3. Projects & Tasks +- **Group work under projects**: Organize notes and to-dos into projects, with a kanban board (drag between status columns), priorities, manual sort order, and due dates. +- **Personal by design, reversible deletion**: Tasks belong to a single owner; deleting moves them to a recycle bin until restored or automatically purged. + +### 4. Task Management & Reminders +- **Tasks live in Projects**: The `/projects` board (drag between status columns), priorities, manual sort order, and due dates make project pages the single home for scheduling work. +- **Time horizons at a glance**: The explorer home view pairs a mini month calendar with overdue/today reminders, so what's due never hides behind the board. +- **Overdue reminders**: Overdue tasks raise in-app notifications, with optional browser Web Push. + +### 5. Team Collaboration & 3-Tier Visibility +- **Role governance**: `owner`, `admin`, and `member` roles. Admins invite members via one-time activation links (members choose their own passwords; admins never handle plaintext credentials). +- **3-tier visibility**: + - 🔒 **Private**: Only author can view. + - 👥 **Team**: Shared read-only with active team members. + - 🌐 **Public**: Anonymous read-only via time-limited share links. +- **Safe offboarding**: Removing a member triggers reliable background cleanup that purges private data while preserving team and public notes. +- **Reader seats**: Grant a time-boxed read-only seat — guest readers, course cohorts, client delivery. Seats lapse automatically at their expiry (fail-closed at credential resolution, no cron needed). Manage them from the members page, or provision by email through `PUT /api/app/admin/team/reader` with a Personal Access Token (see `docs/team-mode.md`). + +### 6. Offline First & PWA Experience +- **Installable PWA**: Install to macOS, Windows, iOS, or Android home screen with native feel. +- **Reliable offline sync**: Drafts save locally instantly. Offline submissions and uploads queue up and replay automatically when connectivity is restored. +- **Live voice capture**: Access `/capture` for real-time streaming speech-to-text (ASR) transcription. + +### 7. Secure Better Auth Application Security +- **Better Auth powered**: HttpOnly, `SameSite=Lax` browser cookie sessions; revocable `memos_pat_` Personal Access Tokens for scripts, CLI, and MCP. +- **Strict Origin protection**: State-changing requests enforce exact origin whitelisting. Cloudflare Access remains available as an optional outer defensive perimeter. + +### 8. Memos Compatibility & Seamless Migration +- **Memos `/api/v1` compatibility**: Provides core Memos API endpoints (camelCase default, legacy snake_case via header) and OpenAPI schema. +- **Third-party apps ready**: Works directly with mobile clients like Moe Memos. +- **Bi-directional import & export**: One-click import from Memos / flomo with conflict strategies and full raw export bundles. -**5 GB D1 数据库:** +--- -- 一条普通笔记(含标签、时间戳、索引开销)算 2 KB,5 GB 可以存约 **250 万条笔记**。 -- 即使你每天写 100 条,也能写 **68 年**。 -- 实际上绝大多数人一辈子也写不到 5 GB 的纯文本笔记。 +### 9. Plugin System: Cards as Plugins +- **Five built-in cards**: Plain, Daily, Ticket, Postcard, plus a canvas-drawn Postmark demo. +- **Store and curation**: browse directories, one-click install (SHA-256 verified), enable/disable, reorder, set the default, hide — all in account settings. The official directory lives at [flaremo.app/plugins](https://flaremo.app/plugins/registry.json). +- **Upload your own**: admins can install a local package — it exists only on that instance and is never sent anywhere. +- **Authoring tools**: `pnpm plugin:new` scaffolds, `pnpm plugin:check` validates with the **exact rules instances enforce on install**, `pnpm plugins:build` packages. Document cards are pure JSON layouts; sandbox cards run your own HTML/CSS/JS. See the [plugin guide](./docs/en/plugins.md). +- **Safe by default**: cards run in an opaque-origin sandbox with **no network access**; community and brand packs stay off until an admin enables them. -**10 GB R2 对象存储:** +## 📊 How Generous Is Cloudflare's Free Tier? -- 一张手机压缩后约 1–2 MB,10 GB 约可存 **5000–10000 张图片**。 -- 或者约 **80 小时**的中等码率语音备忘录。 -- R2 的出口流量不收费,分享给别人看图也不会产生流量账单。 +Many assume "free" means "severely limited". For text-heavy personal knowledge bases, Cloudflare's free quota is virtually inexhaustible: -换句话说,免费额度不是一个「很快就会撞到」的天花板,而是一个「你大概率永远用不完」的容量。 +| Resource | Free Tier Quota | Equivalent Capacity | Practical Lifespan | +| :--- | :--- | :--- | :--- | +| **Cloudflare D1** | **5 GB database** | ~**2.5 Million** text memos | Writing 100 memos daily would take **68 years** to fill | +| **Cloudflare R2** | **10 GB storage** | ~**5,000–10,000** photos / **80 hours** of voice | **$0 egress fees**; public sharing won't trigger bandwidth bills | +| **Cloudflare Workers** | Generous free request limits | 300+ global edge locations | Millisecond latency worldwide without cold boots | --- -## 为什么放在 Cloudflare 上比放 NAS 更稳 - -自部署还有一个常被低估的成本:**数据的物理安全**。 - -- **NAS / 自建服务器**:数据在你自己家里的硬盘上。硬盘会坏,电源会跳,家里可能漏水、可能被盗、可能搬家时磕碰。哪怕你做 RAID,也只是延缓单盘故障,挡不住整台机器或整个房间出事。异地备份需要你另外搭一套。 -- **Cloudflare**:D1 和 R2 的数据由 Cloudflare 在企业级基础设施上持久化,自带冗余。你不用买第二块硬盘,不用写定时备份脚本,不用关心磁盘 SMART 报警。Cloudflare 不会因为你家停电而丢数据。 +## 🥊 Comparison: Cloudflare Native vs Home NAS vs Traditional VPS -这不代表你不用做导出——FlareMo 支持 Memos 格式导出包,重要数据本地留一份永远是好习惯。但日常的「会不会哪天醒来笔记全没了」这种焦虑,Cloudflare 帮你挡掉了。 - -除此之外,Cloudflare 还附带了自部署很难同时凑齐的几样东西: - -- **全球边缘网络**:你和朋友在不同国家,访问都走最近的节点。 -- **免费 HTTPS 和自定义域名**:绑个域名就行,证书自动续。 -- **不用打洞**:不用 frp、不用 Tailscale、不用公网 IP,分享链接直接发给别人就能开。 -- **零运维**:没有系统要打补丁,没有数据库要升级,没有进程要看门狗。 +| Dimension | Cloudflare Native (FlareMo) | Home NAS / Mini PC | Traditional VPS | +| :--- | :--- | :--- | :--- | +| **Data Durability** | **Enterprise multi-region replication**, zero hardware failure risk | Single drive failure or power outage can cause total data loss | Dependent on manual snapshot & backup routines | +| **Maintenance** | **Zero**: No OS patching, no Docker compose, no DB maintenance | OS updates, Docker upkeep, SMART disk alerts, router configs | Kernel upgrades, security patches, watchdog daemons | +| **Access Latency** | **Global edge CDN**, sub-100ms response anywhere | Requires DDNS / frp / Tailscale tunnels, constrained by home uplink | Dependent on single cloud region; high cross-border latency | +| **SSL & Domains** | **Automated HTTPS** & custom domain bindings | Manual certificate issuance, reverse proxy configuration | Nginx / Caddy config & Let's Encrypt renewal maintenance | +| **Financial Cost** | **$0 / month** on free tier | High upfront hardware cost + ongoing electricity | Ongoing monthly / annual server & bandwidth bills | --- -## 现在能做什么 - -- 快速记录笔记,支持标签和附件。 -- 时间线、归档、回收站。 -- D1 FTS5 全文搜索、标签筛选、活动热力图;默认搜索时间线与归档,搜索支持 `has:attachment`、`is:pinned`、`before:YYYY-MM-DD`、`after:YYYY-MM-DD` 和 `in:timeline|archive|trash`。 -- 语义搜索(「找一找」):Workers AI embedding + Vectorize 派生索引,命中后回 D1 复查权限;provider 或索引缺失时自动降级回 FTS5 关键词搜索,边界见 [docs/semantic-search.md](./docs/semantic-search.md)。 -- 每日回顾(`/review/daily` 那年今日)、随机漫步(`/review/walk` 标签/引用游走 + 明信片总结)和 memo 详情页的相关笔记。 -- 可安装的 PWA;新建笔记草稿自动保存在本机,离线提交(包括附件)进入本机待同步队列,重新联网后按顺序提交。 -- Markdown/GFM、图片与音频附件预览。 -- 记录详情、引用关系、反向链接和历史版本恢复。 -- 可撤销的公开分享链接。 -- 团队模式:`owner` / `admin` / `member` 角色与成员管理。管理员在「团队管理」界面添加成员(姓名 + 邮箱,服务端签发一次性激活链接,成员自设密码,管理员不经手也不可知晓密码)、设置或取消管理员、移出成员并触发可重试的数据清理(私密内容删除,团队与公开内容保留)。 -- 三档可见性:私密(仅作者)、团队可见(有效成员只读)、全网公开(匿名只读);Web、Memos 兼容 API、MCP、附件、搜索与 SSE 共用同一权限矩阵。 -- 支持冲突策略的 Memos 数据导入导出。 -- Memos current camelCase / protobuf-JSON 风格的 `/api/v1` memo、attachment、relation、share、social、auth facade 和 PAT 资源子集;Connect JSON/protobuf/gRPC-Web 还覆盖多用户 UserService 的 webhook CRUD/signing-secret 与 notification list/update/delete(含 comment/mention payload);旧 snake_case wire 通过显式 header 保留。 -- OpenAPI 输出。 -- MCP 端点。 -- Agent Memory:AI 长期记忆中枢,Agent 通过 `/memory/mcp` 读写跨 session 的长期记忆(偏好、决策、约束、教训),`/memory` 界面可查看、确认、锁定、纠正。 -- 中英文界面。 - -前端只保留当前已经接上能力的入口。像微信输入这类还没实现的能力,不会挂在界面里占位置。 +## 🚀 5-Minute Quick Deployment ---- +### Method 1: One-click Deploy to Cloudflare -## 部署:手动或让 Agent 替你做 +[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/realchendahuang/FlareMo) -FlareMo 的部署被刻意做得很轻。仓库不再跟踪 `wrangler.jsonc`,部署是手动操作,没有一键按钮或自动部署。两种方式,挑一种就行。 +Clones the repository into your GitHub account and provisions D1, R2, Queues, and Vectorize automatically. After the initial deploy, set `FLAREMO_PUBLIC_URL` and secrets (see [docs/en/deploy.md](./docs/en/deploy.md#one-click-deploy-community-supported)). If the first attempt reports "Github API Limit Exceeded", wait a few minutes and retry. -**方式一:让 AI Agent 替你部署** +### Method 2: GitHub Action (self-hosted fork) -仓库里带了一份 [docs/agent-deploy.md](./docs/agent-deploy.md),是写给 Codex / Claude Code / Cursor 这类 Agent 用的部署 runbook。把仓库交给一个能跑命令的 Agent,它就能复制 `wrangler.jsonc.example`、创建 D1 / R2 资源、填写 `database_id`、跑迁移、部署。你不用记命令,Agent 自己按步骤来。 +On your fork, run **Deploy to Cloudflare** from Actions to provision resources, publish the Worker, and sync auth secrets. Pushes do not publish. See [docs/en/github-action-deploy.md](./docs/en/github-action-deploy.md). -需要让 Agent、Telegram 或其他 IM 渠道直接写入笔记时,参考 [Agent 与 IM 渠道写入](./docs/agent-ingestion.md)。仓库提供一个经过测试的独立 Telegram Worker 示例,不会把渠道密钥或平台逻辑塞进 FlareMo 主 Worker。 +### Method 3: Deploy with an AI Agent (Recommended) -需要让 Agent 读写跨 session 的长期记忆(用户偏好、项目决策、约束、教训)时,参考 [Agent Memory](./docs/agent-memory.md):统一 `/memory/mcp` 端点 + 六个工具,记忆归用户所有、可随时查看和纠正。 +Give the repository to an agent capable of executing terminal commands (e.g. Claude Code, Cursor Agent, Codex) along with [docs/en/agent-deploy.md](./docs/en/agent-deploy.md): +> "Please deploy FlareMo to my Cloudflare account following docs/en/agent-deploy.md." -**方式二:手动部署**(想自己一步步来的话)先创建资源: +--- + +### Method 4: Manual 3-Step Deployment +#### 1. Create Cloudflare Resources ```bash +pnpm exec wrangler whoami pnpm exec wrangler d1 create flaremo pnpm exec wrangler r2 bucket create flaremo-attachments ``` -把 `wrangler.jsonc.example` 复制为 `wrangler.jsonc`(仓库不跟踪 `wrangler.jsonc` 本身),填入 D1 输出的 `database_id`,并把 `FLAREMO_PUBLIC_URL` 设为你的公开访问域名,再执行: +Or run `pnpm provision:remote` instead: it creates the missing D1 / R2 / Queue / Vectorize resources and writes the D1 `database_id` into `wrangler.jsonc` for you. It is idempotent — existing resources are skipped. +#### 2. Configure Settings & Secrets ```bash -pnpm verify -pnpm deploy:dry-run -pnpm deploy +cp wrangler.jsonc.example wrangler.jsonc ``` - -完整部署说明见 [docs/deploy.md](./docs/deploy.md),版本更新见 [docs/update.md](./docs/update.md)。 - -**部署前检查清单** - -- Wrangler 已登录目标 Cloudflare 账号:`pnpm exec wrangler whoami`。 -- `wrangler.jsonc` 里的 D1 binding 是 `DB`,并已填入目标 D1 的 `database_id`。 -- `wrangler.jsonc` 里的 R2 binding 是 `ATTACHMENTS`,目标 bucket 已创建。 -- `pnpm deploy` 会先应用尚未执行的远端 D1 migrations,再发布 Worker。 -- `wrangler.jsonc` 已设置生产 `FLAREMO_PUBLIC_URL`,并通过 Wrangler secret 配置 Better Auth secrets。 -- 已完成一次性 owner bootstrap、原生登录和 PAT 创建验证;如果启用 Cloudflare Access,也已验证外层 policy 与应用层认证同时通过。 -- Cloudflare Access application(可选)已规划好人类访问、Service Token 和公开分享 bypass。 -- 发布前已跑:`pnpm verify` 和 `pnpm deploy:dry-run`。 - ---- - -## 登录:Better Auth 原生认证,Access 可选 - -FlareMo 的应用层认证由 Better Auth 提供。第一次部署时由部署者在生产 HTTPS 的 `/setup` 页面手动输入一次性 bootstrap secret、显示名、邮箱和密码,创建唯一初始 owner;成功后公共 signup 默认关闭。团队协作的主路径是管理员在「团队管理」界面添加成员:服务端签发一次性激活链接,成员自行设置密码;`owner` 也可以在后台开启开放注册(兼容路径,默认关闭),开启后任何人都能通过 `/register` 页或 Memos 兼容客户端的 `signup` 创建普通成员账户。`FLAREMO_SINGLE_USER_EMAIL` 和 `FLAREMO_SINGLE_USER_NAME` 只是既有 `users/owner` domain metadata 的 legacy 变量,不是登录凭据或 bootstrap 输入。团队角色、可见性权限和成员移除语义见 [docs/team-mode.md](./docs/team-mode.md)。 - -- Web 端使用**邮箱 + 密码**登录(`/login`);注册、管理员建号、初始化都以邮箱为登录凭证。Memos 兼容客户端仍使用**用户名 + 密码**登录——用户名由邮箱自动生成(可复制、可在账户页修改),协议上无法用邮箱登录。 - -- 浏览器登录后使用 `HttpOnly`、`SameSite=Lax` cookie session。 -- 脚本、Memos-compatible 客户端和 MCP 使用账户创建的 `memos_pat_` Personal Access Token。 -- PAT 只在创建响应中显示一次,可以列出元数据并撤销;PAT 不能进入账户管理接口。 -- cookie session 的 `POST`、`PATCH`、`DELETE` 等状态变更必须带 `Origin`,并精确匹配 `FLAREMO_PUBLIC_URL` 或 `FLAREMO_TRUSTED_ORIGINS`,否则返回 `403`;PAT 请求可以无 Origin,但如果携带 Origin 也必须匹配同一 allowlist,否则返回 `403`。不使用 wildcard、`Referer` 或 Access headers 替代 Origin。 -- Cloudflare Access 是可选外层。启用时,Access Service Token 只通过外层 policy,仍必须同时提供 Better Auth cookie 或 PAT。 -- 当前没有邮件 provider,因此不依赖邮件验证或邮件找回密码。成员忘记密码时,owner 在后台生成一次性重置链接(`/reset` 页自行设密,管理员不接触明文);owner 自己忘记密码时,用部署时配置的 `FLAREMO_RECOVERY_SECRET` 走 `/recover` 页面恢复。已知当前密码时也可在账户页修改。 -- 公开分享仍使用 FlareMo share token、过期时间和 memo 状态校验,不把公开分享混入私有登录。 - -生产部署前在 `wrangler.jsonc` 填入不带 path/query/hash 的 `FLAREMO_PUBLIC_URL`,并交互式配置 secrets: - +Fill in the generated `database_id` and set `FLAREMO_PUBLIC_URL` to your production domain. Then set secrets: ```bash pnpm exec wrangler secret put BETTER_AUTH_SECRET --config ./wrangler.jsonc pnpm exec wrangler secret put FLAREMO_BOOTSTRAP_SECRET --config ./wrangler.jsonc ``` -不要把真实 secret、初始密码、cookie 或 PAT 写进 `wrangler.jsonc`、文档、Git、日志或聊天。完整 setup、Access 迁移和恢复说明见 [部署文档](./docs/deploy.md)。 - -原生 PAT 访问示例(`FLAREMO_MEMOS_PAT` 只应来自本地安全配置): - -```bash -curl "$FLAREMO_URL/api/v1/memos" \ - -H "Authorization: Bearer $FLAREMO_MEMOS_PAT" -``` - -如果生产仍启用 Access,再附加 Access headers;仅有 Access Service Token 不足以访问私有业务数据: - +#### 3. Deploy ```bash -curl "$FLAREMO_URL/api/v1/memos" \ - -H "CF-Access-Client-Id: $FLAREMO_ACCESS_CLIENT_ID" \ - -H "CF-Access-Client-Secret: $FLAREMO_ACCESS_CLIENT_SECRET" \ - -H "Authorization: Bearer $FLAREMO_MEMOS_PAT" -``` - -旧版 MCP 访问示例(保留给已有 FlareMo 客户端): - -```bash -curl "$FLAREMO_URL/api/v1/mcp" \ - -H "content-type: application/json" \ - -H "CF-Access-Client-Id: $FLAREMO_ACCESS_CLIENT_ID" \ - -H "CF-Access-Client-Secret: $FLAREMO_ACCESS_CLIENT_SECRET" \ - -H "Authorization: Bearer $FLAREMO_MEMOS_PAT" \ - --data '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' -``` - -current Memos 风格的无状态 Streamable HTTP MCP 使用根路径 `/mcp`,支持 `initialize`、`notifications/initialized`、`tools/list` 和 `tools/call`。它仍是 FlareMo 的工具子集,不承诺 SSE、有状态 MCP session 或完整 Memos MCP method surface: - -```bash -curl "$FLAREMO_URL/mcp" \ - -H "content-type: application/json" \ - -H "accept: application/json, text/event-stream" \ - -H "Authorization: Bearer $FLAREMO_MEMOS_PAT" \ - --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26"}}' +pnpm deploy:dry-run +pnpm deploy ``` -建议只 bypass 的公开路径(如果启用 Access): - -- `/share/*` -- `/api/public/shares/*` -- `/assets/*` +(The full `pnpm verify` gate runs only when the maintainer explicitly asks for it.) +Visit your production domain at `/setup` and enter the `FLAREMO_BOOTSTRAP_SECRET` to initialize your Owner account. -分享内容仍由 FlareMo 的 share token、过期时间和 memo 状态校验。当前 `/api/v1` 默认是 current camelCase wire,`/mcp` 是无状态 Streamable HTTP MCP 子集;旧 snake_case API 可通过 `X-FlareMo-Wire: legacy` 或 legacy vendor `Accept` 显式选择。Better Auth-backed auth facade 和 PAT 资源已提供,但 `accessToken` 是 opaque session-backed token,不是 Memos 原生 JWT。当前已有 memo/social 的有限子集,以及 UserService webhook CRUD/signing-secret、notification list/update/delete、comment/mention notification payload 和四类 memo 事件的有界异步 webhook outbox 投递/重试;完整 Memos Server parity、完整 CEL/Connect/SSE、comments/reactions/shortcuts 的完整上游 service/wire parity、完整多用户 notification ACL、webhook 的完整上游事件语义/egress SSRF 防护,以及第三方客户端逐一实测仍未完成,详见 [兼容矩阵](./docs/memos-compatibility.md) 和 [生态实测矩阵](./docs/memos-ecosystem.md)。 +Detailed guides: [Deployment Guide](./docs/en/deploy.md) · [GitHub Action deploy](./docs/en/github-action-deploy.md) · [Update Guide](./docs/en/update.md). --- -## 技术栈 - -- Runtime: Cloudflare Workers -- Web: React, Vite, Tailwind CSS, shadcn/radix primitives -- API: Hono-style Worker routes, Zod contracts, OpenAPI -- Database: Cloudflare D1, Drizzle -- Object storage: Cloudflare R2 -- Auth boundary: Better Auth; optional Cloudflare Access outer layer -- Package manager: pnpm - -D1 是笔记、用户、标签、分享、关系等业务数据的事实源。R2 只放附件、导出包和对象文件。KV、Vectorize、Workers AI、Queues/Cron 只有在对应功能真的进入实现时才接入,不拿来替代 D1。 - -## 架构 +## 🧱 Architecture & Tech Stack ```mermaid flowchart LR - Browser["FlareMo Web UI"] --> Worker["Cloudflare Worker"] - Clients["Memos-compatible clients / scripts / MCP"] --> Worker + Browser["FlareMo Web UI (React 19 / PWA)"] --> Worker["Cloudflare Worker"] + Clients["Memos Clients / Scripts / MCP"] --> Worker - Worker --> Auth["Better Auth: sessions, accounts, PATs"] - Worker --> D1["D1: memos, users, relations, shares, settings"] - Access["Cloudflare Access (optional)"] -. outer policy .-> Worker - Worker --> R2["R2: attachments and exports"] + Worker --> Auth["Better Auth (Session / PAT)"] + Worker --> D1["Cloudflare D1 (Memos / Relations / Settings)"] + Access["Cloudflare Access (Optional Outer Perimeter)"] -.-> Worker + Worker --> R2["Cloudflare R2 (Attachments & Exports)"] Worker --> Assets["Workers Static Assets"] ``` -一个 Worker 同时服务 API 和前端静态资源。D1 保存权威数据,R2 保存附件。Memos 兼容层是 adapter,不是把原版 Memos 服务端搬到 Workers 上跑。 - ---- - -## 定位:AI native 的个人知识管理 - -FlareMo 要做的是 **AI native 的个人知识管理**——一个人用是安静的私人笔记,一个团队用是共享的知识库,并且把语义检索、AI 记忆、Agent 读写这些能力做成产品的原生部分。它和 Memos 的目标不一样,所以**不以「完全兼容」为目标**。 - -Memos 是 FlareMo 选定的生态底座,不是要复刻的对象: - -- **能复用的就复用**:领域模型、资源命名、`/api/v1` 协议、OpenAPI、导入导出和 MCP 方向,以及围绕它们生长的第三方客户端与脚本生态。 -- **上游没有的,自己扩展**:Agent Memory、语义检索与「找一找」、项目与任务、音频文稿阅读等,都是 FlareMo 原生能力,不受上游形态约束。 -- **上游有的,也按需兼容**:只在我们需要、且语义说得通的时候接。`AIService.Transcribe` 这类上游接口在 FlareMo 明确返回 `501`,因为 AI 能力是 FlareMo 自己的赛道。 - -**未来与上游分叉是预期结果,不是意外。** 兼容是「借一个成熟底座、少走弯路」的手段,不是产品目标本身;FlareMo 的方向由自己的需求定义。 - -兼容面有一条工程纪律:`/api/v1/*` 的**既有字段与语义是第三方客户端的契约**,只做加法、不改形状——新增能力优先落在 FlareMo 原生面 `/api/app/*`,或写入可自由扩展的 memo payload。这样既能持续复用 Memos 生态,也不妨碍 FlareMo 往前长。详见 [docs/architecture-notes.md](./docs/architecture-notes.md) 的兼容策略章节。 - ---- - -## Memos 兼容面 - -FlareMo 保留 Memos 风格的核心实体,目标是复用 Memos 的客户端、脚本、导入导出和周边工具,而不是把原版 Memos 的 Go server 搬过来。 - -保留实体:`users/{id}`、`memos/{id}`、`attachments/{id}`、memo payload / property、relations、shares、settings。 - -当前公开 API 子集: - -- `POST /api/v1/memos` -- `GET /api/v1/memos` -- `GET /api/v1/{name=memos/*}` -- `PATCH /api/v1/{memo.name=memos/*}` -- `DELETE /api/v1/{name=memos/*}` -- `GET /api/v1/{name=memos/*}/attachments` -- `PATCH /api/v1/{name=memos/*}/attachments` -- `GET /api/v1/{name=memos/*}/relations` -- `PATCH /api/v1/{name=memos/*}/relations` -- `GET /api/v1/memos/{id}/relation-context` -- `GET /api/v1/memos/{id}/context` -- `GET /api/v1/memos/{id}/revisions` -- `POST /api/v1/memos/{id}/revisions/restore` -- `GET /api/v1/{parent=memos/*}/shares` -- `POST /api/v1/{parent=memos/*}/shares` -- `GET /api/v1/shares/{share_id}` -- `DELETE /api/v1/shares/{share_id}` -- `POST /api/v1/attachments` -- `GET /api/v1/attachments` -- `GET /api/v1/{name=attachments/*}` -- `GET /api/v1/{name=attachments/*}/blob` -- `DELETE /api/v1/{name=attachments/*}` -- `GET /api/v1/export` -- `POST /api/v1/import` -- `GET /openapi.json` -- `POST /api/v1/mcp` - -内部服务不复制原版 Memos 的多数据库抽象、本地文件假设、后台 runner、SSE、完整社交功能和实例管理后台。Memos 兼容范围见 [docs/memos-compatibility.md](./docs/memos-compatibility.md),第三方客户端和工具的实测矩阵见 [docs/memos-ecosystem.md](./docs/memos-ecosystem.md)。 +- **Runtime**: Cloudflare Workers +- **Frontend**: React 19, Vite, TanStack Router, Tailwind CSS 4, Radix UI +- **Database**: Cloudflare D1, Drizzle ORM +- **Storage**: Cloudflare R2 +- **Auth**: Better Auth (HttpOnly cookie session + revocable `memos_pat_`) +- **AI & Search**: Workers AI, Vectorize, SQLite FTS5 +- **Plugins**: slot-based extension platform ([standard](./docs/plugin-platform-standard.md), [guide](./docs/en/plugins.md)); packages live in R2, sandboxed cards run without network access --- -## 本地运行 - -```bash -pnpm install -pnpm migrate:local -pnpm dev -``` - -本地默认地址:`http://localhost:8787` - -`pnpm dev` 会先构建前端,再用 Wrangler 启动 Worker,本地 D1/R2 使用 Wrangler 的本地模拟。 - ---- - -## 项目状态 - -FlareMo 当前已经具备: - -- 可部署的 Cloudflare Worker + Workers Static Assets 一体应用。 -- D1 + Drizzle schema 和 migrations。 -- R2 附件。 -- Memos 兼容 API 子集、导入导出、OpenAPI 和 MCP。 -- Flomo 风格的快速记录和时间线 UI。 -- Better Auth 原生 cookie session、一次性 owner bootstrap 和可撤销 `memos_pat_` PAT。 -- 团队模式:owner/admin/member 角色、团队管理界面、三档可见性权限矩阵和可重试的成员移除清理。 -- Cloudflare Access 可选外层防线,以及公开分享 bypass 的边界说明。 -- Agent 部署 runbook、发版规则、兼容矩阵和开源协作文件。 - -后续方向见 [ROADMAP.md](./ROADMAP.md)。语义搜索的实现边界见 [docs/semantic-search.md](./docs/semantic-search.md)。 - -## 工程化 - -仓库带一个瘦 CI(format / lint / typecheck / 单元测试,约 3 分钟)作为兕底与外部 PR 门禁。发布前由维护者在本地执行完整门禁: - -```bash -pnpm verify -pnpm deploy:dry-run -``` - -自部署仓库自带一个最小权限的更新 workflow(`flaremo-update.yml`)。它只同步正式 Release 并创建升级 PR;合并后由该仓库连接的 Cloudflare Workers Builds 负责部署,不需要 Cloudflare API Token。配置方式见 [docs/update.md](./docs/update.md)。 - -常用维护命令: - -```bash -pnpm format:check -pnpm persistence:check -pnpm screenshots -pnpm backup:drill -pnpm release vX.Y.Z -``` - -`pnpm verify` 会先校验 D1 持久化清单完整性,再跑类型检查、Vitest、生产构建和 Playwright E2E。Memos 兼容面有独立的 Worker contract test,覆盖 DTO shape、附件导入导出和 OpenAPI 路径。截图由 `pnpm screenshots` 从本地 Worker 实例生成,README 里的图片不是设计稿。 - -发版规则见 [docs/release.md](./docs/release.md)。维护手册见 [docs/maintenance.md](./docs/maintenance.md)。贡献说明见 [CONTRIBUTING.md](./CONTRIBUTING.md)。支持入口见 [SUPPORT.md](./SUPPORT.md)。安全策略见 [SECURITY.md](./SECURITY.md)。社区行为准则见 [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)。 - ---- - -## 参考项目 - -- [usememos/memos](https://github.com/usememos/memos):数据模型、资源命名和兼容 API 参考。 -- [blinkospace/blinko](https://github.com/blinkospace/blinko):搜索、附件和编辑体验参考。 -- [XuYouo/MeowNocode](https://github.com/XuYouo/MeowNocode):Cloudflare D1 轻量应用参考。 - -## Star - -喜欢这个项目,可以点个 Star,方便跟进更新。 +## 🌟 Star History [![Star History Chart](https://api.star-history.com/svg?repos=realchendahuang/FlareMo&type=Date)](https://star-history.com/#realchendahuang/FlareMo&Date) -## License - -FlareMo 以 [GNU AGPL-3.0](./LICENSE)(AGPL-3.0-only)授权开源。 - -- 自部署、修改和再分发按 AGPL-3.0 条款执行;以网络服务形式提供修改版本时,需要向该服务的使用者公开对应源码。 -- Copyright (c) 2026 realchendahuang。版权持有者可以在 AGPL-3.0 之外,为 FlareMo 托管服务使用双许可。 -- "FlareMo" 名称与标识不属于 AGPL-3.0 授权范围;fork 与衍生项目不得使用 FlareMo 品牌进行推广或暗示官方背书。 +--- -### 主动语音记录(Capture) +## 📄 License -登录后进入 `/capture`,点击开始,在前台实时识别语音;停止后编辑文字并保存为普通记录,默认仅自己可见并带 `voice` 标签。支持腾讯云或 DashScope 实时 ASR;未配置时不显示导航入口。不保存原始音频,不承诺后台或锁屏录音。配置和真机验收见 [Voice Capture](docs/voice-capture.md)。 +Open-sourced under the [GNU AGPL-3.0](./LICENSE) license. +Copyright (c) 2026 realchendahuang. diff --git a/README.ru.md b/README.ru.md new file mode 100644 index 00000000..a6d85a97 --- /dev/null +++ b/README.ru.md @@ -0,0 +1,219 @@ +# FlareMo 🔥 + +

+ Ноль серверов · Ноль затрат на обслуживание · Глобальная доступность 24/7 · Полный контроль над данными
+ Для личного использования — тихое пространство заметок и второй мозг с ИИ; для команд — общая база знаний с гибким разграничением прав. +

+ +

+ English • + 简体中文 • + 日本語 • + Français • + Español • + 한국어 • + Русский • + العربية +

+ +

+ GitHub stars + License + Cloudflare Workers + Memos Compatible + Better Auth + Website +

+ +
+ +| ☀️ Десктоп · Светлая тема | 🌙 Десктоп · Тёмная тема | 📱 Мобильный интерфейс | +| :---: | :---: | :---: | +| Интерфейс FlareMo в светлой теме | Интерфейс FlareMo в тёмной теме | Мобильный интерфейс FlareMo | + +Реальные снимки работающего приложения: плавное переключение тем и полная мобильная адаптивность. Все отображаемые функции полностью подключены к бэкенду. + +
+ +--- + +## 💡 Почему FlareMo? + +Сервисы вроде Flomo и Memos доказали ценность быстрой фиксации мыслей и ленты заметок без отвлекающих факторов. Однако самостоятельный хостинг таких решений обычно требует аренды VPS, настройки Docker и PostgreSQL, написания скриптов бэкапа и постоянного страха перед поломкой жесткого диска. + +FlareMo отвечает на более простой вопрос: **Можно ли получить отказоустойчивую, глобально ускоренную базу знаний, доступную 24/7 без обслуживания серверов, используя лишь бесплатный аккаунт Cloudflare?** + +- **Истинный Serverless**: И код, и статические ресурсы исполняются на пограничных узлах Cloudflare Workers рядом с вами, с откликом в считанные миллисекунды. +- **Корпоративная надежность из коробки**: Cloudflare D1 хранит заметки и метаданные, а Cloudflare R2 с мультирегиональной репликацией надежно держит медиавложения. +- **AI-Native второй мозг**: хаб «Agent Memory» поставляется с CLI и кросс-агентным скиллом, позволяя ИИ-агентам (Claude, Cursor, Codex, ChatGPT, ZCode) читать и обновлять ваши долгосрочные предпочтения и области памяти; эндпоинты MCP также доступны. +- **Тихо для одного, мощно для многих**: По умолчанию это зашифрованное приватное пространство для одного пользователя. Включите командный режим — и оно мгновенно превращается в совместное рабочее пространство с ролями и тремя уровнями видимости. +- **Минимализм, не примитивизм**: Интерфейс остается тихим, и каждый элемент управления заслуживает своего места — ничего кричащего и лишнего, ничего полезного и недостающего. + +--- + +## ✨ Ключевые возможности + +### 1. Мгновенная фиксация и вдохновляющие обзоры +- **Запись за миллисекунды**: Хронологическая лента в виде карточек, теги, Markdown/GFM, предпросмотр изображений и аудиовложений. +- **Молниеносный поиск**: Полнотекстовая индексация SQLite FTS5 с операторами запросов (`has:attachment`, `is:pinned`, `before:YYYY-MM-DD`, `after:YYYY-MM-DD`, `in:timeline|archive|trash`). +- **Семантический «Поиск» (векторный)**: Эмбеддинги Workers AI в паре с производными векторными индексами Vectorize для поиска по смыслу; права повторно проверяются по D1, а при необходимости поиск бесшовно откатывается к FTS5. +- **Активация мыслей**: Встроенные **Ежедневный обзор** («В этот день»), **Случайная прогулка** (странствие по графу тегов и обратных ссылок со сводками-открытками) и рекомендации похожих заметок. +- **История версий**: Наглядное сравнение изменений и восстановление любой ревизии в один клик. + +### 2. Долгосрочная память ИИ (CLI + Skills) +- **Agent Memory**: Поставляются CLI `flaremo` и скилл `flaremo-memory` — ИИ-агенты записывают и обновляют долговременную память между сессиями (предпочтения, проектные решения, ограничения, уроки) через общую REST-основу. +- **Контроль человеком**: На странице `/memory` вы можете просматривать, подтверждать, закреплять или исправлять записанные ИИ воспоминания. +- **Открытая экосистема**: Рекомендуемый путь — CLI + Skills; эндпоинты `/memory/mcp` (Streamable HTTP MCP) и `/mcp` остаются доступными для существующих MCP-клиентов. + +### 3. Проекты и задачи +- **Группируйте работу по проектам**: Заметки и дела собираются в проекты: канбан-доска (перетаскивание между колонками статусов), приоритеты, ручной порядок сортировки и сроки. +- **Лично по умолчанию, удаление обратимо**: Задачи принадлежат одному владельцу; удаление мягкое — записи попадают в корзину до восстановления или автоматической очистки. + +### 4. Управление задачами и напоминания +- **Задачи живут в проектах**: Доска `/projects` (перетаскивание между колонками статусов), приоритеты, ручной порядок сортировки и сроки делают страницы проектов единым домом для планирования работы. +- **Горизонты времени одним взглядом**: Главный экран обозревателя сочетает мини-календарь на месяц с напоминаниями о просроченных и сегодняшних задачах — сроки больше не прячутся за доской. +- **Напоминания о просрочке**: Просроченные задачи порождают уведомления в приложении, с опциональными браузерными Web Push-уведомлениями. + +### 5. Командная работа и 3 уровня видимости +- **Ролевое управление**: Роли `owner`, `admin` и `member`. Администраторы приглашают участников через одноразовые ссылки активации (участники сами задают пароли; администраторы никогда не видят учетные данные в открытом виде). +- **3 уровня видимости**: + - 🔒 **Приватно**: Видно только автору. + - 👥 **Команда**: Общий доступ только для чтения активным участникам команды. + - 🌐 **Публично**: Анонимный доступ только для чтения по временным ссылкам. +- **Безопасное удаление участника**: При удалении пользователя запускается надежная фоновая очистка: личные данные физически удаляются, а командные и публичные заметки сохраняются. +- **Места читателей**: Выдайте место с ограниченным сроком и доступом только для чтения — гостевые читатели, слушатели курсов, сдача проекта клиентам. По истечении срока доступ закрывается автоматически (fail-closed при разборе учетных данных, без cron). Управляйте местами на странице участников или выдавайте их по email через `PUT /api/app/admin/team/reader` с персональным токеном доступа (см. `docs/team-mode.md`). + +### 6. Офлайн-первым и возможности PWA +- **Устанавливаемое PWA**: Установка на macOS, Windows, iOS или Android с ощущением нативного приложения. +- **Надежная офлайн-синхронизация**: Черновики мгновенно сохраняются локально. Созданные офлайн заметки и загрузки встают в очередь и автоматически повторяются при восстановлении связи. +- **Живой голосовой ввод**: Страница `/capture` с потоковым распознаванием речи в текст (ASR) в реальном времени. + +### 7. Безопасность приложения на базе Better Auth +- **На движке Better Auth**: Cookie-сессии браузера с `HttpOnly` и `SameSite=Lax`; отзываемые персональные токены доступа `memos_pat_` для скриптов, CLI и MCP. +- **Строгая защита Origin**: Все изменяющие состояние запросы требуют точного совпадения с белым списком origin. Cloudflare Access остается доступным как опциональный внешний периметр обороны. + +### 8. Совместимость с Memos и бесшовная миграция +- **Совместимость с Memos `/api/v1`**: Поддержка ключевых эндпоинтов Memos API (по умолчанию camelCase, legacy snake_case через заголовок) и OpenAPI-схемы. +- **Готовность к сторонним приложениям**: Прямая работа с мобильными клиентами вроде Moe Memos. +- **Двусторонний импорт и экспорт**: Импорт из Memos / flomo в один клик со стратегиями разрешения конфликтов и полными экспортными пакетами исходных данных. + +--- + +### 9. Система плагинов: карточки как плагины +- **Пять встроенных карточек**: Простая, Дневная, Билет, Открытка и демонстрационный Штемпель, нарисованный на canvas. +- **Магазин и курирование**: просмотр каталогов, установка в один клик (с проверкой SHA-256), включение/выключение, изменение порядка, карточка по умолчанию, скрытие — всё в настройках аккаунта. Официальный каталог: [flaremo.app/plugins](https://flaremo.app/plugins/registry.json). +- **Свои пакеты**: администратор может установить локальный пакет — он существует только в этом инстансе и никуда не отправляется. +- **Инструменты автора**: `pnpm plugin:new` создает каркас, `pnpm plugin:check` проверяет по **тем же правилам, которые инстансы применяют при установке**, `pnpm plugins:build` собирает пакет. Document-карточки — чистый JSON-макет; sandbox-карточки исполняют ваш собственный HTML/CSS/JS. Подробнее: [руководство по плагинам](./docs/en/plugins.md). +- **Безопасно по умолчанию**: карточки работают в песочнице с непрозрачным origin и **без доступа к сети**; пакеты сообщества и брендов выключены, пока администратор их не включит. + +## 📊 Насколько щедр бесплатный тариф Cloudflare? + +Многие считают, что «бесплатно» означает «урезано до предела». Для текстовых персональных баз знаний бесплатные квоты Cloudflare практически неисчерпаемы: + +| Ресурс | Бесплатная квота | Эквивалентный объем | Срок реального использования | +| :--- | :--- | :--- | :--- | +| **Cloudflare D1** | **База данных 5 ГБ** | Около **2,5 млн** текстовых заметок | При 100 заметках в день заполнится лишь через **68 лет** | +| **Cloudflare R2** | **Хранилище 10 ГБ** | Около **5 000–10 000 фото** / **80 ч** голосовых записей | **$0 за исходящий трафик**; публичный шеринг не приведет к счетам за трафик | +| **Cloudflare Workers** | Щедрые лимиты бесплатных запросов | 300+ пограничных точек по всему миру | Миллисекундный отклик в любой точке мира без холодных стартов | + +--- + +## 🥊 Сравнение: Cloudflare Native против домашнего NAS и классического VPS + +| Критерий | Cloudflare Native (FlareMo) | Домашний NAS / мини-ПК | Классический VPS | +| :--- | :--- | :--- | :--- | +| **Сохранность данных** | **Корпоративная мультирегиональная репликация**, нулевой риск потери из-за железа | Отказ одного диска или отключение питания могут уничтожить все данные | Зависит от ручных снапшотов и процедур бэкапа | +| **Обслуживание** | **Нулевое**: без патчей ОС, без Docker compose, без обслуживания БД | Обновления ОС, уход за Docker, SMART-алерты дисков, настройка роутера | Обновления ядра, патчи безопасности, watchdog-демоны | +| **Задержка доступа** | **Глобальный пограничный CDN**, отклик меньше 100 мс откуда угодно | Нужны DDNS / frp / туннели Tailscale, ограничено домашним аплинком | Привязка к одному региону облака; высокая межграничная задержка | +| **SSL и домены** | **Автоматический HTTPS** и привязка собственных доменов | Ручная выдача сертификатов, настройка обратного прокси | Настройка Nginx / Caddy и продление Let's Encrypt | +| **Финансовые затраты** | **$0 / месяц** на бесплатном тарифе | Высокие разовые затраты на железо + электричество | Постоянные ежемесячные или годовые счета за сервер и трафик | + +--- + +## 🚀 Быстрое развертывание за 5 минут + +### Способ 1: Развертывание в один клик + +[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/realchendahuang/FlareMo) + +Клонирует репозиторий в ваш аккаунт GitHub и автоматически создает D1, R2, Queues и Vectorize. После первоначального развертывания задайте `FLAREMO_PUBLIC_URL` и секреты (см. [docs/en/deploy.md](./docs/en/deploy.md#one-click-deploy-community-supported)). Если первая попытка сообщает «Github API Limit Exceeded», подождите несколько минут и повторите. + +### Способ 2: GitHub Action (собственный форк) + +В своем форке запустите **Deploy to Cloudflare** во вкладке Actions, чтобы создать ресурсы, опубликовать Worker и синхронизировать секреты аутентификации. Обычные push ничего не публикуют. См. [docs/en/github-action-deploy.md](./docs/en/github-action-deploy.md). + +### Способ 3: Развертывание с ИИ-агентом (Рекомендуется) + +Передайте репозиторий агенту, умеющему выполнять команды в терминале (например, Claude Code, Cursor Agent, Codex), вместе с [docs/en/agent-deploy.md](./docs/en/agent-deploy.md): +> «Пожалуйста, разверните FlareMo в моем аккаунте Cloudflare согласно docs/en/agent-deploy.md». + +--- + +### Способ 4: Ручное развертывание в 3 шага + +#### 1. Создание ресурсов Cloudflare +```bash +pnpm exec wrangler whoami +pnpm exec wrangler d1 create flaremo +pnpm exec wrangler r2 bucket create flaremo-attachments +``` + +Или запустите вместо этого `pnpm provision:remote`: он создаст недостающие ресурсы D1 / R2 / Queue / Vectorize и сам впишет `database_id` D1 в `wrangler.jsonc`. Операция идемпотентна — существующие ресурсы пропускаются. + +#### 2. Настройка конфигурации и секретов +```bash +cp wrangler.jsonc.example wrangler.jsonc +``` +Укажите сгенерированный `database_id` и задайте `FLAREMO_PUBLIC_URL` равным вашему продакшен-домену. Затем установите секреты: +```bash +pnpm exec wrangler secret put BETTER_AUTH_SECRET --config ./wrangler.jsonc +pnpm exec wrangler secret put FLAREMO_BOOTSTRAP_SECRET --config ./wrangler.jsonc +``` + +#### 3. Публикация +```bash +pnpm deploy:dry-run +pnpm deploy +``` + +(Полный гейт `pnpm verify` выполняется только по явному запросу мейнтейнера.) +Откройте `/setup` на вашем продакшен-домене и введите `FLAREMO_BOOTSTRAP_SECRET`, чтобы инициализировать учетную запись владельца. + +Подробные руководства: [Руководство по развертыванию](./docs/en/deploy.md) · [Развертывание через GitHub Action](./docs/en/github-action-deploy.md) · [Руководство по обновлению](./docs/en/update.md). + +--- + +## 🧱 Архитектура и технологический стек + +```mermaid +flowchart LR + Browser["FlareMo Web UI (React 19 / PWA)"] --> Worker["Cloudflare Worker"] + Clients["Memos Clients / Scripts / MCP"] --> Worker + + Worker --> Auth["Better Auth (Session / PAT)"] + Worker --> D1["Cloudflare D1 (Memos / Relations / Settings)"] + Access["Cloudflare Access (Optional Outer Perimeter)"] -.-> Worker + Worker --> R2["Cloudflare R2 (Attachments & Exports)"] + Worker --> Assets["Workers Static Assets"] +``` + +- **Рантайм**: Cloudflare Workers +- **Фронтенд**: React 19, Vite, TanStack Router, Tailwind CSS 4, Radix UI +- **База данных**: Cloudflare D1, Drizzle ORM +- **Хранилище**: Cloudflare R2 +- **Аутентификация**: Better Auth (cookie-сессия HttpOnly + отзываемый `memos_pat_`) +- **ИИ и поиск**: Workers AI, Vectorize, SQLite FTS5 +- **Плагины**: расширяемая платформа на основе слотов ([стандарт](./docs/plugin-platform-standard.md), [руководство](./docs/en/plugins.md)); пакеты хранятся в R2, карточки в песочнице работают без доступа к сети + +--- + +## 🌟 Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=realchendahuang/FlareMo&type=Date)](https://star-history.com/#realchendahuang/FlareMo&Date) + +--- + +## 📄 Лицензия + +Проект распространяется по лицензии [GNU AGPL-3.0](./LICENSE). +Copyright (c) 2026 realchendahuang. diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 00000000..15960876 --- /dev/null +++ b/README.zh-CN.md @@ -0,0 +1,225 @@ +# FlareMo 🔥 + +

+ 0 服务器 · 0 维护成本 · 24 小时全球边缘在线 · 数据绝对自主掌控
+ 一个人用,是安静专注的私人灵感速记与第二大脑;一个团队用,是具备多级权限的共享知识库。 +

+ +

+ English • + 简体中文 • + 日本語 • + Français • + Español • + 한국어 • + Русский • + العربية +

+ +

+ GitHub stars + License + Cloudflare Workers + Memos Compatible + Better Auth + Website +

+ +
+ +| ☀️ 桌面端 · 浅色明亮 | 🌙 桌面端 · 深色沉浸 | 📱 移动端 · 极简随行 | +| :---: | :---: | :---: | +| FlareMo 桌面端浅色界面 | FlareMo 桌面端深色界面 | FlareMo 移动端界面 | + +真实运行界面:支持深浅主题无缝切换与全功能移动端自适应。所有展示功能均已稳定接入后端,不放未实现的占位按钮。 + +
+ +--- + +## 💡 为什么选择 FlareMo + +Flomo 和 Memos 证明了「快速捕捉 + 流式时间线」这种无压力记录体验的巨大价值。但自部署传统的笔记系统通常意味着:你需要一台按月付费的 VPS、安装并配置 Docker / Postgres、编写定时备份脚本,还要时刻提防硬盘损坏或硬件故障导致的数据损失。 + +FlareMo 回答了一个更简单的问题:**仅凭一个免费的 Cloudflare 账号、零服务器维护,你能拥有一个 7×24 小时在线、有韧性、全球加速的知识库吗?** + +- **真正的 Serverless**:代码与静态前端直接部署在离你最近的 Cloudflare Workers 边缘节点,毫秒级响应。 +- **开箱即用的企业级持久化**:Cloudflare D1 承载笔记与元数据,Cloudflare R2 存储媒体附件,自带多地域副本。 +- **AI 原生第二大脑**:Agent Memory 记忆中枢自带 CLI 与跨 Agent Skill,AI Agent(Claude、Cursor、Codex、ChatGPT、ZCode)可以读取并更新你的长期偏好与记忆范围;同时保留 MCP 端点。 +- **一人安静,多人强大**:默认是私密加密的单人 sanctuary;开启团队模式后,即刻变身为具备角色与三级可见性的协作工作台。 +- **简约不简单**:界面安静,每个控件都各有其位——没有抢眼装饰,也没有缺失的功能。 + +--- + +## ✨ 核心特性 + +### 1. 极速速记与沉浸式回顾 +- **毫秒级捕捉**:卡片式时间线,支持标签、Markdown/GFM,以及图片与音频附件预览。 +- **极速搜索**:SQLite FTS5 全文索引,支持查询操作符(`has:attachment`、`is:pinned`、`before:YYYY-MM-DD`、`after:YYYY-MM-DD`、`in:timeline|archive|trash`)。 +- **语义「找一找」(向量搜索)**:Workers AI embedding 搭配 Vectorize 派生向量索引,按上下文语义召回;结果会对照 D1 二次校验权限,并无缝降级到 FTS5。 +- **灵感激活**:内置**每日回顾**(那年今日)、**随机漫步**(在标签与反向链接图中游走,附明信片式总结)和相关笔记推荐。 +- **版本回溯**:完整的版本差异对比,一键还原历史版本。 + +### 2. AI 长期记忆(CLI + Skills) +- **Agent Memory**:自带 `flaremo` CLI 与 `flaremo-memory` Skill——AI Agent 通过同一 REST 基底记录并更新跨会话的长期记忆(偏好、项目决策、约束、教训)。 +- **人机协同**:在 `/memory` 界面审阅、确认、锁定或纠正 AI 沉淀的记忆。 +- **开放生态**:推荐路径是 CLI + Skills;同时提供 `/memory/mcp`(Streamable HTTP MCP)与 `/mcp` 端点,兼容既有 MCP 客户端。 + +### 3. 项目与任务 +- **按项目归拢工作**:把笔记与待办收进项目统一管理,看板支持跨状态列拖拽,配优先级、手动排序与截止日。 +- **个人私有、可撤销删除**:任务为单人私有资源;删除先进回收站,可随时还原,到期后自动清理。 + +### 4. 任务管理与提醒 +- **任务住在项目里**:`/projects` 看板(跨状态列拖拽)、优先级、手动排序与截止日,让项目页成为排期工作的唯一归宿。 +- **时间维度一目了然**:explorer 首页将迷你月历与逾期/今日提醒并排呈现,到期事项不会藏在看板后面。 +- **逾期提醒**:逾期任务触发站内通知,并可选开启浏览器 Web Push。 + +### 5. 团队协作与三级可见性 +- **角色治理**:`owner`、`admin`、`member` 三种角色。管理员通过一次性激活链接邀请成员(成员自主设置密码;管理员经手不到任何明文凭据)。 +- **三档可见性**: + - 🔒 **私密**:仅作者本人可见。 + - 👥 **团队可见**:对有效团队成员只读共享。 + - 🌐 **全网公开**:通过限时分享链接匿名只读访问。 +- **安全移除**:移除成员会触发可靠的后台清理,清除其私有数据,同时保留团队与公开笔记。 +- **读者席位**:可发放带有效期的只读席位(客座读者、课程学员、客户交付)。席位到期自动失效(凭证解析时 fail-closed,无需定时任务);可在成员页管理,也可用个人访问令牌(PAT)调用 `PUT /api/app/admin/team/reader` 按邮箱开通(见 `docs/team-mode.md`)。 + +### 6. 离线优先与 PWA 体验 +- **可安装 PWA**:一键安装到 macOS、Windows、iOS 或 Android 主屏幕,原生 App 级体验。 +- **可靠的离线同步**:草稿即刻本地保存。离线提交与上传进入待同步队列,恢复网络后自动重放。 +- **实时语音捕捉**:访问 `/capture` 即可获得实时流式语音转文字(ASR)。 + +### 7. 坚固的 Better Auth 应用安全 +- **Better Auth 驱动**:浏览器使用 HttpOnly、`SameSite=Lax` Cookie 会话;脚本、CLI 与 MCP 使用可撤销的 `memos_pat_` 个人访问令牌。 +- **严格的 Origin 防护**:状态变更请求强制精确校验 Origin 白名单。Cloudflare Access 仍可作为可选的外层防线。 + +### 8. Memos 兼容与无缝迁移 +- **Memos `/api/v1` 兼容**:提供核心 Memos API 端点(默认 camelCase,经请求头可切换 legacy snake_case)与 OpenAPI 契约。 +- **第三方客户端开箱即用**:直接兼容 Moe Memos 等移动端客户端。 +- **双向导入导出**:从 Memos / flomo 一键导入(带冲突处理策略),并支持全量原始数据导出包。 + +--- + +### 9. 插件系统:卡片即插件 +- **五张内置卡片**:素白、日签、票根、明信片,以及自绘 canvas 的邮戳演示卡。 +- **商店与管理**:浏览目录、一键安装(SHA-256 校验)、启用/停用、排序、设默认、隐藏——全部在账户设置里完成。官方目录见 [flaremo.app/plugins](https://flaremo.app/plugins/registry.json)。 +- **可上传**:管理员可安装本地插件包——它只存在于该实例上,永不外传。 +- **可创作**:`pnpm plugin:new` 生成脚手架,`pnpm plugin:check` 用与实例安装时**完全相同的规则**校验,`pnpm plugins:build` 出包。document 卡是纯 JSON 排版,sandbox 卡写你自己的 HTML/CSS/JS。详见[插件指南](./docs/plugins.md)。 +- **默认安全**:卡片跑在不透明源沙箱里,**无任何网络访问**;社区与品牌插件包默认关闭,管理员显式启用才可用。 + +## 📊 Cloudflare 免费额度到底有多慷慨? + +很多人以为「免费」等于「严重缩水」。对以文字为主的个人知识库来说,Cloudflare 的免费配额几乎取之不尽: + +| 资源 | 免费配额 | 对应容量 | 实际使用寿命 | +| :--- | :--- | :--- | :--- | +| **Cloudflare D1** | **5 GB 数据库** | 约 **250 万条** 纯文本笔记 | 每天写 100 条也要 **68 年** 才能写满 | +| **Cloudflare R2** | **10 GB 存储** | 约 **5,000–10,000 张** 照片 / **80 小时** 语音 | **0 出口流量费用**;公开分享不会触发带宽账单 | +| **Cloudflare Workers** | 慷慨的免费请求额度 | 全球 300+ 边缘节点 | 全球毫秒级响应,没有冷启动 | + +--- + +## 🥊 对比:Cloudflare 原生 vs 家用 NAS vs 传统 VPS + +| 维度 | Cloudflare 原生(FlareMo) | 家用 NAS / 小主机 | 传统 VPS | +| :--- | :--- | :--- | :--- | +| **数据持久性** | **企业级多地域副本**,零硬件故障风险 | 单盘损坏或断电即可导致全量数据损失 | 依赖手动快照与备份例程 | +| **维护成本** | **零**:无系统补丁、无 Docker compose、无数据库维护 | 系统更新、Docker 维护、SMART 磁盘告警、路由器配置 | 内核升级、安全补丁、看门狗守护进程 | +| **访问延迟** | **全球边缘 CDN**,任意位置均低于 100ms | 需自建 DDNS / frp / Tailscale 隧道,受家庭上行带宽制约 | 依赖单一云地域,跨境延迟高 | +| **SSL 与域名** | **自动 HTTPS** 与自定义域名绑定 | 手动签发证书、配置反向代理 | Nginx / Caddy 配置与 Let's Encrypt 续期维护 | +| **资金成本** | 免费额度内 **0 元/月** | 硬件前期投入高 + 持续电费 | 持续支付按月/按年的服务器与带宽账单 | + +--- + +## 🚀 5 分钟极速部署 + +### 方式一:一键部署到 Cloudflare + +[![Deploy to Cloudflare](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/realchendahuang/FlareMo) + +按钮流程会把仓库克隆到你的 GitHub 账号,并自动创建 D1、R2、Queues 与 Vectorize 资源。首次部署后,请按 [docs/deploy.md](./docs/deploy.md#一键部署社区支持) 设置 `FLAREMO_PUBLIC_URL` 与密钥。若首次尝试报 "Github API Limit Exceeded",等待几分钟重试即可。 + +### 方式二:GitHub Action(自托管 fork) + +在自己的 fork 上,于 Actions 里手动运行 **Deploy to Cloudflare**:创建 Cloudflare 资源、发布 Worker、同步认证密钥。push 不会自动发布。步骤见 [docs/github-action-deploy.md](./docs/github-action-deploy.md)。 + +### 方式三:让 AI Agent 替你部署(推荐) + +把仓库交给一个能执行终端命令的 AI Agent(如 Claude Code、Cursor Agent、Codex),并附上 [docs/agent-deploy.md](./docs/agent-deploy.md): +> "请按照 docs/agent-deploy.md 的指引,帮我把 FlareMo 部署到我的 Cloudflare 账号。" + +--- + +### 方式四:手动 3 步部署 + +#### 1. 创建 Cloudflare 资源 +```bash +pnpm exec wrangler whoami +pnpm exec wrangler d1 create flaremo +pnpm exec wrangler r2 bucket create flaremo-attachments +``` + +也可以改用 `pnpm provision:remote`:自动创建缺失的 D1 / R2 / Queue / Vectorize 资源,并把 D1 的 `database_id` 写入 `wrangler.jsonc`。它是幂等的——已存在的资源会跳过。 + +#### 2. 配置设置与密钥 +```bash +cp wrangler.jsonc.example wrangler.jsonc +``` +填入生成的 `database_id`,并将 `FLAREMO_PUBLIC_URL` 设置为你的生产域名。然后写入密钥: +```bash +pnpm exec wrangler secret put BETTER_AUTH_SECRET --config ./wrangler.jsonc +pnpm exec wrangler secret put FLAREMO_BOOTSTRAP_SECRET --config ./wrangler.jsonc +``` + +#### 3. 部署 +```bash +pnpm deploy:dry-run +pnpm deploy +``` + +(完整 `pnpm verify` 门禁只在维护者明确要求时运行。) +访问你的生产域名下的 `/setup`,输入 `FLAREMO_BOOTSTRAP_SECRET` 即可初始化 Owner 账号。 + +详细指南:[部署指南](./docs/deploy.md) · [GitHub Action 部署](./docs/github-action-deploy.md) · [更新指南](./docs/update.md)。 + +--- + +## 🧱 架构与技术栈 + +```mermaid +flowchart LR + Browser["FlareMo Web UI (React 19 / PWA)"] --> Worker["Cloudflare Worker"] + Clients["Memos Clients / Scripts / MCP"] --> Worker + + Worker --> Auth["Better Auth (Session / PAT)"] + Worker --> D1["Cloudflare D1 (Memos / Relations / Settings)"] + Access["Cloudflare Access (Optional Outer Perimeter)"] -.-> Worker + Worker --> R2["Cloudflare R2 (Attachments & Exports)"] + Worker --> Assets["Workers Static Assets"] +``` + +- **运行时**:Cloudflare Workers +- **前端**:React 19, Vite, TanStack Router, Tailwind CSS 4, Radix UI +- **数据库**:Cloudflare D1, Drizzle ORM +- **存储**:Cloudflare R2 +- **认证**:Better Auth(HttpOnly Cookie 会话 + 可撤销 `memos_pat_`) +- **AI 与搜索**:Workers AI, Vectorize, SQLite FTS5 +- **插件**:槽位式扩展平台([规范](./docs/plugin-platform-standard.md)、[指南](./docs/plugins.md));插件包存于 R2,沙箱卡片无网络访问 + +--- + +## 🌟 Star History + +如果你觉得 FlareMo 对你有帮助,欢迎点亮右上角的 Star ⭐️,你的支持是项目持续迭代的最大动力! + +

+ + Star History Chart + +

+ +--- + +## 📄 开源许可证 + +本项目基于 [GNU AGPL-3.0](./LICENSE) 协议开源。允许自托管部署、修改与学习使用;若以网络服务(SaaS)形式对外提供修改版本,须按 AGPL-3.0 条款开源修改后的源代码。 +Copyright (c) 2026 realchendahuang. diff --git a/ROADMAP.md b/ROADMAP.md index d8640049..c99e218e 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -4,6 +4,7 @@ ## 产品主线 +- 设计原则:简约不简单,克制不放肆——不为了炫技加装饰,也不为了省事砍掉该有的能力(视觉与交互细节见 `docs/design-system.md`)。 - 快速记录:打开即写、低干扰输入、可靠草稿。 - 安静时间线:搜索、标签、归档、回收站、活动热力图。 - Memos 兼容:核心 `/api/v1` 子集稳定,当前包含有限 social、UserService webhook/notification 资源生命周期,以及四类 memo 事件的有界异步 webhook outbox 投递/重试;完整 Memos Server parity、完整上游 webhook 事件语义和完整多用户 ACL 仍未完成。导入导出保持可靠。 @@ -26,7 +27,7 @@ - 扩大真实 Memos 客户端兼容矩阵,并补每个已验证客户端的配置示例。 - Agent Memory 后续:自动固化(会话/工作完成后 LLM 提炼)。 -- 回顾触达渠道:✅ 站内通知已落地(cron 幂等写入 `daily_review` 收件箱,铃铛直达 `/review/daily`);Web Push 仍为后续;AI 洞察类派生能力(Workers AI 或外部模型)仍为后续。 +- 回顾触达渠道:✅ 站内通知已落地(cron 幂等写入 `daily_review` 收件箱,铃铛直达 `/review/daily`);✅ Web Push 已落地(VAPID 订阅 + 回顾推送,见 docs/deploy.md 配置小节);AI 洞察类派生能力(Workers AI 或外部模型)仍为后续。 - 增加附件生命周期观测面:清理计数、缺失对象报告和可控重试。 - 扩大浏览器 E2E:Markdown、历史恢复、反向链接、分享撤销和附件预览。 diff --git a/SECURITY.md b/SECURITY.md index 474e0125..1b70d17b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -29,6 +29,7 @@ - Cloudflare Access 是可选的外层防线,生产迁移期建议保留。启用 Access 时,客户端必须同时通过 Access policy 和 FlareMo 应用层认证;Access Service Token 本身不等于 FlareMo 用户 session,也不能单独访问私有 API。 - 公开分享路径可以 bypass Access,但分享内容仍由 FlareMo 的 share token、过期时间和 memo 状态校验。公开分享不接受浏览器 session 或 PAT 作为分享授权的替代物。 - `BETTER_AUTH_SECRET`、`FLAREMO_BOOTSTRAP_SECRET` 和可选的 `FLAREMO_RECOVERY_SECRET` 不得放入 `wrangler.jsonc`、`.dev.vars.example` 的真实值、Git、issue、PR、日志或聊天;生产环境应使用 `wrangler secret put` 或 Cloudflare 控制台配置。 +- 凭据端点(sign-in / sign-up / 忘记密码 / 重置密码)的边缘节流是资源加固而非正确性门禁:限流走可选的 Cloudflare rate-limiting 绑定(`RATE_LIMITER`),绑定缺失或绑定调用失败时一律 fail-open 放行。未配置该绑定的部署(如免费档或未加绑定的自托管实例)没有这层节流,防暴力破解完全依赖 Better Auth 自身的密码强度与认证逻辑;部署者如需该层防护,应在 wrangler 配置中绑定 rate limiting 并按官方文档设置限额。 ### Origin 与凭据类型 diff --git a/apps/site/AGENTS.md b/apps/site/AGENTS.md index cd5aba99..0e067757 100644 --- a/apps/site/AGENTS.md +++ b/apps/site/AGENTS.md @@ -27,11 +27,11 @@ pnpm --filter @flaremo/site build ``` -确保新 slug 出现在 `src/lib/route-meta.ts` 的 `getDocRoutes()`(中文 15 篇 + 英文 4 篇),以及 `scripts/build.mjs` 的 `getAllPaths()`。英文版仅 4 篇已译文档;其余加 `fallbackFromZh: true` 标志,UI 顶部显示 "English coming soon"。 +确保新 slug 出现在 `src/lib/docs-source.generated.ts`(`?raw` import + `ZH_DOCS`/`EN_DOCS` 条目),以及 `scripts/build.mjs` 顶部的 `DOC_SLUGS`(`getAllPaths()` 按它展开预渲染路径)。英文条目加 `fallbackFromZh: true` 时回退中文正文,详情页顶部显示"翻译待补"提示条(`src/pages/docs-detail-page.tsx`)。 ## SEO -- 每个路由的 SEO(title / description / og / twitter / canonical / hreflang / JSON-LD)在 `src/lib/route-meta.ts` 注册。 +- 每个路由的 SEO meta(title / description / og / twitter / canonical / hreflang / JSON-LD)在 `src/content/static-page-meta.ts` 的 `STATIC_PAGE_META` 注册;`src/ssr-render.tsx` 按 pathname 取 meta 交给 `src/lib/html-shell.ts` 的 `buildSeoForPath`(包装 `src/lib/seo.ts` 的 `buildSeoHead`)生成 `` 内容。 - `src/lib/html-shell.ts` 的 `renderHtmlShell` 生成完整 ``;`src/ssr-render.tsx` 用 `createMemoryHistory` + `router.load()` + `renderToString` 渲染 body。 - `scripts/build.mjs` 构建时自动产出 `sitemap.xml` 与 `robots.txt`(后者在 `public/`)。 diff --git a/apps/site/components.json b/apps/site/components.json new file mode 100644 index 00000000..665ff150 --- /dev/null +++ b/apps/site/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "", + "css": "src/styles/tokens.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} diff --git a/apps/site/index.html b/apps/site/index.html index 23c8b171..c92da8cd 100644 --- a/apps/site/index.html +++ b/apps/site/index.html @@ -8,6 +8,7 @@ FlareMo +
diff --git a/apps/site/package.json b/apps/site/package.json index 673e3821..05c6fff7 100644 --- a/apps/site/package.json +++ b/apps/site/package.json @@ -2,37 +2,41 @@ "name": "@flaremo/site", "license": "AGPL-3.0-only", "private": true, - "version": "0.20.0", + "version": "0.22.0", "type": "module", "scripts": { "dev": "vite", "build": "node ./scripts/build.mjs", "check": "tsc --noEmit -p tsconfig.app.json --pretty false && tsc --noEmit -p tsconfig.node.json --pretty false", - "format": "prettier --write \"**/*.{ts,tsx,css,md}\"", + "typecheck": "tsc --noEmit -p tsconfig.app.json --pretty false && tsc --noEmit -p tsconfig.node.json --pretty false", "preview": "vite preview", "deploy": "pnpm build && wrangler deploy --config ./wrangler.jsonc", - "deploy:dry-run": "pnpm build && wrangler deploy --config ./wrangler.jsonc --dry-run --outdir=dist" + "deploy:dry-run": "pnpm build && wrangler deploy --config ./wrangler.jsonc --dry-run --outdir=dist", + "test": "vitest run --config ../../vitest.config.ts --passWithNoTests" }, "dependencies": { + "@base-ui/react": "~1.8.0", "@fontsource-variable/geist": "^5.2.9", + "@fontsource-variable/noto-sans-arabic": "^5.3.0", "@tailwindcss/vite": "^4", "@tanstack/react-router": "^1.140.0", + "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^1.21.0", + "motion": "^13.2.0", "react": "^19.2.6", "react-dom": "^19.2.6", "react-markdown": "^10.1.0", "remark-gfm": "^4.0.1", "tailwind-merge": "^3.6.0", - "tailwindcss": "^4" + "tailwindcss": "^4", + "tw-animate-css": "^1.4.0" }, "devDependencies": { "@types/node": "^24", "@types/react": "^19", "@types/react-dom": "^19", "@vitejs/plugin-react": "^6", - "prettier": "^3.8.3", - "prettier-plugin-tailwindcss": "^0.8.0", "typescript": "^5.9.3", "vite": "^8", "wrangler": "^4.114.0" diff --git a/apps/site/public/docs-assets/flaremo-desktop-dark.png b/apps/site/public/docs-assets/flaremo-desktop-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f0f843625addc2cad3695a340ab4e11c0372175c GIT binary patch literal 133523 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

x}yQ0W72ws>8-M)CK#5Ey}u( z5I%9=*YCzu16hESeg+QV40rC`MP2bynw!OA<>u}NlJhg4Jp;~sr?jifU`XvQ+G=+| z{fedi)5IPWt1vcX%bs(F^AE9Wz2f`5c5$#8Jv zbrnMrk2z`leNo6X(q!8+w@p2alxuzX<}s%Yo1vCbOkyJF>eFhH)3_@*irT}&!tzx! z$3?tY&*a8d-BxdYQKL#oPmf?+-uoCS4)(9iv~6i%B6rMBUuVALd6sN!j`8O-i$+_T zyqWWSX=7pSLI#-=ai+x>;~iaaxErJJ2t(V*3hK3dP`T;|B@jOT{3mutKC<{G#XEP9 zu3lxgcUDSTJ!2tH1;>BAyFHOyos(T;Q1VW^bkDrkk8W-cnS$52+HUM4ef@+DT5dU6 zT>eY3>p4m3Q4yWn_Gh2gmDsyiLAt zueVsR%Jt=L%RP^gvy3J-U?b^&_U6V3DtQN-Af{Lbd{BRR({$Pk|vUOXIrT-aK2U#I#d|jJVYB5MD~s+ zKn)Vt>$OiExtpv1ySSXo!hbIxG_3iGQF>;@ZIImh`oG7%lJqzyw@EDyOlLcXt@`Pj zHyvkNufsTk>Dm?SZEP4ve4A=Je;AT|@DZibgs`GIEjg7|nEO`va(v?BsNS}dC|n9* zI!*~H@1r9g6=s|l_ILmZ$8!iJu$}W;559hY9$nufi9Q~UncP7u$oYxF&r|xnL z62CIb<(wx%UM~(#n4!N0; z_Okkd#*sp{1>K(~=Q7kmhC5Uq)Q@eF7@YDN$v5S+S=Pz^X>#9U`x-+EOzzdisy@BHNHo`3;973D&d*jbu1$rGor9yi&0?iTagGR{C7YhXzLFk~{C<_+ zyv5*MdFh-*%Z8$svDFs$2e?V?`Urm|4+II0N*$$6( zR8VlEVDSNM?KmayP(h007a0`jkZC~!Jpy9sW~6VAzF`@%1lJ*O{5rJMvGG8Z9dtUK zg>r_Jrb1m+i*z*d3&@~rH!b@S*WLf%_d)EGgMGI=P&YFbQtgN9n(Z zc);?W;Pb=;9@LD!_j3M?fkT+uto6RP=|lzpbwo4XnehDASImm?$u)oQd`>F*_g5a| zk5^hBcfW=NLKG2SfKX|z8shu88-#|lID4pq1RnR`M00p_OwU7$gnV`eBjvD`#9p2l z48`Q@zw|E93>>Don$*;Na7FxUuALcGzurCTVGz(m4dff7_=MhP)2*>NE2``@%acmzlh?W_D2*aW5Wh$9i=R2%Af zmdot_H{3TznVB)cvK>bA_V$htbHWQxN=m4By}Y~}-+0f`%8HJTSAzmY#X6~v0>^u* zJCK+d zeRuL4DS*jc@FP?_(z)vYz)3*)lai85zL*;501Xox4)k(fSIEG1adD|}45Z{39K^au zsb?W+mk&0%fYX8?#Yii_?q$}iln$9e9cM5pil+-P)9{Ck2vmdmyZ2ue;^GQVix58| zKk86g<|kwRvGD;H1bqf&04{|yJPuo2V^>&ra#FVdw|go`^qgNyNp?I zZ0_0}(zj)`TFqR06mM5k%5;z!81E>ciHnQZo0EIaAwjH4`O_;TBn-g0k(6vzCUciG z^O%&bxmBG5KBEZV$*}sx&6QZLY_a)P-_7Bur$ioF7iw9XVbm_;tQ2YDfj3qgs&lyf zl69PojSVbxWaATC{e26RoOlen-{iTL#Dclk4LC*+CW-R$%=rcRc;z?`#5_0UetJ02 zoyPmzV*q%z%8;t8QQ_ceM2vl~hw_Uw$(x2}kH}?knD3XX-m)^n((Y@FQ1U*^WJPZS zqo+@IfLp0OEBcjrs?iZV9H;V2G&iTp&LZd-I5}}6mBPWA6cZ{`51^ZV`{eF}A%DAQ zAg!#;3gUP5p1BCBV>dPX=6TDZ5px+l2=M=TH&yc}$Nwj-zmlTj8<3WR+KxP3d#XRR zDrn$Syf~<*f3K3CFhC7DohIBby@c#106l|6Tc%L^3lPj||I4fx%R2xyv(@_3e%j3U50TNZFb-zgt-c`^f{vIpy`V ziFaoRJ~8owPNiOO03v~uW-ma?yvCFwPnbfIJ;zj-8y@wYOMG_;J+GH&piAL0o(QU^mUGzy*S13G>} z1NNY`03=I8yjh%@lr3bFUmN?T)P*K@Kk^f1<|BXW0fl8@4mm9$rvoE z++NtS1wj{BI+uIs350MEg}Z3gvmLZPEi)3E=-8Xoo<)kI0!G{7T>395&7M4&cuGAk z>^NC0VGB=XSZ;N7fO_0iAQDwF<`6{Z1%Ly|{QT3FTuA^JOG=Oo*RKp2s<*cpLQ8#8K}+a`*(4wo9%{ z6*%@s-bXze)Q*!{>O`)#>ctH8HXm;Jzcv3@-Mu;O zt6rXbQdw!Q#ad)SbXUWvYESE`#T&3scpl!;)P(lL?8*0?{fB1hg&Bm(ccgR{=DF4Q1JYY3W3$gjf4FIX#2Lu`Ng{c= z!M?m_8cJlv7@vWUubL^FYRF;GLWE$UK!|fRP2gi3vnHD%lQ(ale(a}5LWRYy9*7wd z5(0p(qg9p@#$N&6MpAokuKGsZ5QIi%38OIAL5<6~*V!l@6doET-E#k3=8dlc87>?n zZp$)yPosO92kh2ryf!S2>%>bH6mG2gs9N(!MMb%LXnghETMKxTRFWKASlFpoe;0e7 zZOD3;7{Bx-UORC2=n<+?u~LN_H`Z(ijzZBVnr!QK(5z)lN{ZQ6g3&e}LUmGF$|_Yg z6G30;W=L9Go*T5LO&S&qd~8xtH=gn8*@qihS!-lkDlH#D1!@=CpzgndP^`MV!q3pp z@F9E+JYzgK0swN#vy~Hh5JFL4Jf(xzIo*@ci9aKtGDd%no1TnfFC^B^qxPAFa+i>p zItuAL=w2Ck_V_kFRa6n-bA=+5>PBcN1XcfZcCXg2yR@ntOj2YLgKaJXc^)8{diHXV z$0|a^PlT-Np8a-YRT(AhUQYmfcvKqxJDB!pj-^eYXZGr7DEJwz0owkm5>G3`F z6i&^>OXEN3AF^F9;&6=jfTSS-h8H9+pB01yDpxsMqv1H?B@p=^tn=T__dnN;?pEw% zwynhlrvBuQ4mre=O)4z`yCfW=&Kj(5#8^%0uDQl7O*RIeV`DC_tQ41gj7rm_uAF*q z>(KA}{XHE71KV;NhVI}r-2H%KVv=JZCsVU2MvGpX!r}@oB*8;3E-Q)J%6HRszSWv) zDhSn^hevAbASw)PkdMUmv(9Gpo(i41B)>aM-Z3>X@OZt!cfDA<;_k`!#i9721k%ZS zeH^PyU0w0+JNZOkR#x&`@(HXI)>DU`R{GC^UyKkN_xTpTwJrM3#@S+v)!}8K8@kpf zfKaRr8K{06O>VGOEhDMHwLCei;I#hU0b>lkm9>7 zJ2U50X=W0rdmjl2vqwozMr-b?RnFh@KL`OgI1x^SzElG127r5BdF$&>;&T^^zoFn! zuS|~m6boBB1z(YlNig%}t#Oxycm0s$>m_z0m?TtEfeo{^*t;XY>)34evF;#ql9JS% zScT*_(U--O3ri1ms?2GlR17_Ypggsf@G6BWfy9_XZNYZe%R;l?C>R5wB6!+Zi+*0Za<(C z=-S7AmDZOYbS+;cqrXUL7oW4EM%QU>cy4|wC@<5J4-(&)ZoIsM5jHnR+cV2d8yes82LQ2yPiklKpA?Y7qFx(5X*vC&afpp~rq_4yV9H%*wBV;lMc z-Oxavrf%HHfflukMr_h;%~(cC*W{N=@6Z5R8{Lbl75`D&5wE+XeU<4feS;;27+}L? zu^nL9nCv>Xy zGIO;ZX=|rw52H68{l6JhJt@fjAXD=4sDP@yv9j>ywErv9{kP;_XM21srW<&x>5i|@ zq%W*=-YwiWSsb1x&gp}u81?J7#U1D92)gTEb}x+o;HM97U%zISx3}jBDV(_Cg@?uN z9XB3Lx~8M_sAcgM4gS40KBt$(eac#wCg}S$sxF(c^8F8nrw8Z!x?SS)vvgGuhtQTy zpRQiNpY;9R-fKBkxAyBOPMFC7oQ_mD5U;6l5O`8+;JkqJ6Cp|Z{{GQ*Y#s;XIDn@% zX1kghT#%QOduPxiTz%H{r?~!}?$z8!vUS@w3->Mz()>|$S1a_hCvd0i`d!gm)7FOF z`9H&y9e9+hZkp!f#wpvM-P}|v4ct#F0BpBfW&UmRJyl$%qQePXBY5!N4(1tFZ_7^z zF?!Da@>&1K%jG90oL_w8f9IOW-EsBzR!^H+*Xc29kLrWP{&vUPh3yWqd)fVY5!|uR zAx++QzMb=?jGH^F&5uYd0N#5peMMqlP`&fERU2#nycGZ8(mBWVNW=`_)`@(zy8fTs zVh?Y>uWwn>?NPn|zae*0!i1Y1Ni9E9Plb5wI?>W^fBE6o*Jd)gNYzC(sFl3;uHd)h z>%eooz-ywsIOBOMJEpO}V}A88UW9XE&ljG*t8_V|RTT|Cwj@uwUYvV>qwu4zli7b2 zJ?)($`#ZI2y@;2$fBT;B-Tw3AfS1o4(%2E$(0>^UBZ8|wsFinPtz_2>1LmtLO!*Y5f3)O%eI+y}MFw)0WzWE0y~b4|`o zD<1%__P+G?gj=k=@2r@!tJV2`!q<9+$(^dn4OuZOtV9a9*7LTAki~75C3S(*QfKX+ z)7&hzI5maaBu{2VIt%b@Hf7+^&=YlM0XHqk8kyR^{E+x|TA7@?a70+O|c@AA0==nG~HGTXb~~u{|aAPw&unWObxf|5=p4Dc4HTzU-?3}3&wZ(yZl!42Xo9;>Q|3NI$WEA@04w|2F zzY)>F!mznnGKpovOolMIPhku*&*k@i2A=vmjsnkgVcqnv z?)p31sE^Z4pBphRuhKjQ&-g$F@LX=-ic{zAO3wvcpcSWYZf%WTAHPlQ{msq%pSTRN z=Kz;OHVO+QfRA#5jpkW`20kp^&#}GcX8ic)^y{sw`qbYYVBGs{UzXHiVE^K{Z~|<2 z8KmXFPLTSY>F2~Cqe{XLen7`B!M*Zx%%I|jxx@^7>^bjj26uQr1=LlsFVdQ&MBb@0GE)Ug#Z8m literal 0 HcmV?d00001 diff --git a/apps/site/public/docs-assets/flaremo-desktop-light.png b/apps/site/public/docs-assets/flaremo-desktop-light.png new file mode 100644 index 0000000000000000000000000000000000000000..717cbff6f5f79f4fff25b7d32c1eb20a510e5e0d GIT binary patch literal 133020 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�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

    L_$IJQ!#op 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�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 Z3$n6zLxvWeg8_FSCo$IOQj;r@{{dX>_ACGZ literal 0 HcmV?d00001 diff --git a/apps/site/public/docs-assets/flaremo-desktop.png b/apps/site/public/docs-assets/flaremo-desktop.png index cfae3a378405ba8a94d3f59887cccaca6828ae36..717cbff6f5f79f4fff25b7d32c1eb20a510e5e0d 100644 GIT binary patch literal 133020 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�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
      L_$IJQ!#op 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�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 Z3$n6zLxvWeg8_FSCo$IOQj;r@{{dX>_ACGZ literal 62301 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 diff --git a/apps/site/public/docs-assets/flaremo-mobile.png b/apps/site/public/docs-assets/flaremo-mobile.png index 53947f66c90d0cae44f496fdc91048b8610d5aa2..a8cd985ddee5723fb646a5c8c53190d939dbd729 100644 GIT binary patch literal 91647 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 DRQS-Z literal 46876 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 M4|L%lRBc242Mu&+wg3PC diff --git a/apps/site/public/showcase/card-daily.png b/apps/site/public/showcase/card-daily.png new file mode 100644 index 0000000000000000000000000000000000000000..9f10a671421de336e418303df92c994a4a3f2ad3 GIT binary patch literal 31788 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 z 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 literal 0 HcmV?d00001 diff --git a/apps/site/public/showcase/card-plain.png b/apps/site/public/showcase/card-plain.png new file mode 100644 index 0000000000000000000000000000000000000000..aceca9f5d41ac3ee3849477191473b786338a3ce GIT binary patch literal 35609 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 E(0J&L3HU*6=s`m6O+JJmL8K_y9v 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 E16}eInE(I) literal 0 HcmV?d00001 diff --git a/apps/site/public/showcase/card-postcard.png b/apps/site/public/showcase/card-postcard.png new file mode 100644 index 0000000000000000000000000000000000000000..3da832f977ce97be9b6096a02384165c947576d7 GIT binary patch literal 53449 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 z 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 EUvnTm^8f$< literal 0 HcmV?d00001 diff --git a/apps/site/public/showcase/card-ticket.png b/apps/site/public/showcase/card-ticket.png new file mode 100644 index 0000000000000000000000000000000000000000..d4d3b6d3eb4b6880b35857675bae633b2966cadf GIT binary patch literal 36028 zcmd3OWl&Yo+ph&miApyLNJ*EpfC7i^?(Xh7N=iw0cXzjkkd_ufy1P3Lcb)&-_s;!# zKfL$e8E2f4gJTp?@W?G@9bx5&0Vl5Ar`zmPFu`f=xk0qlja*qrU$ciyTpz| zV?R&UeN)38P6nBJ!--7CC8L#?cwF}WmT5MS@_X22tv$)}dnl=BCuB1jk`=t~UY{{Z zvA&ow&2avszAZiUaW(Ah!y8ESBxmHR;N8(vjxV5!{=u-aU}r8TS52 zV>L#_@lg- zpN#tH@?d^GMHc)d@HMo-X5Qy!yMV>;*U{pS&+x0`RbKEEbHpM(M^o1E@_SwwZOP7I z-H=err1mLmH#;4>fvcINdY7I_eNHW%eD>f6{iALw4VI7>$2WcS@NC|7(Z0xW^LH>< zx&q-*teZ5SyJIm%u&75PXOQSzp8tFd+vQ*+V@MW!2iw~#lzSQYPC2*>ovWhs44<1K zL-3%p^^YW@v0wXvJNS-&7ft!4dntjE_8oEuCFC{B6%{1pJB$gU@EP3)68+BLzvZLj zw82B#uJaroXInc7i$1secv^NaBOU^Fv(XgWcJ&EuTurO0vW5koD9WPPE#HR;u+O$~ zB8qi=24ZRZ&%nk@yj<|C$Zr|q*)0W+!+6sE2zuOuSJ8GcYntJGF{P^Oe7MkNI+9*e zT0PKu`df3@+jZV~Isi|n@r2d;_Tv8TbR=en?|f2mMBsMs7m;o2#jIt5rU^J1Ol@ax zgy8E5y1&6r=Jz;Dv~9osqva^gsOobx%=ynM07pffP}o}U=hw%O38hofExzOa)8#NC zE}P%no2i}$P40ND3Awn-6IW|7vRBBwPFp|yK7c)HSz0ApAVc-1U%x9*xp2a&5{6te zBH;P1NLeb4=RAnar?7Qsh;2k_FrHzi%CL8v^?eeb`w6)5*n8J}rDFs1BeSULhm!&K zd&sSF0_*|oYJrQthOw|3+t?#~7K3gqS-vX71vV}RK7*`_W#)|P$#Eq1CS^e3?ng^7 zaIj3N=o`?D12t`$0&<7SQADn(GrSxw=Uoq{N>mk&rx?3vAkN4|fq5I*IBF$r>L^wIf`xGs7-q2a%yE(`Ek zA#t4(Qd3bg>GVf=xZ4y22k9fIX3WtW#x>C_W+tmy^mbhsT&Z@QD2_ucVyxQAr=scL zNXjW?>Ii!WEW$r`qu|Isvx`f}yv7J0b{ z%|PRtcbWi2qf2C6S8Z!zw1H*@!_`GZfum4G;TsM95-LIYCnAQ@Z z4z$0{PqCR@q8>5G6`;CbgkLnMQ~B{=EY2&dYWLI}*;{wqU(B533LqiJSF~r7Lwd|0 zi8@+VRXr!Fe`=>yZ{?t{5p;GaBw@e)AEWO0CZWl}h~R^lL+rpQIEzuWiHGgC2cZ6z z`nd1>y)%BvD|!Fbo~?vjJ1IgC{xOLZT%T?0G4f!{CGTFPi1__i<^`|QVUg{Km(J_v zXmUj2<35_OJ0!A~8OUtpR!P^pU12}LxwPDow8r?-?&ZxmVbbsiQ{d|7QborSCQIdB z^&qaQ_hzysV`m((@sS4iRT0KoP6?%O`J8m=1a{%+bmZK%wzz}8~xnx>O=@I#H%v7&!3ZKBPK zme)tE!MU7)oVl?2T70Z(^q|5jQ16qPDZ;tSxG27X?#7@Qh#bU83Aw~f1m_zpr==*K zR?W!(y(z}a!6Wio{F)(Fv_WP*GrN_D3;&s4R(OI3MCp0eMT!Ni;aUTjgDCZDWaNsDja3CuTy8P9k<%>@e(~)hgIlP$<9enaG-}>GPNkFY49!To-sd>djBh*9`qHV0 z4o(x#gv~NT4kgI~Oqm*kH?z??ALWz&%jQ9Y+ey99b?>jBhF~s;kAKP|6O)VcOnr*U z$4n+qrR~s9HLU!^K;f>aAU&Ix6_itkhB;PEdE}SGea|>;Ly)35Bdn{}&b>&$>4Qe6 z^A;M7F-0IH($ctNVX^B^dvg}too9`Y=7?c7zpiM%q2m|axV?5r(6FG*$ER~Tq^zsW zP()Hy=@U*CBJ8rm3w-9Z1(AzR)F6+#n{ymtXk79|n$jY4+#ooet~>%)^>d5yEbD^V0;xE*@$$-3?wjvZMn`-e`7OUjccQ*P+b zu^t^3gxDIi^|$w+2HgA+L)ncKdD*m`pF--n$C7Oc8WVN18`_zvdicdZ+l~R}Juy;u z|CbJaBjW?S`R&&mDW3(p?02sDIBYEzy)TEEerjr3*G)yA{he{Z6c$Uz{Ptvax1s}n z&~kWE1r7$|HUC>TRJ!L{ThkS~E^05?C^B;K-`(w~cF-kO#Y|efSX!Z<)`faI)UKUK zRRv8JsOzD>`uz{qcn!`l8roOQHn^u4D zR#TdE{qxu@LwlKTYS*!u?y2JQs@TzW!QJ#iw|&%C5yyB_ZUt=~;L9ug8FgyRdWgZue&jO?t9Blq6qSB=o(+NBrKti%8m69{&8PAH|cDS}9>$)T(w&blDlv z{IPL5kLCEVMKYUtw>sdy&=_gX<-ye!P)Yw?ocoi%+52vVcM>4Z3R&W?&QlW$D@ zz-M^}aXmKll64M!OwSZoPCrfNbp%7=ommGfs)96i810rS=U_`h$xD8^iD~|@6}NP)E+-X5B>V|Wgn`&SB=w-Il0@K)j=RBGTKq_y!YjN z>!bWf`Gc^?XmQv|m2-ghO$~}$y+{83d+FrQmu*H!Tp}^m19T-u6VGRUcd(<`wwQ zWrt#e%6xYT>fdO$Mj@787J8%D6!ZB+XDgEP>T{VFYG#_tEUgy#`SrU(Z+VNH)jH64 zR36AB^E-`2AH2#a`4^YS9-Y+!vjvwOy}{ma#8sMhWi5ovOeNi09KO@&#KZ zD7@{Ysq>`p)tU$w+A5$oRcobQ3O>aN)m|@r2-gs$fj7>g$zBzAr{_7E(KP;DnbC}K zLSD1y2>&HB{Scnij_dZg@pfLq!9;;<;wl90nW$AYO4fR_Qxfy1^Aq2m$G}g1-PhS8 z;?!Sl02#Trt&ZvBfW%L}^_T(oPp@s&JOchJVho{kQ{La27Dai9gqfJ1l^?D*GZsM; zBx*&&qVig;CD;GO7&TeX^7!Fqw<2h;_TS{`6)*UJd;`5JxjpQ&&YxB}6dJt0>!Lzv zjE&^ZPdw1WTB@}#XsF^#UYU+4+o21?lYeozPN=rQ#WB5q-d`>XLIwraKC3)?na0%K z6OClrUOcL~c7UOh>t49R)bhG|Vk~x!K0O#3I9PgojWyjMmxQgBeS zlGpf3bPx$s7iSlheju1S{jVNZS<}l+v@g^=WmK-DZ$EDb_#a4)2g)aX+)QqgvG3=%r_V7-rNqLMrTdW*KagM5Jl7w{5dCIdw`L@!a&{`_kz0R=K$A}d zper)P2aqYVcYTL;jPU?Y=z-chVq@@%Oy;Z_^y`G%d*%Go(-v(1nHz@@juF07|8!L8 zVLV;0sQvH5kKX@di8PM(P)sP;Gv?tYI^KL;r9V)hXZs+fMtyanQS%Y&w-Q!9Wk^sH zdX$Jq9AB37KcU_Lyb;YzHYL_8ksjZ&!jlowz*+RCXVE?GgaLM~(k@=B07DOaMp2~X zJ#2M6&IzzUttcbqoma3rVOy7)^au(3Us^!*%$sGYT0wvcX3lW};g9!`rC%u`Ynj+Y z2~!|JZysyCD0_~k^zl1NH8l8iW%deChTqd8_|0<%dT+1j&ki+&>rqcmLTpLc&E)LB?w9dir2u!eqp#k~k;GnawF1PYScv?CRns+%@!g?mO?~w!p z(wJ@90hX>|`ntUO6FXsA%`n_S%sEK=0l>rlK|8A(MOpqHCm)w&lIB#f_~fvR++F*2 zy(!M~?TH}e)QB5UQN-Y?0ar>D%{z2Y(wBXF5`3EbP4gK68rYL~;~l500vXr+;I)+% zBs@fI{>5LGB6TGp!Z+Qy(dYhrx`4X3OjXz08BYCk+g{gmzs`yL?|XOs;9QTNxM^f- zk#k||^|KZwr6D@fGZ{w zjBTvP)0q);uAX;)-VV%XsdevN0i+?nOquXZhofyN9v&=MFXfQdj+SxJgQqLCqEJL6 z=;QS#PJfr-68yt zM@+g3VBa%31tKETdhLL4wKdSZVQ=o#kN;>v5mA!*bnX2-+bnjs41Qol3=9bd0z04+2ww!9x8ct?HD2qs5P|Ft{c3p4nDmSt5 zO*trdfqhddx4AinKe!PwzX?m>I*)PE(%h{wr7x>h;0UM#R2}y&PcO;|P=Q$XESiXcG7lBGE(6Vtpt;?kLOS5h2fBw;2Rzbd>Z+4cnkpD;g z0QfT>5V#O(-($mHVQ-TynBH#aa7hn|F zg(;W{1#1#Dnbiv_CeW95=bBEn9EaoB8)y~ty-xb6fh=PU^yBD1=VueLi;g4wfbLEy zNHWBIHa}VGe}G?hi2WdL`fCt63>X3=g+;&fnT~Al4~(6x%R%`5KWs zC?Osfdr9mKL8KnvaU-ZL7C5we+V4&z;Vu$8GZU6hvP=3n?AVq3kw*xN1=Q^Z&3Z4_95Dzjm5c8M4B;iqN=Z$~@{nQ$eRqvZKNb%30 zBcRDrNsC~${vx!bwC>^pK(;{eJ{XM%2%Dufzmsb*x)F2}fS%JgNeKCEoeC&csEou8 zeQ%}r8Y}Dhj($EZeM9DRwVZ5Op2Uu&aRHRKn_e>L8kUU4H0XRUKQ29DL?`03s-H2T zZ}|K5@l!y`&~K=K!nlJ=(q#D)C7_|QUSfU6y-3{kj_*i5L)aDH!VRKqc7J}ZhKR{n$Rrl=#h}0rSg4b&?XF z^E3zK@&^J^-o#s3l}7bUPdFQYQuMk9n;i~1Y=+}+ZfsRS@W6qv(LQ7PipDecADljg z$C++E%9q}~ZVDPbW#%z$)T{};KfgWSbp?=&ReS}l4K(@$9gpqY{w-PNGDZEztYI>A zH8PXm=rC`RPP3h5ieHI_0QE$9Rrm&U@y(vt*5E>$@}e%#-a^?ufY=T6{c*zxeok`% zFZ<8husE+yDQ5d`I-d5lzL)1?Vq{d|J$m=il8m(OSl7dNQBnnB`6B&`UT+^`Utgy% z)sC*Pyiv1*ArVZCdW92l9U!!%-*5o4_;wd3Bs2e2EqLs*sAUgy=CI^rayjq*2|s}g zK3tC+Egr$fi89@##`CQJq{)))GH8VlOmT1s-|j)i)b0*kI|kvNfAxc^9&7nrueW)e zqfUDP_5$oLD6CD5gFw^hArD7LJcl6koq~1Dm62AnexG=ai_u8z>$T`Ni84Qnjc?GDP*i66TCas!&W@a=*Dg`08ElH+A;n$}nbD&D3vD2FzNRiZir8~Hy^+Y1t zr|EiEr>D=Ui$|6-js$VO424#B9tDOEY{$O)wV2T~Gym8Uw*IaltD^WszI0AP%wY#>4)(_ODFqx|#LmM1 z8TY(IGn!Lhv}hJI@|+X!ohKW(+pVoLZShKJyY9YNbA_6^jV|3-R$~5?!HyUh`n@Frv>R(H7M7I>&`o zV?O64y6b~Vbq3CDKte(-&&|08;0o+nyl-_s&=A&HfcI{QvGXkQ{rw@dLM!P7@T2PN z^!Mwgf8WTK;^;?TW%|8*cNJ5+BunRio@H&|_+Chsdp&lKuwLs|_vAyhtQ&adcc&Q- zS|&A>T*2uBDraRBClA2R6a%8C2!k&ACFhp<4-#I^ zy@H+=o1-HF4w-wThmoQc`k41Qas4Vz`8ej5(N4uJo|gwyz3peAp%uBesq9AkN{yfo z@R|)ER+g&HjUFLO_D>o+=XlBa^w@*fy32xM3Fhz^EGkkcgQ~@wR)(* zH;3tlEsE!FudcxZ68&fq{ALocCe4E%+6v1$ACeAvn8^q)2nD2= z$C>#>FKnCE<1rR4(>)K~YR$YSns3^mkRS{#MkZq-JC~p@i**j9YXr?_cd;@43Z3gNz=Ba3a62Lldq2M-fJ&>0p zF*r}aC*c(!v9$`-3L ztO%`m3>YN>nw(b%^6w->hxrM(rQ$aB-!?7Q36}u!(y%)t)Lj9}WCr{5jj%#H6Ww<( zL60-Dd{s+Sp97gcD&@zBg8Fv+CI8vz3LT>*FII!(hpK10&~f&f+=2OlOMJ%485Qp7 zpUh#5gz$CMS-Fx zKo-;(wAb>ra}?CuH*$QoR{(DXMB!Kq$BCifR7hI&c}0hPGUL3xJREsiy<)Eq9Bm*K z%0#=sLn8X`*l~b?7>K6-D1T%9I4WSvGaW!0r6l~=QS3J%L&u8dxu?7U2wJJW-xw=m z$6jo^YHXyOXD%c_z}z!xHyYB)nHoWnIF4t6#tRld_AESXlTD4@p8y2=4?J_|Y0BcH zhAa2VcM7xD3vR0zaFqj%d5~L}d<4nQC%&EhsPq|irE=iw9M~P9K*n%5xm^hIP{u0D zC~ifM$@ltN8tx?xA(^#l*$=_QCgyf9qHsCTpVM-vfWNx4+M~MMVZys}nhfbB^*Wzy z?jP$>gyj6^Q7j1ez((q&WKOv!9$ODcyfKKv9_O3e%x9jSIx8>ye^Zu3a_F2ubrYJdMV$x5`O zEJ)%}CZAUd%u-c&ngCA|Y#w8GQ);TB?dK7jOw&x%&C(uh_mR0ReFJm=dx{U$X?ZQU zAl<_PR^ExT2U>+w@m8sv3=@~HzT2>B>)E)ZYR#%}4etjWMmA;j^>)0*yOY7t+fUMh zC@hAwq9&zZO2ZL^%aJOMEQVl0&H!QRq}XQ^Z7NdPt_&JHx`aI^V-76e{`;*N>o=yF zSD$C}#ZaPv9_j~PyguOTe=&R`lOi-bCcm-!q5!s3k_*X-O`LCACv76u_|1%^>tzrj zs>e`fa$|dUbv!8qtVL}dW@ib-4xHMcCF)8&-;B2=(FbP<%3o(li<1@@&FDSPcY2Z~9x~?$GaiyS zB&?|#@&+~~Vf96n`!%YJ*D7k6bFYuqjLkkU0`8G4BklvjcAUl!?U{-NGSAT0Z$O8n zxMP02{@g=;D1B`ZlTz+{lX8TtFE*DqFX;aEq#no(oabmh!=Y1OljJ3C*cTBYrPWqD zZxC_g8Iw2 zy8*P(R1*rgd66#?{!{<=KaLgJoiXU$PYvSUFv0_vXc@;e8hz=0K2LDEozxlxBMP7N?mwPnK|6J z`=KKIhEw-d8cMT})1X_yHP)LWZ+Rjb*GoV$j_O>t$El=7{T(M2t4b>+KezA=KBss8 z=#J)|k&y&cgr>rS>Q1Jr?l%|$eSJ|BkbApG9XLG*Ejl&%=wD5>uj~?4)!PC&A;qd1 zg$i}Ud#jwIjZVas)0|ZTd)>r>E~7+{hOyH+Nn*e-@EE8V67YYzreQ>IqTjXR!Hi0T zoii4in^BV4i}CCH+ReZ~?N~FYmDi_E9}r9!x)?-zQ9zoFE%ei|!itj3e4NrEBS$n` zVjN47`Ay%=L98w9;h1`<-RHvOLbxx&1Z4WifI@X+!rdX(Kkm(9@pTBIs*`_GUVndk zX zdV=?LQVUqncsg$SDjsxt?6M%dmnYqyai60uvy3Ol34(8*?I{K)l>c(a_iT_o4E0%9e1N;EEWQ8THyT0PqzaXWEhd}MC*KE!YHURTq;9g~ z2&4~cewh&Vu>8bI!yNj*Vw<4O=ZgGnTn7}U`0gu$o%sAXJi@+zK+52XRWuLss!ux113fqBOFoQ5Qv~ycYoUsye(i zx6#*K{B@sh%Ta8*OYr#U?WqLn1(M;JEcuuM^9y=`+M>31v?&hn&M5hBDWw@Ax>Ds` zey9HFjduXX7S>ax+wEtRQSQJ}PsA;C(DyK(8rkAnr2rseT7Oerf+W@}aXV93giW%U zZ8OnWFsJk==aG^c5nmg{uwDR4w=>A?MBhL>8qNJo9h9)97B_h<>C7SQ2>{-3?vim> z@H}>MNRq_>DJKzRw)kv%IlFoSx;!g}u&W}`HQ7({|mKza&?@?F=>k>#f#Vh8c| zhC!FUK?Ffa`p86Z7fVHWT=PvzIZ%D*)!oGXS9*aXgvOEFOO>G2$;{GW`#LQb=!_xb z>`z~K2wIlasl557A;zbeFGc&&OYa*JZe|A0{BE9?w^t2_Cn2KJ8B(@q_4HOBW&~=i zW^n|#IOAW*PmxOy%`J1)fN!lSR&BCl6JTXKMrQ^Yt0pU5VuKXhaCaVylQR^c3?_k8 zD9ch-(yY^jbOg^%VeY$RSaiYdu*^_GuC-qOq3?90?lmnOFJn?m8r!*dr>d8fqF8<8 zgtsk+!GafeA7_g-aJ;$?OVzuVE$N)t4&bNN+cGIPPt7hf6OHUEB#hj=eg z6pg4o;B{PmIey}m9;T%pm>)zNjSRJJ(f|9Ie#<|2yGyj^o{yl6zc zYK&V7-*nY(^46yB>RAMA~`a` zj+VQ+2%cKfZF5XhCf@JQ#*=kx6TDY8|YCr^5P(_&R0) zgjG9fq4_xG=7KNzxE+}8H{X+VUE#L=g?<_E51L4;xn4&>UEQ>_3AfV!bnkamjhGE- zO>z^fv)QGUzp9IlZ-Lky$rtm$rL*tBJ1fJhKy7(v>E8SWSDg~dPk#*bh>YBVJo@tR z8j}f|>Nair9-JPSEN0GYPfq_?pN|8faA$;Zu>F=8>IJsG3~=%udk18^GVbf7@z;52 zE%)(fLnq~v^QXUzobWj3?7DKP&UdE|5jFz=J_WW%6M+indAe!`pUoL^$L(T6|4R#i z7Q=dyOVY7l&RL_@51gZ=A1cCI)T*XT#)mBeiS-eoc< zJ;%O>2EfIT8b4NR=cX$^9M@oNBxKh6bae<67w1{?0)hvQV4f?HdD;$3{vu+Rijvmn ztWyQRr%084XY~{j0(E8(eK<=4@KTubZFv*G*r*pz^%Pq{W~Z?dWV~?smUQ7Kc+LA( zsy$uzUkh76!7ZvsXzNJN=W1Zo;a`y6CHZuD3qaq?>3AJ~@gS|04%47xlC`!gZ`#OK z{Nn77y9UeBi6UiD^yQ-4HDX!PAmN@zFh*hJha)b|iQT$?Y zFGx9g9vnRN>!m7WXbDf@U5l9duTdu3Uu+oE+k+G@5Yqj4i}54r2Op5*&h_*_=!hz# z0aVQ)C0`lt`@lKD(8P-QJfs)Tr~DGh?{48OF!i!FyKC4J@6W;|NE2c!_7jM#?7WX> zVpy$QhwMkuPp*K&!rk_ahf7Hy`D*Y<6?kx61T3f4FreYeT+^g(wRe)3lXtqW0w3av z93r-`JO=2sTxa6J1qgD-RCLHw>J27=%xMzkpdcYVOB==?jT@}%z?5oA44!aWsC!7H z5&BJvPkx$|S&`%~)6neh-cK2KCaD9WI?QTCUyE?*BAuG94z^Oq{*JZK;meKh7zd$E zFtU3d1tsYXe90A{*aO0NNhc#oxQg@_9<0Fm>)?VvFfBLuGXY7aHm7mc7xlTnS=ddr zWMmT-1o5^8M#(F)8JpIk!*Gkam(@-MSn2Weo|vGZXeiVyZIUj4O$bOHQz~+7GL5lJ zeytfJezsgnZg9>5v-a=goC5C9LIVHuvDW(aX9GQh$Zos z(eR(027&45MLqGe$^!H#(Yz=gHQWoT%We~|Aw4e7VQFli`P}u{-ROhH)t46a`h?D9 zb$_zQ)f_ykQ$gM#o&YPE+eCSbfAm)r|24(^9}q182VRhP5BtVtIMfsq4WVEx1NqQMoIWH3{qTlnJFgP(p0JPseAXT+SH{eKxuhPV45makz8?I59D*prAfk4!8{rA74PIezHN7Rq^hCJ}OVeCLhm*z{9&z3!-2u*Nv z3{?h6V#;6By+%okE`zSsUK|OoU}7YW?W2=qVQ~z>_j7Q3$Te(o99C#G?s-2*#5W>n zn_9uDbud$78rPvRd|;ob*`NOt-?(}f@9vWp=YFynVH?PVvBB{wl9(7F zvJO*WL7SCSZw&ba$ix$&v|GqyNFUM-=nM2H7=q!t9FVSp?vF-meNhNw|LN9fis^cR zf;2T8__==pGEvJ=Pot4$Ns}MOWZ=AyDtb05K2DXlON{y@hFUhi0&*I?{{fQH^-N18 z#4y}=ZscZY$-ifdQadjDoE#244%NjztL;oR_jBX%K(P{IPlPld%C9^7EC=ApjK7vt z=|{8FhUq94m%@EB<_tP{iS(+9HmPIqxoY0E1F2zE5r;HLEiVAWv~lP_@)fIAAEu=m z+Kdm4M2)uc)w%3!tXGA5o088rL`8x?`}4^|%y`WRw!MZB2mmBOuh8CQsQdZC-f42A z%mFb&Qc}a~eayg?958Ty_fS7RcjGI7R8kP~1J>kAr)vMBEs!O3`?b5sF z5OBJPqnE0EBIZ%Nm#-A;+PxWHVT4UgD%>*G8uXaUt(8i14%pwr9*NFU=A~}RPA=xp z8;72hwxN$AdR04ZyuQ^irN^86*uDdKSOp4B@0l?`GCss zSA*t50$-&+gZ{CS!t0z@q8dFxtZZt0K&&h-B^dvg=PKMmiOy~*Tq4%;vyi6M1o=Dr zGq333#@Pm!M@%?ky#E*J1?V3aVD ze11QuDpLkh!C_^meyF&AX?k3T>8XVX&J~L2+&^1_YJS}Roi8QrSq2|Hc-exWKF>IgeNGeV4!apJ?!c}Ao$&NW;9`y{De*Hztq#v zG^cTh)odt3y;|JvsXq#qNvi!XWTHGU>ZSvR0cz<$lt_a@2l}`^7O=*3kUP@>e+^hC zM%@C^dHwIDAYuEh2qu5*-tq}Z$f%VxJMYHVQk{vv-S)|cE-a!5|k3QqA|c`N4%RpnO4nR+yMus3VpvXN{lqA z))LUJdjRgZ?3O;UR;)b%^lA$MyR`u*0z#fla-b|61ecaN!H68&KdTxb$MQ#m51BpO zU&Cz(8HcD6Ovalda%&(vjcKd1|5g<|kGLhn||TJ8Thb1v!Lt>8gs zgY?4Gye<*+rvuE_(%xULXaccnx$7nG2Xh=JMG#fV%QZJUAtWxXeWpw?zrah@;WJyDRsPSQEh6?&WWweMBTux}0|POu9iDqt&sS^cb|Y)IpV^JG z$F+>aRSf{J{iA1E5RBOZu0-3O&a;UapXgi#8O!y46FwyCnWGaqGc1Jf{ z9L)2Q-G!|k04ZRvgU_VVZqB~fm;w$UN=A5U1lL`H{$nVJmTdZNMEHopoW>F9Du5HI zrMs}C6Tp2A7mU@Ijv!{qw7P!Qf&j3;E`{#{*viJh34sXg44^SjMb|R6i@{lob4KLt zu*hD|`y!LQ)vQ2eZqN1Ln$~iZ&!lU5l)(+123s!I0_bmRh%{BMIhZ+e6UB>5PzUBv zNs@OWyZM`KO?LuRB9PZ|2|&VcJWcqu%++y?v1=4SRdia`dNMEroz}GF&qpz12d-f_ z$N|PdevXQ>zJ@g8EqWK_#jotPgHTKZ2#x!u@VFkN9{Q94)qE1Uu(jF%F>zV@3$U=? zqryM_OABxsKdEMPm;oRQU$0)t7iVia5sSQk?%MNz}D55c|1N3Yxd(^1Fqe;10s` zY&k6*L?MkvwhJ;qxQf8B$qj-$1M)7oDO?pDS1KVs*AIvs0o882ekBoehooSUTa~Y6 z2>pZ76E1M}b6vWEFfpgFEmEfT{*3P72QRq%v)1|xKv|7@_h|4k6;)jeAc-|m5)h|J z&P6XrMm{je3~H%q0F~y$Qxxy0=wTj`gHl7KFy-S|MVYK`?D6!FdG4;=Umqmxc^WmP2nh!zKOSs!e#qvLTe*=3x%c)rmTr9-tn%gX zpjZp7Bh!fssvvcUjnoj5N=o#gR0WB;@KJ(R+J;nID;|Bn?!%2LBj_sxNMwYTgmIgc z_o*@L#k5SO4R5r)PPE*B)-G)P1JmE$tKU?=jNVPZL!8R^=sJjmRc$!24l;`$vOjgk zO-FOh5pY8jPRW)lHOx$@SHkp{B>*SAikH9Af%k$DjJWrxjtjF64~&M2nfU+g)*9~= z7Lgca(?doBGB4AWl^$%kh);E|_vNbAsA|(NhRd zd2vyiHn`(N(m}XnQ1W9IDi06Xa`N5FLM1WDmjQzqmu#(c$?~E>GnR%Y6?)KsO8rqY z8<6csa$N-7wMc)XLY+A-mm~q~F$Fo;5bya8c|u>c;*Z$l3J@Z~V8oq`p_8viKWv+E z-X0H#k1^N;a&JoRK616@%)+*5&~60CZ|35jDVgDJNP^nuM7mYKTdg3!@-GYe)%5A5Q z(jxtML!~;$aq2iFPi~s7Nl{n??N_?*p6K&Lb~?b$AwApr`K0*%@{1o$nSujIwg&8KN-_50m#-OF+7ZM3_YX0K47iLWDo+PHXt_5NHqm05Tr&I*-*o55Gu)B7WSeh4B8W}5xRM;hh%Q-sw0XQequWDzOy^!+W zhZIgd6XcfOq24BS1OagK6?NP#_Mm{Z$5%}M{n!@;8$%bG zS(mLnxSFFiL%Llb95{zzfl>u7;1va1iyhGZt~!F&>LDlK{c7mw_=S!oSg+W#FQ-y@ zyHY?*r_jTzs00G{}sw?p)u`Svf^`1sF3 z?L-@5W!*CMdpiYM2xfK_jKpg|zvR7E(JQ%&#+~Al>T!?buL3W+JgST5o;*_)h&TJw zWiN0&z)%q%`1O@Rbc$>DQPloJjI4nEa_LtgHfc`gl1^q{Mj1a(p#A6#e7j%1@uwvx{N`@>xP7=Qi>HK6;iwV~Q zpyg?V>%5m%w}UpuA&Itfj_keAjOplJn{e#xb7>o5XUm6{$f>%4pzVZJR;FWzR*~3AG4EiuvP3}-< zwTWX=F|A1L9ii;&lX~nNWkP$>a31UPxI()=hgIJUnJ!S!ngBGBccP+9{F+(vd)IWr z;8T3K?N%q=P~CHV(VRzR*FZcKMftIbj1bDF8ia+6)||#I1-7 zD@fX~ZI4><%fp0eF%b!7uo+JQuo^?Kb$4LShjflE>W2Otyz!|T z+Qbw6ie|5S^4ivQ&PY2avKm2Y?!}k)k_#ME-%uHN+iH!Pkp)S1R|E|Dd!h+hbRoMi z{P%lXV!L9m({1C!qmnXL0%Dv@a`hylM01w(W&tD6X!6z+eCqRSZF;bIT#aJuLp72FWCM z)ZaZ~8?XFx-|y0kKvCzFgo?y#RyJHk4bN|;Dtx|l!K4Js-r`lKAl@T$S7p)jKid25 zpeVoYKSe15f;0hXBE2KM2?7ExMUW~@L=mL-Dn+_dW$9g{E=mzZX@Y>LbOc02rT5-h zV1bF;N#$jn;UNi&BXbTzE9a|4_Jo&HUTbGB6Q0?- zpRbaCS#hS>l_M6f`(aqNFtN@g+2cylUP0z5-C4}+TLIF>%~yVdZ`7NC;6w>xeY3R| z=#4@@XOm|w{)N8tj^&#L`AM4`K3n>UZlmqcY7y3J4k1CH+-q-PsV{9WQ#{sDjyQ() z?^X+*SdK>n{f(qnr6PS+n<u(E0$PhEw;^`v$EQihN-Ck%-0b;rKeiaFUP=s$mq9ZRt;U+EQ6Wd z86c1C^3{Cg9_(Ngq?5&178(7S!p?s{ja(ij8p9jYe|KGKL4-xW8n>)e=PV%G{aPzK zNQP0hZ>hs;=D~Tc!@8oG*#P4jx{X1L;=w-m+XjNhx5>rP3v{?1AG}YgA!=~A=?+rAT(a`vRTR(dNrVcMT`^(dV@QjT&ExJSPeGZi4$ z2=8jFS?s%_X>ax?s0{OkCGPm1hB4d~S7L z5}hGU!ZVLb@n@KyYem-yN(e{@5AQ4|$#Tp{K0aV^U>@RC&&f!tN&MOS?vBYT^c)>V zu5@YigY27@C55RN(W)qV8Y~1FaA5Epi6_imID~ic91cgM0^2T;G0mu1$LTx*88UH*a-8*a93D z&=Q(ARyz_MFJMIlkVSnh#E?O4q7bD`+Cu+0%ub;&P{Q}PE6G1lHKu|s%e#PLrx}rW z?0+%Vt1hfv2lyrO8VWkF@%5@U@_gaSyvt*suBk%5_n}BrDFCz%kT_+8&Y1}9q;ClV zT?7J_=DcYx@H#$Jd5vl>)5hN_?EHI)Y#eEiewp#y7~Brq!iYaTkPcS-*6`;7`st~}2rXX;HswgBDQLd>_6UvkQ{8zQNAclR$apRQPme4z z3SBMB3tHUpKh(QPUe)-X(b8w4zU#so_iV$NjEUI5&;?6PR<@yW_m*otM@<&n1aR98HErn1up-Orl}M2vLxStK0p$Ya}F zaszeQ;*_q4kd)^cF%>DMXUM_*+?ovC1heVcfJs%{h|Si0(SjQ-ye(2;D+v@`aG~|w zDZvt%a(FV~V)(ZrcZZ`w9JTavVpx9;)K-En>$Xh3p%+L{4C!%lw5A%#5BW0MiN8on z;<=GC>QzlmW z(E3#2hJ1GDB*h6R9WKm{m{R?{5wX@tXYJK0{`x&D-8?EUnAz@}nFCedywSvyr&tG! zyN+Im5p?4riF`?!;}taDY2_z`hsQwcTa`y0&q7vlZzikh@r3YsTGfZp#RdFiwsl5D zA}0hm10C&~dq*xpe%atJXZ7_Tew1mTq$Qir;l&P=UnFFjehPd1J_@10morao{ofL80IXjxHVTpP>e#x zvq@CgMG<#iTNOUxHu_k|~Gf%SP(}jQ*2d1A^iCP!UJ#NcHcPobdz%1()9q*I&8TZ(CWp&mU7Vm7VYuXSM1) z%keqpNVvXVolRSETuf9g-M$$9HzdQ`W>X?uweB9f$@p*mjU9*rJWo3>KkL2AzsEn( z3Wl58W@hKyCp3$~m`LF{A4Pi_4d=qiY7c@Brxf$iK#)XlJu1MnHqRoC%rnC3RVZ9#eivJDw{etNKQ5j?39a7REyd?TgVSBgN z5gYcIf2V!7n?cY=?%%>}67^(fxBByx7YalT=yxkW09=Te4rGSf4IZL1Gr47r zjIgK>L$YJ`zm(~r`PCZaPYmV50;EV^kE@B84pM6H-|p!R`0keB|wThZ}jBcX?=1h1ro*gEVg3-?hM0#~qJS@IunrnQtqC z`E=1R^DEyo-y>-FV!R^03jOR)n;JLQxis+|2{TL9PNmQEYI3&-225@n@JY5PJ7T2> z4^p05myf3jt-g@Gp%?!8qWddv`z6B}s}u0}-Xh(41hE$+x7DAa39h`I)mNmyG!RpD zo_2Y@%bt^g?#;%H8RFLNws5U$xGdGX5OBb&dAm9x^4RU+C%Sg!yN<4lgW0^t>AmcZ zhukLvETC5T{8s$0E{8KQ)#zFO7V^A{Apd6~zSVE)01Sm?vG>T>WQV?AAv`LA)u$|9 zSZvz(d<|XKd;U6bTPm~mjMsIAG@b$jL*to}{5aw{iE)MsIhya3KJ@Sv3o?;WJ|*X+ zE^OWSv+|&w57xYFH*&mB!m<9xTYbw?zTb*chZAcV!jV<88TKLxo!x9&X7VGxRz)Rg z<}bS-&?{Bn-DL8j$_Lgg-Y1H;U1yS;E~``la+ds~`=Xe6V0(jO6gM{AlVpGU_t^0} ztkM0hbH!Qtig~Jj+uzjYoK3(;w%~9V?q+t${1Sp!sA=y<{u-+nKmJVUJgrxUE8OW` z%Wi;J9zCsxX6^pcv5z|}J{FKGHV0=$1<|Ki$}H%v8r*hp5XQn$@-m>qi7?io!`JB& zll7kI%AF>en%kwDBHbI2WQSIz<(c2YR8{B_+E$YdeE zW|Gll!sn|=`VFoBDB8{w?!O3gGM-NniS*Pjx|G~6Em95nk?dZ2X3XEBy-3yPVEx*Q zCZZYtju!ol-n30xSAn@}ya;ZRs11V@C{;G$EF2mGM~&$1d&O>QKl)#by1gV}>eJ$KbUrTe z?^l}-28iicJZkOCF6RHO@nTv|L;Q>BCet-ARD+rQ%7dfXSY>rB%_7bPa@qh`EDxQM z{Xq(cnQvY#-R4sJnoG+Is8_m`KP+|sI@`|9u&^$jXJ0t$l{O`mCiNo!dTgW##ggVm zj4D){iQCxxjKCKua}OucbzJrQ?WPCdAy=kSr=mXY665%LuoyqN^rM1hsRNMKzh*6c z2aIGh_r%;lu9ajOlP;ucwylQHTllnQmA>%@7>gAJtZ^n}gAf=#0yeMwm{zYOSk(3g z*>%)P)Rycr?yBV( zD04wfe4DOhf)=-UHdn4jx88$a`E)!UD^q{vAme$BP+9VU^@y%78RTSC3Uh`Q^M{MJ008THg#W+}oZ_=jJhD zCgGaE*yfVzrXMJ*edx?zZZ(kgGYz>B-%;PnBLe?x<^XpQ+rX+b%h+^%H z=Wa#(-Imyl?FBD!E2BV7@bZC6(iS3jT@{wjC`G8xj+OHEj~P{`y)8dIKjJ16l3E@% zTD4jGHO-4tdK4Z^E&1)xk|BRvO)@A}e0W?GVZ?upV8k}>gAXOApgjp!m*MqV>0Hu= zI#FP!isPIE`wbJ2IfLP)`z{VdlN|@DJ1?hC6S4ZeO2=`U5Xa#?tWBv1Hu@+*sfvRZ zJx%siV3arX6V5L52Qna6v}sAU{9S-;dDo^I0R0Td)zOCs5eWH$l1;yizj(7WF&T;4dMF&3|LL9j zOb?mry;jMahiw+b$K4v6DH>$4t=rO^ zw-`Q0DX5ttQc|dCyRE1)Ue^ncaoA0j60ZAj8;t?6{_c%&@$B>`n1Fgk2irVGT{CA=g(mtDrbYS* zoQ1#Cwo;n?y{--~Ptv)ioNFripW8N58wS1laT|Mw)Y(VG28#6)nyKr-!f#q%U13#< z*4vCc{ovzBm(ADWmQ?25dy{&OYz>&L8j;QXpP2>u2P9bxaN8;*x~>Vox89$&?T)Na|q-b0E`!7B7y+pJN5^aZlQM67YCgKdf$TPowLewp`*Micrx^)iP(^+_~57;vZR5F zqoic$?aWa~a`;-n8^nFoE4xNI=kqf7Ui*mS`@eQFxX}KW;#PzAr>rtrvBqj`+*w8I zNcaR?xLZ3MCaQ}UwhtDls89MIN8DCvvZ=qz+YE`$XV4zim<2hdiR-D$&F#&vv{oa? z4xz{SR7_EBl_(2wW^IZwVv|W?^r=*5G*>y#PxKhpCKm|FQ(RjsVaml71F4MP+<2Yv zO)O(H4&t1{hPWsZYHX55Xz4|NI^Xfe@aOD#fn^3$5%mRjn&pPJdW{>pVCb>9flXUCJ39PW|>uEu6`+cN9g#25dl4t zLW*9^P*VvOXsmV8&d%)%#P4IfyMqkVhN?FNQDBQ zvrW<9ZcOH^*bJsDi(lbber~YJ-%gLtlz)^fACQLDv{UP)I5#0;k0*d+qTaRaEJ{vr z-`>9kf|Abc2c=bcw9Go4)>?eNMZubPEL(-HaDLCDuyKlueVTg1>`g~Mxl>&(f#7F# zjjsul-9g_ytSd>K(}M}aA3+#wtSYu=3H_zChA}58hiXh;JeSpCLre1SC-u>RFD?W8 zl`8$Ek^%3ce`xmAjIS@>4BJG>k{%abcFtI0C-1@P43hL1m)Wp6?LB%?d}ur|5;B<^ zm^!o@J|4f+9dO?6bBPn7%`=gm=&P@v$!(s|vnaL5Y1R4P3u3=lFDm;lEa3k_etQ8E z!3k(Hel!Q2AkwGqw5zCmO$fqA<_Zj5kS{USGrO75r^XWS7BZ8v-8y*y=hmXkMe?cv z{O&nSxR@s4I6}zcuVWdEICm0;Zh5MYWW$xS4@n)MFByV>JTHhs;u6mgwro93$S4d@ za1Mw&l+Z2koFPyGI;r`L9W0zHcT0CK!mJV*!+gf+dMHqY@}#DGJS-819~f?w8ttjzR$ zBJvsdA>~}eVSIG3lb`Dc-sNjhXj@u-p25wW;kj$D3-B!x!gja@wAbJF&SM2K)Z`b{ z1;8o`)cz#ICTXsxnx@I~9huunlV97uz(7H9w`Y+Zb9dN;?yN)8#P96Ol4NEP~RI#zG{XhYvZaU(96khyl)#NKrRGIrUpMi8?v?{)tW5k_#=KylX$Pa~2#w&hJPYOUEK z4k8qR%@!nsn4CqvQ7;M_LH!>#+HcV7sXNcbqrRtk)+!~J6hL-VnNh{vqyt~#yC)Dz zKwEVJ8Up*up=MA;HiIzmS;4!~fH-Vs-1b9)B->j936;$g5e&5=7F+x_kS@yWJt(9* z<5U=OX|a5W;Ua7qc98=8&}3oDQih6Cl}d|UVs;a{C{TbKB==$vK`ysrzu zDFv5O&UjdhA<+cMh9*2H!UK78yDas1t5oLx)JlO7j#<7dYz&@ndDO|8Uy!t}Xf>Mg5}ea#!Z3MXXY zk+6+Utak&$k_T9!TiQRzG8p*=17#coA^aFTz2;=v%R?Avu9a3er#_AO&&8CV3ZgZ( zO6c@vS6q;-s^?r-&!(p@GMTp!sU%b0horC*K-9oWJPWse(%aJzf%XT{IRb8*U8Q&h z^P!|`yiZqP=mWh%O@GWnhU z#qHaL(f&mC%Ua-G13-@Z;OdxchVW6Nv8Di_x@k()R~)I%l{kht%U2|^B*%!h zuX(>O^7;`748DUEblsvU&V}eB1aM=0NLG)*nfu0-<}r%*-ug)&61fIDd#1utHIdas z*BOa~v)iS7w9YP|>6O&5fY@RoNn;QG&jnmF(3GIdyKAlb?vGnn!EL%(uchI#O%Wt< zNC>t!{#ETU?&TtImC{VCDm~Jjk$%TDkk5h>j7p z?vJ~V9noHDK9*)gk&$5amKjotVwr%?d7cUfLe2$99j;zVUoOtyg*8AJ8q}q?_zlaq zwayXl(cZIWKarYgOy~90+h}1MGKZYKE}Xc>!Y#;&yP+$4A66E`cj?)EVTPVy7-{b! zWsyhtmWuVutY?aZ2qsY)#BHBK`YhpGE1cVgFUk|r^?Hilm=3`mrpZrHh=dJ@t4T}X ze@_U}+n_GCz4KyvV*_S*Af_11chOJ91-S~`Z()mrkW~S+4{g$3Fr??s`rXd#U^}=E z6d=C|y;(4-d6 zOvvc+5z01CK*A*^m!x28@-bRcP%pczg9udw%L(x_*zpuHBr!-VW{sy3xxa7hz{SPl z^zwP{C&C1J!yK3L9K0k|MCR8LN+=rCJfy3^1ny9?j<53UeB|v7cVJ*e3E%S!OWn(Q zPO1?Hw*LCsXQ_RswZ{;?&_L@(! zNrt}jWnIM7t*4+?*{_A34?4H7KF0pHFQFNUSM}0DAz(;L5Fi7(v=gC|mx?r6OAg@D zwsZs)DBr@ZSQrm+xMsBbLNi#Wi8>Dc(|y$8{Xr?lW!lE z`D93b$a`HVk=L6~QQSQ6igWz~P2(P)B{(0{?G#J&Ol+9*loryWB=y*1?8!k|4ij_U z91#19t6i}=)YciF;7P;DLvXdJO;CvDRNM>+>_p{Ket4Mu<*^hIy_Q$<0n)&?>6++y z*D{`}-#pUM8({Sl3cT*i^0+_0K$GI#$x|#${oqoq=k9@%UX=FMs0YF%Rx`k8q`aYA z1){Q_fE{3AHzLCQWsu1(F=W*_hap+%C~p!Xn|eolM0d)?bEPhETVH7c*U%9Z8U(Xp z%-T8)^SCYrZsbkh%1^f)ETUmdxb4pyj-2u!@X)wKdG`(|$%(x#ajX7v0PI(by*)23 zQ~`HSdWFC3Krxiy>QW=@@JQvnizbg)>+wL$yzu+Ib4v_QC>KGrSkq9-?>d+t}SYmz2)(hpwW*Sdi(gTuDjc^)q4i~XM^Ttl9W$s{-Bwvn-U?m`Rz&O<&R9E$T$rxv(< zf4DVksogMOzWAP-v+LEbx{8cI^0ppi3m^g4=vDtFB-hj6-pdT_oO^*_D~31fd~h0{ zu4RTs@n-=coAk8?YccQ2}RpX2dx zUr6>@un_$U5f$tw`2|MxOa9z`MvW5h;@l#)9?o-f^*A0l;h}j!fQM|MM?+7`-4w{H zp|Au!cqXx9nsaY?@n-jU%(GJikDxeq%%h(~3<*$9Av9~NbH;ZJaKpFHlFenzth|P2 z!#F_p>n`Q^(Jc9j#z5OI3-FAw#@ELg$hCCd8dU-&djo zi9&KN@DE+(Oe^}fIe{=Qf|Ub1Q1(T7Nu|4 ze~Dv4LR>QLT^fY?1A3rd6b)Ecu36VsyT2EIdShA;Q4(knDmdCpS(-6Bmu9pW8cO$_ zbRI%s-UziEm+iH5H7KIRa(^NT=O*h&rp0BUeVumaL=H&Z`-xabAj^YM){Ea;0eHwN zN{u~zT_!(f%{kGlib7>YV+)pHM-WqoP3=yoy2 zfA)#oMP?BzqTCpm@Fc!-2^TN7Nfe}fBe@z;39j;!$SINQr)aH<(g=o?+Z^DJW!=7a$?C}TX6zzK7B_V+Nt=LW{fE(k=8ZXvUQ zXvz-8i{Gcd?c}_SF@&lU_A*}0L)Dkbp}EhVAQ7BU5)+@mrgHugL%+2abdotuK;-#U*q zbyMllahIoB?Q4xa?VE!p@#}0gro!s>C7n_706bo9M7gX>%!2nzJKP$kj-X0KA9hkV zNtNQ~ed=LbZaz6SPz^-yn#Y0KrQTjMr8+|R&Y6YDe_;Xo0Z3D=nf8&vdGfV;z8a39 zaPx;Iw1+iUc}`5*8fTX!eeM`(BIMZx#A|Q-ZaRc!zWZq~K*~;qX4Nd5w&t z@p`9@kVJVJU)~S8Jk=7831BItS@%0LL>{%5LM-e4Z5k>PGk(=<2{V?F z86*h_Y-{&FnVCJ|ct>vsom*DdFI#*14+aWaIz5f)0~YAhOkrvCVfr|9Fk*=1jzUKXIAp|!qcM;jRD z1+8sY`7a2RI2Ty%e1DymdN*C?12O}C{YJ+ zpIzi*tQ zmIjSowOc~LyL_-Fr-V~X+r27F5xP(HM(lcw(#>czm!~f@+pT$hzZ3^8$7J)3448 z`5OMcmrcDB!&lLWwhTbTX&KK|n*mlane>-!$I8$tqWAXM{*+i=VE3PeQ}1Di5C@Lg zX`p{0MOk>T&eDt1jLMqZjwzLvPs*>!^u1He-$auOp8@2d!ys{VBC$%ek@U|&=#k(@ z>1+qK3sW$-)%Eiv7ud^UP4+cxN?OlFkNVCr`2~s=-gysq`a}8Yg1k_oPD^{@%#Vmy zxvMMnlTS9eiSUSK#ct6pjl*`GGMx8!tK5+yod0ueHsMgyecJ`p0HTc*v# zn-`RllhINflarx;d8Q&K+&Vf%1(;4NPb0(Y%G?J&Lh&Yz8@UiGo}ld`dgImcDm7P$ zL}aN*bsb;?&O3WOvsg@#nA8gTi_3Eln_8CEoLiK>+Osr4BUa3MJN{GDM%aOUp@*kR zFVQe(eY#SP&G2!wjLS_``|;elEIFQk3^s)iJ$0l{=tKrGoywMNvjGk&;|$85kd*Ea z$~BcAWH|Bm32A@ZkScTGQ>fe;UDq;~?X=vF{^P z4RQGQdeURJN6)@ap&P~%xJic*qk9tW`;h9mvHEI?iv4J(P5fN)GN4)d5$WHZ{v`3* z`a#)8`P>N7EwyY!9X!^#Y=1=EqO=?vfAL(9I-OP!0@*sx+Jq8TA&(6Z8;fu_vd&p^3{|c(}%@wZyyJIu|SG}|UFGqa-`@Q~q1^&GP|6YNAufV@o z;Q!|pDA2ot`oSYB=<^0#J-43w~=$0k7(uGbf)~ppWOE znl1nDf0V!QpsDE3;@0rt)-VO~Yb;tUTjDc@pc~Fbx|7s`6W7s^!*`zoepCPRs=cO< z$5Lwl%L}&oE}1y*_%0=}1)>hf=gRCqe4i`Ri^Fm(1ZBP7Z4z)DlW3=CWcL+Ejr)Jvop*ZqJNd0&=WG(DuUx~k_ z6WIMFAk)o$a%*^Ni_^34+SwqiAj8JDcov0Y0Qa?yGn+V47k*XG0r+OJS%k2t#W}V` z=}5(h+c6t_WmEx3S9}*x+AEcoZN#fE8IELk{u`Sa=Q7Ne#Q=)u3px=ntNsG&`QqKa z=d8-;s98W-FA^VT$oCC*RHs5`;a9X9R;Xcx#0oKEWjl zHsdy-<(h*;4PQ1Zg;btXfQny4(d+ZfyR!@A5BEK2kKj9Xij)F%Ls38RmS$Zk0aFOb zcLJd$<@e=FM&Gb|Y~s|I<}iOm=TI)1Rf}Hw4ty7<4HB2)AKi%B$^bRD+&A4e(qmbYucTnhgiJL`< zszEs%Kv`(}qtCBSUanzck}Lo4*)(8O#vqmL7#XSL^6+E!P~02&d^^>bq+c)+z`UXL z3+Tu6Chr2B{M1){wHwdn2zrdWB0DYI2<&X>590?v@xB6OUGVbS-v-HR1gjeFFPkEH zvWp`%eCENO6|u6MgUWjHeQsFNeFiV%=Zhg*!!@IDR$!oSf*3bf7*9u@nr?5y*>rHI ztAxxPq>qj?pI5dPT}4PX?lbEaQ75Dg2&G9(K7i5VT7|iMTBaeRq?GF~z1#?Q+&9qElw6NHXsg6xz*%w#kt>5GxM?b!5EWFd~ z^VR_sb>hJfngaUci*iJTo)>$YEBpR+;wxibAaM7ykm*qc{qJxYY%djFD2Y()C_-u zT^la@4K!>zOPr|sEX7UnqBBq5ucw|CWWv)`_=IERN#Wm9Pop3zUIqM$?4%3!+2IKG z;0En9u!rT9A1n3iOd;sxx0@`1dRgDpNWk6rDd)(qo8X{G8hQNG^nMP7gl{t(0-HTo zTW1eubgAc1lMqG}uO8l@cjhP9Q>)c}L!xnX?tPdN)4i>?*jI`_bf)P@h?#Ya`~^1G zTo5rYTy;Ts1$A2z1CIk4e?tyu1VnE;Mk6}j_iIXCtyeGt$f506r{<(LNgRmI@yLap zf0Iph8e)KqnucJe(>;% z(^^zFYiWkzD=7?lDa!A5G-=GV3j!dEoQu5`B}XkT95ozP%q8(j%xYG^wsS zLiSnc$8gx`%`lc8#YZeo*~y?U%e}Luj*L6MQA+q9mw?fFWZ*9_O_**PUdejF>&wT} z1RmO%igaO1C8<|V5KD~m@FQUTdrsP#Dh;1|G`S-A_Rsm@G6uFlJSkfhhcjmtSUl5y z_y{~)f3@O{tW@XLZ~~q8DxbGUV7O_tw>;MZoaT?wP51VnQE|<(go%9oMExPkC0PCw zTqNkXayccyn9&%{T-*d_M#KZ!w!1`#k>e=^TiW3rn0rf!IqyDNKa6a8ng{DtksK94 zgKGEZjXm+~dA8@#CV>O_#nc>`hJ+Y=?h z1>d=HKgY8mOzqaKYICaE>*vBk6!eaBaxENl|6{d>6uLAnCya6QMQPuo8jUg3=Nkt`Rt{ND%z35eIq_g6+6TCcAG$7ZAI z4`vVWS)hzRA2@QUbsPd5D;9n9fh4(pqH6a=wh73y465{V}k|2$>Fw70G5g*9PDf!s-KBjO1ZxAF*~% zsq*_LlmQ*%EI>kt;%~DW!hmdteK&HIAM6YU+TM+62%;nN<&ts8 zG&Y4s!M*CbiRD1#3hAIwpgJo@qHXSS1T`M>s>(ESz5i0)uuB&gx|0*w1`z57)H!d% z&1ZN5`=c*`y7tvE#FQxq7nseZik#vgJ|KkArt@$Ukif??z6$&OP-3zPWsW%IqTRx03T@HiS-LrY1f;&5KjZiL2#zGAP->+X&&Ltu-UsE(Wg^U6 zVh_G7j_Rl7kLGpv55BKmJQUMN`u4c)EF+mmUX9aK-vk~#%dM|i0O$B7puQV*8>dD3 zD{x(^sQM`-*mreZVD*B#`Utqt-+zyWhX3OfHe(Bn=q1I>fwp2<(w$xsdD6^^ei-^Y z$zO4VNSpg0xk2qcA+(Xt)X%@E1kkZY7yB)|)IrEL!e-r4uzffr*m}{1_jPshfqgQ|UruoklU*gqrpwal0Tmx)}W~s{C9&F5{L`R>2yixD8JRd_$=h zNc^jE)*p)8!Y}i`->@4tqFjc_O<%Q~*XF?pbE#tXJS{V#EUC}4$}4C*!#ijwV-N zR4L{HE-dg%Z?>$vE$s4V>?pfprGBadrn$5SWP*s{=fD2QCeu+uFaYe%Fxx_l9i`i# z{7E}Uu1-0UEG$s18>EmD0 zzn|?E2+ww#i$X_8ZaN}5NoqRv{Rx!kUtODFgl#N0SO2pesIU^Al5;JpMEZY*4X_8I zQ`R8*BZSEp?Gb~{550K)_N_(HVXjW3!t#IN%}w`58-l%;$s_mS#tQ&()HyvoShE$R zFa>T<6!PT+`+#jEow7-@jKJYBsT=NmiDmfmx7F7l*5(~tnc1>~XDSIUqjWPj0i-@k z%aHTk1an8z(XMGZ`|{)6q<0wNhL5VNUF#3RLDDhrsi?k?^98{@h3jbGU|^wR)-atg+PoVya_4O(E8aFL3Ziu7j#*BfI(2eV k>tqH7;!^}jb8zMqsaO7}wk6L4vQ%K!iX literal 0 HcmV?d00001 diff --git a/apps/site/scripts/build.mjs b/apps/site/scripts/build.mjs index 9f2ebdfd..41ae67fd 100644 --- a/apps/site/scripts/build.mjs +++ b/apps/site/scripts/build.mjs @@ -11,7 +11,7 @@ */ import { fileURLToPath } from "node:url"; import path from "node:path"; -import { mkdir, writeFile, cp, rm, readFile } from "node:fs/promises"; +import { mkdir, writeFile, cp, rm, readFile, access } from "node:fs/promises"; import { createServer } from "vite"; import { build } from "vite"; @@ -20,34 +20,44 @@ const root = path.resolve(dirname, ".."); const outDir = path.join(root, "dist", "site"); const manifestPath = path.join(outDir, ".vite", "manifest.json"); +const SUPPORTED_LOCALES = ["en", "zh", "ja", "fr", "es", "ko", "ru", "ar"]; + +const DOC_SLUGS = [ + "agent-deploy", + "agent-ingestion", + "agent-memory", + "architecture-notes", + "deploy", + "design-system", + "maintenance", + "memos-compatibility", + "memos-ecosystem", + "plugins", + "product-requirements", + "release", + "semantic-search", + "team-mode", + "tech-stack", + "update", +]; + /** All paths that should be prerendered (with doc slugs expanded). */ function getAllPaths() { - const zhDocs = [ - "agent-deploy", - "agent-ingestion", - "agent-memory", - "architecture-notes", - "deploy", - "design-system", - "maintenance", - "memos-compatibility", - "memos-ecosystem", - "product-requirements", - "release", - "semantic-search", - "tech-stack", - "update", - ]; - const enDocs = ["deploy", "agent-deploy", "memos-compatibility", "update"]; - - return [ + const paths = [ "/", - "/en", "/docs", - "/en/docs", - ...zhDocs.map((slug) => `/docs/${slug}`), - ...enDocs.map((slug) => `/en/docs/${slug}`), + ...DOC_SLUGS.map((slug) => `/docs/${slug}`), ]; + + for (const loc of SUPPORTED_LOCALES) { + paths.push(`/${loc}`); + paths.push(`/${loc}/docs`); + for (const slug of DOC_SLUGS) { + paths.push(`/${loc}/docs/${slug}`); + } + } + + return paths; } function outputPathFor(routePath) { @@ -105,6 +115,30 @@ async function main() { const publicDir = path.join(root, "public"); await cp(publicDir, outDir, { recursive: true }); + // Mirror the plugin store (registry.json + artifacts) so + // https:///plugins/registry.json is the default directory source + // for every instance. Generated by `pnpm plugins:build` beforehand. + const storeDir = path.resolve(root, "..", "..", "plugins", "dist", "store"); + const registrySrc = path.resolve(root, "..", "..", "plugins", "registry.json"); + const exists = async (target) => { + try { + await access(target); + return true; + } catch { + return false; + } + }; + if (await exists(storeDir)) { + const pluginsOut = path.join(outDir, "plugins"); + await cp(storeDir, pluginsOut, { recursive: true }); + await cp(registrySrc, path.join(pluginsOut, "registry.json")); + console.log("[site] mirrored plugin store → /plugins/"); + } else { + console.warn( + "[site] plugins/dist/store missing — run `pnpm plugins:build` first to publish the store", + ); + } + // Emit sitemap.xml const sitemap = buildSitemap(paths); await writeFile(path.join(outDir, "sitemap.xml"), sitemap, "utf8"); @@ -127,14 +161,62 @@ function injectAssets(html, entryJs, entryCss) { } function buildSitemap(paths) { + const LOCALES = [ + { code: "en", prefix: "" }, + { code: "zh-CN", prefix: "/zh" }, + { code: "ja", prefix: "/ja" }, + { code: "fr", prefix: "/fr" }, + { code: "es", prefix: "/es" }, + { code: "ko", prefix: "/ko" }, + { code: "ru", prefix: "/ru" }, + { code: "ar", prefix: "/ar" }, + ]; + + const cleanPath = (p) => { + let s = p.startsWith("/") ? p : `/${p}`; + for (const prefix of [ + "/zh-CN", + "/en", + "/zh", + "/ja", + "/fr", + "/es", + "/ko", + "/ru", + "/ar", + ]) { + if (s === prefix) return "/"; + if (s.startsWith(`${prefix}/`)) return s.slice(prefix.length) || "/"; + } + return s; + }; + + const getUrl = (clean, loc) => { + if (clean === "/") { + return loc.prefix ? `https://flaremo.app${loc.prefix}/` : "https://flaremo.app/"; + } + return `https://flaremo.app${loc.prefix}${clean}`; + }; + const urls = paths .map((p) => { const loc = p === "/" ? "https://flaremo.app/" : `https://flaremo.app${p}`; - return ` ${loc}`; + const base = cleanPath(p); + const alternates = LOCALES.map( + (l) => ` ` + ).join("\n"); + const xDefault = ` `; + + return ` + ${loc} +${alternates} +${xDefault} + `; }) .join("\n"); + return ` - + ${urls} `; diff --git a/apps/site/src/components/card-gallery-section.tsx b/apps/site/src/components/card-gallery-section.tsx new file mode 100644 index 00000000..60601cff --- /dev/null +++ b/apps/site/src/components/card-gallery-section.tsx @@ -0,0 +1,65 @@ +import { ArrowRight } from "lucide-react"; +import { Badge } from "@/components/ui/badge"; +import { Button } from "@/components/ui/button"; +import { + CARD_IMAGES, + getCardGalleryContent, +} from "@/content/card-gallery-i18n"; +import { getLocalizedPath, type SupportedLocale } from "@/lib/seo"; + +/** + * Share-card gallery: the five built-in cards at their real 340×420 aspect, + * captioned, with one line explaining the plugin model and a link into the + * plugin docs. Previews are static PNGs captured from the running app, so the + * section stays honest about what the cards actually look like. + */ +export function CardGallerySection({ locale }: { locale: SupportedLocale }) { + const content = getCardGalleryContent(locale); + + return ( +
      +
      +
      + {content.badge} +

      + {content.heading} +

      +

      + {content.subtitle} +

      +
      + +
      + +
      + {content.cards.map((card, index) => ( +
      +
      + {card.name} +
      +
      +

      {card.name}

      +

      + {card.caption} +

      +
      +
      + ))} +
      +
      + ); +} diff --git a/apps/site/src/components/interactive-showcase.tsx b/apps/site/src/components/interactive-showcase.tsx new file mode 100644 index 00000000..ba10d59f --- /dev/null +++ b/apps/site/src/components/interactive-showcase.tsx @@ -0,0 +1,179 @@ +import { useEffect, useState } from "react"; +import { SHOWCASE_I18N, type ShowcaseContent } from "@/content/showcase-i18n"; +import type { SupportedLocale } from "@/lib/seo"; +import { DesktopDevice } from "./showcase/desktop-device"; +import { + createInitialMemos, + type Memo, + type ShowcaseMenu, +} from "./showcase/fixtures"; +import { MobileDevice } from "./showcase/mobile-device"; + +export function InteractiveShowcase({ + locale = "zh", +}: { + locale?: SupportedLocale; +}) { + const showcase: ShowcaseContent = SHOWCASE_I18N[locale] || SHOWCASE_I18N.zh; + + const [memos, setMemos] = useState(() => + createInitialMemos(showcase), + ); + + // 当外部语言切换时,重置并切换默认展示内容 + useEffect(() => { + setMemos(createInitialMemos(showcase)); + setActiveTag(null); + }, [showcase]); + + const [activeMenu, setActiveMenu] = useState("timeline"); + const [activeTag, setActiveTag] = useState(null); + const [timeViewTab, setTimeViewTab] = useState<"trend" | "calendar">("trend"); + const [searchQuery, setSearchQuery] = useState(""); + const [mobileDrawerOpen, setMobileDrawerOpen] = useState(false); + const [presetIndex, setPresetIndex] = useState(0); + + // 输入框草稿与同步状态 + const [desktopInput, setDesktopInput] = useState(""); + const [mobileInput, setMobileInput] = useState(""); + const [isSyncing, setIsSyncing] = useState(false); + const [lastSyncedId, setLastSyncedId] = useState(null); + + const totalCount = memos.length + 63; + const tagList = showcase.ui.tags; + + // 发布新笔记 + const publishMemo = (rawText: string, fromMobile = false) => { + let text = rawText.trim(); + if (!text) { + const presets = showcase.presets; + text = presets[presetIndex % presets.length].text; + setPresetIndex((prev) => prev + 1); + } + + setIsSyncing(true); + + const extractedTags = Array.from( + new Set( + (text.match(/#([\w\u4e00-\u9fa5]+)/g) || []).map((t) => + t.replace("#", ""), + ), + ), + ); + const tags = + extractedTags.length > 0 + ? extractedTags + : [showcase.ui.tags[2]?.name || "ideas"]; + + const matchedPreset = showcase.presets.find((p) => p.text === text); + const title = + matchedPreset?.title ?? + (text.length > 18 ? `${text.slice(0, 16)}...` : text); + const quote = matchedPreset?.quote; + const cleanContent = text.replace(/#([\w\u4e00-\u9fa5]+)/g, "").trim(); + + const newId = `memo-${Date.now()}`; + const nextOrder = memos.length > 0 ? memos[0].orderNumber + 1 : 66; + + setTimeout(() => { + const newMemo: Memo = { + id: newId, + orderNumber: nextOrder, + timeLabel: showcase.ui.justNow, + title, + content: cleanContent || text, + quote, + tags, + isNew: true, + }; + + setMemos((prev) => [newMemo, ...prev]); + setLastSyncedId(newId); + if (fromMobile) setMobileInput(""); + else setDesktopInput(""); + setIsSyncing(false); + }, 350); + }; + + const filteredMemos = memos.filter((m) => { + if (activeTag && !m.tags.includes(activeTag)) return false; + if (searchQuery.trim()) { + const q = searchQuery.toLowerCase(); + return ( + m.title.toLowerCase().includes(q) || + m.content.toLowerCase().includes(q) || + m.tags.some((t) => t.toLowerCase().includes(q)) + ); + } + return true; + }); + + // 双端共享的菜单 / 标签选择动作(抽屉额外关闭自身,时间线额外清空标签筛选) + const selectMenu = (menu: ShowcaseMenu, closeDrawer = false) => { + setActiveMenu(menu); + if (menu === "timeline") setActiveTag(null); + if (closeDrawer) setMobileDrawerOpen(false); + }; + + const toggleTag = (name: string) => { + setActiveTag(activeTag === name ? null : name); + }; + + return ( +
      + {/* 真实高对比双端硬件模型 */} +
      + {/* ============================================================ + 电脑端设备:高对比 MacBook 视窗底座 + ============================================================ */} + selectMenu(menu)} + onTimeViewTabChange={setTimeViewTab} + onToggleTag={toggleTag} + onSearchChange={setSearchQuery} + onComposerValueChange={setDesktopInput} + onPublish={() => publishMemo(desktopInput, false)} + /> + + {/* ============================================================ + 手机端设备:高质感钛金属 / 极夜黑真实手机硬件模型 + ============================================================ */} + selectMenu(menu, true)} + onToggleTag={(name) => { + toggleTag(name); + setMobileDrawerOpen(false); + }} + onSearchChange={setSearchQuery} + onComposerValueChange={setMobileInput} + onPublish={() => publishMemo(mobileInput, true)} + onOpenDrawer={() => setMobileDrawerOpen(true)} + onCloseDrawer={() => setMobileDrawerOpen(false)} + onClearTag={() => setActiveTag(null)} + /> +
      +
      + ); +} diff --git a/apps/site/src/components/locale-switcher.tsx b/apps/site/src/components/locale-switcher.tsx index 15390df8..4be21627 100644 --- a/apps/site/src/components/locale-switcher.tsx +++ b/apps/site/src/components/locale-switcher.tsx @@ -1,40 +1,105 @@ -import { Link } from "@tanstack/react-router"; -import { Globe } from "lucide-react"; -import type { Locale } from "@/lib/seo"; +import { useRouter } from "@tanstack/react-router"; +import { Check, ChevronDown, Globe } from "lucide-react"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; +import { + getLocalizedPath, + LOCALE_LABELS, + type Locale, + normalizeLocale, + SUPPORTED_LOCALES, + type SupportedLocale, +} from "@/lib/seo"; +import { cn } from "@/lib/utils"; + +const LOCALE_SHORT_LABELS: Record = { + zh: "中文", + en: "EN", + ja: "日本語", + fr: "FR", + es: "ES", + ko: "한국어", + ru: "RU", + ar: "العربية", +}; type LocaleSwitcherProps = { locale: Locale; - /** Path under the locale (e.g. "/", "/docs/deploy"). */ + /** Path of the current route (e.g. "/", "/docs", "/docs/deploy"). */ path: string; + className?: string; + short?: boolean; }; -const LABELS: Record = { - "zh-CN": "简体中文", - "en-US": "English", -}; +export function LocaleSwitcher({ + locale, + path, + className, + short = false, +}: LocaleSwitcherProps) { + const router = useRouter(); + const current = normalizeLocale(locale); -const OTHER_LOCALE: Record = { - "zh-CN": "en-US", - "en-US": "zh-CN", -}; + const handleSelect = (next: SupportedLocale) => { + if (next === current) return; + const nextHref = getLocalizedPath(path, next); + try { + void router.navigate({ to: nextHref as string }); + } catch { + window.location.href = nextHref; + } + }; -function localizedHref(path: string, locale: Locale): string { - if (path === "/") { - return locale === "en-US" ? "/en/" : "/"; - } - return locale === "en-US" ? `/en${path}` : path; -} - -export function LocaleSwitcher({ locale, path }: LocaleSwitcherProps) { - const next = OTHER_LOCALE[locale]; return ( - - - {LABELS[next]} - + + + + + {short ? LOCALE_SHORT_LABELS[current] : LOCALE_LABELS[current]} + + + + + + + 语言 / Language + + + {SUPPORTED_LOCALES.map((loc) => { + const isSelected = loc === current; + return ( + handleSelect(loc)} + className="flex items-center justify-between px-2.5 py-1.5 text-xs cursor-pointer rounded-lg hover:bg-wash focus:bg-wash" + > + + {LOCALE_LABELS[loc]} + + {isSelected && ( + + )} + + ); + })} + + ); } diff --git a/apps/site/src/components/motion.tsx b/apps/site/src/components/motion.tsx new file mode 100644 index 00000000..1bb8f0f6 --- /dev/null +++ b/apps/site/src/components/motion.tsx @@ -0,0 +1,202 @@ +import { animate } from "motion"; +import { motion } from "motion/react"; +import { type ReactNode, useEffect, useRef, useState } from "react"; + +/* ============ 动效 token:全站平滑入场与物理弹跳 ============ */ + +/** 张扬档入场缓动(ease-out-quint 系) */ +export const easeOutQuint: [number, number, number, number] = [ + 0.22, 1, 0.36, 1, +]; + +/** 带轻微过冲的 spring(横幅、弹入用) */ +export const springPop = { + type: "spring" as const, + stiffness: 260, + damping: 18, +}; + +/* ============ SSR 安全入场:首帧渲染最终状态,hydration 后再补动画 ============ */ + +/** + * hydration 前渲染普通元素(SSR/首帧内容完整可见,不伤 SEO/LCP); + * 挂载后换回 motion 元素,从 hidden 态动画到 final。换装只发生一帧内, + * 视觉上先看见成稿、随后补一次轻入场,而不是长时间的空白。 + */ +export function useHydrated() { + const [hydrated, setHydrated] = useState(false); + useEffect(() => { + setHydrated(true); + }, []); + return hydrated; +} + +/** 系统「减弱动态」偏好(SSR 安全);为真时所有动效组件直接渲染静态内容 */ +export function useReducedMotionPreference() { + const [reduced, setReduced] = useState(false); + useEffect(() => { + const mq = window.matchMedia("(prefers-reduced-motion: reduce)"); + const update = () => setReduced(mq.matches); + update(); + mq.addEventListener("change", update); + return () => mq.removeEventListener("change", update); + }, []); + return reduced; +} + +const entranceViewport = { once: true, margin: "0px 0px -64px 0px" } as const; + +/* ============ Reveal:区块入场(进入视口一次) ============ */ + +export function Reveal({ + children, + className, + delay = 0, + y = 18, +}: { + children: ReactNode; + className?: string; + delay?: number; + y?: number; +}) { + const hydrated = useHydrated(); + const reduced = useReducedMotionPreference(); + if (!hydrated || reduced) return
      {children}
      ; + return ( + + {children} + + ); +} + +/* ============ RevealGroup + RevealItem:列表/网格错峰入场 ============ */ + +export function RevealGroup({ + children, + className, + stagger = 0.08, +}: { + children: ReactNode; + className?: string; + stagger?: number; +}) { + const hydrated = useHydrated(); + const reduced = useReducedMotionPreference(); + if (!hydrated || reduced) return
      {children}
      ; + return ( + + {children} + + ); +} + +export function RevealItem({ + children, + className, + y = 20, +}: { + children: ReactNode; + className?: string; + y?: number; +}) { + return ( + + {children} + + ); +} + +/** 惊喜元素弹入:spring 过冲(横幅、提示等) */ +export function PopIn({ + children, + className, +}: { + children: ReactNode; + className?: string; +}) { + const hydrated = useHydrated(); + const reduced = useReducedMotionPreference(); + if (!hydrated || reduced) return
      {children}
      ; + return ( + + {children} + + ); +} + +/* ============ AnimatedNumber:数字滚动(SSR 渲染最终值,挂载后 0 → 目标) ============ */ + +function formatNumber(n: number, locale: string): string { + return new Intl.NumberFormat(locale).format(n); +} + +export function AnimatedNumber({ + value, + className, + prefix = "", + suffix = "", + locale = "en-US", +}: { + value: number; + className?: string; + prefix?: string; + suffix?: string; + locale?: string; +}) { + const reduced = useReducedMotionPreference(); + const [display, setDisplay] = useState(value); + const started = useRef(false); + + useEffect(() => { + if (started.current) return; + started.current = true; + if (reduced) return; + const controls = animate(0, value, { + duration: 1.2, + delay: 0.15, + ease: [0.16, 1, 0.3, 1], // easeOutExpo + onUpdate: (v) => setDisplay(Math.round(v)), + }); + return () => controls.stop(); + }, [value, reduced]); + + return ( + + {prefix} + {formatNumber(display, locale)} + {suffix} + + ); +} diff --git a/apps/site/src/components/root-layout.tsx b/apps/site/src/components/root-layout.tsx index a10aec9d..e9dfb4e9 100644 --- a/apps/site/src/components/root-layout.tsx +++ b/apps/site/src/components/root-layout.tsx @@ -1,19 +1,41 @@ +import { DirectionProvider } from "@base-ui/react/direction-provider"; import { Outlet, useLocation } from "@tanstack/react-router"; +import { useEffect } from "react"; import { SiteFooter } from "@/components/site-footer"; import { SiteNav } from "@/components/site-nav"; -import type { Locale } from "@/lib/seo"; +import { ThemeProvider } from "@/components/theme-provider"; +import { getLocaleFromPath, localeDirection, localeHtmlLang } from "@/lib/seo"; export function RootLayout() { const { pathname } = useLocation(); - const locale: Locale = pathname.startsWith("/en") ? "en-US" : "zh-CN"; + const locale = getLocaleFromPath(pathname); + const dir = localeDirection(locale); + + // / are written at build time by the SSG shell only. + // LocaleSwitcher navigates client-side (no document reload), so switching to + // /ja or /ar would otherwise leave zh's :lang(zh) font scope and ltr on the + // document — exactly the two rules tokens.css keys off . The root + // route component stays mounted across every navigation (locale routes, docs, + // the 404 route), so this effect is the single choke point that also covers + // back/forward. Effects never run during renderToString, so prerendering is + // untouched; the guard keeps it safe under a DOM-less renderer too. + useEffect(() => { + if (typeof document === "undefined") return; + document.documentElement.lang = localeHtmlLang(locale); + document.documentElement.dir = dir; + }, [locale, dir]); return ( -
      - -
      - -
      - -
      + + +
      + +
      + +
      + +
      +
      +
      ); } diff --git a/apps/site/src/components/showcase/composer.tsx b/apps/site/src/components/showcase/composer.tsx new file mode 100644 index 00000000..03795156 --- /dev/null +++ b/apps/site/src/components/showcase/composer.tsx @@ -0,0 +1,123 @@ +import { Hash, Image as ImageIcon, List, Send } from "lucide-react"; +import type { Dispatch, SetStateAction } from "react"; +import type { ShowcaseDevice } from "./fixtures"; + +const WRAPPER_CLASS: Record = { + desktop: + "rounded-2xl border border-line/70 bg-surface p-4 shadow-2xs space-y-3", + mobile: + "rounded-2xl border border-line/70 bg-surface p-3 shadow-2xs space-y-2", +}; + +const TEXTAREA_CLASS: Record = { + desktop: + "w-full bg-transparent text-xs sm:text-sm text-ink placeholder:text-fog resize-none focus:outline-none leading-relaxed", + mobile: + "w-full bg-transparent text-xs text-ink placeholder:text-fog resize-none focus:outline-none leading-relaxed", +}; + +const TOOLBAR_CLASS: Record = { + desktop: "flex items-center justify-between pt-1 border-t border-line/40", + mobile: "flex items-center justify-between pt-1", +}; + +const TOOL_GROUP_CLASS: Record = { + desktop: "flex items-center gap-3 text-mist", + mobile: "flex items-center gap-2.5 text-mist", +}; + +const TOOL_BUTTON_CLASS: Record = { + desktop: "cursor-pointer hover:text-ink transition-colors", + mobile: "cursor-pointer hover:text-ink", +}; + +const TOOL_ICON_CLASS: Record = { + desktop: "size-4", + mobile: "size-3.5", +}; + +const SEND_CLASS: Record = { + desktop: + "inline-flex items-center gap-1.5 rounded-full bg-brand-gradient px-4 py-1.5 text-xs font-semibold text-white shadow-xs hover:brightness-105 active:translate-y-px transition-all cursor-pointer disabled:opacity-40", + mobile: + "inline-flex items-center gap-1 rounded-full bg-brand-gradient px-3 py-1 text-xs font-semibold text-white shadow-xs hover:brightness-105 active:translate-y-px transition-all cursor-pointer disabled:opacity-40", +}; + +type ShowcaseComposerProps = { + variant: ShowcaseDevice; + value: string; + onValueChange: Dispatch>; + onSubmit: () => void; + isSyncing: boolean; + placeholder: string; + sendLabel: string; +}; + +/** 桌面 / 手机共用的笔记发送器(尺寸与发送中的外观由 variant 决定) */ +export function ShowcaseComposer({ + variant, + value, + onValueChange, + onSubmit, + isSyncing, + placeholder, + sendLabel, +}: ShowcaseComposerProps) { + const isMobile = variant === "mobile"; + + return ( +
      +