AnasSarkiz/magnetic-shutter-remote-r8

A USB‑C rechargeable battery-powered ESP32‑C3 wireless controller with Li‑ion charging, protected 3.3‑V buck‑boost regulation, thermal/safety monitoring, status LEDs, buttons, programming UART, crystal clock, and 2.4‑GHz antenna matching network.

Version
0.4.0-prototype
License
unset
Stars
0

tooling/R9-patches/README.md

# Empty polygon paste offsets

Reconstruct core through `tooling/R8-patches/SILK-VISIBILITY.md`, then overlay
`tooling/source-archives/core-R9-empty-polygon-paste-changes.tar.gz`. Verify the
manifest hashes first. This generic correction omits automatically generated
paste when a negative margin erodes the entire footprint-local polygon bounding
width or height. It preserves supplied explicit paste polygons. Rotation does
not change the empty-aperture decision. Nonempty nonzero polygon offsets still
fail explicitly; no approximated or substituted aperture is emitted.

Use sibling `vendor` linked to the root vendor directory, and a frozen Bun
installation. The supplier regression resolves sibling imports in the tool
workspace; the old R7 fixture also requires the retained runtime-level imports
link. Run the R8/R9 focused tests plus parent-paste and the three R7 pad/ground
regressions serially through `python3 cloud/run-heavy.py`. Result:24 tests,
296 assertions,0 failures. Run canonical `bun run build`, then `bun pm pack`.
The root dependency/override and lock install the separately named local R9
archive. No generated supplier definition, dependency artifact or old archive
was edited, and no tooling package was published.

## Phase plane maps

After the empty-paste reconstruction, apply
`tooling/source-archives/core-R9-phase-plane-maps-changes.tar.gz`. Verify
`phase-plane-maps-manifest.json` hashes. The intermediate runtime
`core-r9-phase-plane-maps.tgz` includes all earlier overlays. Its regression
preserves an earlier partial saved signal escape and both later GND plane drops.
Run the eight recorded fanout/phase tests without updating existing snapshots,
then canonical build and packing. Local issue108 records the precise control.

Apply `core-R9-plane-source-anchors-changes.tar.gz` next, checking the separate
manifest. The active runtime `core-r9-plane-source-anchors.tgz` also retains
component-pad anchors for plane drops after earlier saved GND escapes. Nine
related regressions pass with58 assertions, with both new labelled native
snapshots inspected. Earlier source/runtime archives are preserved unchanged.

## Route fragments

Extract the exact capacity0.0.951 Git source base and apply its cleanup overlay,
using the hashes/Git head in `capacity-cleanup-manifest.json`. Native fragment
identities are unique only during cleanup; original electrical identities and
all fragments/endpoints survive validation and acceptance. Local issue107 gives
the control reproduction and qualified ground-phase result. Canonical build
and packing pass. Root deployment uses the normally installed local archive and
lock. The source project's disabled developer-lock saving and stopped forced
lock attempts are recorded separately; no fresh developer-lock pass is claimed.

## Completed plane returns

Apply `core-R9-completed-plane-returns-changes.tar.gz` after the source-anchor
patch, verifying `completed-plane-returns-manifest.json`. The active
`core-r9-completed-plane-returns.tgz` retains all earlier overlays. Issue110
records original3-failure controls,14 passing regressions/131 assertions,
labelled native visual inspection and successful ESM/declaration build/packing.
Existing saved returns, pad-contacting barrels and plated terminals are reused;
remote labels still need real copper. Whole-board connectivity, clearance and
supplier process gates remain unchanged. No tooling publication occurred.

## Fixed copper in physical DRC

After the completed-plane-returns core overlay and cleanup-fragments capacity
base, apply each project's `*-R9-fixed-copper-drc-changes.tar.gz`. Verify the
source/runtime hashes in `fixed-copper-drc-manifest.json`. The immutable SRJ
field preserves exact authored copper for repair evaluation while planning
continues to use conservative obstacles. Source controls explicitly reproduce
missing fixed copper and relaxed-clearance acceptance. The source builds and
packs pass; normal root deployment and actual board rerouting are separate gates.
No capacity formatter/linter or README edit was applied. No generated Circuit
JSON, footprint, Gerber or installed runtime file was edited by hand.

## Initial topology of fixed copper

Apply `capacity-R9-fixed-copper-connectivity-changes.tar.gz` after the fixed-
copper DRC overlay. Verify `fixed-copper-connectivity-manifest.json`. The same
explicit endpoint identities used for preloaded traces are now honored for
immutable copper. A net name alone still establishes no physical connection.
Original control:2 pass/1 fail. Corrected related suite:14 pass/31 assertions;
canonical ESM/declarations and local packing pass. Root installation and final
board qualification remain separate gates.

## Full source context and exact saved-trace provenance

Apply both phase-source-context overlays after the fixed-copper connectivity
chain, verifying `phase-source-context-manifest.json`. These preserve the full
logical source netlist while only the phase goals are routed, including when
cached connectivity maps are supplied. Source tests retain genuine crossings.

Then apply both `*-R9-fixed-trace-provenance-changes.tar.gz` overlays, checking
`fixed-trace-provenance-manifest.json`. Exact copper and its conservative planning
boxes are separate representations. The converter emits the exact trace once,
and retains an obstacle when its referenced trace is absent. Planning-box contact
cannot create a logical source connection. Build and pack canonical sources,
then install the named local archives normally; never modify installed files.

## Declared source nets and via/pad validation

Apply `capacity-R9-declared-net-drc-changes.tar.gz` after fixed-trace provenance,
checking `declared-net-drc-manifest.json`. Source-trace conversion may retain
only obstacle identities already connected by the declared logical netlist.
XY contact cannot merge source nets. Copper-pour planning bounds are not
physical SMT pads; native clipped-pour and independent whole-board checks
remain mandatory. The evaluator includes the declared via-to-pad clearance,
and normalizes its via/pad error identities for repair. Run the17 recorded
regressions from the capacity project directory so its Bun SVG preload applies;
89 assertions and existing snapshots pass. Build/pack canonical source and
install the named local archive normally. No capacity format/lint or README edit.

## Invalidate generated routing cache after implementation changes

The upstream local route cache identifies core's package version, solver options
and SRJ, but not effective capacity build bytes. After installing a different
qualified solver archive, preserve any old `.tscircuit/cache` outside the active
cache path before rerouting. Verify the cache contains no tracked files. Never
reuse old routes as proof that a changed implementation executed. Route64
reproduced this behavior; local issue111 records the exact cache IDs. Native
and independent whole-board gates remain mandatory.

## Fast indexed repair includes immutable copper

Apply `capacity-R9-indexed-fixed-copper-changes.tar.gz` after declared-net-drc,
checking `indexed-fixed-copper-manifest.json`. The indexed baseline/ranking and
clearance-margin converter must see the same immutable copper as the exact
reference evaluator. The original failing regression keeps another collision
present, so reference-zero validation cannot hide the omitted fixed trace.
Corrected14tests/76assertions and canonical build/local pack pass. Invalidate
the preserved generated route cache before actual board rerouting. Actual
native/independent physical/process/CAM/RF and enclosure gates still apply.

## Indexed drill spacing uses the correct geometric convention

Apply `capacity-R9-hole-gap-ranking-changes.tar.gz` after indexed-fixed-copper,
checking `hole-gap-ranking-manifest.json`. Fast ranking measures copper-edge
spacing; translate the declared drill-edge rule using the same default via
dimensions as route conversion. Exact reference validation still checks each
actual barrel. Original crossing-plus-via-pair control fails; corrected15tests/
80assertions include a clear pair. Build/pack normally and invalidate generated
routing cache before actual rerouting. No manufacturing minimum is lowered.

## Saved complete paths at existing breakout contacts

After fixed-trace-provenance, apply
`core-R9-saved-origin-contacts-changes.tar.gz`, verifying the separate
`saved-origin-contacts-manifest.json`. The canonical source matches explicit
breakout source-port identities and validates already coincident same-layer
physical contacts. Seven related tests/77 assertions, ESM/DTS build, local pack
and labelled native snapshot review pass. Cross-layer coincidence, wrong
anchors, duplicate and missing coverage remain errors. The separately named
`core-r9-saved-origin-contacts.tgz` is installed normally; no installed dependency
or generated Circuit JSON is hand-edited. Read issue113 for reproduction.