v0.1.0-alpha.250
Pre-release
Pre-release
What's Changed
- fix(entity): declare missing waaseyaa/field dependency (Wave 1 · W1-1) by @jonesrussell in #1781
- docs(entity-storage): correct false SqlEntityStorage docblock (Wave 1 · W1-2) by @jonesrussell in #1782
- docs(entity): drop redundant @method PHPDoc on EntityInterface (Wave 1 · W1-3) by @jonesrussell in #1783
- refactor(entity-storage): canonical ColumnSpecMap dedupe (Wave 1 · W1-4) by @jonesrussell in #1784
- fix(entity-storage): route revision timestamps through EntityClock seam (Wave 1 · W1-5) by @jonesrussell in #1785
- fix(foundation): clear boot error when SQLite dir can't be created (Wave 1 · W1-6) by @jonesrussell in #1786
- fix(broadcast): gate anonymous /api/broadcast entity-lifecycle leak (Wave 2 · W2-1) by @jonesrussell in #1787
- fix(audit): close AppendOnlyAuditDatabase::schema() append-only bypass (Wave 2 · W2-2) by @jonesrussell in #1788
- feat(audit): tamper-evidence hash-chain data model + genesis (Wave 2 · W2-3 WP1) by @jonesrussell in #1789
- feat(audit): checkpoint builder + CheckpointSink + schedule (Wave 2 · W2-3 WP2) by @jonesrussell in #1790
- feat(audit): audit:verify chain verification + tamper detection (Wave 2 · W2-3 WP3) by @jonesrussell in #1791
- feat(audit): checkpoint-aware audit:prune — completes tamper-evidence v1 (Wave 2 · W2-3 WP4) by @jonesrussell in #1793
- ci(verify-gates): enforce admin-dist freshness in blocking CI + rebuild stale dist (charter §3.2-4) by @jonesrussell in #1794
- fix(auth): fail hard on missing token secret in production; never use 'change-me' (W3-1) by @jonesrussell in #1795
- fix(auth): @internal no-op RateLimiter, remove dead verifyRecoveryCode, @internal getCurrentCode (W3-2) by @jonesrussell in #1796
- fix(auth): destroy the session on logout, not just unset the uid (W3-3) by @jonesrussell in #1797
- fix(auth): cross-driver-portable + atomic DatabaseRateLimiter (W3-4) by @jonesrussell in #1798
- fix(user): harden isAuthenticated predicate + align email_verified setter with its cast (W3-5) by @jonesrussell in #1799
- fix(audit): single source of truth for audit_event schema (W3-6) by @jonesrussell in #1800
- fix(field,config,access,user,audit): behavior-neutral craftsmanship cleanup batch (W3-7) by @jonesrussell in #1801
- fix(field): index classification_label for the retention scan (M1 WP1) by @jonesrussell in #1802
- fix(field): bounded keyset retention scan + SQL label/age pushdown (M1 WP2) by @jonesrussell in #1803
- fix(plugin,testing): harden attribute scanner against fatal-on-autoload classes (W4-1) by @jonesrussell in #1804
- fix(cache): escape LIKE metacharacters in tag invalidation (W4-2) by @jonesrussell in #1805
- fix(foundation): layer gate flags undeclared same/lower-layer use-edges (W4-3) by @jonesrussell in #1808
- fix(cache): integrity-guard the unserialize path; optional HMAC (W4-4) by @jonesrussell in #1809
- docs(cache): truth-up README + CLAUDE.md; drop unused psr deps (W4-5) by @jonesrussell in #1810
- fix(audit,auth,config,oidc,testing,mercure): declare undeclared deps — PL007 batch 1/4 (#1806) by @jonesrussell in #1811
- fix(media,menu,node,note,path,relationship,taxonomy): declare undeclared deps — PL007 batch 2/4 (#1806) by @jonesrussell in #1812
- fix(workflows,routing,wayfinding,ai-agent,ai-pipeline,ai-vector): declare undeclared deps — PL007 batch 3/4 (#1806) by @jonesrussell in #1813
- fix(cli,debug,inertia,mcp,ssr,telescope): declare undeclared deps — PL007 batch 4/4, baseline empty (#1806) by @jonesrussell in #1814
- fix(queue): reclaim crashed-worker jobs via lease/visibility timeout (queue M1) by @jonesrussell in #1815
- fix(database-legacy): quote builder-owned identifiers, close latent SQL-injection class (M1+M2) by @jonesrussell in #1817
- fix(scheduler): ownership-checked lock release to stop split-brain double-runs (m15) by @jonesrussell in #1818
- fix(http-client): stop credential-leak over redirects + harden StreamHttpClient (M1 + m1/m3/m4/m5/n1) by @jonesrussell in #1819
- fix(i18n): validate locale before require-ing a translation file (i18n M1) by @jonesrussell in #1820
- fix(mercure): scope publish JWT to the topic + force TLS hub (Mn-1 + mn-2) by @jonesrussell in #1821
- fix(foundation): append+dedupe compression Vary header to stop cross-user cache exposure (Mn-2) by @jonesrussell in #1822
- fix(foundation): enforce body-size cap against actual read, close chunked bypass (Mn-1) by @jonesrussell in #1823
- fix(mail): reject CRLF in Envelope fields to close header/log injection (M1+m1) by @jonesrussell in #1824
- fix(oauth-provider): bail on non-OK Google userinfo + require non-empty id (Mn) by @jonesrussell in #1825
- fix(validation): stop SafeMarkup over-promising XSS protection + bypass test (M1+m1) by @jonesrussell in #1826
- fix(state): atomic upsert in SqlState::set() to end concurrent new-key PK race (m2) by @jonesrussell in #1827
- fix(foundation): quote table identifier in legacy SchemaBuilder drop methods (migration m1) by @jonesrussell in #1828
- fix(analytics): transport seam + observability for UmamiClient + first tests (M1+M2) by @jonesrussell in #1829
- chore(hooks): make pre-push spec-drift advisory so it stops forcing --no-verify by @jonesrussell in #1830
Full Changelog: v0.1.0-alpha.249...v0.1.0-alpha.250