個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Uniduni é uma comunidade P2P de voz, vídeo e tela — sem servidor central. Cada comunidade é hospedada pela máquina de quem a criou. Uniduni é um app de comunidade em voz, vídeo e compartilhamento de tela, no formato de servidores/canais, mas sem backend central: os dados moram na máquina de quem hospeda a comunidade e são descobertos por DHT, não por um servidor de terceiros.檢視完整 README ↗
Uniduni é uma comunidade P2P de voz, vídeo e tela — sem servidor central. Cada comunidade é hospedada pela máquina de quem a criou.
Uniduni é um app de comunidade em voz, vídeo e compartilhamento de tela, no formato de servidores/canais, mas sem backend central: os dados moram na máquina de quem hospeda a comunidade e são descobertos por DHT, não por um servidor de terceiros.
Todas as fases do v1 estão implementadas (docs/backend-v2.md §29, emenda de 2026-09-04).
core/ é o núcleo determinístico do estado da comunidade e a camada de rede —
Hyperswarm/Hypercore/corestore vivem em core/src/l0/swarm/, corestore/, e o
utilityProcess de app/ liga o HyperswarmBackend real à DHT. frontend/ é o renderer de
produto: lê todo o dado do núcleo pela IPC-R e é onde mora a mídia P2P (malha de voz e estrela
de tela em WebRTC, §17.2/§17.5). backend/ é um diretório vazio do layout antigo — a camada
P2P não foi construída ali. Consulte docs/backlog.md para o que
continua aberto.
O que a arquitetura normativa (docs/backend-v2.md) define para o produto:
fold(log) — função pura, total e determinística sobre um log
append-only.utilityProcess / renderer).Partes marcadas REQUIRES POC ou BENCHMARK REQUIRED na especificação só entram em
produto depois de evidência experimental — ver poc/ e
docs/plano-de-validacao-experimental-v2.md.
Requer Node.js ≥ 22. O repositório é um monorepo sem workspace raiz — cada pacote
(core/, frontend/, app/) tem seu próprio package.json.
# núcleo (fold, projector, permissions, outbox...)
cd core
npm install
npm run build
npm test
# renderer de produto (Vite + React) — IPC-R e a mídia WebRTC
cd ../frontend
npm install
npm run build
# shell Electron — carrega frontend/dist e core/dist diretamente em dev
cd ../app
npm install
npm run dev
Os três comandos de build acima foram executados neste repositório antes desta seção ser escrita.
app é o produto (Electron: main + utilityProcess + renderer). npm run dev em app/
abre o shell com a interface de frontend/ e o núcleo de core/ rodando como
utilityProcess, com o swarm ligado à DHT. É uma comunidade efetivamente distribuída: o
produto empacotado para Windows e Linux foi exercitado com outros usuários, em uso normal
(docs/sequenciamento-pos-fase-0.md §123), e é essa evidência que fechou as fases 3, 7, 8 e
10. O que ela não mediu está declarado em §123.2 (tc/netem, CGNAT real e a garantia
reproduzível do piso de glibc).
Para rodar só o núcleo, sem Electron:
cd core
npm test # build + suíte unitária/projeção/fronteira
npm run typecheck
Para empacotar (Windows x64 / Linux x64, glibc ≥ 2.31 — únicos alvos do v1):
cd app
npm run montar # copia frontend/dist e core/dist para dentro do pacote
npm run dist:win # ou dist:linux
A especificação normativa vive em docs/, com precedência definida em
CLAUDE.md:
docs/backend-v2.md — arquitetura do núcleo.docs/adr-v2.md — decisões arquiteturais.docs/plano-de-validacao-experimental-v2.md — como cada gate é validado.docs/deltas-ux-v2.md e docs/frontend.md — UX e frontend.docs/backlog.md — o que está aberto hoje.core/README.md documenta o estado módulo a módulo do núcleo.
Variáveis de ambiente lidas pelo núcleo/app (ver docs/backend-v2.md §27.2 para a lista
normativa completa):
| Variável | Efeito |
|---|---|
P2P_DATA_DIR | diretório onde o manifest.db/view.db e as chaves são gravados |
P2P_BUILD_CHANNEL | prod ou dev — gateia código de desenvolvimento |
P2P_RENDERER_URL | em dev, sobrepõe o carregamento do frontend/dist por uma URL (ex.: servidor do Vite) |
Veja CONTRIBUTING.md para como rodar o ambiente local, a convenção de
commits e branches, e como abrir PR.
MIT.