@aeptus/aexeo-emdash 0.8.13 → 0.8.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,109 @@ and the project follows [Semantic Versioning](https://semver.org/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.8.15] - 2026-05-06
10
+
11
+ Plugin-only release tracking EmDash 0.11.x compatibility. The
12
+ CLI workspace stays at 0.0.19 because the Rust crates aren't
13
+ affected.
14
+
15
+ ### Added
16
+
17
+ - **`@emdash-cms/plugin-types` declared as optional peerDep.**
18
+ EmDash 0.11.x split plugin manifest types into a dedicated
19
+ package; declaring it now (alongside `@emdash-cms/core`,
20
+ also optional) signals awareness of the split and removes
21
+ one step from the eventual migration when we touch the
22
+ manifest surface. No source-code change yet — all
23
+ manifest-shaped imports still come from the `emdash`
24
+ umbrella, which is still valid.
25
+
26
+ ### EmDash 0.11.x compatibility notes (no code change)
27
+
28
+ - **Native locale-aware menu writes.** EmDash 0.11.x menu
29
+ automation is first-class locale-aware upstream with fail-
30
+ loud behavior on ambiguous writes. The plugin doesn't write
31
+ menus today, so no change is forced — the constraint matters
32
+ if we ever add menu-writing helpers (the read-side
33
+ constraint was already covered when 0.10's native i18n
34
+ shipped: never infer locale from menu names, always resolve
35
+ through `translation_group`).
36
+ - **Seed/export/apply improvements for translated menu items.**
37
+ Doesn't affect Aexeo (no seed flows).
38
+ - **Stricter sandbox bundle caps.** Doesn't affect today's
39
+ workspace-local install at Aeptus; matters if Aexeo ever
40
+ ships through an EmDash marketplace. Current bundle sizes
41
+ (configured.js 54KB, admin.js 43KB, sandbox-entry.js 27KB,
42
+ WASM kept external) remain lean — no action needed.
43
+ - **Field-level `allowedTypes`.** Not relevant; no Aexeo rule
44
+ defines schema helpers for media fields.
45
+
46
+ ## [0.8.14] - 2026-05-06
47
+
48
+ Two regressions Aeptus surfaced after running the v0.0.18 CLI
49
+ release against their preview deployment, plus a new opt-in
50
+ agent-discovery audit axis.
51
+
52
+ ### Added
53
+
54
+ - **New `agent_discovery` rule group** with two opt-in checks
55
+ for the well-known machine-readable artifacts that signal a
56
+ site's agent-facing capabilities. Off by default since the
57
+ underlying specs (RFC 9727 api-catalog, SEP-1649 MCP server-
58
+ card) have nascent adoption and would otherwise generate
59
+ false positives across the long tail of sites that don't
60
+ publish them yet. Adopters opt in via:
61
+ ```toml
62
+ [agent_discovery]
63
+ enabled = true
64
+ ```
65
+ - `AGT001` (warning, policy/medium): missing
66
+ `/.well-known/api-catalog` (RFC 9727, finalized April
67
+ 2025). The JSON Linkset format that lets agents enumerate
68
+ public APIs without crawling documentation.
69
+ - `AGT002` (warning, policy/medium): missing
70
+ `/.well-known/mcp/server-card.json` (SEP-1649, draft).
71
+ Lets MCP clients discover the site's MCP server endpoint
72
+ and capabilities without prior configuration.
73
+ - **AGT layer mapping**: Retrievability primary (these files
74
+ exist so agents can *find* the site's surfaces), Absorbability
75
+ secondary (the surfaces they point at feed agent absorption
76
+ of the site's content).
77
+ - **Post-crawl artifact probe extended** to HEAD-check the AGT
78
+ paths during live `aexeo-cli crawl` so AGT findings respect
79
+ the same presence signals as facts.json / llms-full.txt.
80
+ Probe runs unconditionally — the cost is two extra HEAD
81
+ requests, and sites that don't enable AGT just see the paths
82
+ recorded on `CrawlMeta` without any rule-side effect.
83
+
84
+ ### Fixed
85
+
86
+ - **A11Y findings now use `severity: "warning"` (not `"warn"`).**
87
+ `Finding::is_error()` is implemented as `severity != "warning"`,
88
+ so the four-letter form was bucketed as an error in audit
89
+ summaries and made `success: false` even when the only
90
+ findings were warning-grade A11Y heuristics (heading-jump,
91
+ alt-equals-filename, missing-main-landmark). The three A11Y
92
+ rules emitted `"warn"` (A11Y004, A11Y005, A11Y006);
93
+ switched all three to `"warning"` to match the rest of the
94
+ rule corpus. No new `is_error` semantics — just severity-
95
+ string normalization.
96
+ - **SRF030 now actually finds the homepage's markdown-mirror
97
+ alternates.** The 0.8.13 fix introduced
98
+ `homepage_advertises_markdown_mirror_discovery(site)` which
99
+ looked up `site.page("/")` — but the home page's route is
100
+ the empty string `""` in this codebase (per
101
+ `capture_route_for_relative_path`'s mapping for
102
+ `index.html`), not `"/"`. The lookup always returned None,
103
+ the helper always returned false, and SRF030 fired anyway
104
+ on Aeptus's preview despite the homepage carrying
105
+ `<link rel="alternate" type="text/markdown" href="/index.md.txt">`.
106
+ Switched to `site.route_pages().find(|p| p.route.is_empty())`
107
+ to match the rest of the crate's home-page convention.
108
+ Locked in by two new unit tests
109
+ (srf030_recognizes_markdown_mirror_discovery_on_home,
110
+ srf030_skips_unrelated_alternate_types).
111
+
9
112
  ## [0.8.13] - 2026-05-06
10
113
 
11
114
  Closes four false-positive paths Aeptus surfaced while running
@@ -1215,7 +1215,7 @@ function globToMatcher(pattern) {
1215
1215
  }
1216
1216
 
1217
1217
  // src/version.ts
1218
- var PACKAGE_VERSION = "0.8.13";
1218
+ var PACKAGE_VERSION = "0.8.15";
1219
1219
 
1220
1220
  // src/configured.ts
1221
1221
  import { definePlugin } from "emdash";
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ function buildAllowedHosts(evaluatorHost) {
23
23
  }
24
24
 
25
25
  // src/version.ts
26
- var PACKAGE_VERSION = "0.8.13";
26
+ var PACKAGE_VERSION = "0.8.15";
27
27
 
28
28
  // src/sandbox.ts
29
29
  function aexeoPluginSandboxed(options = {}) {
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const PACKAGE_VERSION = "0.8.13";
1
+ export declare const PACKAGE_VERSION = "0.8.15";
2
2
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aeptus/aexeo-emdash",
3
- "version": "0.8.13",
3
+ "version": "0.8.15",
4
4
  "description": "Aexeo SEO/GEO content evaluator as an emdash plugin",
5
5
  "license": "MIT",
6
6
  "author": "Aeptus",
@@ -65,6 +65,7 @@
65
65
  },
66
66
  "peerDependencies": {
67
67
  "@emdash-cms/core": "*",
68
+ "@emdash-cms/plugin-types": "*",
68
69
  "emdash": ">=0.7.0",
69
70
  "react": "^18.0.0 || ^19.0.0"
70
71
  },
@@ -72,6 +73,9 @@
72
73
  "@emdash-cms/core": {
73
74
  "optional": true
74
75
  },
76
+ "@emdash-cms/plugin-types": {
77
+ "optional": true
78
+ },
75
79
  "emdash": {
76
80
  "optional": true
77
81
  },
Binary file