// dev log

Daily Update

What shipped to the 0xCMS Worker, straight from the commit log.

2026‑07‑23

2 commits · richer fields and drag-to-reorder content

The structured editor gains reusable field choices for uploads and scored responses, while item order can now be rearranged directly with a drag handle. Rich text also keeps its inline formatting reliable next to punctuation and CJK content.

2026‑07‑22

1 commit · safer local plugin previews

Plugin pages served from a local CMS can now show images from a local development server, without relaxing the production policy.

2026‑07‑21

2 commits · faster media previews and dependency maintenance

Media pickers now generate compact previews at the edge without exposing the private media bucket. The new path keeps the existing safety behaviour and reliably serves the original file whenever a thumbnail cannot be made.

2026‑07‑19

4 commits · Markdown rich-text editing and client build maintenance

Content authors now have a richer Markdown workflow in the page editor. The new field keeps rich text, Markdown and stored HTML in sync, while the supporting client bundle and dependencies have been documented and streamlined.

2026‑07‑18

4 commits · plugin setup helpers, localized fields and consolidated schema

Plugin operators can now copy their registration secret and tenant KV connection values straight from the CMS, with clear temporary success feedback. The release also makes shared page-field snippets translation-aware and consolidates credit subscriptions into the initial CMS schema.

2026‑07‑17

18 commits · recurring credits, localized administration, bulk workflows and deployment hardening

Expanded the CMS into a more international, subscription-ready platform: admins can work in their chosen language and timezone, plugins can bill recurring credits, and configuration- or plugin-owned page types can be safely extended without changing their base definitions. This release also tightens the Worker’s rendering and request boundaries and improves the installation path.

2026‑07‑16 · security review

pre-open-source hardening

Completed a code-level review of authentication, authorization, plugins, structured input, response caching, and dependencies before the host-source announcement. The fixes are covered by regression tests; this is a security review, not a certification or substitute for an independent penetration test.

Remaining trust boundary: proxied plugin pages and approved plugin JavaScript run on the CMS origin. Install only audited plugins and grant the minimum assets and delegated scopes required.

2026‑07‑16

7 commits · language administration, credit visibility and durable form protection

Added a runtime language and translation administration surface, made plugin pricing and limits easier for every admin to inspect, and strengthened request consistency and duplicate-submit handling across the Worker.

2026‑07‑16

3 commits · batch publishing, duplicate-submit protection and dashboard navigation

Added a scoped bulk-publish operation to the Plugin API, protected admin POST forms from accidental replay, and made the configured CMS brand a direct link back to the admin dashboard.

2026‑07‑14

13 commits · Plugin API scale, unified type admin, import/export plugins, media and credits

Made large Plugin API lookups safe within D1 bind limits, unified page/block type administration and plugin page creation, and moved CSV tools into a dedicated import-export plugin. Also added a permission-controlled media content list with page-reference links, kept Pages navigation stable for custom admin homes, and expanded plugin capabilities and credits.

2026‑07‑13

3 commits · bulk Plugin API writes, operational limits and publish projections

Expanded plugin operations with transactional bulk page updates and per-second limits, and added owner-defined publish-time lect projections so live content can be minimized consistently across all publishing targets.

2026‑07‑12

5 commits · auto-republish, shared field assets and restore cleanup

Added plugin-declared auto-republish behavior for live plugin page types, made admin page fields more reliable after client-side re-renders and plugin-view sanitization, and simplified legacy trash restore handling.

2026‑07‑11

1 commit · tenant-aware plugin auth headers

Strengthened secret-authenticated plugin requests by carrying a normalized tenant identifier through admin proxying, edit views, hooks, publish targets, and background jobs.

2026‑07‑10

2 commits · plugin navigation labels and API errors

Polished plugin-facing details by using plugin labels for single-item navigation entries and returning clearer forbidden page type errors from the Plugin API.

2026‑07‑08

3 commits · hook batching, field projection and pointer indexes

Improved Plugin API performance and response shaping with batched plugin hooks, optional page field projection, and indexed pointer filter queries.

2026‑07‑07

13 commits · bulk operations, validation, RSVP ingestion and Plugin API naming

Expanded advanced search into a safer bulk operations surface with async admin jobs, batching, lifecycle logging, and queue configuration. The same day also added page create validation, RSVP submission ingestion, Plugin API naming cleanup, a mobile dropdown fix, and default-timezone version timestamps.

2026‑07‑06

9 commits · plugin search, scopes, credits & action UI

Expanded plugin-facing admin capabilities with advanced page search, wildcard page-type scopes, custom update actions, user credit visibility, paginated credit history, and a cleaner plugin action menu.

2026‑07‑05

4 commits · plugin quotas, credit billing & branding

Added the first credit and quota controls around plugins: configurable quota limits, credit billing, safer atomic credit updates, and a branded app icon on the login screen.

2026‑07‑04

2 commits · admin home, purge controls & approved assets

Added more operator control over the admin experience: the home screen can now be configured, destructive purge paths are gated more deliberately, and approved plugin assets are exposed inside plugin-rendered edit views.

2026‑07‑03

15 commits · plugin create views, taxonomies, settings & page history

A broad platform day for plugin-owned admin surfaces: create and read-only page views landed, plugin taxonomies became first-class in admin, tags moved toward weighted taxonomy slugs, system branding/sidebar settings arrived, and page version maintenance became safer.

2026‑07‑02

7 commits · plugin assets, cache-busting & mobile admin

Tightened plugin-admin access, expanded the approved asset pipeline, added revision-aware cache busting for admin and plugin assets, and improved the mobile admin header.

2026‑07‑01

5 commits · live pages & multilingual search

Improved the editorial dashboard for live content: live-only pages can be pulled back into drafts, listings query live pages directly, and search now understands Chinese variant text.

2026‑06‑30

6 commits · plugin jobs, fields & trash restore

Rounded out plugin-driven admin workflows with queueable jobs, richer form-field rendering, fixed pagefield snippet resolution, and filtered bulk restore for trash.

2026‑06‑29

16 commits · table tooling, privacy & bulk operations

A broad admin polish day: collection-aware bulk actions, page duplication, table filtering, privacy masking, color labels, and several missing utility classes for the CMS shell.

2026‑06‑28

9 commits · profile, users & OAuth

Added the admin profile surface and rounded out account-linking controls, Microsoft OAuth, user deletion safeguards, and identity-provider visibility.

2026‑06‑27

7 commits · OAuth, actions & plugin hardening

Focused on authentication breadth and plugin-admin hardening, including multi-provider identity linking, unified icon actions, sanitized plugin HTML, and iframe isolation experiments.

2026‑06‑26

16 commits · client rendering, permissions & responsive admin

Shifted core views toward client rendering, externalized the SVG sprite, strengthened plugin permissions, and improved cache behavior, mobile navigation, table layout, and page-store utilities.

2026‑06‑25

16 commits · batching, trash & UI

Massive progress on administrative efficiency: introduced batch operations for page weights and deletions, overhauled the trash system with pagination and granular purging, and added a comprehensive light theme for the admin UI.

16fc14f

Bulk Page Weight Updates

Added POST /admin/pages/batch-weight to apply bulk weight updates using DB batch commits. Includes strict input validation and optimized prepared statements to minimize round-trips.

69927c5

Drag-and-Drop Row Reordering

Injected client-side logic to enable drag-and-drop reordering for any table with data-reorder. Automatically posts new ordering sequences to the backend via fetch.

09ec980

Enhanced Trash Management

The trash view now supports type-based filtering, item counts, and granular purge options (e.g., purge only items trashed in the last hour).

f1c154c

Batch Soft-Delete for Pages

Introduced DELETE /pages/batch to move multiple draft pages to trash in a single D1 transaction, significantly reducing API overhead for bulk cleanup.

ca5b6c8

Admin Light Theme

Added a full light theme stylesheet using CSS custom properties, ensuring a high-contrast, conventional Tailwind aesthetic as an alternative to the default dark mode.

44b43cc

Batch Page Creation

Optimized page creation with bulk D1 inserts and unique slug allocation within a single batch, capped at 100 items per request for stability.

Additional 2026‑06‑25 commits

  • 915f714Add batch page-weight endpoint and tests.
  • 991d77cUpdate admin.css.
  • 57ae3f3Add pagination and empty-all action to trash.
  • 1a17419Update cms-api.ts.
  • 623a270Update cms-api.ts.
  • 6b740d8Preserve plugin redirects and clean empty pointers.
  • 589aefdAdd blockNamesFor and boolean field snippet.
  • 13a08feUpdate routes.test.ts.
  • d34d691Show plugin block types and settings nav.
  • a6dcd7fShow Lect JSON diff in editor previews.

2026‑06‑24

7 commits · plugin editing & APIs

Earlier in the cycle: a native-editor escape hatch, opt-in same-origin framing for plugins, a richer pages API, and plugin edit-view support.

2026‑06‑23

16 commits · plugins, schemas & trash history

Turned the plugin system into a managed platform with DB-backed registration, per-plugin secrets, plugin-contributed page types, navigation, read APIs, write-back support, and richer timezone/schema foundations.

2026‑06‑22

14 commits · permissions, layout helpers & editor scope

Added role and user administration, made admin UI permission-aware, reduced route rendering boilerplate, and refined editor language scope, taxonomy fallback, and structured editor controls.

2026‑06‑21

5 commits · database-defined content model

Moved more content configuration into the database with page types, block types, renamed taxonomies, unique draft slugs, cache fixes, and regenerated admin utility styles.

2026‑06‑20

2 commits · publish adapter merge

Brought the publish-adapter branch into the mainline and added example plugin publish targets with tests.

2026‑06‑12

2 commits · pluggable publish targets

Added the publish-target architecture, including D1, R2, and plugin fan-out paths.

2026‑06‑11

2 commits · editor metadata & presence cleanup

Improved editor metadata display, safer lect parsing, and simplified presence storage behavior.

2026‑06‑10

11 commits · security hardening

A security-heavy day: stricter CSP and JWT claims, fail-closed CSRF, hardened cookies, upload protections, rate limiting, registration controls, audit logging, and plugin proxy safeguards.

2026‑06‑09

9 commits · CRDT collaboration, presence & plugins

Added the collaborative editing foundation with PageSync, CRDT operations, WebSocket attachment, presence tracking, multi-user tests, plugin integration, and modular admin route organization.

2026‑06‑08

1 commit · published DB isolation

Split published content into its own D1 database so public readers can be isolated from draft/admin data.

2026‑06‑07

6 commits · CSV import/export & dashboard scale

Expanded operational content management with localized CSV import/export, draft exports, lect-derived fields, dashboard pagination, import shortcuts, and batched lookups.

2026‑06‑06

6 commits · CSV workflows & editor references

Added CSV import modes, preview/confirmation flow, import/export foundations, parent-page APIs, dynamic editor comboboxes, and advanced-search blueprint options.

2026‑06‑05

5 commits · advanced search

Built the advanced-search surface with multi-type criteria, locked page-type routes, dashboard search, and redirect behavior from admin searches.

2026‑06‑04

11 commits · media, structured editor & initial schema

Added private R2 media uploads, Cloudflare image previews, error response cleanup, draft metadata, initial schema consolidation, item weights, and structured-editor improvements.

2026‑06‑03

23 commits · admin views, lect migration & mobile UI

A large admin build-out: responsive templates, Liquid/JSON view experiments, editor and tag parity, lect migration, version-table unification, CSP/referer fixes, and package updates.

2026‑06‑02

4 commits · database bindings & roles

Consolidated content database bindings, supported comma-separated roles, and expanded origin checks.

2026‑06‑01

1 commit · OAuth and headers

Added multi-provider OAuth support and security headers.

2026‑05‑30

9 commits · auth, trash & dependencies

Established the early auth/data split with AUTH_DB, trash workflow, Eventuai OAuth integration, dependency upgrades, config updates, and the repository root commit.

2026‑05‑29

2 commits · first CMS plan and Worker implementation

Started the project with the initial implementation plan and the first Cloudflare Worker CMS scaffold: OAuth 2.1, dual JWTs, and live/draft database workflow.

Generated from the 0xCMS Worker commit log · last updated 2026‑07‑14