Commit Graph

4551 Commits

Author SHA1 Message Date
boojack f0e4a5624f feat(filter): expand CEL filter surface with startsWith/endsWith, matches(), and all()
Let users write three more CEL constructs in the filter field, each compiled to
SQL across SQLite/MySQL/Postgres:

- Scalar startsWith()/endsWith() on content/filename/mime_type (case-insensitive)
- matches() regex: PG ~, MySQL/SQLite REGEXP (Go-backed SQLite fn), validated at
  compile time via cel.ValidateRegexLiterals()
- all() comprehension over tags via per-element subqueries, non-empty required

Also: contains() now escapes LIKE metacharacters (%, _, \); cross-dialect render
tests plus behavioral tests; cel-go bumped to v0.28.1; new operators surfaced in
the frontend shortcut guide.
2026-06-15 23:22:28 +08:00
boojack 817561df8f fix(editor): collapse lingering select-all selection after delete
Ctrl+A creates a whole-document AllSelection; deleting it (Backspace, Delete, or Cut) maps the AllSelection onto the now-empty paragraph instead of collapsing to a caret, so the view paints a "selected" empty block. A ProseMirror appendTransaction now collapses a leftover AllSelection to a caret after any doc-changing edit.
2026-06-15 09:33:16 +08:00
ManJieqi 46685b1906 chore: update Chinese translations in zh-Hans.json (#6033)
Signed-off-by: ManJieqi <40858189+manjieqi@users.noreply.github.com>
2026-06-14 23:23:18 +08:00
boojack 385fa22056 fix(cors): open API to any origin for token auth, keep cookies same-origin
Reflect any Origin so token-authenticated clients (Access Token V2 / PAT)
can call the API cross-origin, but emit Access-Control-Allow-Credentials
only for trusted origins (same host / configured InstanceURL). This keeps
the SameSite=Lax refresh cookie unreadable by untrusted (incl. same-site
subdomain) origins. Origin: null is not reflected.

Note for operators: cross-origin token access is now open by default; if
you front memos with a caching proxy, ensure it honors `Vary: Origin`.
2026-06-14 23:20:34 +08:00
boojack 00225db922 refactor(web): share markdown element styles between viewer and editor
Extract the Tailwind classes for common markdown elements (paragraph,
blockquote, lists, inline code, link, hr, headings) into a single
markdownStyles.ts consumed by both the read-only MemoContent components
and the WYSIWYG editor, replacing the duplicated per-element strings and
the .memo-wysiwyg CSS block. Heading classes are precomputed per level so
the hot renderHTML path is a lookup, not a cn() merge.

Also require at least one character after `#` before opening the tag
suggestion menu so a bare `#` (or `# ` heading) no longer conflicts with
markdown headings.
2026-06-13 22:17:00 +08:00
boojack 2c0efeba7c refactor(web): rename editor dirs and simplify raw mode to a plain textarea 2026-06-13 01:08:38 +08:00
boojack 797f1ff15d feat(web): markdown WYSIWYG editor with raw-mode toggle (#6030)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 09:34:51 +08:00
boojack 8080bd10e1 docs: add README for mcp 2026-06-09 23:54:58 +08:00
boojack f497f009ce fix(webhook): fail loud on malformed signing secret and add tests
Follow-up to #6013. The signing path silently fell back to using the raw
secret string as the HMAC key when a whsec_-prefixed secret had invalid
base64, producing signatures no receiver could verify with no server-side
signal.

- Extract resolveSigningKey helper that errors on invalid whsec_ base64
- Post returns that error (logged by the async dispatcher); ValidateSigningSecret
  rejects it at write time so a bad secret is never stored
- Fix stale comment referencing a nonexistent Authorization header
- Add Go tests: key derivation, secret validation, end-to-end signature
  round-trip, and the invariant that the secret never leaks into API responses
2026-06-09 22:58:10 +08:00
Yiges.M.x. 063a44498d feat: add optional webhook signing secret (Standard Webhooks HMAC-SHA256) (#6013) 2026-06-09 22:45:01 +08:00
boojack 1052c04d33 fix(web): improve mobile control spacing 2026-06-09 21:04:47 +08:00
boojack 418398587c feat(i18n): add searchable locale picker 2026-06-09 09:33:17 +08:00
boojack 777d227eb9 feat: add OpenAPI-driven MCP support (#6026) 2026-06-09 09:16:50 +08:00
boojack a47d04954e feat(i18n): expand European locale coverage 2026-06-09 09:07:28 +08:00
boojack 6870e863de chore(github): improve issue templates with structured triage fields
Add area dropdowns, reproduction requirements, regression info, and
compatibility sections to reduce back-and-forth on bug reports and
feature requests.
2026-06-08 22:21:33 +08:00
boojack ecbe2ab797 fix(memo): preserve expanded todo list state 2026-06-08 19:11:29 +08:00
ay5399 8f1377324f fix(editor): wire Ctrl+B and Ctrl+I markdown shortcuts to textarea (#6016)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: boojack <stevenlgtm@gmail.com>
2026-06-08 00:24:05 +08:00
boojack 9eabb554d5 feat(settings): move tag metadata to user settings (#6017) 2026-06-07 23:58:00 +08:00
boojack a50ce09e81 fix(markdown): ignore tags inside links 2026-06-06 00:01:28 +08:00
boojack 5e71c0a737 docs: rewrite agent repository guide 2026-06-05 09:17:22 +08:00
boojack 2a4638b332 chore: remove MCP server 2026-06-05 08:38:57 +08:00
boojack 5f194da7d3 chore(main): release 0.29.1 (#5985) v0.29.1 2026-06-05 08:06:30 +08:00
boojack bb76949fc0 chore(server): centralize CORS policy 2026-06-04 22:37:41 +08:00
boojack d69f1aab27 chore: tweak demo data 2026-06-03 00:21:45 +08:00
boojack 0e2a9a9c0c fix(web): render video attachment posters on mobile 2026-06-02 23:08:16 +08:00
goingforstudying-ctrl e8d32e87d1 fix: support <meta name=description> in link previews (#6000)
Co-authored-by: goingforstudying-ctrl <goingforstudying-ctrl@users.noreply.github.com>
2026-06-02 23:02:21 +08:00
boojack 0d31e3c2fb chore(media): add zoom controls to preview dialog 2026-06-02 22:46:07 +08:00
boojack fadc974364 docs: consolidate agent guidance 2026-05-31 18:53:37 +08:00
boojack 53abb8020e refactor(frontend): remove react-use dependency 2026-05-31 18:32:17 +08:00
boojack 7c3bff4e98 fix(markdown): keep task item content in one grid column 2026-05-27 23:57:23 +08:00
boojack f22c4bd5c2 chore(main): release 0.29.0 (#5909) v0.29.0 2026-05-27 20:48:29 +08:00
boojack e0bb3a2e68 fix(editor): wrap selected text when pasting URL 2026-05-27 20:36:27 +08:00
boojack 648b3bd812 feat(memo): add task list quick actions (#5983) 2026-05-27 09:13:55 +08:00
boojack e564c1a993 chore: update about page 2026-05-26 21:14:59 +08:00
boojack e53b7d96e7 fix: delete user cleanup (#5981) 2026-05-25 22:10:29 +08:00
boojack d1208a68e9 chore: update sponsors 2026-05-25 20:39:25 +09:00
boojack 3c3382a3c6 fix: avoid update event on memo create attachments (#5961) 2026-05-16 21:18:44 +08:00
boojack 858f7419b4 chore(seed): tweak seed data 2026-05-15 09:04:28 +08:00
boojack 63d6431d3e chore: update images in README for dark mode
Signed-off-by: boojack <stevenlgtm@gmail.com>
2026-05-15 08:33:19 +08:00
Santosh Yadav ddcaf5f25c chore: fix coderabbit logo for light and dark theme (#5954) 2026-05-15 07:10:27 +08:00
boojack ab2b08a21e chore(seed): refresh demo memos and sponsor showcase 2026-05-15 00:23:11 +08:00
boojack 727480d49d chore: revamp sponsors section in README
Updated the featured sponsors section to include a table layout and added new sponsor information.

Signed-off-by: boojack <stevenlgtm@gmail.com>
2026-05-14 23:56:57 +08:00
boojack 439ddaebf5 refactor(placeholder): extract tile sprite strip 2026-05-14 20:38:00 +08:00
boojack 411ba7b34c feat(about): add about page with bird sprites 2026-05-14 20:30:37 +08:00
boojack 638e4f398e feat(placeholder): add woodpecker tilemap 2026-05-14 09:35:11 +08:00
boojack cf55f11072 feat(frontend): add pixel bird tilemaps 2026-05-14 00:03:21 +08:00
boojack ca2bc4eb84 chore: render placeholder ascii pieces as components 2026-05-13 09:06:23 +08:00
boojack aa5cb455e9 refactor(web): use / as the home route instead of /home
Home now lives at `/` directly. Unauthenticated visitors are sent to
`/explore` by the landing gate; old `/home` URLs redirect to `/` for
bookmark compatibility.
2026-05-12 23:17:46 +08:00
boojack 8c16ffa1f1 feat: add <Placeholder> component with ASCII bird states (#5949)
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 22:48:37 +08:00
Mayank Saini f1e2a06b46 feat: add configurable --log-level flag (#5934)
Signed-off-by: boojack <stevenlgtm@gmail.com>
Co-authored-by: boojack <stevenlgtm@gmail.com>
2026-05-12 21:10:05 +08:00