From 6d88453b699eb44157dc86d1488fcea6bb9fd9e2 Mon Sep 17 00:00:00 2001 From: "Aaron D. Lee" Date: Fri, 9 Jan 2026 22:16:34 -0500 Subject: [PATCH] Update release notes for v4.2.0 Co-Authored-By: Claude Opus 4.5 --- RELEASE_NOTES.md | 64 ++++++++++++++++++++++------------------ src/stegasoo/__init__.py | 2 +- 2 files changed, 37 insertions(+), 29 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 67a6e01..2178726 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,49 +1,57 @@ -## Stegasoo v4.1.7 +## Stegasoo v4.2.0 -### Mobile UI Polish -- **PIN Entry**: Shrunk digit boxes for 9-digit PIN support on mobile -- **Mode Selectors**: DCT/LSB buttons now use consistent button-group styling with icons -- **Navbar**: Left-aligned collapsed menu, shortened channel fingerprint display (`ABCD-••••-3456`) -- **Text Wrapping**: Fixed button text wrapping issues on narrow screens +### Performance Optimizations -### Docker Improvements -- **Reorganized**: Docker files moved to `docker/` directory - - `docker/Dockerfile` - - `docker/Dockerfile.base` - - `docker/docker-compose.yml` -- **DCT Fix**: Added Reed-Solomon (`reedsolo`) to Docker images - fixes DCT decode failures -- **Quick Start**: New `docs/DOCKER_QUICKSTART.md` guide +Major performance improvements for Raspberry Pi and resource-constrained deployments. -```bash -# Build and run -docker build -f docker/Dockerfile.base -t stegasoo-base:latest . -docker-compose -f docker/docker-compose.yml up -d -``` +#### DCT Vectorization (~14x faster) +- Batch DCT processing using `scipy.fft.dctn` with `axes=(1,2)` +- Processes 500 blocks at once instead of one-by-one +- Decode time reduced from ~2.6s to ~0.8s on 1MB images -### Raspberry Pi -- **First-Boot Wizard**: Can now load existing channel key (for joining team deployments) -- **Project Cleanup**: Moved `pishrink.sh` to `rpi/tools/` +#### Memory Optimization (50% reduction) +- Switched from `float64` to `float32` for all DCT operations +- Peak RAM: 211 MB → 107 MB for encode, 104 MB → 52 MB for decode +- Critical for Pi 3/4 avoiding swap thrashing -### UI Copy -- Changed "Undetectable" to "Covertly Embedded" on encode page (more accurate) +#### Progress Callbacks for Decode +- `progress_file` parameter added to `decode()` and extraction functions +- UI can now show decode progress (phases: loading, extracting, decoding, complete) +- JSON format: `{"current": 80, "total": 100, "percent": 80.0, "phase": "decoding"}` + +#### Async API Endpoints +- Encode/decode operations now run in thread pool via `asyncio.to_thread()` +- API server can handle concurrent requests without blocking +- Essential for multi-user Pi deployments + +### Summary + +| Metric | v4.1.7 | v4.2.0 | Improvement | +|--------|--------|--------|-------------| +| Decode (1MB) | ~2.6s | ~0.8s | **70% faster** | +| Peak RAM | 211 MB | 107 MB | **50% less** | +| Concurrent API | No | Yes | ✓ | ### Raspberry Pi Image -Download `stegasoo-rpi-4.1.7.img.zst.zip` from Releases. +Download `stegasoo-rpi-4.2.0_final.img.zst` from Releases. ```bash # Flash (auto-detects SD card) -sudo ./rpi/flash-image.sh stegasoo-rpi-4.1.7.img.zst.zip +sudo ./rpi/flash-image.sh stegasoo-rpi-4.2.0_final.img.zst # Or manual -unzip -p stegasoo-rpi-4.1.7.img.zst.zip | zstdcat | sudo dd of=/dev/sdX bs=4M status=progress +zstdcat stegasoo-rpi-4.2.0_final.img.zst | sudo dd of=/dev/sdX bs=4M status=progress ``` Default login: `admin` / `stegasoo` -First boot runs the setup wizard for WiFi, HTTPS, and channel key configuration. - ### Docker ```bash +# Build and run +docker build -f docker/Dockerfile.base -t stegasoo-base:latest . +docker-compose -f docker/docker-compose.yml up -d + +# Or individual services docker-compose -f docker/docker-compose.yml up -d web # Web UI on :5000 docker-compose -f docker/docker-compose.yml up -d api # REST API on :8000 ``` diff --git a/src/stegasoo/__init__.py b/src/stegasoo/__init__.py index 3453ae8..cb20d64 100644 --- a/src/stegasoo/__init__.py +++ b/src/stegasoo/__init__.py @@ -7,7 +7,7 @@ Changes in v4.0.0: - encode() and decode() now accept channel_key parameter """ -__version__ = "4.1.7" +__version__ = "4.2.0" # Core functionality # Channel key management (v4.0.0)