Skip to content

Hatamoto 1.x release notes

Every 1.x release, newest first.

GitHub releases

canary

v1.0.8

Features

  • tag-packs: code-free tracking tag packages wired into Tracking, CSP and consent (#138)
  • image-formats: WebP and AVIF copies with picture sources and a rebuild job (#137)
  • maintenance-mode: site access modes (coming soon, maintenance, password) (#136)
  • tag-manager: core Settings > Tracking with consent-gated vendor tags (#135)
  • plugin-sdk-gaps: Plugin SDK 0.18.0 with request headers, cookies, csp, translations and media alt (#131)
  • search-replace: search and replace across site content with preview and versions (#134)
28 more features
  • two-factor: two-step sign-in with authenticator app, recovery codes and passkeys (#132)
  • email-log: log every outgoing email with resend and retention (#133)
  • duplicate-entity: duplicate a page or post into a new draft (#129)
  • consent: cookie consent banner and Google Consent Mode v2 (#128)
  • app-compression: compress responses in the app, cache compressed pages, warn on uncompressed visitors (#127)
  • cc-standing-approvals: standing approvals with step-up, plain-words install prompt and a daily digest (#126)
  • proxy-compression: compress proxied responses with zstd and gzip (#125)
  • cc-ownership-ui: show who owns a plugin page and hand it over on a structural edit (#124)
  • cc-review-ui: review, publish, discard and undo plugin runs in the admin (#123)
  • locale-neutral-schemas: shared-across-languages entity type setting (#122)
  • cc-preview: isolated preview of a plugin changeset in a sealed frame (#121)
  • builder-match-chrome: top bar, stage bar, canvas overlays and Insert surfaces match the mockup (#119)
  • cc-runs: plugin runs, phase isolation and changeset host functions (#120)
  • builder-match-inspector: compact inspector matching the editor design (#117)
  • builder-match-layers: Layers panel and field selection in the builder (#116)
  • cc-engine: transactional changeset engine and content origins (#115)
  • org-catalogue-locale-currency: lock site currency on the Organization offer catalogue (#114)
  • plugin-changeset-adr: propose ADR 0004, transactional changesets and phase-isolated plugin runs (#113)
  • business-details-per-locale: move business details into Settings > Locales (#112)
  • admin-unslop2-plugins-theme: quieter plugin and theme screens, painted live theme preview, Colours notes under their swatches (#111)
  • admin-unslop2-settings: shared tab strip, sticky card saves and Theme colours link on Settings > General (#110)
  • admin-unslop2-quiet-rows: quiet row titles, published status dot, labelled drafts marker (#109)
  • admin-unslop2-list-toolbar: one 32px list toolbar row and the view toggle in the table header (#108)
  • admin-unslop2-shell-notices: shell notices as one hairline group (#107)
  • admin-docked-subnav: restore the docked subnav shell with one sidebar toggle (#106)
  • seo-mcp-api: read and change SEO settings through the API and MCP with read:seo / write:seo (#105)
  • ci-registry-full-tier: skip the registry build tests on PRs (#104)
  • seo-wp-import: import global SEO settings from WordPress (#102)

Fixes

  • isolate the integration-gate cleanup checks in test-hooks from a concurrent gate (#118)
Docs / Chores
  • v1.0.7 on canary now, edge +2d, stable +7d (#103)
edge

v1.0.7

Features

  • render-query-visible-locales: include shared content in template data funcs on multi-locale sites (#101)
  • ci-tiered: fast PR tier, full suite in ci-full (#100)
  • seo-bulk-edit: inline SEO view on content and term lists (#99)
  • menus-real-data: menus are always real, editable data; themes declare menu locations (#98)
  • business-profile-rest-graph: business details over the site settings API, and new graph fields (#97)
  • admin-unslop-shell-match: match the live admin shell to the approved preview (#95)
4 more features
  • seo-404-monitor: SEO 404 monitor settings and a people/bots filter on the 404 log (#96)
  • seo-breadcrumbs-indexnow: breadcrumb settings and opt-in IndexNow pings (#94)
  • seo-sitemap: SEO > Sitemap settings, per-type rows, exclusions and Hide from sitemap (#93)
  • seo-robots-verification: SEO robots, verification and per-type noindex everywhere (#92)
Docs / Chores
  • v1.0.6 on canary now, edge +2d, stable +7d (#91)
edge

v1.0.6

Features

  • wasmhost-closed-instance: never pool a closed plugin instance (#90)
  • business-profile-extended: identifiers, payments, services, expertise and amenities on the business profile (#89)
  • seo-schema: SEO schema settings, knowledge graph tab and per-entry JSON-LD (#88)
  • admin-unslop-4-settings: restyle the Settings screens (#87)
edge

v1.0.4

Features

  • seo-panel-p3-polish: close the builder and term SEO review follow-ups (#45)
  • menu-editor-v2-js: JS menu editor with drag, inspector, live preview and undo (#44)
  • button-hairline: hairline ring and bevel on every admin button (#43)
  • seo-settings-hardening: atomic SEO saves, all-or-nothing titles save, cache race test (#40)
  • seo-panel-builder-terms: SEO drawer in the Builder and SEO on term pages (#39)
  • per-locale-hreflang: per-locale public URLs, hreflang and sitemaps (phase 1) (#41)
12 more features
  • ship queues an auto-merge and deploys in the background (#38)
  • plugins-redesign: split the plugin admin into Installed, Browse and Package security (#31)
  • wait for green CI and take it as the full suite (#30)
  • seo-settings: Settings > SEO with title templates and a shared SEO panel (#26)
  • menu-editor-v2: no-link menu items, item settings and theme menu presets (#25)
  • replace the top-bar update chip with a colophon (#24)
  • first-party-mirror-docs: first-party plugins are not mirrored (#23)
  • make design-check, one package for every static design check (#22)
  • vps-installer-followups: publish-install and apply-caddy dry-run fixes, installer P2/P3 fixes (#21)
  • directory-polish-validator-mirror: registry builds mirror the manifest validators, icon-only permission warning (#20)
  • vps-installer: curl | sh and cloud-init VPS installer with setup-link prefill (#13)
  • plugin-pages: public detail pages for registry plugins and themes (#14)

Fixes

  • ship waits for the merge state to settle after green checks (#33)
  • staging check runs both boxes in parallel and stops when a box is stuck (#32)
Docs / Chores
  • roll back multi_locale with DownTo, not Down (#42)
  • hairline frame and 28px segmented toggles (#37)
  • subtle selected state for segmented toggles (#36)
  • make the fake updates Glance counter atomic (#34)
  • integration gate runs its packages in parallel, each on its own database copy (#35)
  • ignore an inherited GH_REPO in the publish-install test (#29)
  • parse the admin templates once per process (#28)
  • wait for the live builder canvas before AT-22's window and control (#27)
  • unhalt v0.27.1 on canary (#18)
  • halt v0.27.1 on canary (#17)
  • track the channel sources in this repository (#15)
stable

v1.0.2

Features

  • plugin-directory-anti-spam: enforce listing rules in the registry build, plain-English permissions on directory cards (#12)
  • repoint-first-party-links: point docs and homepage-shots at hatamoto-first-party (#11)
  • stats-quiet-fixes: quiet install stats failures, demo hiding, last success time, card fixes (#9)
  • optin-telemetry: opt-in anonymous install stats (#8)

Fixes

  • golang.org/x/net v0.62.0 (#6)
  • do not cache a missing release file for a year (#5)
Docs / Chores
  • bump sharp to 0.35.5 in scripts/homepage-shots (#10)
  • expect only the public core repository as origin (#7)
edge

v1.0.1

First Hatamoto 1.x release. Notes to be written.

canary

v1.0.0

Features

  • builder-ux-canvas-inspector: canvas toolbar, + handles, zoom and device band; inspector Style tab, Show on, element restore (#320)
  • fix-cookie-auth: API cookie sessions get their own kind, cookie and bound CSRF token (#308)
  • fix-canvas-scripts: no page scripts in editor frames, private canvas port (#312)
  • pw3-preflip: sandboxed pageview fetch, per-page sandbox marker, legacy cookie pre-check (#315)
  • pw3-p08: admin address leftovers and community grant wording (#314)
  • render-series-author: .Series and .PostsByAuthor layout helpers (#313)
39 more features
  • pw3-edit: signed-in /-/edit end-to-end tests (#311)
  • pw3-leaks: keep the admin address out of logs and non-admin emails (#310)
  • pw3-caddy: strip Via, /security redirect, cloudflare-only cutover check (#309)
  • freeze-prep: point links at Zen-Labs-Corp, fill tokens, final cut-over rehearsal (#305)
  • builder-ux-shell: UX-1 builder shell (Navigator|Add, Ctrl+K, device labels, start panel, phone dock, Site styles) (#304)
  • admin-frames (A3): frame tickets for the builder canvas, blog preview and plugin pages (#298)
  • admin-address-ui: owners choose, see and change the admin address (wizard, Security, upgrade banner, live swap) (#294)
  • gate-followups: docs-only ships skip the full suite; review follow-ups (#295)
  • gate-throughput: affected-only pre-push, full suite once at ship, farm limit (#291)
  • worktree-workstreams: wsinit, wsmerge and wsclean in pipeline-worktree.sh (#283)
  • overview-control-panel: calm Overview with top-bar update chip, Site health and Activity (#288)
  • admin-storage (A4): editor and builder recovery copies move server-side (#287)
  • opaque-origin-c4: Layer B opaque-origin sandbox + C4 fingerprint scrub (#289)
  • faster-gates: parallel pre-push, gate cache, skip needless UI gate (#284)
  • sealed-admin: seal the admin against same-origin page scripts (Layer A: A1, A2, A5) (#282)
  • open-site shortcut beside the site name in the sidebar (#280)
  • danger-confirm-sudo: typed danger confirm (ui.DangerConfirm) and 10-minute sudo mode (RequireSudo) (#278)
  • admin-address-core: per-install admin address (adminpath, CLI, boot) + standard not-found responder (#272)
  • builder-ux-audit (UX-0): builder UX audit, task timings, three directions, owner decision; M-A milestone summary (#276)
  • admin-consistency: one look per control across the admin (#270)
  • builder-e11-mcp-builder: MCP tools to build and edit pages by ops (version-checked), shared builder save core (#274)
  • content-locale: every content entity carries a BCP 47 locale (G14) (#273)
  • admin-path-c1: route every admin URL through one configurable prefix (C1) (#269)
  • blobstore-restore: BlobStore interface (G13) and hatamoto backup restore (G10) (#268)
  • builder-e6-element-settings: anchors, link target/rel, image caption/link/lightbox and size, container links, aria/tooltip (#271)
  • go-public-tooling: cut-over tooling (runbook P1-P3, P5-P7) (#267)
  • builder-e5-inline-rich-text: bold, italic, links and more inline on canvas headings and text (#266)
  • settings-half-width: compact Performance/Updates/General/Email settings and provider-aware email fields (#263)
  • admin-nav-groups: group the admin sidebar under Site and Customize (#265)
  • builder-e4-direct-manipulation: move handle, copy/paste across pages, context menu, wrap/unwrap, + layout picker, rename, multi-select, history (#264)
  • builder-e3-inspector-controls: colour picker, unit+slider, box model, set-here dots, source labels; lazy splits reclaim first-paint JS (#262)
  • builder-e2-states: hover/focus/pressed/parent-hover states, transform, filters, transitions (#260)
  • migrations: neutral index names in the baseline; drop the last check-neutral exception (#259)
  • status-pills-sweep: one status pill look (tint + dot) across the admin (#255)
  • builder-e1-style-depth: StyleSpec v2 (50 new style keys, show on narrower screens) (#257)
  • builder-e0-budget-split: first-paint vs lazy builder JS, new budget metrics (#256)
  • ai-analytics-redesign: AI analytics rebuilt as the approved prototype in the sub-sidebar (#253)
  • fix-prepush-gates: make the local pre-push gates pass on main (#251)
  • release: [email protected] tag key; tags always tagged as Zen Labs (#248)

Fixes

  • test-hooks ignores an inherited HATAMOTO_PREPUSH_FULL (#302)
  • retry throwaway Postgres on another port when the port is taken (#297)
Docs / Chores
  • close post-wave-3 (#316)
  • close fix-canvas-scripts (#318)
  • close freeze-prep (#306)
  • record the Wave 3 owner decisions (#303)
  • track the go-public program folder; close opaque-origin-c4 (#300)
  • close admin-address-ui (#296)
  • close admin-storage (#290)
  • close admin-frames (#299)
  • close gate-throughput (#293)
  • close overview-control-panel (#292)
  • close danger-confirm-sudo (#279)
  • close admin-address-core (#277)
  • close Wave 1-2 plans; trufflehog exclude list (#286)
  • close admin-consistency (#275)
  • close status-pills-sweep (#258)
  • close ai-analytics-redesign (#254)
  • public repos go to the Zen-Labs-Corp org; zenlabscorp stays personal (#252)
  • owner decisions 2026-10-23 (software tag key, Workspace mail DNS checks) (#250)
  • close the admin design roadmap (#244)
  • close homepage-layout (#245)
  • pipeline-gate full self-test clears the env knobs it sets per call (#317)
  • integration tests load frames with a ticket (#307)
  • run the UI gate alongside the full suite, and its sessions concurrently (#301)
  • drop ignore rules for an untracked local tool directory (#285)
  • HATAMOTO_PERF_STRICT=0 selects the shared-runner bounds (#281)
  • run 851 of 925 internal/admin tests in parallel (#261)