v1.0.0
docsfy v1.0.0
First stable release — complete architecture migration from Jinja2 server-rendered templates to a modern React SPA with CLI support.
Highlights
- React 19 SPA with shadcn/ui, TypeScript, and Vite
- Typer CLI with multi-server profiles and full API coverage
- WebSocket real-time generation progress (replaces polling)
- FastAPI routers — backend restructured from monolithic main.py
Backend
- Restructured monolithic
main.py(~2000 lines) into FastAPI routers:api/auth.py,api/projects.py,api/admin.py,api/websocket.py - Slim app factory (
main.py~250 lines) - WebSocket endpoint (
/api/ws) with sync, progress, and status_change messages - Application-level heartbeat (ping/pong)
- Security: timing-safe admin key comparison, SSRF protection, HTTPS-by-default CLI
update_and_notify()wrapper ensures WebSocket notifications on every status change
Frontend
- Consolidated dashboard: collapsible sidebar + detail panel (no separate pages)
- Project tree with virtual scrolling, status badges, and tooltips
- Real-time generation progress: activity log, progress bar, stage transitions
- Admin panels: user management (CRUD, key rotation) and access control
- Modal system (
useModalhook) and toast notifications (Sonner) - Dark/light theme with localStorage persistence
- Accessibility: ARIA combobox, keyboard navigation, focus trapping
- Mobile: responsive sidebar as slide-out drawer
CLI
- Multi-server profiles (
~/.config/docsfy/config.toml) - Full API coverage:
generate(with--watch),list,status,delete,abort,download - Admin commands:
admin users list/create/delete/rotate-key,admin access list/grant/revoke - Global connection options:
--server,--host,--port,--username,--password - Config management:
config init,config show,config set
Build & Deploy
- 3-stage Docker build: frontend builder (Node 20) + Python builder + runtime
DEV_MODEwith Vite dev server + FastAPI auto-reload- Entry points:
docsfy(CLI),docsfy-server(web server)
Testing
- 289 Python unit tests
- 171 E2E UI tests across 12 test plan files
- WebSocket, CLI, and accessibility test coverage
Breaking Changes
docsfycommand now launches the CLI (previously started the server)- Use
docsfy-serverto start the web server - Login endpoint changed from
POST /login(form) toPOST /api/auth/login(JSON) GET /api/statusreplaced byGET /api/projects(alias kept for compatibility)- Old Jinja2 app templates removed (doc site templates preserved)