Skip to content

Releases: fabiodalez-dev/Pinakes

Pinakes v0.4.7.2

25 Jan 10:25

Choose a tag to compare

Minor Bug Fixes

  • Cron scripts standalone execution — Cron jobs now load .env directly, 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

  1. Download pinakes-v0.4.7.2.zip
  2. Extract and upload to your web server
  3. Visit your site — the installer starts automatically

Verify Download

shasum -a 256 -c pinakes-v0.4.7.2.zip.sha256

Full documentation: fabiodalez-dev.github.io/Pinakes

Pinakes v0.4.7.1

24 Jan 15:07

Choose a tag to compare

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

22 Jan 14:26

Choose a tag to compare

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_ritirare loan flow. Now only in_corso and in_ritardo states mark copies as prestato. The da_ritirare and prenotato states keep copies as disponibile (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 to disponibile.

  • ReservationsAdminController: Added missing date format validation in store() method (already existed in update()).

🔒 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

22 Jan 10:38

Choose a tag to compare

Improvements

Reservation System Consistency

  • Date derivation alignment — Admin reservation form now properly derives data_inizio_richiesta and data_fine_richiesta from 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 package
  • pinakes-v0.4.6.zip.sha256 - SHA256 checksum

v0.4.5 - Pickup Confirmation Workflow

22 Jan 07:34

Choose a tag to compare

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 package
  • pinakes-v0.4.5.zip.sha256 - SHA256 checksum

v0.4.4 - Hotfix for Updater

12 Jan 10:14

Choose a tag to compare

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/tmp if sys_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/logs to view updater logs for debugging
  • Added markdown parsing - Changelog now displays properly formatted release notes
  • Added emergency update script - manual-update.php for users who cannot use the auto-updater

For Users Stuck on 0.4.3 (or earlier)

If you cannot update via the admin panel:

  1. Download manual-update.php from this release
  2. Upload it to your Pinakes root directory via FTP
  3. Access https://yourdomain.com/manual-update.php
  4. Follow the on-screen instructions
  5. DELETE the file after update!

Checksums

8b77ee90a5a7de58c8b1aecc82b7fbb5f7eeefc02152721e56611ea8faf7bbba  pinakes-v0.4.4.zip

v0.4.3 - Reservation System & Security Hardening

12 Jan 09:58

Choose a tag to compare

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.sha256

Expected SHA256:

6103d8e4561783362230261eb1006816df9781ff6560d4aaa9c21b47f0b5a48c  pinakes-v0.4.3.zip

📋 Installation

  1. Extract archive:

    unzip pinakes-v0.4.3.zip
    cd pinakes-v0.4.3
  2. Configure environment:

    cp .env.example .env
    # Edit .env with your settings
  3. Run web installer:

  4. (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

🆘 Support

For issues and support, visit:


Generated on 2026-01-12 10:57:54

Pinakes v0.4.1

10 Dec 22:56

Choose a tag to compare

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

08 Dec 19:49

Choose a tag to compare

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

06 Dec 13:31

Choose a tag to compare

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_doweyclassificazione_dewey (typo fix)
  • Remove table classificazione (data now in JSON files)
  • Add table migrations for tracking applied migrations
  • Add table update_logs for 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 files

For 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

Full Changelog

v0.2.0...v0.3.0