docs(uniweb): dedup growth log + bump to v0.5.0
A merge left the v0.2.0 and v0.1.0 growth-log entries duplicated. Keep one entry per version in descending order and add the v0.5.0 line covering this release: readable handles in messages, sidebar with real last message/time, and the documented `pnpm dev` setup. Frontmatter version 0.4.0 -> 0.5.0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
name: uniweb
|
||||
lang: ts
|
||||
domain: infra
|
||||
version: 0.4.0
|
||||
version: 0.5.0
|
||||
description: "Cliente web browser-nativo del bus unibus: SPA de chat (React+Mantine) con wallet por usuario (BIP39) que habla DIRECTO al bus (nats.ws + control-plane HTTPS firmado), sin gateway. La clave privada nunca sale del navegador."
|
||||
tags: [messaging, web, frontend, e2e]
|
||||
uses_functions: []
|
||||
@@ -102,6 +102,20 @@ programáticos) ve a `unibus`; `uniweb` es el cliente web encima.
|
||||
|
||||
## Capability growth log
|
||||
|
||||
- v0.5.0 (2026-06-14) — nombres legibles en mensajes + sidebar con último mensaje/hora
|
||||
reales + `pnpm dev` documentado. (1) Los mensajes muestran el **handle** del remitente en
|
||||
vez del endpoint id: `ControlPlane.fetchDirectory()` pega al control-plane
|
||||
`GET /api/directory` (firmado) y `busService` mantiene un mapa `endpoint -> handle`
|
||||
(cargado al abrir sesión, refrescado tras `createRoom`); el resolver
|
||||
`bus.displayName(endpoint)` devuelve el handle o un id corto de fallback (nunca el
|
||||
endpoint largo), usado en la cabecera y el avatar de `ChatPanel` (el endpoint queda en un
|
||||
`title` para depurar). Resiliente: si el endpoint aún no existe en el cluster (404) el
|
||||
mapa queda vacío y el chat funciona igual que antes. (2) El sidebar muestra el **último
|
||||
mensaje y la hora reales**: `busService` posee un store de rooms con una suscripción de
|
||||
metadatos por room (último mensaje/hora + unread de rooms no activas); `Sidebar` ya no
|
||||
pinta el "01:00" de epoch-0. (3) `pnpm dev` queda usable tras el cambio a same-origin:
|
||||
apunta a un nodo con `VITE_BUS_HTTP`/`VITE_BUS_WS` y el dev server corre en el puerto 5174
|
||||
(documentado en `app.md` + `vite.config.ts`). `tsc` + 19/19 unit + `pnpm build` verdes.
|
||||
- v0.3.0 (2026-06-14) — `uniweb` se vuelve **cliente browser-nativo puro** (issue 0001, Fase
|
||||
2): la SPA se cablea al SDK del bus (`busService.ts` reemplaza el módulo `api`) y se
|
||||
**elimina el gateway Go** (`cmd/webgw`, `go.mod`, `go.sum`). `uniweb` queda como solo `web/`,
|
||||
@@ -129,21 +143,3 @@ programáticos) ve a `unibus`; `uniweb` es el cliente web encima.
|
||||
respecto a lo que ya vivía en unibus 0.12.0 (wallet BIP39 + sesiones por usuario); solo
|
||||
cambia la ubicación y el módulo Go. go build/vet/test + pnpm build verdes en la nueva
|
||||
ubicación con los `replace` cross-repo.
|
||||
|
||||
- v0.2.0 (2026-06-13) — SDK del bus en TypeScript (`web/src/bus/`), issue 0001 Fase 1:
|
||||
el protocolo y el cifrado E2E del bus portados al navegador para que `uniweb` deje
|
||||
de depender del gateway Go. Módulos: `crypto.ts` (Ed25519, ChaCha20-Poly1305,
|
||||
sealed box con nonce BLAKE2b igual que Go), `frame.ts` (wire format = `encoding/json`
|
||||
de Go byte a byte), `room.ts` (Policy), `busauth.ts` (nkey NATS + firma de requests
|
||||
del control-plane), `client.ts` (envelope de room puro + `BusClient` sobre una
|
||||
interfaz de transporte + cliente HTTP firmado) y `wstransport.ts` (adaptador
|
||||
`nats.ws`). Paridad cross-language verificada contra vectores Go (`cmd/busvectors`):
|
||||
**19/19 tests verdes** — endpoint id, firma Ed25519, AEAD, sealed box, frame
|
||||
marshal/sign, nkey y canonical request. La clave privada del usuario nunca se
|
||||
serializa hacia la red. La conexión `nats.ws` + control-plane reales se validan en
|
||||
la Fase 3 (E2E) por requerir un unibus vivo con WebSocket.
|
||||
- v0.1.0 (2026-06-13) — scaffold inicial: extracción de la SPA (`web/`) y el gateway
|
||||
(`cmd/webgw`) desde `unibus` v0.13.0 a su propia app/sub-repo. Sin cambios de capacidad
|
||||
respecto a lo que ya vivía en unibus 0.12.0 (wallet BIP39 + sesiones por usuario); solo
|
||||
cambia la ubicación y el módulo Go. go build/vet/test + pnpm build verdes en la nueva
|
||||
ubicación con los `replace` cross-repo.
|
||||
|
||||
Reference in New Issue
Block a user