Finalize 4.1.4 release prep
- BUILD_IMAGE.md: Clarify docs are for devs, not end users - Add 4.1.5 plan with decode progress bar feature - Update .gitignore for release assets (.zip, .img) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
6
.gitignore
vendored
6
.gitignore
vendored
@@ -86,6 +86,10 @@ pishrink.sh
|
|||||||
frontends/web/temp_files/
|
frontends/web/temp_files/
|
||||||
rpi/config.json
|
rpi/config.json
|
||||||
|
|
||||||
# Pre-built Pi tarballs (too large for git)
|
# Pre-built Pi tarballs and images (release assets, too large for git)
|
||||||
rpi/stegasoo-pi-arm64.tar.zst
|
rpi/stegasoo-pi-arm64.tar.zst
|
||||||
|
rpi/stegasoo-pi-arm64.tar.zst.zip
|
||||||
rpi/stegasoo-venv-pi-arm64.tar.zst
|
rpi/stegasoo-venv-pi-arm64.tar.zst
|
||||||
|
rpi/*.img
|
||||||
|
rpi/*.img.zst
|
||||||
|
rpi/*.img.zst.zip
|
||||||
|
|||||||
106
PLAN-4.1.5.md
Normal file
106
PLAN-4.1.5.md
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
# Stegasoo 4.1.5 Plan
|
||||||
|
|
||||||
|
## Decode Progress Bar (Real Progress)
|
||||||
|
|
||||||
|
Mirror the encode async pattern for decode operations.
|
||||||
|
|
||||||
|
### Backend Changes
|
||||||
|
|
||||||
|
**1. Add async mode to `/decode` route (`app.py`)**
|
||||||
|
- Check for `async=true` form param
|
||||||
|
- Generate job_id, store job, submit to executor
|
||||||
|
- Return `{"job_id": ..., "status": "pending"}` immediately
|
||||||
|
|
||||||
|
**2. Add decode status/progress endpoints (`app.py`)**
|
||||||
|
```python
|
||||||
|
@app.route("/decode/status/<job_id>")
|
||||||
|
def decode_status(job_id):
|
||||||
|
# Return {"status": "pending|running|complete|error", "result": {...}}
|
||||||
|
|
||||||
|
@app.route("/decode/progress/<job_id>")
|
||||||
|
def decode_progress(job_id):
|
||||||
|
# Read from /tmp/stegasoo_progress_{job_id}.json
|
||||||
|
# Return {"percent": 0-100, "phase": "..."}
|
||||||
|
```
|
||||||
|
|
||||||
|
**3. Add `_run_decode_job()` background worker (`app.py`)**
|
||||||
|
- Similar to `_run_encode_job()`
|
||||||
|
- Pass `progress_file` param to decode function
|
||||||
|
- Store result/error in job dict
|
||||||
|
|
||||||
|
**4. Update decode functions to write progress (`lsb_steganography.py`, `dct_steganography.py`)**
|
||||||
|
|
||||||
|
Phases for decode:
|
||||||
|
- `"starting"` (0%)
|
||||||
|
- `"reading"` (10%) - reading stego image
|
||||||
|
- `"extracting"` (30%) - extracting hidden data
|
||||||
|
- `"decrypting"` (60%) - Argon2 + AES decryption
|
||||||
|
- `"verifying"` (80%) - HMAC verification
|
||||||
|
- `"finalizing"` (95%) - preparing output
|
||||||
|
- `"complete"` (100%)
|
||||||
|
|
||||||
|
### Frontend Changes
|
||||||
|
|
||||||
|
**5. Update decode form submission (`decode.html`)**
|
||||||
|
- Add async form handler like encode
|
||||||
|
- Call `Stegasoo.submitDecodeAsync(form, btn)`
|
||||||
|
|
||||||
|
**6. Add decode async methods (`stegasoo.js`)**
|
||||||
|
```javascript
|
||||||
|
submitDecodeAsync(form, btn) // POST with async=true, show modal
|
||||||
|
pollDecodeProgress(jobId) // Poll /decode/status, /decode/progress
|
||||||
|
```
|
||||||
|
|
||||||
|
Reuse existing:
|
||||||
|
- `showProgressModal('Decoding')`
|
||||||
|
- `updateProgress(percent, phase)`
|
||||||
|
|
||||||
|
**7. Handle decode result redirect**
|
||||||
|
- On complete: redirect to `/decode/result/{file_id}` or display inline
|
||||||
|
|
||||||
|
### Files to Modify
|
||||||
|
|
||||||
|
```
|
||||||
|
frontends/web/app.py
|
||||||
|
- Add async handling to /decode route (~line 1300+)
|
||||||
|
- Add /decode/status/<job_id> endpoint
|
||||||
|
- Add /decode/progress/<job_id> endpoint
|
||||||
|
- Add _run_decode_job() function
|
||||||
|
|
||||||
|
frontends/web/static/js/stegasoo.js
|
||||||
|
- Add submitDecodeAsync()
|
||||||
|
- Add pollDecodeProgress()
|
||||||
|
|
||||||
|
frontends/web/templates/decode.html
|
||||||
|
- Update form submit to use async mode
|
||||||
|
|
||||||
|
src/stegasoo/lsb_steganography.py
|
||||||
|
- Add progress_file param to decode()
|
||||||
|
- Write progress at each phase
|
||||||
|
|
||||||
|
src/stegasoo/dct_steganography.py
|
||||||
|
- Add progress_file param to decode()
|
||||||
|
- Write progress at each phase
|
||||||
|
```
|
||||||
|
|
||||||
|
### Testing Checklist
|
||||||
|
|
||||||
|
- [ ] Decode shows progress modal on submit
|
||||||
|
- [ ] Progress bar animates through phases
|
||||||
|
- [ ] Successful decode redirects to result
|
||||||
|
- [ ] Failed decode shows error in modal
|
||||||
|
- [ ] Works for both LSB and DCT modes
|
||||||
|
- [ ] Works for message and file payloads
|
||||||
|
- [ ] Progress file cleaned up after completion
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Other 4.1.5 Ideas (if time)
|
||||||
|
|
||||||
|
- [ ] Role-based permissions: admin / mod / user
|
||||||
|
- [ ] Better capacity estimates / pre-flight check
|
||||||
|
- [ ] Stego detection tool
|
||||||
|
|
||||||
|
## Bugs / Nice to Have
|
||||||
|
|
||||||
|
- [ ] **flash-stock-img.sh 16GB resize not working** - partition still full SD size after flash, makes dd pull slow. Investigate resize2fs/parted logic and test fix.
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
# Stegasoo Pi Image Build Workflow
|
# Stegasoo Pi Image Build Workflow
|
||||||
|
|
||||||
|
> **Note:** This guide is for developers building custom Pi images.
|
||||||
|
> **End users:** Just download the pre-built `.img.zst` from [Releases](https://github.com/adlee-was-taken/stegasoo/releases), flash it, and boot. No build process needed.
|
||||||
|
|
||||||
Quick reference for building a distributable SD card image.
|
Quick reference for building a distributable SD card image.
|
||||||
|
|
||||||
## Step 1: Flash Fresh Raspbian
|
## Step 1: Flash Fresh Raspbian
|
||||||
@@ -39,6 +42,9 @@ git clone -b 4.1 https://github.com/adlee-was-taken/stegasoo.git stegasoo
|
|||||||
|
|
||||||
## Step 5: Copy Pre-built Tarball (from host)
|
## Step 5: Copy Pre-built Tarball (from host)
|
||||||
|
|
||||||
|
> **Dev-only asset:** This tarball is for building Pi images, not for end users.
|
||||||
|
> It's available on [Releases](https://github.com/adlee-was-taken/stegasoo/releases) for image builders.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# On your host machine:
|
# On your host machine:
|
||||||
scp rpi/stegasoo-pi-arm64.tar.zst admin@stegasoo.local:/opt/stegasoo/rpi/
|
scp rpi/stegasoo-pi-arm64.tar.zst admin@stegasoo.local:/opt/stegasoo/rpi/
|
||||||
|
|||||||
Reference in New Issue
Block a user