* feat: acceptance test - graph
* feat: acceptance test - graph
* feat: acceptance test - graph
* fix: remove drone
* feat: run each behat suite as a separate worker
* feat: rename
Increases the "descends into already-indexed directories" test from 100
to 10,000 directories. Restructures mocks to use map-based dispatch
instead of per-directory mock.MatchedBy registrations, keeping the test
at O(n) instead of O(n²).
Result: 10,000 already-indexed dirs with 10,000 unindexed child files
completes in ~14 seconds, confirming linear scaling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Change introductionVersion from "8.0.0" to "Daledda" (codename)
- Clarify that the cache is a process-lifetime cache tracking which
users have a personal space, not one of the general proxy caches
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract homeKnown() and createHome() from ServeHTTP to bring
cognitive complexity under the SonarCloud limit of 15.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Verifies that IndexSpace visits children inside 100 already-indexed
directories whose mtimes match the index. Before the SkipDir fix
these subtrees would be permanently skipped after an interrupted
reindex run.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Allow operators to disable the in-memory CreateHome cache via
PROXY_CREATEHOME_CACHE_DISABLED as a fallback if the cache causes
unexpected behavior.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The SkipDir optimization skipped entire subtrees when a directory was
already indexed with a matching mtime. After a failed indexing run
(e.g. Tika crash), this permanently prevented unindexed children from
being visited since the parent directory's mtime doesn't change when
child extraction fails. With O(1) DocID lookups the per-file skip
check is negligible, making SkipDir unnecessary for correctness.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The UploadReady event's FileRef.ResourceId.OpaqueId is set to the space
root ID (required for CS3 gateway path resolution via WalkPath). This
means consumers that need the file's actual node ID for Graph API URLs
get the space root instead.
Add a separate ResourceID field (following the BytesReceived pattern)
that carries the file's actual resource identifier with the correct
OpaqueId set to session.NodeID().
Upstream: https://github.com/owncloud/reva/pull/XXXXX
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use canonical header casing "X-Access-Token" (canonicalheader)
- Return true instead of nil on success to avoid nilnil (nilnil)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>