chore(repo): codify local operator resource limits

This commit is contained in:
DCCONSTRUCTIONS
2026-07-29 01:52:16 +03:00
parent d729abab31
commit bfd95c7fee
2 changed files with 58 additions and 7 deletions
+20 -4
View File
@@ -26,17 +26,27 @@ and the boundary between Mission Core and vendor-specific integration code.
## Local operator resource envelope
- The operator Mac has 18 GB of physical memory. Treat local memory and swap as
a hard shared limit, not as disposable build capacity.
- The local operator machine is a 14-inch 2023 MacBook Pro with only 18 GB of
physical memory. Treat local memory and swap as a hard shared operational
limit, not as disposable build capacity.
- Run frontend tests, production builds, Docker builds, runtime startup, and
browser QA sequentially. Do not launch parallel heavy local jobs.
- Do not start Docker Desktop, a Compose stack, a second browser automation
session, or a full test/build pass merely for convenience. First prove that
the operation is necessary, prefer the narrowest focused check, and keep no
more than one memory-intensive validation job active at a time.
- Do not run load or stress tests on the Mac. Run bounded synthetic load only on
Worker 006, and remove every temporary process after the measurement.
- Use only the canonical Mission Core endpoint on port `8000`; do not start
duplicate application servers to work around stale state.
- Before a memory-intensive local operation, inspect current memory pressure and
active Docker workload. Prefer focused tests and existing build artifacts when
they are sufficient for acceptance.
active Docker workload. If memory pressure is elevated or swap is growing,
stop and remove temporary jobs before continuing. Prefer focused tests and
existing build artifacts when they are sufficient for acceptance.
- After every local test, build, replay, browser-QA, or Docker operation, stop
temporary workers, watchers, replay publishers, duplicate viewers, and
containers that are not durable operator state. Keep only the canonical
Mission Core service on `8000` and explicitly required operator services.
- Docker Desktop's configured VM ceiling is not evidence that the host can
safely supply that memory. Do not change Docker Desktop CPU or memory limits
without explicit owner approval.
@@ -90,6 +100,12 @@ decoders before BLE/Wi-Fi/data-session evidence exists.
port to bypass a stale process. TCP `8765` is legacy Foxglove regression
only, not an operator path. Restart the canonical `8000` process and finish
with no Mission Core backend listening on `8765`.
- The canonical `8000` process is durable operator state. A completed test,
build, browser QA pass, Codex turn, or implementation increment never
authorizes stopping it. Every Control Station task starts by checking and, if
necessary, starting the integrated service; every handoff verifies and leaves
that exact service running on `8000`. A rebuild may replace it only when the
replacement is confirmed listening before handoff.
- `NODEDC_DESIGN_GUIDELINE` is the only visual-design source of truth. Before
editing UI, read its `registry/registry.json`, `registry/components.json`,
`registry/icons.json`, and the relevant component documentation.