feat(labs): keep a marker's panel when it is merged into one without

A merge into a target without a panel now takes over the first panel
a source carries, in the order the sources were given, so the merged
marker keeps its category. The result reports it as adoptedPanel, on
a dry run as well, and the merge preview says so before the person
confirms. A target with its own panel keeps it. The ledger does not
record panels; a merge has no undo.

The integration suite also proves the clear path end to end: an
explicit null on PUT clears panel, context and both bounds.

Refs #1349
This commit is contained in:
Marc-André Bombeck committed 2026-11-06 17:53:56 +01:00
1 parent 910f28dcfe
commit 65f1a3db91
17 files changed
+232 -54

No files matched your search

+8
View File
@@ -78354,6 +78354,13 @@ components:
items:
type: string
description: Names that become aliases of the target.
adoptedPanel:
description: "The panel the target takes over: when the target has none, the first panel a source carries, in the order
the sources were given. `null` when the target keeps its own panel or no source has one. Reported on a dry
run too, while `target.panel` there is still the stored one."
type:
- string
- "null"
mergeId:
description: "`null` on a dry run."
type:
@@ -78366,6 +78373,7 @@ components:
- movedReadings
- convertedReadings
- aliasesAdded
- adoptedPanel
- mergeId
additionalProperties: false
description: What a merge did, or would do on a dry run. Readings in another unit are converted where the analyte's