Minerva CMS 0.2.0-dev validation
Target: supplied phpBB 3.3.17. Runtime: PHP 8.5.10; SQLite3.

PHP syntax passed for 25 extension files; metadata and migration dependency checked.

PASS: private, password, excluded and category forums omitted
PASS: private, unapproved, future and moved topics omitted
PASS: result limit applied
PASS: news forum selection intersected with ACL
PASS: poll selection only returns visible polls
PASS: empty permissions fail closed without invalid SQL
PASS: visitor with no forum access sees no forums
PASS: forum IDs validated and deduplicated
PASS: admin rejects invalid IDs
PASS: limits bounded
PASS: services YAML parses with bundled Symfony
PASS: routing YAML parses with bundled Symfony
PASS: portal_body.html Twig syntax
PASS: acp_portal.html Twig syntax
PASS: event/overall_header_navigation_prepend.html Twig syntax
PASS: welcome and topic titles escaped with phpBB autoescape disabled
PASS: ACP welcome value cannot break out of textarea
All portal tests passed.
PASS: repository dependency injection resolves
PASS: controller dependency injection resolves
PASS: language event registers extension language
PASS: config and ACP migration declarations load
PASS: ACP requires extension and board-administration permissions
Dependency and registration tests passed.
PASS: all module tables created with phpBB portable schema tools
PASS: default seeding is resumable without duplicates
PASS: member article queued for moderation and visible to owner
PASS: pending article hidden from other members on direct URL ()
PASS: pending article hidden from guests and search
PASS: guest cannot submit ()
PASS: moderator approval makes article public
PASS: non-moderator cannot expose an approval queue
PASS: approval queue excludes approved content
PASS: knowledge-base search works
PASS: search input remains SQL data
PASS: rating updates one vote per member
PASS: article comments stored and listed
PASS: comment flood prevented (MINERVA_FLOOD)
PASS: locked article rejects ratings ()
PASS: locked article rejects author edits ()
PASS: private album hidden from another member ()
PASS: public child inherits private parent restrictions ()
PASS: personal album accessible to owner
PASS: category forum ACL enforced ()
PASS: password-protected forum category fails closed ()
PASS: corrupt category cycles fail closed ()
PASS: monthly recurrence skips impossible dates without drifting
PASS: recurrence preserves local time through DST
PASS: invalid calendar date rejected (MINERVA_INVALID_DATE)
PASS: member chat stored and retrieved
PASS: chat flood prevented atomically (MINERVA_FLOOD)
PASS: member cannot delete chat messages ()
PASS: moderator can remove chat message
PASS: guest chat access denied ()
PASS: cash uses exact minor-unit parsing and display
PASS: cash scientific notation rejected (MINERVA_INVALID_AMOUNT)
PASS: excess currency precision rejected (MINERVA_INVALID_AMOUNT)
PASS: cash transfer preserves total balance
PASS: cash transfer replay prevented (MINERVA_ALREADY_PROCESSED)
PASS: overspend rejected (MINERVA_INSUFFICIENT_FUNDS)
PASS: failed transfer rolls back ledger and balance
PASS: currency exchange accounts for weights and decimals
PASS: posting reward is idempotent
PASS: server game updates board and revision
PASS: replayed game turn rejected (MINERVA_INVALID_MOVE)
PASS: game session cannot be read by another user ()
PASS: server verifies win and records leaderboard
PASS: finished game cannot submit another score (MINERVA_INVALID_MOVE)
PASS: game entry fee charged transactionally
PASS: replayed game start does not charge twice
PASS: verified game win pays configured reward once
PASS: encrypted file round trip
PASS: on-disk blob does not expose plaintext
PASS: corrupt upload fails authenticated decryption (MINERVA_STORAGE_ERROR)
PASS: blob path traversal rejected (MINERVA_STORAGE_ERROR)
PASS: valid album image accepted
PASS: album thumbnail generated
PASS: disguised executable upload rejected (MINERVA_UPLOAD_TYPE)
PASS: module ACL override applied ()
PASS: module enable toggle enforced ()
PASS: deleting content removes comments
PASS: module tables can be removed through phpBB schema tools
All module tests passed.

PASS: simultaneous transfers cannot overspend; exactly one commits and total cash is conserved.

PASS: guest albums page renders
PASS: guest downloads page renders
PASS: guest kb page renders
PASS: guest calendar page renders
PASS: guest games page renders
PASS: guest chat page denied
PASS: guest cash page denied
PASS: test administrator login succeeds
PASS: member albums page renders
PASS: member downloads page renders
PASS: member kb page renders
PASS: member calendar page renders
PASS: member chat page renders
PASS: member games page renders
PASS: member cash page renders
PASS: chat rejects missing CSRF token
PASS: chat POST and escaped display work
PASS: member chat JSON feed works
PASS: article submission and BBCode render
PASS: article body HTML remains escaped
PASS: article comment POST works
PASS: calendar event submission works
PASS: calendar expands recurrence on month page
PASS: game starts through POST
PASS: server game move renders updated revision
PASS: missing file route returns 404
PASS: modules ACP page renders
PASS: category ACP form renders
PASS: currency ACP form renders
PASS: game ACP form renders
PASS: album image upload works
PASS: album image route returns original bytes
PASS: album thumbnail delivery works
PASS: personal private album upload works
PASS: private album binary route rejects guest access
PASS: download upload and metadata work
PASS: licence acceptance enforced
PASS: download returns bytes after licence acceptance
PASS: ACP cash adjustment succeeds
PASS: cash balance appears on account page
HTTP integration tests passed.

PASS: extension enable, disable and re-enable on isolated phpBB preserve all module row counts and balances.
PASS: calendar recurrence inspected in the in-app browser at a narrow viewport.
