1.7 KiB
1.7 KiB
Decision: Treat embedded submodules as read-only
Context
bee embeds external git submodules such as:
internal/chart/—reanimator/chart, a generic read-only viewer for Reanimator JSON snapshotsbible/— shared engineering rules and contracts
These repositories are reused by other projects. A local feature request in bee
must not be solved by silently changing shared submodule behavior.
The concrete failure mode here was attempting to add project-specific storage
telemetry presentation by editing internal/chart/. That couples a shared viewer
to one host application's needs and creates hidden cross-project regressions.
Decision
Embedded submodules are read-only from the point of view of bee.
- Do not implement
bee-specific behavior by editinginternal/chart/. - Do not implement
bee-specific behavior by editingbible/. - If
beeneeds new data in the report, produce it in the standard audit JSON emitted bybeeitself. chartmust continue to consume the canonical snapshot as an external viewer, without host-specific forks.- Updating a submodule pointer to an upstream commit is allowed.
- Carrying local unmerged submodule commits as part of a
beefeature is forbidden.
Consequences
- Audit/report features must be expressed through the contract in
bible-local/docs/hardware-ingest-contract.md. beeowns collection, normalization, and serialization of storage telemetry inhardware.storage[].chartremains a pure visualization module that reads the snapshot it is given.- If a capability is genuinely missing in a shared submodule, it must be proposed
and landed upstream as a generic change first, then pulled into
beevia a normal submodule update.