СИНГУЛЯР ·30 — ТКАНЬ P2P Human Information Fabric · смысл один — транспорт подстраивается
v1.41.0 · ТКАНЬ

Смысл один. Транспорт подстраивается.

Ткань — нижний слой дома: информация идёт от человека к человеку, а не от аккаунта к аккаунту. Манифест описывает передачу до первого байта, провод возит части, не заглядывая в них, SHA-256 доказывает, что байты доехали теми же байтами, а принять или отказать — решает человек.

Закон ткани: MEANING ≠ TRANSPORT · REPRESENTATION ≠ OBJECT · PERSON ≠ DEVICE. Сервер — не хозяин содержимого, провод — не читатель смысла, отношение — не логин: оно случается один раз и живёт локально.
PERSON→ОТНОШЕНИЕ→ОБЪЕКТ→ПРЕДСТАВЛЕНИЕ→ПРОВОД→ПАМЯТЬ

ШАГ 1 · КТО отношение — событие, не логин

Личность на устройстве

личности нет — отпечаток рождается от случайных байт и живёт на устройстве

Мои люди · отношение принимается явным «да»

Отношение живёт локально и работает без аккаунта (R-01). Принять — явное действие человека (R-02). Блок закрывает доставку (R-03). Удаление не уничтожает историю (R-04). Всё журналируется без дублей (R-06, R-07).

ШАГ 2 · ЧТО манифест — описание, не содержимое

Информационный объект

ШАГ 3 · КАК провод не знает смысла

Провод и передача
провод спит

порядок обмена: offer → accept/reject → chunk × N → complete → ack

ВХОДЯЩЕЕ манифест прибыл — человек решает

пока тихо: входящий манифест появится здесь, и только твоё «да» впустит байты (СВОД I-01)

ЖУРНАЛ доказуемое состояние, append-only

СВЕРКА crdt-ядро/0.1 — часы Лампорта, LWW-множество, Merkle-корень (ПВ5)

ядро спит: корень считается по явному действию (И-01). Ткань сверяет устройства без сервера: победителя LWW решает детерминированный тай-брейк (время, узел), Merkle-корень (trie 64) обменяет 32 байта вместо набора.

ПОД КАПОТ · слои ТЗ, инварианты, открытый код

Ткань реализует ТЗ «P2P HUMAN INFORMATION FABRIC v1.0» своим путём дома: семь модулей без зависимостей в БИБЛИОТЕКИ/ткань/, тест ядра node --test ИНСТРУМЕНТЫ/test_s30_tkan.mjs. Слои 1/3/9/10/11 (личность, намерение, безопасность, память, происхождение) не дублируются — они уже живут в ·19 ЧЕЛОВЕК, ·29 СВОБОДА и Своде законов I-01..I-10.

Слой ТЗМодульЖелезо
2 Relationshipотношения.mjsR-01 без аккаунта · R-02 явное «да» · R-03 блок закрывает провод · R-04 история жива · R-05 склад локален · R-06 журнал · R-07 дедуп
4 Objectманифест.mjsO-01 objectId вне транспорта · O-02 манифест без содержимого · O-03 чанков из размера · O-04 чужие байты не проходят · O-05 сначала манифест, потом решение · O-06 описание, не payload
5+6 Representation/Eligibilityпредставления.mjsпорядок ТЗ §6: явный выбор человека → жёсткие требования → политика → устройство → доступность → сеть → баллы; балл НИКОГДА не пробивает жёсткое требование; честные статусы выбрано/недоступно/неизвестно
7 Transportтранспорт.mjsMEANING ≠ TRANSPORT: провод видит конверт, не смысл; BroadcastChannel без сети; WebRTC DataChannel между устройствами, сигналинг отделён
8 Integrityцелостность.mjsSHA-256; одна шестнадцатеричная буква не та — байты чужие

WCAG 2.2: цели ≥44px, фокус виден и не перекрыт, семантика нативная (fieldset/legend/radio/status), движение гасится prefers-reduced-motion; аудита меньше — потому что решения принимают нативные элементы. Офлайн-закон дома: 0 внешних запросов, 0 шрифтов, 0 картинок, 0 эмодзи-пиктограмм.