-
f4ce4092f0
fix(blobs): invalidate the file_id->blob_hash cache on content swaps
Claude
2026-06-10 14:04:36 +00:00
-
b0f83cfa34
perf(thumbnails): hold a decode permit before reading source blobs
Claude
2026-06-10 13:36:29 +00:00
-
4200209d4a
perf(db): statement-level tree-ETag triggers; batched trash purge
Claude
2026-06-10 13:22:27 +00:00
-
fe0053bc79
Optimize encryption, storage, and media streaming performance (#447)
Dionisio Pozo
2026-06-10 14:53:55 +02:00
-
c3b853abd2
fix(lifecycle): pass blob content_hash to file lifecycle hooks, not etag
Claude
2026-06-10 12:44:13 +00:00
-
-
26b396490c
Merge pull request #445 from AtalayaLabs/claude/upbeat-wright-btruto
Dionisio Pozo
2026-06-10 13:57:11 +02:00
-
-
d73065e06b
style: apply rustfmt to login-lockout code merged in #326
Claude
2026-06-10 11:51:56 +00:00
-
26ff8f2ac9
Merge origin/main into claude/upbeat-wright-btruto
Claude
2026-06-10 11:51:54 +00:00
-
635ef8baf6
perf(files): breadcrumb no longer blocks the listing; ancestors cached
Claude
2026-06-10 11:39:56 +00:00
-
ef87670306
Merge pull request #444 from AtalayaLabs/claude/vigilant-goodall-oismlc
Dionisio Pozo
2026-06-10 13:39:55 +02:00
-
-
9a181053bd
perf(blobs): batch chunk fsyncs into one durability sweep per upload
Claude
2026-06-10 09:55:02 +00:00
-
-
71bdb653e0
perf(notify): bounded-concurrency fan-out for grant notification emails
Claude
2026-06-10 09:52:47 +00:00
-
908b8f4d4b
perf(upload): one durability barrier per file instead of two fsyncs per chunk
Claude
2026-06-10 09:52:47 +00:00
-
7687766bf7
perf(dav-collections): indexed UID lookups for single-object operations
Claude
2026-06-10 09:52:28 +00:00
-
d56c2a3e13
perf(transcode): stop re-transcoding JPEGs; cache negative verdicts
Claude
2026-06-10 09:52:28 +00:00
-
1912a17fa2
perf(dav): stream NC PROPFIND in batches; Range + 304 on WebDAV GETs
Claude
2026-06-10 09:27:48 +00:00
-
8a42b07cbe
perf(auth): cached image-free user-flags lookup for per-request guards
Claude
2026-06-10 09:27:32 +00:00
-
fd80a3de67
perf(files-ui): stream media/downloads natively, rAF rubber-band, Map selection
Claude
2026-06-10 09:02:13 +00:00
-
8d040314a3
perf(icons): scan only inserted subtrees in the MutationObserver
Claude
2026-06-10 09:01:55 +00:00
-
64c1e4c8e5
perf(resource-list): fold per-row listeners into the delegated handler
Claude
2026-06-10 09:01:55 +00:00
-
ca698f73d1
perf(search): render result sets in one batched pass
Claude
2026-06-10 09:01:42 +00:00
-
2161292e2c
Merge pull request #443 from AtalayaLabs/claude/jolly-johnson-yso7z7
Dionisio Pozo
2026-06-10 10:48:45 +02:00
-
-
3c64354a0d
perf(upload): run multi-file selections through the 10-worker pool
Claude
2026-06-10 08:44:39 +00:00
-
d32ec359cd
perf(docker): skip recursive chown when volume is already owned
Claude
2026-06-10 08:41:14 +00:00
-
214d42d0f6
perf(photos): batch trash deletion instead of N sequential DELETEs
Claude
2026-06-10 08:39:12 +00:00
-
616e48b338
perf(nextcloud): batch oc:fileid resolution to kill PROPFIND N+1
Claude
2026-06-10 08:39:06 +00:00
-
-
-
9e3d990bd3
build(docker): trim build context, fix docs/ ignore typo
Claude
2026-06-10 08:38:24 +00:00
-
91f1f41367
build(docker): drop libpq runtime dep and postgresql-dev build dep
Claude
2026-06-10 08:35:39 +00:00
-
-
da6dcb3771
Merge pull request #326 from SAY-5/fix/per-ip-account-lockout-323
Dionisio Pozo
2026-06-10 00:16:34 +02:00
-
-
b9af3092be
chore: remove em-dashes from comments
SAY-5
2026-05-11 13:05:03 -07:00
-
9dfb29bdda
fix(auth): scope lockout key to (account, IP) to prevent DOS by login flood
SAY-5
2026-04-27 12:22:59 -07:00
-
-
087cb44add
Merge pull request #438 from EdouardVanbelle/feat/cap-chunk-size-and-use-stream
Dionisio Pozo
2026-06-09 18:19:49 +02:00
-
-
a41030275d
Merge pull request #440 from AtalayaLabs/claude/tender-shannon-b65gyk
Dionisio Pozo
2026-06-09 18:18:03 +02:00
-
-
175a908e99
perf(search): clamp search page size to bound per-request memory
Claude
2026-06-09 14:59:01 +00:00
-
8dc528f403
fix(dedup): count chunk ref_count per distinct chunk, not per occurrence
Claude
2026-06-09 14:19:14 +00:00
-
19b41af2e4
perf(http): single smart compression layer — stop compressing media on /api
Claude
2026-06-09 14:08:27 +00:00
-
bf46c1ca10
perf: make StoragePath::join and File builders consume self to avoid clones
Claude
2026-06-09 13:45:16 +00:00
-
ec8ddebc30
perf: drop intermediate allocs in WebDAV href encoding; fold group-list COUNT into one query
Claude
2026-06-09 13:29:05 +00:00
-
f82c5ccf47
perf(authz): bound unbounded grant-list queries with a fail-loud row cap
Claude
2026-06-09 13:24:22 +00:00
-
fc55e92299
perf(blob-cache,db): release index mutex before disk I/O; skip per-acquire DB ping
Claude
2026-06-09 13:18:09 +00:00
-
-
f9c3adadc5
feat(chunked-upload): keep previous pending upload
Edouard Vanbelle
2026-06-09 11:33:02 +02:00
-
c7b359eae3
chore(vitepress): link new /config/storage-fine-tuning doc
Edouard Vanbelle
2026-06-09 11:11:50 +02:00
-
50ea406719
feat(OXICLOUD_DIRECT_PUT_MAX_BYTES): add a security limit on direct PUT
Edouard Vanbelle
2026-06-09 11:00:51 +02:00
-
4e36de49eb
feat(uploads): add OXICLOUD_CHUNK_DIR + documentation for admins
Edouard Vanbelle
2026-06-09 10:19:21 +02:00
-
2843b3351b
feat(blake digest): ensure digest is done on same passe as the write of chunks
Edouard Vanbelle
2026-06-09 10:29:43 +02:00
-
964d66e7f8
featchukn-upload): client can provide full file hash completion
Edouard Vanbelle
2026-06-09 09:39:45 +02:00
-
abac074fe5
feat(fssync): ensure fs sync once upload is recomposed
Edouard Vanbelle
2026-06-08 23:57:51 +02:00
-
41aad26702
feat(upload): cover chunk upload + add support of different digest hash
Edouard Vanbelle
2026-06-08 23:17:07 +02:00
-
5e638691ad
security(upload): cap upload size to prevent memody/disk consumption
Edouard Vanbelle
2026-06-08 21:14:04 +02:00
-
-
233531bce5
chore(docker): fix docker healthcheck (#435)
Edouard Vanbelle
2026-06-08 15:25:39 +02:00
-
2ad55879f3
feat(nextcloud): use user's image for avatar (#434)
Edouard Vanbelle
2026-06-08 15:25:36 +02:00
-
6811e3e4f7
Merge pull request #437 from EdouardVanbelle/fix/nextcloud-propfind-on-chunk-upload
Dionisio Pozo
2026-06-07 23:04:26 +02:00
-
-
a3a8fdbf12
test: activate nextcloud on tests
Edouard Vanbelle
2026-06-07 21:40:22 +02:00
-
15e69bf934
Merge pull request #436 from EdouardVanbelle/fix/ui-ellipsis-list-view
Dionisio Pozo
2026-06-07 20:49:54 +02:00
-
-
3fc0a272ca
fix(nextcloud): resume (PROPFIND) on upload chunk
Edouard Vanbelle
2026-06-07 20:25:13 +02:00
-
916b666b13
fix(ui): ensure owner ellipsis on list view
Edouard Vanbelle
2026-06-06 20:58:41 +02:00
-
-
b25d1593d3
test(e2e): update playwright snapshots
EdouardVanbelle
2026-06-07 16:57:42 +00:00
-
-
cd925704b9
Merge pull request #433 from EdouardVanbelle/fix/db-migration
Dionisio Pozo
2026-06-07 17:13:50 +02:00
-
-
f170528b35
Merge pull request #432 from leofishman/fix/hide-admin-setup-link-when-initialized
Dionisio Pozo
2026-06-07 17:13:24 +02:00
-
-
4531ee9f15
fix(db-migration): fix 2 changes with same ID
Edouard Vanbelle
2026-06-07 16:32:38 +02:00
-
-
-
e91d4dbab9
fix(auth): hide admin setup link after language selection when system is initialized
leofishman
2026-06-07 09:37:31 -03:00
-
-
eb0ba58158
Merge pull request #426 from EdouardVanbelle/refactor/etag-centralize
Dionisio Pozo
2026-06-07 01:26:30 +02:00
-
-
95b9e08724
Merge pull request #429 from AtalayaLabs/perf/auth-me-quota
Dionisio Pozo
2026-06-07 01:26:03 +02:00
-
-
72715c66a0
Merge remote-tracking branch 'origin/main' into perf/auth-me-quota
DioCrafts
2026-06-07 01:25:14 +02:00
-
-
-
-
41708367d5
Merge pull request #428 from AtalayaLabs/fix/webdav-large-upload-oom
Dionisio Pozo
2026-06-07 01:21:51 +02:00
-
-
d7c6894c80
perf(quota): stop recomputing storage usage on every GET /api/auth/me
DioCrafts
2026-06-07 01:13:58 +02:00
-
-
-
061306cc84
fix(upload): stream WebDAV/NextCloud PUT to disk to prevent OOM on large files
DioCrafts
2026-06-07 01:03:52 +02:00
-
-
bde7c83932
feat(content_hash): propagate etag and hash_content to */resources
Edouard Vanbelle
2026-06-06 19:51:51 +02:00
-
46f8789f4f
fix(folder): keep current folder view on refresh
Edouard Vanbelle
2026-06-06 18:37:41 +02:00
-
eb895b0412
fix(webdav): fix trailing / on collection
Edouard Vanbelle
2026-06-06 18:18:13 +02:00
-
7db547a669
fix(name duplicate): fixed via NFC normalisation
Edouard Vanbelle
2026-06-06 17:47:59 +02:00
-
5a18ec4bac
test(hash_content): check that hash matches
Edouard Vanbelle
2026-06-06 17:21:44 +02:00
-
1b9d9af5c0
feat(etag): cascade tag change on each folerd's parent
Edouard Vanbelle
2026-06-06 17:02:50 +02:00
-
c91515cb65
feat(etag): include mtime in file ETag formula
Edouard Vanbelle
2026-06-06 16:46:19 +02:00
-
0135930da9
refactor(file|folder): separate etag and blob_hash
Edouard Vanbelle
2026-06-06 15:37:27 +02:00
-
6aee68b34c
fix(nextcloud): ensure collection have trailing / in webdav
Edouard Vanbelle
2026-06-06 15:18:18 +02:00
-
04a4868cd2
refactor(api): ensure trace are for all HTTP req.
Edouard Vanbelle
2026-06-06 11:54:23 +02:00
-
e4bb5b064a
feat(tooltip): add tooltip on users and groups
Edouard Vanbelle
2026-06-05 15:01:22 +02:00
-
-
c5e0800336
Merge pull request #423 from EdouardVanbelle/feat/grant-notificaion-with-coalesce
Dionisio Pozo
2026-06-05 15:47:39 +02:00
-
-
8b08b081c5
chore(ci): check icons and i18n
Edouard Vanbelle
2026-06-05 14:18:27 +02:00
-
49f9a14ef0
chore(ui): complete missing icons via tools/check-icons.py
Edouard Vanbelle
2026-06-05 14:01:59 +02:00
-
6f9e12624b
chore(tools) add script to audit translations
Edouard Vanbelle
2026-06-05 14:01:00 +02:00
-
540c947e61
fix(ui): better handling of new folder creation
Edouard Vanbelle
2026-06-05 11:15:44 +02:00
-
ca0f5b3fc5
fix(ui): ensure usermenu always in viewport
Edouard Vanbelle
2026-06-05 10:40:18 +02:00
-
ba9922bcb8
i18n: add missing translatiions
Edouard Vanbelle
2026-06-05 10:31:31 +02:00
-
3eb74f83b0
feat(userVignette): show by preference givenname/familyname
Edouard Vanbelle
2026-06-05 10:05:51 +02:00
-
8cc21f17c5
feat(notify): add notif to internal users when granted
Edouard Vanbelle
2026-06-05 09:46:51 +02:00
-
-
b8e8fcd7dc
Merge pull request #421 from EdouardVanbelle/feat/mail-and-magic-templating
Dionisio Pozo
2026-06-03 19:03:49 +02:00
-
-
16c5e06e2b
security(/magic): no cache + no referer + no index
Edouard Vanbelle
2026-06-03 16:06:03 +02:00
-
d678d3e31a
feat(ui): use same Oxicloud theme for magic-link page
Edouard Vanbelle
2026-06-03 15:58:09 +02:00
-
c9bda7cbda
chore(docker): add new /templates directory
Edouard Vanbelle
2026-06-03 15:56:35 +02:00
-
20e187f26d
i18n: translate server.* keys
Edouard Vanbelle
2026-06-03 15:11:57 +02:00
-
7db27af7a6
feat(user.prefered_locale): save user's locale + invited have same locale as inviters
Edouard Vanbelle
2026-06-03 14:26:45 +02:00
-
854f1d3a07
feat(templating): add and use templates for /magic and emails
Edouard Vanbelle
2026-06-03 13:35:51 +02:00
-
044bd76738
feat(i18n): add i18n on server side
Edouard Vanbelle
2026-06-03 13:18:05 +02:00
-
e0f59aa942
fix(ui): use email as fallback when username is not defined
Edouard Vanbelle
2026-06-03 11:26:45 +02:00
-
91f81027e4
fix(front:auth): fix issue with username that can now be empty
Edouard Vanbelle
2026-06-03 11:23:17 +02:00
-
372b99890f
feat(magic-link): user can resend email if magic link is expired
Edouard Vanbelle
2026-06-03 11:13:43 +02:00
-
c56bc79441
doc: add public explaination on sharing
Edouard Vanbelle
2026-06-03 10:51:45 +02:00
-
cea315fcfd
feat(ui:profile): permit change of username, givenname, familyname
Edouard Vanbelle
2026-06-03 09:35:38 +02:00