29 lines
1.3 KiB
Markdown
29 lines
1.3 KiB
Markdown
# Common form modules
|
||
|
||
## Proven form facts
|
||
|
||
The `test2` common forms `t_Форма` and `tt_Форма3` are distinct objects with
|
||
distinct GUIDs and descriptors. A label must be decoded from the descriptor;
|
||
do not shorten or normalize it by guesswork (`tt_Форма3` is not `t_Форма3`).
|
||
|
||
A form `.0` payload can contain more than a simple standalone BSL string. The
|
||
adapter must use the proven container extractor and preserve all non-BSL
|
||
segments, including form settings and command metadata.
|
||
|
||
## Module patch rules
|
||
|
||
- Obtain the BSL region from the decoded container, not from a global text
|
||
search over compressed bytes.
|
||
- Count the requested anchor in the relevant BSL region.
|
||
- Replace a unique exact fragment once; report ambiguity otherwise.
|
||
- Re-encode using the source payload’s detected codec and line-ending style.
|
||
- Read back, re-extract BSL, and verify the target occurrence count.
|
||
|
||
## Pending-state resolution
|
||
|
||
When `ConfigCASSave` contains a `__configinfo` map, that map is authoritative
|
||
for the pending overlay even if the corresponding module row is absent. The
|
||
active `ConfigCAS` source must be selected through the saved map before a new
|
||
delta row is created. Reading only active content can incorrectly conclude
|
||
that a pending comment is absent and cause a duplicate insertion.
|