feat: finish Stage 2B continuous sorter realism and local deploy

Unify CAD conveyor on / and /details, add RealSense D435i + contact paddle
physics, keep items moving through scan, lock 7×10 drop validation, and
ship Stage 2 artifacts with production on :3100 (permanent HTTPS still blocked).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Даня Архипов
2026-07-30 12:00:09 +00:00
parent 40e9b18e8d
commit acc59ec912
81 changed files with 2530 additions and 878 deletions

View File

@@ -152,8 +152,9 @@ describe('Stage 2 §18.11–12 — domain result authority', () => {
});
it('wrong-receiver drops are detected, never silently "fixed"', () => {
// Deliberately reversed pusher direction: bottle aimed away from D.
const bad = simulateDrop('SKU-007', 'D', { linvelScale: -1 });
// Mechanism fault: domain classified D, but the paddle executed a C push —
// the item lands in C and the mismatch MUST be detected, not corrected.
const bad = simulateDrop('SKU-007', 'D', { wrongPusher: true });
expect(bad.insideExpectedReceiver).toBe(false);
expect(receiverContains('D', bad.finalPosition)).toBe(false);
});