v0.1.0-alpha.249
Pre-release
Pre-release
What's Changed
- fix(taxonomy): honor published status on term view (audit Medium — unpublished terms leaked) by @jonesrussell in #1746
- fix(node): anonymous must never be the owner of an authorless node (audit Medium) by @jonesrussell in #1747
- fix(seo): sitemap + llms.txt enumerate published content only (audit Medium — unpublished URL leak) by @jonesrussell in #1748
- fix(skeleton): boot-failure front controller must not leak exception message in prod (audit Medium) by @jonesrussell in #1749
- fix(entity-storage): query layer deny-by-default — drop Neutral rows (audit C-6, #1714 follow-through) by @jonesrussell in #1751
- fix(api): require auth on /api/schema/{type} + /api/openapi.json — anonymous schema/field-definition disclosure (audit) by @jonesrussell in #1752
- test(api): pin deny-by-default for policy-less entity types on the JSON:API surface (defense-in-depth) by @jonesrussell in #1753
- docs(backlog): CL-13 — scope the media/attachment private-file-bytes gap (flagged before diving) by @jonesrussell in #1754
- fix(skeleton/cli): boot-failure leak left in the make:public stub + repo front controller (audit Medium residual) by @jonesrussell in #1755
- docs(cli): correct ImportRollbackCommand docblock — reverse last-imported, not reverse-creation (C-27) by @jonesrussell in #1756
- test(listing): guard the C-28 pagination pushdown — fast path must push SQL count + bounded findBy by @jonesrussell in #1757
- docs(cl13): private-file-bytes design & tradeoffs (pre-implementation, for review) by @jonesrussell in #1758
- test(user): deny-list completeness guard for User credential fields (audit C-11 residual) by @jonesrussell in #1759
- fix(oidc): mark client_secret_hash internal — double-layer protection on the one non-User credential field (C-11) by @jonesrussell in #1760
- feat(attachment): authorized download for private attachment bytes (CL-13 slice 1) by @jonesrussell in #1761
- docs(media): correct source-plugin claim + note media bytes serve from public:// (claim-vs-code) by @jonesrussell in #1763
- docs(audit): C-24 dead Field-API item-layer deprecation plan & tradeoffs (scoping) by @jonesrussell in #1764
- refactor(field): extract field-type static seam off the dead item layer (C-24 train 1, behaviour-preserving) by @jonesrussell in #1765
- refactor(field)!: remove the dead Field-API item layer; AbstractFieldType is the public base (C-24 train 2) by @jonesrussell in #1766
- refactor(typed-data)!: remove the dead TypedData instance type-system (C-24 train 3) by @jonesrussell in #1767
- fix(ai-tools): apply per-entity view gate in relationship.traverse (anon-reachable disclosure) by @jonesrussell in #1768
- fix(node): forbid edit of system fields on update for non-admins (JSON:API mass-assignment) by @jonesrussell in #1769
- docs(audits): residual security re-sweep ledger + runtime-adapter scoping by @jonesrussell in #1770
- fix(ai-tools): apply per-entity view gate + field filter in vector.search by @jonesrussell in #1771
- fix(graphql): drop internal:true + credential fields from GraphQL output schema (§2.3) by @jonesrussell in #1772
- fix(ssr): drop internal:true + credential fields from EntityRenderer (§2.4) by @jonesrussell in #1773
- fix(search): access-filter FTS5 totalHits + facets (§2.2) by @jonesrussell in #1774
- fix(path): gate PathAlias view on published status (§2.5) by @jonesrussell in #1775
- fix(media): random-suffix safe upload filename (§2.6) by @jonesrussell in #1776
- fix(oidc): bind /oidc/revoke to the authenticated client (§2.7, RFC 7009) by @jonesrussell in #1777
- fix(seo): harden llms.txt against title/summary/URL injection (§2.8) by @jonesrussell in #1778
- fix(routing): real RouteBuilder::gate() + correct false #[GateAttribute] promise (§3.4) by @jonesrussell in #1779
- fix(i18n): resolve BCP 47 singleton subtags to the base language in the fallback chain by @jonesrussell in #1780
Full Changelog: v0.1.0-alpha.248...v0.1.0-alpha.249