Releases: fabiodalez-dev/Pinakes
Pinakes v0.4.7.2
Minor Bug Fixes
- Cron scripts standalone execution — Cron jobs now load
.envdirectly, working independently from web server context - Version display fix — Footer now correctly shows version from
version.json - Documentation improvements — Cleanup and linting fixes across documentation files
Installation
- Download
pinakes-v0.4.7.2.zip - Extract and upload to your web server
- Visit your site — the installer starts automatically
Verify Download
shasum -a 256 -c pinakes-v0.4.7.2.zip.sha256Full documentation: fabiodalez-dev.github.io/Pinakes
Pinakes v0.4.7.1
Pinakes v0.4.7.1
Bundled Plugins
- api-book-scraper v1.1.0
- dewey-editor v1.0.0
- digital-library v1.0.0
- open-library v1.0.0
- z39-server v1.1.0
Checksum
f66b16a757a6b65ed3c3b1959785c72c700d2ab0e126bd98aa23024c26966c97 pinakes-v0.4.7.1.zip
v0.4.7 - Copy State Logic & Loan Approval Fixes
Changelog
🐛 Bug Fixes
-
LoanApprovalController: Fixed loan approval logic to check pre-assigned copy FIRST before global slot counting. This prevents false rejections when slots are at capacity but the loan already has a valid assigned copy.
-
DataIntegrity: Fixed copy state update logic for the
da_ritirareloan flow. Now onlyin_corsoandin_ritardostates mark copies asprestato. Theda_ritirareandprenotatostates keep copies asdisponibile(book physically remains in library until pickup is confirmed). -
MaintenanceService: Fixed
checkExpiredPickups()to not resurrect copies in non-restorable states (perso,danneggiato,manutenzione). Previously, expired pickups would incorrectly reset all copies todisponibile. -
ReservationsAdminController: Added missing date format validation in
store()method (already existed inupdate()).
🔒 Security Hardening
-
Updater: Improved protected path checking to block deletion of protected files even when located in subdirectories (e.g.,
subdir/.env). -
Updater: Added
splitSqlStatements()parser for CSS-safe SQL migration parsing. Handles semicolons inside quoted strings (e.g., inline CSS styles).
📝 Plugin Compatibility
All bundled plugins updated to max_app_version: 0.4.7:
- api-book-scraper v1.1.0
- dewey-editor v1.0.0
- digital-library v1.0.0
- open-library v1.0.0
- scraping-pro v1.4.0
- z39-server v1.1.0
Upgrade Notes
From v0.4.6: Direct upgrade via admin panel. No database migrations required.
From earlier versions: Update through each version sequentially.
Checksum
SHA256: 8bcb3002254f90f6f30d7feef708a3952130290cfb19090dcdf6d8a6cdcf5617 pinakes-v0.4.7.zip
v0.4.6 - Reservation Consistency & Stability
Improvements
Reservation System Consistency
- Date derivation alignment — Admin reservation form now properly derives
data_inizio_richiestaanddata_fine_richiestafrom user-facing dates - Copy state management — Improved handling of book copy states during reservation transitions
- Transaction safety — Enhanced database transaction handling for reservation operations
- Date range validation — Added defensive checks for inverted date ranges
Updater Improvements
- HTTP 403 logging — Better error diagnostics when updates are blocked
- str_replace uniqueness check — Pre-update patches now verify replacement uniqueness to prevent corruption
- Symlink handling — Fixed release package to exclude symlinks that caused update failures
Code Quality
- Execute result validation — Reservation update now properly checks
execute()result
Upgrade from v0.4.5
Update is automatic via Admin > Updates.
Files
pinakes-v0.4.6.zip- Complete packagepinakes-v0.4.6.zip.sha256- SHA256 checksum
v0.4.5 - Pickup Confirmation Workflow
New Features
Pickup Confirmation System
- New
da_ritirare(Ready for Pickup) state — Approved loans now require physical pickup confirmation - Two-step approval workflow — Admin approves → User picks up → Admin confirms pickup
- Configurable pickup deadline — Set days allowed for pickup (default: 3 days)
- Automatic email notifications — Sent when book is ready, and when pickup deadline expires
Improvements
- Cancel pickup option with automatic reservation queue advancement
- Visual indicators (orange badge) for "Ready for Pickup" status
- Calendar integration showing pickup-pending periods
- Transaction-safe state transitions with proper locking
- Session storage now uses application-local directory for improved stability
Loan State Flow
Request → [pendente] → Approval → [da_ritirare] → Confirm Pickup → [in_corso]
↓
(Cancel or Expire) → [annullato/scaduto]
Upgrade from v0.4.4
Update is automatic via Admin > Updates.
Files
pinakes-v0.4.5.zip- Complete packagepinakes-v0.4.5.zip.sha256- SHA256 checksum
v0.4.4 - Hotfix for Updater
Hotfix Release
This release fixes critical issues with the auto-updater that prevented some users from updating to 0.4.3.
Fixes
- Fixed temp directory fallback - Now uses
storage/tmpifsys_get_temp_dir()is not writable (common on shared hosting) - Fixed update progress UI - Steps are now marked complete only on success, not before
- Added log viewer - Access
/admin/updates/logsto view updater logs for debugging - Added markdown parsing - Changelog now displays properly formatted release notes
- Added emergency update script -
manual-update.phpfor users who cannot use the auto-updater
For Users Stuck on 0.4.3 (or earlier)
If you cannot update via the admin panel:
- Download
manual-update.phpfrom this release - Upload it to your Pinakes root directory via FTP
- Access
https://yourdomain.com/manual-update.php - Follow the on-screen instructions
- DELETE the file after update!
Checksums
8b77ee90a5a7de58c8b1aecc82b7fbb5f7eeefc02152721e56611ea8faf7bbba pinakes-v0.4.4.zip
v0.4.3 - Reservation System & Security Hardening
Pinakes v0.4.3 - Release Notes
Release Date: 2026-01-12
📦 Package Information
- Version: 0.4.3
- Package: pinakes-v0.4.3.zip
- Size: 95M
🔐 Checksum Verification
shasum -a 256 -c pinakes-v0.4.3.zip.sha256Expected SHA256:
6103d8e4561783362230261eb1006816df9781ff6560d4aaa9c21b47f0b5a48c pinakes-v0.4.3.zip
📋 Installation
-
Extract archive:
unzip pinakes-v0.4.3.zip cd pinakes-v0.4.3 -
Configure environment:
cp .env.example .env # Edit .env with your settings -
Run web installer:
- Navigate to http://yourdomain.com
- Follow installation wizard
-
(Optional) Refresh Composer/NPM dependencies only if you customize the code:
composer install --no-dev --optimize-autoloader cd frontend && npm install && npm run build && cd ..
📚 Documentation
- README.md - Complete documentation
- Installation Guide
- Configuration Guide
🆘 Support
For issues and support, visit:
- GitHub Issues: https://github.com/fabiodalez-dev/pinakes/issues
Generated on 2026-01-12 10:57:54
Pinakes v0.4.1
Pinakes v0.4.1
Bug Fixes
- Fix: Updater memory limit increased to 256MB for large updates
- Fix: Added verbose logging for troubleshooting update issues
- Fix: Connection diagnostics (DNS, SSL, cURL) on failure
- Fix: DataTables default sorting (most recent first)
- Fix: CSRF session expired page with local assets
Improvements
- Improved update process reliability on shared hosting
- Better error messages during update failures
📦 Full Changelog: v0.4.0...v0.4.1
Pinakes v0.4.0
What's New in v0.4.0
GDPR Privacy Consent Tracking
- Privacy consent tracking with acceptance date and policy version
- New user fields: privacy_accettata, data_accettazione_privacy, privacy_policy_version
- Automatic backfill for existing active users
Persistent "Remember Me" Sessions
- 30-day secure sessions with SHA256 token hashing
- Multi-device support
- Automatic cleanup via maintenance cron
MARC-8 Text Normalization (Fixed)
- Comprehensive removal of MARC-8 control characters (NSB/NSE U+0088-U+009F)
- Unicode-aware patterns with /u flag for proper UTF-8 handling
- Normalization of ALL text fields including title, subtitle, series/collana, authors, publisher, etc.
- Whitespace normalization in all scraping sources (SBN, SRU, Google Books, Open Library)
Dynamic Calendar Generation
- ICS calendar files now generated dynamically on request
- URL: /calendar/events.ics (no longer requires static file)
Plugin Auto-Registration
- Bundled plugins automatically registered in database after update
- Fixes issue where plugin folders existed but weren't active
Updater Improvements
- Preserves storage/calendar and storage/tmp during updates
- Prevents deletion of user-generated files
Loan Return UX Improvements
- Smart default status (defaults to 'Returned on time')
- Clear labels distinguishing return types
- Form persistence on validation errors
Download & Install
Download pinakes-v0.4.0.zip and verify:
shasum -a 256 -c pinakes-v0.4.0.zip.sha256
Updating from v0.3.0
Use Admin → Updates - the auto-updater handles everything automatically.
Fresh Install
Extract, run installer at your domain root.
Pinakes v0.3.0
What's New in v0.3.0
Completely Redesigned Dewey Classification System
The Dewey Decimal Classification system has been completely rewritten. Data is no longer stored in the database but loaded from JSON files, enabling more flexible and collaborative management.
Key features:
- Automatic import from SBN: When querying books via the SBN API (Italian National Library Service), if the record contains a Dewey classification it is automatically imported
- Dewey Editor Plugin: A dedicated plugin for visual classification management — tree view, manual code addition per language (IT/EN), inline name editing, search, and delete functionality
- JSON Import/Export: Classification files can be exported and imported, enabling collaborative sharing between Pinakes installations
- Multi-language support: Separate JSON files for Italian and English with automatic locale detection
Built-in Auto-Updater
Starting from this version, Pinakes includes an integrated update system. Administrators can check, download, and install new versions directly from the control panel.
Note: Since this is the first version with the updater, v0.3.0 must be installed manually. Future releases can be updated automatically from the admin interface.
Features: Requirements check, automatic database backup, secure download from GitHub Releases, application file backup for rollback, file installation respecting protected paths (.env, uploads, storage), orphan file cleanup, automatic database migrations, OpCache reset.
Database Backup System
New comprehensive backup management:
- Automatic pre-update backup
- Manual on-demand backup from admin panel
- Backup list with creation date and size
- Download backups for disaster recovery
- Delete old backups to free disk space
Author Normalization
Intelligent system to prevent duplicate authors:
- Automatic format conversion: "Levi, Primo" and "Primo Levi" are recognized as the same author
- Source normalization during SBN import
- Fuzzy matching finds existing authors regardless of name format
Author/Publisher Merge
New feature to unify duplicate records:
- Bulk selection of authors or publishers to merge
- Automatic reassignment of all books to the primary record
- Deletion of duplicate records
Database Changes
This version includes database migrations. The updater will automatically:
- Rename column
classificazione_dowey→classificazione_dewey(typo fix) - Remove table
classificazione(data now in JSON files) - Add table
migrationsfor tracking applied migrations - Add table
update_logsfor update history
Breaking Changes
v0.3.0 is NOT compatible with previous versions without manual migration.
If upgrading from v0.2.x or earlier:
# 1. BACKUP YOUR DATABASE FIRST!
mysqldump -u USER -p DATABASE > backup_before_0.3.0.sql
# 2. Run the migration
mysql -u USER -p DATABASE < installer/database/migrations/migrate_0.3.0.sql
# 3. Then replace the application filesFor new installations: No action needed — the installer handles everything automatically.
Upgrade Notes
- Backup your database before updating (done automatically by updater)
- Clear browser cache after update
- If using opcache, restart PHP-FPM
- Future updates can be performed automatically from Admin → Updates