2.11.0
Quilltap v2.11.0 Release Notes
Less scaffolding, more living space. The estate has been renovated.
Highlights
Windows-compatible Docker images — We now automatically provide Windows (and indeed, amd64) Docker images.
Docker Simplified — The entire Docker story has been rewritten. Gone are the compose files, the Nginx configs, the MinIO buckets, and the authentication scaffolding nobody asked for. In their place: a single docker run command, platform-aware startup scripts that auto-detect your local services, and transparent host port forwarding so Ollama and friends just work at localhost. One command to start. No config file required.
Large Import Fix — .qtap backup files over 10MB no longer choke on import. The proxy body limit and upload pipeline have both been corrected.
Major Features
Docker Infrastructure Overhaul
- Removed dead Docker infrastructure:
docker-compose.yml,docker-compose.prod.yml,docker-compose.test.yml,Dockerfile.allinone, and all supporting scripts (start-allinone.sh,init-letsencrypt.sh,nginx.conf) - Removed
build:docker:rebuild,start:docker,stop:dockernpm scripts - New
HOST_REDIRECT_PORTSsupport in the Docker image for transparent host port forwarding- New
docker/entrypoint.shscript sets up socat forwarders for a comma-separated port list - Docker users can now reach host services (Ollama, LM Studio, MCP servers) at
localhostURLs without network mode tricks - socat installed in the production Docker image
- New
Platform-Aware Startup Scripts
- New
scripts/start-quilttap.sh(macOS/Linux) andscripts/start-quilttap.ps1(Windows) - Platform detection sets the correct default data directory per OS
- Auto-detects Ollama on port 11434 and adds it to
HOST_REDIRECT_PORTS - Supports
--data-dir,--port,--redirect-ports,--tag,--env,--restart,--dry-run - Checks for existing containers before creating duplicates
--no-auto-detectflag to skip service detection
Authentication Removal
- Removed all authentication infrastructure: JWT, OAuth, Google sign-in
- Removed
JWT_SECRET,AUTH_DISABLED,OAUTH_DISABLED,GOOGLE_CLIENT_*from.env.exampleand documentation - Removed authentication sections from
DEPLOYMENT.md - Simplified
README.mdQuick Start — no configuration required for local use
Documentation
- Rewrote all Docker documentation around
docker runand the new startup scripts README.mdQuick Start now recommends startup scripts withdocker runas fallback- Updated
DEVELOPMENT.md,DEPLOYMENT.md,DATABASE_ABSTRACTION.md,BACKUP-RESTORE.md - Added reverse proxy examples (Nginx, Caddy) to
DEPLOYMENT.md - Added Docker user notes to in-app help files (startup wizard, connection profiles, embedding profiles)
- Cleaned up stale references in
.env.example,package.json,knip.json,lib/paths.ts, and the DataDirectorySection component - Updated Docker build process to ensure Windows and macOS coverage
Bug Fixes
Critical
- Large
.qtapimport failure: Files over 10MB now import correctly- Added
proxyClientMaxBodySize: '100mb'tonext.config.jsto prevent proxy body truncation - Frontend import now sends the original file via FormData instead of re-serializing JSON
- Backend import-execute endpoint now supports FormData uploads (matching import-preview)
- Added
Data Integrity
- User ID migration table names corrected:
prompts→prompt_templates,messages→chat_messagesto match actual SQLite schema; removedmemoriesfrom migration list (nouserIdcolumn) - Story background file storage: Backgrounds now correctly stored in
/story-backgrounds/folder with properprojectIdandfolderPathmetadata; auto-creates folder record on first generation per scope; fixed projectlist-filesAPI response missing fields needed by FileBrowser UI
UI
- Participants sidebar always visible: Removed
isMultiChargate so the sidebar renders even with zero participants; users can now add characters to empty chats; updated empty state message to "Add a character to get started"