adlee-was-taken
ef5a9ce9cb
Add per-channel hybrid audio spread spectrum and env feature toggles
...
Spread spectrum v2: independent per-channel embedding with round-robin
bit distribution, preserving spatial stereo/surround mix. Adaptive chip
tiers (256/512/1024) trade capacity for lossy codec robustness. LFE
channel skipped for 5.1+ layouts. v2 header (20B) with backward-
compatible v0 decode fallback.
Environment toggles (STEGASOO_AUDIO, STEGASOO_VIDEO) gate audio/video
features for minimal builds (e.g. Raspberry Pi image-only). Values:
auto (default, detect deps), 1/true (force on), 0/false (force off).
Web UI fixes: accordion defaults to step 1 on load, chevron arrow
styling, required attribute toggling for audio carrier type switch,
"Images & Mode" renamed to "Reference, Carrier, Mode".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-28 11:58:40 -05:00
Aaron D. Lee
110b160e68
Bump version to 4.2.1
...
Release highlights:
- API key authentication (X-API-Key header)
- TLS with self-signed certificates
- CLI tools: compress, rotate, convert
- jpegtran lossless JPEG rotation
- AUR packages: stegasoo-cli-git, stegasoo-api-git
- Bug fixes: DCT rotation, jpegtran -trim, CLI output format
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-11 18:18:13 -05:00
Aaron D. Lee
34ede3815f
Add API key authentication and TLS support
...
API Authentication (v4.2.1):
- API key auth via X-API-Key header
- Keys hashed (SHA-256) and stored in ~/.stegasoo/api_keys.json
- Auth disabled when no keys configured
- Protected endpoints: encode, decode, generate, channel/*, compare, etc.
- Public endpoints: /, /docs, /modes, /auth/status, /channel/status
TLS Support:
- Auto-generates self-signed certs on first run
- Certs include localhost, local IPs, hostname.local
- Stored in ~/.stegasoo/certs/
CLI Commands:
- stegasoo api keys list/create/delete
- stegasoo api tls generate/info
- stegasoo api serve (starts with TLS by default)
Updated systemd service to use TLS.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-11 18:03:51 -05:00
Aaron D. Lee
2d7fbd1e0d
Add QR code generation to CLI and API
...
CLI generate command:
- --qr <file.png|jpg> to save RSA key as QR image
- --qr-ascii to print ASCII QR code to terminal
API endpoints:
- POST /generate-key-qr - generate QR from key_pem
- Supports png, jpg, and ascii output formats
- Uses zstd compression by default
- Added has_qrcode_write to /capabilities
Core:
- generate_qr_code() now supports jpg/jpeg output format
- New generate_qr_ascii() for terminal display
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-09 23:38:51 -05:00
Aaron D. Lee
ea57bdf302
Make API encode/decode endpoints async with thread pool
...
- Added run_in_thread() helper using asyncio.to_thread()
- /encode, /encode/file, /decode use thread pool for CPU-bound ops
- /encode/multipart, /decode/multipart also updated
- Server can now handle concurrent requests without blocking
- Updated version header to v4.2.0
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-09 22:13:57 -05:00
Aaron D. Lee
01f0173dd4
Add EXIF Editor, consolidate channel key resolution
...
EXIF Editor (Library → CLI → API → WebUI):
- src/stegasoo/utils.py: read_image_exif(), write_image_exif()
- CLI: stegasoo tools exif [--clear|--set Field=Value]
- API: /api/tools/exif, /api/tools/exif/update, /api/tools/exif/clear
- WebUI: EXIF Editor tab with inline editing, clear all, save/download
Architectural consolidation:
- Moved resolve_channel_key() to src/stegasoo/channel.py (was duplicated in 3 frontends)
- Added get_channel_response_info() for consistent API/WebUI responses
- Frontends now use thin wrappers that translate exceptions
DCT improvements:
- Added will_fit_by_mode() pre-check to WebUI encode (fail fast)
- Suggests LSB mode when DCT capacity exceeded
Dependencies:
- Added piexif>=1.1.0 for EXIF editing
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-04 01:16:33 -05:00
Aaron D. Lee
afa88bc73b
Apply black formatter to all Python files
...
Reformatted 29 files for consistent code style and CI compliance.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-02 17:44:41 -05:00
Aaron D. Lee
6b21190f97
Lint cleanup: ruff fixes across entire codebase
...
- Strip trailing whitespace from all Python files
- Fix import sorting (I001) across all modules
- Convert Optional[X] to X | None syntax (UP045)
- Remove unused imports (F401)
- Convert lambda assignments to def functions (E731)
- Add TYPE_CHECKING import for forward references
- Update pyproject.toml ruff config:
- Move select/ignore to [tool.ruff.lint] section
- Add per-file ignores for DCT colorspace naming (N803/N806)
- Add per-file ignores for __init__.py import structure (E402)
- Exclude defunct test_routes.py
- Remove frontends/web/test_routes.py (defunct debug snippet)
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-02 17:17:38 -05:00
Aaron D. Lee
6fa4b447db
More snazzy 4.0 Web UI improvements.
2026-01-02 15:45:43 -05:00
Aaron D. Lee
ef7478b30a
A whoooole lotta 4.0.x fixes.
2026-01-01 22:18:13 -05:00
Aaron D. Lee
12929bf326
Release checklist and updated test scripts.
2026-01-01 14:04:55 -05:00
Aaron D. Lee
657cae0ae6
3.2.0 Big revamp
2026-01-01 03:14:35 -05:00
Aaron D. Lee
34376b2dfe
Version 3.0.2 full expirimental DCT support, jpegio for better jpg manipulation, etc.
2025-12-31 15:43:29 -05:00
Aaron D. Lee
4eefc946c4
Version 3.1.0 now with experimental DCT support.
2025-12-31 13:11:34 -05:00
Aaron D. Lee
653de8cbaa
QR functionality (sorta).
2025-12-28 12:04:15 -05:00
Aaron D. Lee
5bd49cb581
Added file support and increased file limits.
2025-12-28 03:44:17 -05:00
Aaron D. Lee
1538943451
Now version 2.0.1, I guess.
2025-12-28 00:07:04 -05:00
Aaron D. Lee
8581b86104
New Version 2 -- prolly doesn't work.
2025-12-27 22:40:31 -05:00