13027_incomplete_imports #183

Merged
Anja Leichsenring merged 4 commits from 13027_incomplete_imports into main 2026-08-20 08:40:50 +00:00
No description provided.
An object that is first resolved as a relation to another and later
on arrives as a root to the import itself is in danger to loose
its categories. This happens because the category storage
is dropped after relation resolving, and the later root resolving
gets notified there is nothing left to do.
By keeping the category bucket around for full resolving, the object
can receive its categories as it should.

Resolves: https://redmine.werkraum-media.de/issues/13028
Assisted-by: Claude Opus 5 noreply@anthropic.com
If an object is first imported as a relation and later on as its own
entry, it is in danger of not getting its media related. This is due
to a design flaw that prevents imports from fanning out too far by
capping relation resolving. The media relations fell victim to this
cap while not being able to cause a fan out.
To prevent objects loosing their media, those fields are now exempt
from the fetch cap.

Resolves: https://redmine.werkraum-media.de/issues/13028
Assisted-by: Claude Opus 5 noreply@anthropic.com
Resolving a record's accessibility specification fetches the referenced
resource and shapes it into a JSON blob on the record's own row. It
stages no rows and follows no references, so it cannot fan out.

MAX_FETCH_DEPTH exists to stop an import fanning out across the densely
cross-referenced POI graph, and applies to buckets that stage rows.
Applying it to the accessibility bucket meant a record discovered
through a relation on an earlier root — entering the payload at depth 1
— had its specification reference dropped.
Exempt the bucket from the cap, as the keyword bucket already is.

Resolves: https://redmine.werkraum-media.de/issues/13028
Assisted-by: Claude Opus 5 noreply@anthropic.com
[TASK] Log relations that don't match conditions
All checks were successful
CI / base-qa (pull_request) Successful in 24s
CI / advanced-qa (82, ^13.4) (pull_request) Successful in 4m12s
CI / advanced-qa (82, ^14) (pull_request) Successful in 4m25s
CI / advanced-qa (83, ^13.4) (pull_request) Successful in 4m6s
CI / advanced-qa (83, ^14) (pull_request) Successful in 4m12s
CI / advanced-qa (84, ^13.4) (pull_request) Successful in 4m5s
CI / advanced-qa (84, ^14) (pull_request) Successful in 4m14s
CI / advanced-qa (85, ^13.4) (pull_request) Successful in 4m0s
CI / advanced-qa (85, ^14) (pull_request) Successful in 4m10s
CI / base-qa (push) Successful in 24s
CI / advanced-qa (82, ^13.4) (push) Successful in 4m7s
CI / advanced-qa (82, ^14) (push) Successful in 4m27s
CI / advanced-qa (83, ^13.4) (push) Successful in 3m58s
CI / advanced-qa (83, ^14) (push) Successful in 4m14s
CI / advanced-qa (84, ^13.4) (push) Successful in 3m54s
CI / advanced-qa (84, ^14) (push) Successful in 4m16s
CI / advanced-qa (85, ^13.4) (push) Successful in 3m52s
CI / advanced-qa (85, ^14) (push) Successful in 4m8s
e8a586de80
Some assamptions about data and relation structure have proven wrong,
and now those are revealed by explicit logging them.
As an example it was assumed that 'schema:containedInPlace' would always
resolve to a town, what was reflected by relating it into the field 'town',
which accepts town records.
But it was recently discovered, that also organisations or other tourist
attraction records can ride this field, what leads to silent loss of
these relations. Another example, that not hit the system yet, is trails.
If the relation can be constructed to a record, but the target field does
not accept it, we see a log entry now. This helps determine the amount
of lost relations and hands instruments for decisions on how to deal
with the situation.

Assisted-by: Claude Opus 5 noreply@anthropic.com
Anja Leichsenring scheduled this pull request to auto merge when all checks succeed 2026-08-20 08:24:44 +00:00
Anja Leichsenring deleted branch 13027_incomplete_imports 2026-08-20 08:40:50 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
typo3/thuecat!183
No description provided.