Pulse Agent
0889ee9117
feat(lib): add useLiveStream WS hook + useLiveMetrics + LiveMetricChart
...
feat(hooks): add useLiveStream generic WebSocket hook
- supports websocket/sse/polling transports
- exponential backoff reconnect with jitter
- circular buffer with configurable size
- typed filter callback per use case
- manual disconnect + reconnect + error state
feat(hooks): add useLiveMetrics derived hook
- sliding time-window cut
- moving average (configurable window)
- current / avg / min / max / ratePerSecond
- zero allocations per tick (memoized)
feat(charts): add LiveMetricChart molecule (Recharts)
- line + area variants, grid + tooltip
- moving-average overlay (dashed)
- ConnectionStatus atom in header
- status bar + compact mode
- 100% responsive, GPU via SVG ViewBox
feat(atoms): add ConnectionStatus indicator
- 5 states: disconnected/connecting/connected/reconnecting/error
- animated pulse, JetBrains Mono, pill style
- exported helpers: formatLatency / formatBytes
docs(pkg): bump v0.1.0 → v0.2.0, add recharts peerDep
2026-05-20 22:59:10 -03:00
pulse-agent
9afdccdc14
feat(tests-hooks): 23/23 hooks tests pass — useToggle, useAsync, useDebounce, useLocalStorage, useMedia, useInterval, useClipboard, useFetch
...
- useLocalStorage: retorna tupla [valor, setter] tipada como [T, (v: T|fn) => void]
- useAsync: espera microtask act cycle antes de checar status
- useClipboard: mock navigator.clipboard.writeText antes
- useMedia: mock matchMedia antes
- Busca por padrão: act() + waitFor p/ efeitos assíncronos (sem fakeTimers gerais)
- docs: PROJECTS-REGISTER, SESSION-STATE (pretérito + presente)
2026-05-19 23:37:04 -03:00