mirror of
https://github.com/wu736139669/hapi.git
synced 2026-08-05 06:24:37 +00:00
Debounce the sync banner to only show if sync takes longer than 300ms. This prevents the banner from flashing on quick syncs while still showing for slower operations. Changes: - Added DEBOUNCE_MS constant (300ms) - Changed doStartSync to delay banner display by 300ms - Changed endSync to immediately clear all timeouts - Renamed endSyncTimeoutRef to startDelayTimeoutRef (now for debounce)
hapi-web
React Mini App / PWA for monitoring and controlling hapi sessions.
What it does
- Session list with status, pending approvals, and summaries.
- Chat view with streaming updates and message sending.
- Permission approval and denial workflows.
- Machine list and remote session spawn.
- File browser and git status/diff views.
- PWA install prompt and offline banner.
Runtime behavior
- When opened inside Telegram, auth uses Telegram WebApp init data.
- When opened in a normal browser, you can log in with the shared
CLI_API_TOKEN. - Live updates come from the server via SSE.
Development
From the repo root:
bun install
bun run dev:web
If testing in Telegram, set:
WEBAPP_URLto the public HTTPS URL of the dev server.CORS_ORIGINSto include the dev server origin.
Build
bun run build:web
The built assets land in web/dist and are served by hapi-server. The single executable can embed these assets.
Stack
React 19 + Vite + TanStack Router/Query + Tailwind.