Edouard Vanbelle
0ef4c624c5
chore(load): start implementation of load tests
...
initial test from Ed's nuc:
metric pctl baseline current delta status
-----------------------------------------------------------------------------------------------
folder_cascade.list_depth1 p50 0.3ms 0.3ms -6.3% ok
folder_cascade.list_depth1 p95 2.3ms 0.5ms -75.7% ok
folder_cascade.list_depth1 p99 4.7ms 2.5ms -48.1% ok
folder_cascade.list_depth4 p50 0.4ms 0.3ms -10.0% ok
folder_cascade.list_depth4 p95 0.9ms 0.6ms -31.2% ok
folder_cascade.list_depth4 p99 2.4ms 1.0ms -56.7% ok
folder_cascade.list_depth8 p50 0.3ms 0.3ms -8.8% ok
folder_cascade.list_depth8 p95 0.6ms 0.5ms -22.2% ok
folder_cascade.list_depth8 p99 1.9ms 0.5ms -71.5% ok
folder_cascade.list_depth_deep p50 0.3ms 0.3ms -5.0% ok
folder_cascade.list_depth_deep p95 0.6ms 0.5ms -18.6% ok
folder_cascade.list_depth_deep p99 2.0ms 0.7ms -67.2% ok
share_cascade_rebac.list_grants p50 0.4ms 0.3ms -27.6% ok
share_cascade_rebac.list_grants p95 1.2ms 0.5ms -57.0% ok
share_cascade_rebac.list_grants p99 1.7ms 1.1ms -36.7% ok
share_cascade_rebac.fetch_as_grantee_depth1 p50 0.5ms 0.5ms -11.1% ok
share_cascade_rebac.fetch_as_grantee_depth1 p95 1.1ms 0.7ms -41.2% ok
share_cascade_rebac.fetch_as_grantee_depth1 p99 3.0ms 1.3ms -58.3% ok
share_cascade_rebac.fetch_as_grantee_depth4 p50 0.5ms 0.5ms -13.7% ok
share_cascade_rebac.fetch_as_grantee_depth4 p95 1.4ms 0.7ms -50.5% ok
share_cascade_rebac.fetch_as_grantee_depth4 p99 2.2ms 1.1ms -49.3% ok
share_cascade_rebac.fetch_as_grantee_depth8 p50 0.5ms 0.4ms -16.0% ok
share_cascade_rebac.fetch_as_grantee_depth8 p95 0.9ms 0.7ms -26.1% ok
share_cascade_rebac.fetch_as_grantee_depth8 p99 1.5ms 0.9ms -40.1% ok
share_cascade_rebac.fetch_as_grantee_depth_deep p50 0.5ms 0.4ms -17.3% ok
share_cascade_rebac.fetch_as_grantee_depth_deep p95 1.0ms 0.7ms -31.2% ok
share_cascade_rebac.fetch_as_grantee_depth_deep p99 1.6ms 0.8ms -49.4% ok
subject_group_nested.fetch_as_member_depth1 p50 0.5ms 0.4ms -8.4% ok
subject_group_nested.fetch_as_member_depth1 p95 0.6ms 0.6ms -10.2% ok
subject_group_nested.fetch_as_member_depth1 p99 1.4ms 0.6ms -55.2% ok
subject_group_nested.fetch_as_member_depth4 p50 0.5ms 0.5ms -7.9% ok
subject_group_nested.fetch_as_member_depth4 p95 0.6ms 0.6ms -4.0% ok
subject_group_nested.fetch_as_member_depth4 p99 0.7ms 0.6ms -2.2% ok
subject_group_nested.fetch_as_member_depth8 p50 0.5ms 0.4ms -8.9% ok
subject_group_nested.fetch_as_member_depth8 p95 0.5ms 0.6ms +7.1% ok
subject_group_nested.fetch_as_member_depth8 p99 0.6ms 0.7ms +10.3% ok
subject_group_nested.fetch_as_member_depth_deep p50 0.5ms 0.4ms -7.6% ok
subject_group_nested.fetch_as_member_depth_deep p95 0.6ms 0.5ms -11.9% ok
subject_group_nested.fetch_as_member_depth_deep p99 0.6ms 0.7ms +8.9% ok
2026-06-18 09:38:25 +02:00
Bradley Nelson
803150635c
add frontend
2026-06-16 21:26:36 -06:00
Bradley Nelson
87d68c5b6f
init plugins
2026-06-16 17:57:57 -06:00
Edouard Vanbelle
f55779875a
chore(justfile): bring design system check into front-test
2026-06-16 15:31:23 +02:00
Edouard Vanbelle
b1455b5583
chore(wasm): check, clippy, test, CI
2026-06-15 15:53:43 +02:00
DioCrafts
81a93a489b
feat: photo/video capture-date pipeline + premium UI/UX overhaul
...
Backend — Photos timeline now groups by real capture date instead of upload time. New MediaMetadataService (FileLifecycleHook) extracts EXIF DateTimeOriginal from images and container creation_time from videos (mov/mp4/mkv) via nom-exif, timezone-correct (OffsetTimeOriginal), persisting captured_at so the existing media_sort_date trigger takes over. Adds POST /admin/photos/metadata/reextract to backfill existing media. Falls back to upload date when no embedded date exists.
Frontend — premium grid cards: combined metadata line (relative date · size, owner avatar when shared), custom selection checkbox with a clear checked state, uniform full-width 4:3 thumbnail tiles independent of filename length, centered file-type icons, and a hit-test fix so checkbox/star/kebab clicks reach the controls (the decorative thumbnail no longer captures pointer events). Notification messages internationalised across all 16 locales. Broader polish: design tokens, a11y/focus-visible states, brand + PWA assets.
Chore — bump semver-compatible dependencies (cargo upgrade); add nom-exif 3.6.1.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-15 00:24:27 +02:00
Edouard Vanbelle
8b08b081c5
chore(ci): check icons and i18n
2026-06-05 14:18:41 +02:00
Edouard Vanbelle
d2dedcbb00
fix(integration-test): ensure integration tests are runned on a separate DB to avoid polution
2026-05-31 23:53:40 +02:00
Edouard Vanbelle
e169f53218
test(integration): add integration test on subject group
2026-05-31 22:45:09 +02:00
Edouard Vanbelle
804cb7c6af
fix(build): improve builder to use CSS from html rather an hardcoded list
2026-05-29 13:48:22 +02:00
Edouard Vanbelle
7ddbbc94cc
test(e2e): update all images and grow snapshot comparaison sensitivity
2026-05-27 11:35:42 +02:00
Edouard Vanbelle
80425aed03
chore(justfile): add 'front-check' for lazy devs
2026-05-25 22:47:01 +02:00
Edouard Vanbelle
a181d4081e
ci: add typescript check (no emit, check only types are fully declared)
2026-05-19 10:18:40 +02:00
Edouard Vanbelle
fac184ccfe
style(front/js): apply types on all objects
...
- reduce amount of warnings in IDE
- maximize API type mapping with static/js/core/types.js
2026-05-19 10:18:33 +02:00
Edouard Vanbelle
f7946028f4
tests: add webdav tests
2026-05-13 15:55:34 +02:00
Edouard Vanbelle
8ab537797a
test(api): add API test on contacts
...
next will be to add CI on it
2026-05-11 00:53:29 +02:00
Edouard Vanbelle
3c3d24ac72
test: initial end to end test with playwright
2026-05-08 21:41:28 +02:00
Edouard Vanbelle
46e823ffda
chore: move specific CI audit rules into global .cargo/audit.toml
2026-05-04 14:23:01 +02:00
Edouard Vanbelle
fde8d9d69f
chore: add audit in justfile
2026-05-04 14:01:00 +02:00
Edouard Vanbelle
3a315ae75d
chore(rust): use same params for clippy as the CI + correct clippy warnings
2026-04-27 20:25:33 +02:00
Edouard Vanbelle
d01b2c6ec4
refactor(css): use variable rather direct color
2026-04-14 13:33:51 +02:00
Edouard Vanbelle
4fbb8883af
chore(claude): add frontend part to CLAUDE.md + .claudeignore for security
2026-04-08 16:25:46 +02:00
iltumio
bf7e030cd6
feat: add OpenAPI spec generation with utoipa and justfile
...
- Add utoipa v5 dependency with ToSchema derives on all REST API DTOs
- Annotate free-function handlers with #[utoipa::path] (trash, share, favorites, recent)
- Create ApiDoc struct with OpenApi derive registering 37 schemas across 7 tags
- Add generate-openapi binary outputting resources/gen/openapi.json
- Serve OpenAPI spec at GET /api/openapi.json (public, no auth)
- Add justfile with common dev commands (build, test, lint, check, openapi, db)
2026-03-29 18:49:10 +02:00