@aeptus/aexeo-emdash 0.8.13 → 0.8.14

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,72 @@ and the project follows [Semantic Versioning](https://semver.org/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.8.14] - 2026-05-06
10
+
11
+ Two regressions Aeptus surfaced after running the v0.0.18 CLI
12
+ release against their preview deployment, plus a new opt-in
13
+ agent-discovery audit axis.
14
+
15
+ ### Added
16
+
17
+ - **New `agent_discovery` rule group** with two opt-in checks
18
+ for the well-known machine-readable artifacts that signal a
19
+ site's agent-facing capabilities. Off by default since the
20
+ underlying specs (RFC 9727 api-catalog, SEP-1649 MCP server-
21
+ card) have nascent adoption and would otherwise generate
22
+ false positives across the long tail of sites that don't
23
+ publish them yet. Adopters opt in via:
24
+ ```toml
25
+ [agent_discovery]
26
+ enabled = true
27
+ ```
28
+ - `AGT001` (warning, policy/medium): missing
29
+ `/.well-known/api-catalog` (RFC 9727, finalized April
30
+ 2025). The JSON Linkset format that lets agents enumerate
31
+ public APIs without crawling documentation.
32
+ - `AGT002` (warning, policy/medium): missing
33
+ `/.well-known/mcp/server-card.json` (SEP-1649, draft).
34
+ Lets MCP clients discover the site's MCP server endpoint
35
+ and capabilities without prior configuration.
36
+ - **AGT layer mapping**: Retrievability primary (these files
37
+ exist so agents can *find* the site's surfaces), Absorbability
38
+ secondary (the surfaces they point at feed agent absorption
39
+ of the site's content).
40
+ - **Post-crawl artifact probe extended** to HEAD-check the AGT
41
+ paths during live `aexeo-cli crawl` so AGT findings respect
42
+ the same presence signals as facts.json / llms-full.txt.
43
+ Probe runs unconditionally — the cost is two extra HEAD
44
+ requests, and sites that don't enable AGT just see the paths
45
+ recorded on `CrawlMeta` without any rule-side effect.
46
+
47
+ ### Fixed
48
+
49
+ - **A11Y findings now use `severity: "warning"` (not `"warn"`).**
50
+ `Finding::is_error()` is implemented as `severity != "warning"`,
51
+ so the four-letter form was bucketed as an error in audit
52
+ summaries and made `success: false` even when the only
53
+ findings were warning-grade A11Y heuristics (heading-jump,
54
+ alt-equals-filename, missing-main-landmark). The three A11Y
55
+ rules emitted `"warn"` (A11Y004, A11Y005, A11Y006);
56
+ switched all three to `"warning"` to match the rest of the
57
+ rule corpus. No new `is_error` semantics — just severity-
58
+ string normalization.
59
+ - **SRF030 now actually finds the homepage's markdown-mirror
60
+ alternates.** The 0.8.13 fix introduced
61
+ `homepage_advertises_markdown_mirror_discovery(site)` which
62
+ looked up `site.page("/")` — but the home page's route is
63
+ the empty string `""` in this codebase (per
64
+ `capture_route_for_relative_path`'s mapping for
65
+ `index.html`), not `"/"`. The lookup always returned None,
66
+ the helper always returned false, and SRF030 fired anyway
67
+ on Aeptus's preview despite the homepage carrying
68
+ `<link rel="alternate" type="text/markdown" href="/index.md.txt">`.
69
+ Switched to `site.route_pages().find(|p| p.route.is_empty())`
70
+ to match the rest of the crate's home-page convention.
71
+ Locked in by two new unit tests
72
+ (srf030_recognizes_markdown_mirror_discovery_on_home,
73
+ srf030_skips_unrelated_alternate_types).
74
+
9
75
  ## [0.8.13] - 2026-05-06
10
76
 
11
77
  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.14";
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.14";
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.14";
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.14",
4
4
  "description": "Aexeo SEO/GEO content evaluator as an emdash plugin",
5
5
  "license": "MIT",
6
6
  "author": "Aeptus",
Binary file