All project releases

airfleet-platform-changelog

Release 0.12.2

Added error handling for webhooks and guards for GitHub secrets.

GitHub
View full changelog

Fixed

  • Worker uncaught exception handling: Wrapped the fetch handler's handleWebhook call in a top-level try/catch so any unhandled exception returns a 500 response instead of crashing the Worker with a Cloudflare 1101 error. GitHub retries on 500, so no webhook deliveries are permanently lost.
  • Missing secret guards: Added explicit configuration guards for GITHUB_PRIVATE_KEY (in importPrivateKey) and PAGES_BUILD_HOOK_URL (in maybeTriggerBuild), throwing descriptive errors when either secret is not set rather than a cryptic TypeError.
airfleet-platform-changelog

Release 0.12.1

Fixed GitHub App webhook signature verification to handle empty secrets and ignore draft releases.

GitHub
View full changelog

Fixed

  • GitHub App webhook signature verification: Guarded verifySignature against an undefined or empty GITHUB_WEBHOOK_SECRET, which previously caused crypto.subtle.importKey to throw a DataError (empty HMAC key material) and return a 500 instead of processing the webhook. The worker now throws a descriptive error that is caught and logged clearly. Also added a missing draft release check so draft releases are ignored alongside prereleases.
airfleet-platform-changelog

Release 0.12.0

Introduced local summary generation, changelog stats, and Slack automation while refining UI polish and summary workflows.

GitHub
View full changelog

Added

  • Local summary generation: Added scripts/summarize-local.ts and npm run summarize:local to generate release, weekly, and monthly summaries using a local Ollama model instead of Cloudflare Workers AI. Supports the same --year/--month/--week/--release selectors and --existing/--only modes as the cloud seeding script. An optional --upload flag pushes generated summaries directly to Cloudflare KV. OLLAMA_HOST and OLLAMA_DEFAULT_MODEL env vars configure the Ollama endpoint and default model.
  • Changelog stats: Added a Stats page with all-time repository and release totals, monthly release activity, and per-repository release counts.
  • Seeded previews: Added a preview:seed script to seed live KV data, build the site, and start the local preview server in one command.
  • Selective summary seeding: Added --only flag to npm run data:seed-summaries to control which summary types are regenerated. Accepts a comma-separated list of releases, weekly, and monthly — e.g. --month 2026-04 --only monthly regenerates only the monthly summary without touching release or weekly summaries.
  • Repository exclusion config: Added src/data/excluded-repos.json to exclude repositories from all changelog views. Entries are full repo names (owner/name). airfleet/airfleet-elements-test is excluded by default. Filtering is applied centrally in the data layer across all pages.

Changed

  • Changelog page polish: Refined release-card disclosure controls, simplified the project filter, tightened weekly/monthly summary layouts, added month summaries to archive cards, aligned weekly/monthly archive labels and cards, and added previous/next navigation to archive detail pages.
  • Layout and archive polish: Made the site brand in the header link back to the homepage, refreshed the footer copy to use the product name, surfaced the all-time release count, and aligned archive week pages around the YYYY-Www label plus a clearer week range.
  • Weekly and monthly summaries: Added a Monthly page, promoted summary-aware weekly cards, introduced separate monthly and summary KV paths, and wired the Worker plus a manual backfill workflow to generate Cloudflare-native release/weekly/monthly summaries for closed periods.
  • Summary backfill controls and prompts: Expanded the manual summary seeding workflow and CLI to target a full year, one month, one week, or one release; added explicit refresh/skip/overwrite behavior plus model overrides; switched the shared default model to @cf/zai-org/glm-4.7-flash; and upgraded monthly summaries to use a more narrative grouped prompt.
  • Summary presentation: Tightened release, weekly, and monthly summary prompts to avoid redundant project/version/count phrasing and generic openings; stopped generating unused expanded release summaries; promoted compact summaries on week/month cards; and aligned weekly/monthly landing pages with the archive detail layouts.
  • Monthly summary prompts: Upgraded monthly compact summaries to avoid opening with the month name, year, or any time-period reference — the summary must start with the work itself. Upgraded monthly expanded summaries to produce a richer structured narrative with 2–4 ##-headed sections by capability theme, starting with a one-sentence overview. Prompt version bumped to monthly-v6 with increased token budget.
  • Release card repo label: The repository label on release cards is now a link to the repository's release history page (/repo/{owner}/{name}).
  • Slack digest automation: Added weekly and monthly GitHub Actions workflows plus CLI helpers that post stored summaries to Slack through a Slack app bot, with manual period overrides for reruns.
  • Docs and workflow guidance: Updated README.md and AGENTS.md for the summaries workflow, release checklist, and changelog expectations.

Fixed

  • Homepage load-more page count: Capped getRequiredPageCount() by the total matching release count so filtering to a repo with fewer releases than the visible limit no longer requests non-existent pages and triggers 404 errors.
  • Monthly week overlap filter: Normalized both sides of the week/month overlap comparison to YYYY-MM-DD so full ISO timestamps stored in monthly index items no longer cause boundary weeks to be incorrectly excluded.
  • Markdown protocol-relative URL sanitization: sanitizeUrl now explicitly rejects protocol-relative URLs (//example.com) instead of normalizing them to http: and passing the allowlist check.
  • Weekly Slack digest formatting: Applied the same markdown-to-mrkdwn conversion used by the monthly digest so weekly summaries render bold text, headings, and links correctly in Slack instead of showing raw markdown syntax.
  • KV data download safety: downloadKvData now only deletes public/data after confirming the KV namespace contains keys, preventing an empty build when credentials point at a wrong or temporarily empty namespace.
airfleet-canvas-theme

Release 0.8.0

Updated styling to use theme.json and WordPress tokens, added page templates and global styles, and removed obsolete code.

GitHub
View full changelog

Added

  • Added front-page and page block templates with header, post content, and footer template parts.
  • Added a brand style variation partial with an alternate palette and Plus Jakarta Sans typography setup.
  • Added light fill and outline button style variation partials with theme.json hover states.
  • Added expanded theme presets for border radii, aspect ratios, shadows, semantic spacing sizes, fluid spacing sizes, and transition custom tokens.
  • Added global theme styles for core button, code, navigation, preformatted, pullquote, separator, and table blocks.
  • Added link default, hover, and visited styles in theme.json.
  • Added .cursor/plans to ignored local tooling files.

Changed

  • Updated the theme color palette and gradient definitions to the latest brand token slugs and values.
  • Updated font size, heading, paragraph, button, spacing, block gap, and root padding styles in theme.json.
  • Moved button fill and outline defaults into theme.json core button variations, including shared transitions via theme custom tokens.
  • Renamed button style variations from dark/light primary/secondary/link variants to fill, outline, and link-oriented variations.
  • Updated the button block SCSS to only cover styles that theme.json cannot express, including icon-only button support.
  • Updated transition mixins to use WordPress-emitted --wp--custom--transition--* tokens instead of local --afs-trs-* variables.
  • Updated block style documentation to reflect theme.json-first style variations and the current token names.
  • Updated the editor entry bundle to remove the example style registration side-effect import.
  • Updated the index template markup to the current block editor query template structure.

Removed

  • Removed JavaScript-based example block style registration and the unused heading/paragraph example stylesheets.
  • Removed heading and paragraph style variation JSON partials now handled by global theme typography styles.
  • Removed obsolete primary and secondary button style variation partials.
airfleet-nexus-plugin

Release 0.54.0

Adds a Background Image block for cover-style backgrounds and allows placement inside Media Background containers for responsive art direction.

GitHub
View full changelog

Added

  • block-background-image: Add a Background Image block for cover-style section and container backgrounds, with editor image selection and lazy or eager loading.
  • block-background-image: Allow Background Image blocks inside Media Background containers for responsive art direction alongside video and Lottie layers.
airfleet-nexus-plugin

Release 0.53.0

Added environment settings and block documentation, updated module taxonomy and manager logic, and fixed Dev Containers and SVG sanitization.

GitHub
View full changelog

Added

  • environment: Add a shared settings section for overriding the resolved environment while keeping auto-detect as the default.
  • block-lottie: Add dedicated block documentation covering attributes, playback modes, lazy loading, events, and poster behavior.

Changed

  • Module Manager: require enabled child modules to be disabled before parent dependencies, confirm before disabling critical modules, and link enabled modules directly to available settings tabs and sections.
  • Module Manager: remove the module card "More" details popover from the badge row.
  • Module taxonomy: clarify tier semantics, add the premium tier value to the UI, and update current module metadata for forms, providers, components menu, and Allow Lottie.
  • Admin pages: document that module settings should generally live in Airfleet → Settings rather than standalone submenus.
  • Internal: move SVG sanitization into the shared Core\Svg\SvgSanitizer utility for use outside the Allow SVG module.

Fixed

  • Dev Containers: Allow the WordPress container to open from Git worktrees by using dynamic workspace paths and preserving worktree Git metadata paths inside the container.
  • Dev Containers: Enable visible and logged PHP errors in the WordPress container with explicit WordPress debug constants and PHP ini settings.
  • SVG sanitizer: Reject non-fragment url(...) references while avoiding false positives for plain values that merely contain protocol-like substrings.
airfleet-plugin-manager-plugin

Release 1.12.1

Fixes the license badge fallback color for the Preview badge when the legacy Admin plugin is not installed.

GitHub
View full changelog

Fixed

  • Fixed license badge fallback color for Preview badge when legacy Admin plugin is not installed
airfleet-nexus-ai-server

Release 0.4.0

Adds page-spec v2 vocabulary and a section archetype catalog with auto-discovery, admin endpoints and SPA pages, upgrades the comparison spec, and fixes entrypoint detection for paths with spaces.

GitHub
View full changelog

Added

  • Page-spec v2 vocabulary on pageTypeSpecSchema: audience, voice, expectedCta, requiredProofTypes, formFriction, defaultSections, forbidsArchetypes, validationRubric, guidance. All optional or defaulted — v1-shape literals still parse.
  • Section archetype catalog with auto-discovery: Hero, ValueProps, SocialProof, FeatureDeepDive, Pricing, Faq, FinalCta, plus ComparisonTable, AwardBadgeRow, IconFeatureGrid, InlineLeadForm, IntegrationGrid synthesized from the swipe-file corpus. Filesystem-driven — drop a .ts under archetypes/ and restart.
  • Best-practice page specs (product, content, service, demo) authored from 89 per-page analyses across 5 categories of a 110-page landing-page swipe file.
  • Page-spec auto-discovery: drop a spec file under page-specs/specs/ and it's picked up at boot via readdirSync + dynamic import + top-level await.
  • SpecRepository interface + InMemorySpecRepository as migration insurance for an eventual code → DB swap.
  • Admin browse endpoints under /admin/api/{page-specs,section-archetypes,block-specs} with cross-reference counts and rendered-prompt previews (Zone 2 for blocks, Zone 3 for specs), gated by requireSession.
  • Admin SPA catalog pages (Page Specs / Section Archetypes / Block Specs + detail views) with cross-linking, debounced search, and source filters. Sidebar nav extended.
  • New CSS patterns for detail pages: .card, .kv, .breadcrumb, .prose-block, .block-id-list, .chip, .badge-custom/.badge-native, .empty-state, .id-cell, .num-cell.
  • Page-type research pipeline tooling under page-type-data/: extract-from-coda.js (DevTools snippet), fetch-images.mjs (parallel image fetcher with native-resolution URL cleanup), analyze-screenshot.md (per-screenshot analysis prompt), synthesize-best-practice.md (per-category synthesis prompt), README documenting the 5-step pipeline.
  • Prompt-rendering snapshot tests (prompts.snapshot.test.ts) covering all shipped specs.
  • pnpm dump-prompt CLI: dump the full assembled system prompt for a (spec, stage) pair to stdout, with optional fixture file for Zone 4. Useful for offline iteration without burning API credits.
  • Inline archetype definitions in Zone 3 of the system prompt for LLM grounding.
  • Universal page rules + canonical propose_plan example baked into BASE_PROMPT.
  • purchase and start-trial CtaAction enum values.

Changed

  • Existing comparison spec upgraded based on best-practice synthesis (13-sample corpus): ComparisonTable added as required default section, Faq moved from required to forbidsArchetypes, Pricing added to forbidsArchetypes, SocialProof split into trust-logo-belt + switcher-testimonial slots, FeatureDeepDive ×1 required + 1 optional added, requiredProofTypes expanded with logos and metric, validation rubric expanded from 5 to 9 testable assertions.
  • book-demo, comparison, resources specs re-authored with full v2 vocabulary content.
  • data-index.js renamed to data-index.json to reflect its actual content (pure JSON) and avoid ESLint parsing it as code.

Fixed

  • Entrypoint detection (isEntrypoint) now uses pathToFileURL so the boot block runs correctly on paths containing spaces (e.g. /Users/.../Local Sites/...); previously the check silently failed off-Railway.
  • pnpm dump-prompt script imports updated for the post-restructure monorepo layout (../plugins/page-ai/src/... for runtime modules, @airfleet/nexus-ai-server-wp-contracts for types).
airfleet-nexus-ai-server

Release 0.3.1

Root build now compiles packages to dist and points exports there to resolve modules correctly at runtime.

GitHub
View full changelog

Fixed

  • Build: Root pnpm run build now runs build:packages before apps/server, compiling platform-sdk, platform, wp-contracts, and page-ai to dist/ and pointing each package exports default entry at ./dist/index.js. Production previously only emitted apps/server/dist; Node still resolved workspace imports to TypeScript sources and failed at runtime (ERR_MODULE_NOT_FOUND for *.js siblings), breaking Railway health checks after the pnpm workspace migration.
  • Deploy: predb:migrate invokes build:packages so the migration script always resolves @airfleet/nexus-ai-server-platform from emitted dist output; pnpm test does the same so Vitest matches production resolution.
airfleet-acf-addons-plugin

Release 1.0.3

Fixes crashes in jQuery AJAX requests when the XHR body is null or non-string.

GitHub
View full changelog

Fixed

  • Fixed BlockPreviewDebounce crashing jQuery $.ajax GET requests in wp-admin (including author search and Quick Edit author dropdowns) when the XHR body is null or non-string. The XHR override now coerces non-string bodies before checking whether the request targets an ACF block fetch.
airfleet-nexus-plugin

Release 0.52.0

Adds an AI Page Builder module and removes the AI Block Generator module.

GitHub
View full changelog

Added

  • Add the ai-page-generator module (AI Page Generator): a wp-admin AI Page Builder screen with session management and a full-screen editor shell, REST and SSE proxying to the external AI server so the API key never reaches the browser, Airfleet → Settings → Content fields for api_key and optional server_url, and the airfleet/nexus/ai_page_generator/server_url filter for overriding the AI service origin.

Removed

  • Remove the ai-block-generator module (AI Block Generator): block editor toolbar integration, REST proxy to the external layout service, Airfleet Settings section, related options, and the airfleet/nexus/ai_block_generator/server_url filter.
airfleet-nexus-plugin

Release 0.51.1

Restored WordPress test workflow path filtering by checking out the repository before running the change detector.

GitHub
View full changelog

Fixed

  • CI: Restore WordPress test workflow path filtering by checking out the repository before running the change detector.
airfleet-nexus-plugin

Release 0.51.0

Updates internal models, replaces PR review workflows with GitHub Actions and Copilot CLI, and adds planning guardrails skills.

GitHub
View full changelog

Changed

  • Internal: Update oh-my-opencode-slim.json to latest recommended models and config
  • Internal: Replace the parked gh-aw PR review workflows with standard GitHub Actions + Copilot CLI review workflows and refresh the PR review automation guidance
  • Internal: Add plan-pressure-test and implementation-guardrails skills to reinforce the existing planning and implementation workflow without adding competing commands
airfleet-nexus-plugin

Release 0.50.0

Reorganized project scripts, updated development containers to PHP 8.3, and added changed-file filters to CI workflows.

GitHub
View full changelog

Changed

  • Tooling: Reorganize project scripts under scripts/docs/, scripts/docmd/, scripts/playground/, and scripts/webpack/.
  • Dev Containers: Move both containers to PHP 8.3, update the pinned OpenCode binary to 1.14.28, and let VS Code forward the WordPress service port while keeping WP_DEBUG and SCRIPT_DEBUG enabled.
  • CI: Add changed-file filters to the WordPress and block e2e test workflows so expensive checks run only for relevant source, dependency, tooling, test, or workflow changes.
  • CI: Update the docs workflow to actions/upload-pages-artifact@v5.
airfleet-nexus-plugin

Release 0.49.0

Added API references and documentation guidance, reworked navigation, and standardized DOM event naming.

GitHub
View full changelog

Added

  • Add generated API references for Blocks, CPTs, and JavaScript events, plus generated release notes sourced from CHANGELOG.md.
  • Add documentation guidance for block pages, optional block contributor notes, JS event doc blocks, content type references, generated references, release notes, and hook images.
  • Add naming guidance for JavaScript events, transient keys, and settings groups/keys.
  • Add custom docs styling for inline code and release notes layout.

Changed

  • Upgrade @docmd/core to 0.7.7.
  • Expand bun run docs:generate to orchestrate PHP API references, JavaScript event references, and release notes.
  • Rework docs navigation and API Reference labels/order, using Modules, Hooks, CPTs, Taxonomies when present, Blocks, and JS Events without the repeated "Reference" suffix.
  • Run docs deployment after the plugin release workflow so generated release notes build from the versioned release commit.
  • Rename the changelog/versioning guide to docs/getting-started/release-process.md.
  • Update generated references so hook and block headings omit project prefixes while preserving full slugs in metadata, block attributes/supports are collapsible, block rendering details are concise, JS events are grouped in cards, and empty taxonomy references are skipped.
  • Standardize form and modal DOM events on the afnx- naming convention.
  • Simplify block documentation pages so they focus on editor usage and link to generated references for attributes, supports, and metadata.

Removed

  • Remove old airfleet/nexus/form/* and airfleet/nexus/modal/* DOM event names in favor of afnx-form-* and afnx-modal-*.
airfleet-nexus-plugin

Release 0.48.0

Updated Gutenberg block best practices by adding role attributes, SCSS linter rules, and guardrails for experimental components.

GitHub
View full changelog

Changed

  • nexus-block-patterns skill: comprehensive Gutenberg block best practices update — add "role": "content" for primary content attributes, SCSS import linter rules for index.js/edit.js/save.js, dynamic block patterns (InnerBlocks save.js rules, omit save.js for standard blocks), experimental/unstable components guardrail with explicit permission requirements
airfleet-nexus-ai-server

Release 0.3.0

Aligned Railway start command and fixed GitHub Actions CI paths, while updating deployment documentation.

GitHub
View full changelog

Fixed

  • Deploy: Railway startCommand aligned with the pnpm workspace so production runs apps/server via pnpm start (avoids broken health checks after the composition root moved).
  • CI: GitHub Actions fixes for pull-request / release validation paths.

Changed

  • Docs: Deployment and release workflow documentation updates.
airfleet-canvas-theme

Release 0.7.0

Adds new button styles, a purple primary color, and SCSS design tokens while removing secondary color support and example files.

GitHub
View full changelog

Added

  • Six button block style variations with button- slug prefix to avoid is-style-{slug} collisions across block types: button-primary-dark/-light, button-secondary-dark/-light, button-link-dark/-light
  • Shared button geometry on styles.elements.button so variations inherit common chrome
  • Color palette and gradients aligned with the Figma style guide
  • Overused Grotesk and Area Variable font family registrations (Inter fallback; font files pending license)
  • SCSS design tokens at src/scss/base/_root.scss (--afs-trs-sm, --afs-trs-timing-function)
  • SCSS mixins: hover, hover-capable, transition
  • Per-block stylesheet src/scss/blocks/core-button.scss for variation hover states

Changed

  • --wp--preset--color--primary now resolves to the new brand purple
  • Lint: at-rule-empty-line-before granted the same first-nested exception as rule-empty-line-before
  • Block style variations grouped into per-block subfolders: styles/buttons/, styles/headings/, styles/paragraphs/ (WP scans /styles recursively, so registration is unchanged)

Removed

  • --wp--preset--color--secondary and the secondary / subtle gradient slugs (no analog in the new palette)
  • styles/example.json and styles/example-button-large.json placeholder examples (the authored variations are the reference now)
airfleet-nexus-plugin

Release 0.47.0

Adds a circular icon-only button style and a play icon to the default registry.

GitHub
View full changelog

Added

  • support-button-icon: register an is-style-icon-only block style on core/button for circular, label-hidden icon buttons. The label stays in markup as the button's accessible name; outer/icon sizing exposed as --afnm-button-icon-only-size and --afnm-button-icon-only-icon-size for theme overrides
  • support-button-icon: add a play icon to the default registry
airfleet-nexus-plugin

Release 0.46.0

Added a guide for extending third-party Gutenberg Blocks.

GitHub
View full changelog

Added

  • Added guide on extending 3rd party Gutenberg Blocks: docs/guide/extending-blocks.md