Смысл один. Транспорт подстраивается.
Ткань — нижний слой дома: информация идёт от человека к человеку, а не от аккаунта к аккаунту. Манифест описывает передачу до первого байта, провод возит части, не заглядывая в них, SHA-256 доказывает, что байты доехали теми же байтами, а принять или отказать — решает человек.
нить спит — объект ещё не летит
сцена · ткань v1.0.0
ШАГ 1 · КТО отношение — событие, не логин
ШАГ 2 · ЧТО манифест — описание, не содержимое
ШАГ 3 · КАК провод не знает смысла
ВХОДЯЩЕЕ манифест прибыл — человек решает
пока тихо: входящий манифест появится здесь, и только твоё «да» впустит байты (СВОД 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 | отношения.mjs | R-01 без аккаунта · R-02 явное «да» · R-03 блок закрывает провод · R-04 история жива · R-05 склад локален · R-06 журнал · R-07 дедуп |
| 4 Object | манифест.mjs | O-01 objectId вне транспорта · O-02 манифест без содержимого · O-03 чанков из размера · O-04 чужие байты не проходят · O-05 сначала манифест, потом решение · O-06 описание, не payload |
| 5+6 Representation/Eligibility | представления.mjs | порядок ТЗ §6: явный выбор человека → жёсткие требования → политика → устройство → доступность → сеть → баллы; балл НИКОГДА не пробивает жёсткое требование; честные статусы выбрано/недоступно/неизвестно |
| 7 Transport | транспорт.mjs | MEANING ≠ TRANSPORT: провод видит конверт, не смысл; BroadcastChannel без сети; WebRTC DataChannel между устройствами, сигналинг отделён |
| 8 Integrity | целостность.mjs | SHA-256; одна шестнадцатеричная буква не та — байты чужие |
WCAG 2.2: цели ≥44px, фокус виден и не перекрыт, семантика нативная (fieldset/legend/radio/status), движение гасится prefers-reduced-motion; аудита меньше — потому что решения принимают нативные элементы. Офлайн-закон дома: 0 внешних запросов, 0 шрифтов, 0 картинок, 0 эмодзи-пиктограмм.