Update about.html version history, fix API exports

About page:
- Version history now shows v4.1.2 prominently with accordion for older versions
- Shortened 'Error Correction Reed-Solomon' to 'DCT ECC / RS Code'
- Removed v4.1 badges from established features

API fixes:
- Export MAX_FILE_PAYLOAD_SIZE from constants
- Export calculate_capacity_by_mode from steganography

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Aaron D. Lee
2026-01-05 21:09:28 -05:00
parent 3f93e7a752
commit e026d1a4db
2 changed files with 66 additions and 54 deletions

View File

@@ -100,7 +100,7 @@
<li><strong>Output:</strong> JPEG or PNG</li> <li><strong>Output:</strong> JPEG or PNG</li>
<li><strong>Color:</strong> Color or grayscale</li> <li><strong>Color:</strong> Color or grayscale</li>
<li><strong>Speed:</strong> ~2s</li> <li><strong>Speed:</strong> ~2s</li>
<li><strong>Error Correction:</strong> Reed-Solomon <span class="badge bg-info ms-1">v4.1</span></li> <li><strong>Error Correction:</strong> Reed-Solomon</li>
</ul> </ul>
<hr> <hr>
<div class="small"> <div class="small">
@@ -375,29 +375,42 @@
<h5 class="mb-0"><i class="bi bi-clock-history me-2"></i>Version History</h5> <h5 class="mb-0"><i class="bi bi-clock-history me-2"></i>Version History</h5>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="table-responsive"> <!-- Current Version - Prominent -->
<table class="table table-dark table-sm small"> <div class="alert alert-success mb-4">
<thead> <div class="d-flex align-items-center">
<tr> <span class="badge bg-success fs-6 me-3">v4.1.2</span>
<th>Version</th> <div>
<th>Changes</th> <strong>Progress bars</strong> for encode operations,
</tr> <strong>mobile-responsive polish</strong>,
</thead> DCT decode bug fix, release validation script
</div>
</div>
</div>
<!-- Previous Versions - Accordion -->
<div class="accordion" id="versionAccordion">
<div class="accordion-item bg-dark">
<h2 class="accordion-header">
<button class="accordion-button collapsed bg-dark text-light py-2" type="button"
data-bs-toggle="collapse" data-bs-target="#olderVersions">
<i class="bi bi-archive me-2"></i>Previous Versions
</button>
</h2>
<div id="olderVersions" class="accordion-collapse collapse" data-bs-parent="#versionAccordion">
<div class="accordion-body p-0">
<table class="table table-dark table-sm small mb-0">
<tbody> <tbody>
<tr>
<td width="80"><strong>4.1.1</strong></td>
<td>DCT RS format stability, Docker cleanup, first-boot wizard</td>
</tr>
<tr> <tr>
<td><strong>4.1.0</strong></td> <td><strong>4.1.0</strong></td>
<td> <td>Reed-Solomon error correction for DCT, majority voting headers</td>
<strong>Reed-Solomon error correction</strong> for DCT mode (corrects up to 16 byte errors per 223-byte chunk),
majority voting on length headers, improved robustness with problematic carrier images
</td>
</tr> </tr>
<tr> <tr>
<td><strong>4.0.0</strong></td> <td><strong>4.0.0</strong></td>
<td> <td>Channel keys, DCT default, subprocess isolation</td>
<strong>Channel keys</strong> for group/deployment isolation,
DCT default, simplified auth, passphrase replaces day_phrase,
4-word default, JPEG fix, large image support, subprocess isolation, Python 3.10-3.12
</td>
</tr> </tr>
<tr> <tr>
<td>3.2.0</td> <td>3.2.0</td>
@@ -408,16 +421,8 @@
<td>DCT mode, JPEG output, color preservation</td> <td>DCT mode, JPEG output, color preservation</td>
</tr> </tr>
<tr> <tr>
<td>2.2.0</td> <td>2.x</td>
<td>QR code RSA key import/export</td> <td>Web UI, REST API, RSA keys, QR codes, file embedding</td>
</tr>
<tr>
<td>2.1.0</td>
<td>File embedding, compression</td>
</tr>
<tr>
<td>2.0.0</td>
<td>Web UI, REST API, RSA keys</td>
</tr> </tr>
<tr> <tr>
<td>1.0.0</td> <td>1.0.0</td>
@@ -428,6 +433,9 @@
</div> </div>
</div> </div>
</div> </div>
</div>
</div>
</div>
<div class="card mb-4"> <div class="card mb-4">
<div class="card-header"> <div class="card-header">
@@ -553,9 +561,8 @@
<div class="col-6 col-md-4 col-lg-2 mb-3"> <div class="col-6 col-md-4 col-lg-2 mb-3">
<div class="p-3 bg-dark rounded h-100"> <div class="p-3 bg-dark rounded h-100">
<i class="bi bi-bandaid text-info fs-3 d-block mb-2"></i> <i class="bi bi-bandaid text-info fs-3 d-block mb-2"></i>
<div class="small text-muted">Error Correction</div> <div class="small text-muted">DCT ECC</div>
<strong>Reed-Solomon</strong> <strong>RS Code</strong>
<span class="badge bg-info ms-1">v4.1</span>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -45,6 +45,7 @@ from .image_utils import (
# Steganography functions # Steganography functions
from .steganography import ( from .steganography import (
calculate_capacity_by_mode,
compare_modes, compare_modes,
has_dct_support, has_dct_support,
will_fit_by_mode, will_fit_by_mode,
@@ -92,6 +93,7 @@ from .constants import (
EMBED_MODE_LSB, EMBED_MODE_LSB,
FORMAT_VERSION, FORMAT_VERSION,
LOSSLESS_FORMATS, LOSSLESS_FORMATS,
MAX_FILE_PAYLOAD_SIZE,
MAX_IMAGE_PIXELS, MAX_IMAGE_PIXELS,
MAX_MESSAGE_SIZE, MAX_MESSAGE_SIZE,
MAX_PASSPHRASE_WORDS, MAX_PASSPHRASE_WORDS,
@@ -149,6 +151,7 @@ from .validation import (
MIN_MESSAGE_LENGTH = 1 MIN_MESSAGE_LENGTH = 1
MAX_MESSAGE_LENGTH = MAX_MESSAGE_SIZE MAX_MESSAGE_LENGTH = MAX_MESSAGE_SIZE
MAX_PAYLOAD_SIZE = MAX_MESSAGE_SIZE MAX_PAYLOAD_SIZE = MAX_MESSAGE_SIZE
# MAX_FILE_PAYLOAD_SIZE imported from constants above
SUPPORTED_IMAGE_FORMATS = LOSSLESS_FORMATS SUPPORTED_IMAGE_FORMATS = LOSSLESS_FORMATS
LSB_BYTES_PER_PIXEL = 3 / 8 LSB_BYTES_PER_PIXEL = 3 / 8
DCT_BYTES_PER_PIXEL = 0.125 DCT_BYTES_PER_PIXEL = 0.125
@@ -188,6 +191,7 @@ __all__ = [
"has_argon2", "has_argon2",
# Steganography # Steganography
"has_dct_support", "has_dct_support",
"calculate_capacity_by_mode",
"compare_modes", "compare_modes",
"will_fit_by_mode", "will_fit_by_mode",
# QR utilities # QR utilities
@@ -252,6 +256,7 @@ __all__ = [
"MAX_MESSAGE_LENGTH", "MAX_MESSAGE_LENGTH",
"MAX_MESSAGE_SIZE", "MAX_MESSAGE_SIZE",
"MAX_PAYLOAD_SIZE", "MAX_PAYLOAD_SIZE",
"MAX_FILE_PAYLOAD_SIZE",
"MIN_IMAGE_PIXELS", "MIN_IMAGE_PIXELS",
"MAX_IMAGE_PIXELS", "MAX_IMAGE_PIXELS",
"SUPPORTED_IMAGE_FORMATS", "SUPPORTED_IMAGE_FORMATS",