Commit Graph

719 Commits (main)

Author SHA1 Message Date
grandpig 76aee4e177
refactor: use the built-in max/min to simplify the code (#6060)
Signed-off-by: grandpig <grandpig@outlook.com>
6 days ago
boojack 26f4b73cb9 feat(filter): standard CEL now variable, time accessors, set ops
Replace the custom now() function with an idiomatic `now` timestamp variable (host-injected, frozen once per compile) and retype created_ts/updated_ts/create_time to CEL timestamp. Filters now use standard timestamp/duration arithmetic, e.g. `created_ts >= now - duration("24h")` and `timestamp("2025-01-01T00:00:00Z")`.

Add standard CEL surface that compiles to SQL across SQLite/MySQL/Postgres: timestamp accessors (getFullYear/getMonth/getDate/getDayOfWeek/..., with 0-based month and weekday normalized), ext.Sets() (sets.contains/intersects/equivalent over tags), tags.exists_one(), size() on string fields, and division/modulo folding. A frozen clock is injectable for deterministic tests.

BREAKING CHANGE: now() is removed (use the `now` variable) and time fields are timestamps, so bare-epoch comparisons need timestamp(<epoch>). Existing saved shortcuts using the old syntax must be updated.
2 weeks ago
boojack 3b07f78fd8 chore: tweak demo data
- Trim sponsor memo to CodeRabbit + SSD Nodes, concise single-tier layout
- Add a demo personal access token (Bearer memos_pat_demo) for the admin user
- Stagger memo created_ts relative to seed time so the demo timeline always
  looks recent; lead the pinned section with the Welcome memo
- Unpin the Scratchpad promo and drop the fixed "June" movie-marathon label
3 weeks ago
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.
3 weeks ago
boojack 9eabb554d5
feat(settings): move tag metadata to user settings (#6017) 1 month ago
boojack d69f1aab27 chore: tweak demo data 1 month ago
boojack e53b7d96e7
fix: delete user cleanup (#5981) 1 month ago
boojack d1208a68e9 chore: update sponsors 1 month ago
boojack 858f7419b4 chore(seed): tweak seed data 2 months ago
boojack ab2b08a21e chore(seed): refresh demo memos and sponsor showcase 2 months ago
boojack 02096836c3 test: stabilize backend tests in CI
- Avoid requiring built frontend assets in cache header tests.
- Skip Testcontainers-backed store tests when Docker is unavailable.
2 months ago
Steven ea0625da45 feat(stats): admin instance resource statistics 2 months ago
Steven 35bf761b8c fix(security): enforce attachment ownership on memo updates 2 months ago
boojack 616487fa37
chore: update backend and frontend dependencies (#5900)
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2 months ago
boojack 0fb83a745d
fix(auth): harden authorization and username validation (#5890) 2 months ago
boojack ee1799851e
feat: redesign account and SSO management (#5886) 2 months ago
boojack d688914b28
feat(auth): add SSO user identity linkage (#5883) 3 months ago
boojack 50638040f6
fix: reduce list memo query overhead (#5880) 3 months ago
boojack f8a304bae3 fix(release): inject build version into artifacts 3 months ago
boojack c45663761d fix(api): reduce memory pressure in backend paths 3 months ago
boojack 101704c8ea
feat(ai): add BYOK audio transcription (#5832) 3 months ago
memoclaw 83ed32f119
feat(ai): add instance AI providers and transcription (#5829)
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
3 months ago
memoclaw 24fc8ab8ca
feat(mentions): add memo mention parsing, notifications, and rendering (#5811)
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
3 months ago
boojack 10a955fd62 refactor: move plugin packages under internal 3 months ago
boojack 4b4e719470
feat(attachments): add Live Photo and Motion Photo support (#5810) 3 months ago
memoclaw 1921b57662
fix(tags): allow blur-only tag metadata (#5800)
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
3 months ago
boojack 0e89407ee9 fix(filter): enforce CEL syntax semantics
Reject non-standard truthy numeric expressions in filters and document the parser as a supported subset of standard CEL syntax.

- remove legacy filter rewrites
- support standard equality in tag exists predicates
- add regression coverage for accepted and rejected expressions
3 months ago
boojack 7c708ee27e
chore: add migration upgrade coverage (#5796) 3 months ago
memoclaw 4add9b04ad fix: prevent local attachment uploads from overwriting files 3 months ago
memoclaw acddef1f3d
fix(api): switch user resource names to usernames (#5779)
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
3 months ago
memoclaw 4818bf3559
refactor(store): remove synthetic system bot user lookup (#5778)
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
4 months ago
google-labs-jules[bot] e0cc247823
chore: optimize multi-user RSS feed generation by fixing N+1 query (#5749)
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
4 months ago
memoclaw 3f3133d6e2
feat(memo): add share links for private memos (#5742)
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
4 months ago
memoclaw e164517773 test: remove raw SQL migration backfill test setup 4 months ago
memoclaw f759b416af
refactor(inbox): store memo comment payloads without activity records (#5741)
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
4 months ago
memoclaw a249d06e2e
feat(instance): add notification transport setting (#5737)
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
4 months ago
boojack 65d14fbb63
feat(instance): add canonical tag metadata setting (#5736) 4 months ago
boojack 330291d4d9
feat(user): add per-user tag metadata settings (#5735) 4 months ago
memoclaw 12e2205cb6
chore(backend): update Go toolchain and dependencies (#5730) 4 months ago
memoclaw 8f43e8075b
fix: correct typos in comments, error messages, and identifiers (#5704)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
4 months ago
memoclaw 851e090ff9
chore: align branding with brand guidelines (#5693)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
4 months ago
memoclaw 1e82714a52
perf: batch load memo relations when listing memos (#5692)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
4 months ago
memoclaw 92d937b1aa
feat: replace auto-increment ID with UID for identity provider resource names (#5687)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
4 months ago
memoclaw f0c4489468
chore: move storage setting migration to v0.27.0 (#5686)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
4 months ago
Biplav Barua def123232a
feat: implement ListActivities pagination (#5468) 4 months ago
Steven 737acbba2f fix(markdown): support height/width attributes on img elements 4 months ago
Steven dfab67f035 chore(seed): polish demo data with realistic multi-user content 4 months ago
Johnny 9628d3de21 fix: detect legacy installations with empty schema version 4 months ago
Johnny 78efa6802e feat(store): change default storage type to local filesystem
Add migration scripts for existing instances without a storage setting
to explicitly preserve DATABASE as their storage type, ensuring backward
compatibility. Change the default for new installations to LOCAL to
improve out-of-the-box performance.
4 months ago
Johnny 252b3eff90 test(store): add tests for CreateMemo with custom timestamps 4 months ago