GPT Image Panel v1.0.2
GPT Image Panel v1.0.2
v1.0.2 improves reliability for long-lived SSE clients, image job queue coordination, and production observability. This release is focused on making generate/edit progress updates more resilient under load, especially when multiple workers or many browser tabs are connected.
Highlights
- Added SQLite-backed SSE connection leasing with global and per-IP subscriber limits.
- Added polling-based gallery and generate job updates so browsers receive fresher job state without depending on a single in-memory process.
- Improved image job queue coordination with active/queued capacity limits, unit leases, and clearer queue-full handling.
- Expanded
/api/metricswith worker snapshots, SSE limiter state, and runtime coordination metrics. - Added Granian runtime configuration for workers, runtime threads, event loop, backlog, backpressure, and immutable static asset serving.
- Improved storage connection handling and clarified repository behavior around thread-local connections.
SSE and Job Coordination
- Gallery SSE subscriptions now use persistent connection slots with a TTL, refresh loop, and cleanup path.
- Connection limits can be configured independently for the whole instance and per client IP:
MAX_SSE_SUBSCRIBERS_GLOBALMAX_SSE_SUBSCRIBERS_PER_IPSSE_CONNECTION_TTL_SECONDS
- Generate and gallery flows now poll SQLite-backed job state for progress and completion updates.
- Job execution now tracks active and queued generate/edit work more explicitly, which helps prevent overload when many requests arrive at once.
- Edit source reservations are persisted so pending edit uploads can be constrained by size and job lifecycle.
Observability
/api/metricsnow includes worker-level metric snapshots and runtime coordination data whenENABLE_METRICS=true.- The backend records SSE slot state and worker metric snapshots in SQLite.
- Metrics now expose more useful queue, worker, and connection state for diagnosing multi-worker deployments.
- Slow gallery query logging remains available through
SLOW_GALLERY_QUERY_MS.
Runtime and Deployment
- Docker runtime configuration now exposes Granian tuning options:
GRANIAN_WORKERSGRANIAN_RUNTIME_THREADSGRANIAN_LOOPGRANIAN_BACKPRESSUREGRANIAN_BACKLOGGRANIAN_STATIC_PATH_ROUTEGRANIAN_STATIC_PATH_MOUNTGRANIAN_STATIC_PATH_EXPIRES
- The published GHCR image is available as:
ghcr.io/z1rconium/gpt-image-linux:v1.0.2ghcr.io/z1rconium/gpt-image-linux:latest
- The release
docker-compose.ymluses the prebuilt GHCR image directly instead of building from source.
Fixes
- Improved SQLite storage connection handling for repository operations.
- Added tests for SSE slot management, background lease completion, queue behavior, edit source reservation failures, and contract-level behavior around the new job lifecycle.
- Updated documentation and environment examples for the new queue, SSE, metrics, and Granian runtime settings.
Upgrade
Docker
docker pull ghcr.io/z1rconium/gpt-image-linux:v1.0.2
docker run --rm -p 127.0.0.1:9090:9090 \
-v "$PWD/images:/app/images" \
-v "$PWD/data:/app/data" \
--env-file .env.example \
ghcr.io/z1rconium/gpt-image-linux:v1.0.2Docker Compose
Download the release compose file and environment example:
curl -Lo docker-compose.yml https://github.com/Z1rconium/gpt-image-linux/releases/download/v1.0.2/docker-compose.yml
curl -Lo .env.example https://github.com/Z1rconium/gpt-image-linux/releases/download/v1.0.2/env.example
docker compose up -dRelease Assets
docker-compose.yml: compose file that runs the published GHCR image.env.example: environment template; download it as.env.exampleif you want the conventional local filename.gpt-image-panel-v1.0.2-prebuilt.tar.gz: offline source/runtime bundle with the built frontend included.SHA256SUMS: checksums for the release assets.
Changelog
Full comparison: v1.0.1...v1.0.2
Commits included:
c269956fix(storage): improve connection handling and update docstring for clarity6e520ccfeat: Implement SSE polling for gallery and generate jobs with queue management29ee284Enhance SSE connection management and observability metrics5e74932chore: release v1.0.2