# Current adapter component map This map says where to extend the project without losing protocol boundaries. It is not a substitute for reading the linked source before editing it. | Component | Location | Responsibility | Evidence boundary | |---|---|---|---| | RPC/service orchestration | `plugins/1c/connector/adapter_1c_server.py` | Base resolution, live SQL calls, saved-state plans/apply, verification, backups | Must keep active layers read-only | | Payload codec | `plugins/1c/parser/payload.py` | Envelope detection, decompression, lossless encode metadata | Require byte-identical unchanged round trip | | Brace parser | `plugins/1c/parser/*` | Decode 1C serialized brace/value trees | A parse tree is not semantic proof by itself | | Extension routes | `plugins/1c/parser/extensions.py` and adapter extension resolvers | `_ExtensionsInfo` and `ConfigCAS` manifest routes | Never infer part role from suffix alone | | DBNames mapping | `plugins/1c/parser/dbnames.py` | Metadata-to-physical SQL role evidence | Names/roles must come from live DBNames evidence | | Storage access | adapter storage helpers | Single/multi-part row reads, hashes, paired extension map updates, compare-and-set and backups | Writes only to allowed saved-state tables | | Policy | `plugins/1c/connector/policies/` | Runtime boundary and base-access rules | Policy must match tested capability, not aspiration | | Regression tests | `tests/1c/` and `scripts/smoke_1c_*` | Preserve routes and observed protocol rules | Add fixture/test before promoting a decoder rule | ## Required update order for a new object type 1. Add an experiment record with before/after SQL evidence. 2. Add/extend a decoder fixture and test. 3. Add the narrow codec or route resolver. 4. Add a writer only after lossless round-trip, paired-index handling, rollback, and human activation verification. 5. Update the relevant topic document and this map if ownership changed.