@aeptus/aexeo-emdash 0.6.0 → 0.8.1
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 +144 -1
- package/dist/admin/Absorbability.d.ts +3 -0
- package/dist/admin/Absorbability.d.ts.map +1 -0
- package/dist/admin/Citability.d.ts +3 -0
- package/dist/admin/Citability.d.ts.map +1 -0
- package/dist/admin/EntityLegitimacy.d.ts +3 -0
- package/dist/admin/EntityLegitimacy.d.ts.map +1 -0
- package/dist/admin/EntityPresence.d.ts +3 -0
- package/dist/admin/EntityPresence.d.ts.map +1 -0
- package/dist/admin/PillarView.d.ts +7 -0
- package/dist/admin/PillarView.d.ts.map +1 -0
- package/dist/admin/Retrievability.d.ts +3 -0
- package/dist/admin/Retrievability.d.ts.map +1 -0
- package/dist/admin.d.ts +8 -0
- package/dist/admin.d.ts.map +1 -1
- package/dist/admin.js +652 -123
- package/dist/configured.d.ts.map +1 -1
- package/dist/configured.js +423 -16
- package/dist/data-route.d.ts +8 -0
- package/dist/data-route.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/presence-check.d.ts +22 -0
- package/dist/presence-check.d.ts.map +1 -0
- package/dist/presence-route.d.ts +7 -0
- package/dist/presence-route.d.ts.map +1 -0
- package/dist/types.d.ts +26 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/wasm/aexeo_emdash_bridge_bg.wasm +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,146 @@ and the project follows [Semantic Versioning](https://semver.org/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.8.1] - 2026-05-03
|
|
10
|
+
|
|
11
|
+
Fix for the entity-presence diagnostic shipped in 0.8.0.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- `EntityPresence` admin component's fetch to `/presence` was
|
|
16
|
+
missing the `X-EmDash-Request: 1` header that emdash's catch-all
|
|
17
|
+
plugin-route handler requires for state-changing methods on
|
|
18
|
+
private routes. Without it the host returns 403 CSRF_REJECTED
|
|
19
|
+
before the plugin handler runs, and the host's plugin-registry
|
|
20
|
+
bundle then crashes on the rejected response shape with a
|
|
21
|
+
`Cannot read properties of undefined (reading 'trim')` error
|
|
22
|
+
during admin-page render. With the header added, both the 403
|
|
23
|
+
and the downstream trim crash clear.
|
|
24
|
+
|
|
25
|
+
The `/data`, `/refresh`, and `/facts` routes were already sending
|
|
26
|
+
the header — `/presence` was the new addition and the omission
|
|
27
|
+
shipped in 0.8.0.
|
|
28
|
+
|
|
29
|
+
## [0.8.0] - 2026-05-03
|
|
30
|
+
|
|
31
|
+
Layer-4 entity-presence diagnostic. The `/entity-legitimacy`
|
|
32
|
+
admin page now queries five free public APIs against the
|
|
33
|
+
configured organization in the truth manifest and surfaces what
|
|
34
|
+
the open web actually shows.
|
|
35
|
+
|
|
36
|
+
**Compatibility:** verified against emdash `0.7.0` and `0.8.0`.
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
|
|
40
|
+
- **Public web presence diagnostic** on `/entity-legitimacy`,
|
|
41
|
+
below the truth-manifest authoring section. Five sources, one
|
|
42
|
+
card each, one Refresh button:
|
|
43
|
+
- **Wikipedia** (OpenSearch)
|
|
44
|
+
- **Wikidata** (`wbsearchentities`)
|
|
45
|
+
- **GitHub** (`/users/<handle>`)
|
|
46
|
+
- **Domain registration** (RDAP via the `rdap.org` redirector)
|
|
47
|
+
- **Common Crawl** (CDX index latest available)
|
|
48
|
+
|
|
49
|
+
Each card shows one of four states: *found* (with deep-link),
|
|
50
|
+
*no record*, *couldn't reach* (network/timeout/rate-limit),
|
|
51
|
+
*skipped* (preconditions missing). No scoring — Aexeo surfaces
|
|
52
|
+
this layer, it does not grade it. The "Open ↗" link on each
|
|
53
|
+
*found* row deep-links to the source's record so editors can
|
|
54
|
+
verify directly.
|
|
55
|
+
- **`POST .../plugins/aexeo-emdash/presence`** route with `kind:
|
|
56
|
+
"data"` (cached read) and `kind: "refresh"` (re-query and
|
|
57
|
+
persist) operations. Cached for 24h in `presence:current`; the
|
|
58
|
+
cache is invalidated when the manifest's organization name
|
|
59
|
+
changes (so stale results against a different entity never show).
|
|
60
|
+
- **`TruthEntity` and `TruthManifest` type exports** — minimal
|
|
61
|
+
TS projections of the Rust truth-manifest shape, sufficient for
|
|
62
|
+
the fields the plugin reads on the TS side.
|
|
63
|
+
|
|
64
|
+
### Notes on rate limits
|
|
65
|
+
|
|
66
|
+
The five APIs are all free and unauthenticated. The 24h cache
|
|
67
|
+
is the rate-limit backstop:
|
|
68
|
+
- GitHub's 60/hr unauth cap is the binding constraint and stays
|
|
69
|
+
comfortably under the limit even with liberal manual refreshing.
|
|
70
|
+
- Wikipedia, Wikidata, and Common Crawl have no published cap;
|
|
71
|
+
the plugin sends a polite `User-Agent` identifying itself.
|
|
72
|
+
- RDAP via `rdap.org` is a community redirector with no published
|
|
73
|
+
cap.
|
|
74
|
+
|
|
75
|
+
If a fetch times out (>5s) or returns 429/5xx, the corresponding
|
|
76
|
+
source card shows "couldn't reach" with the underlying error;
|
|
77
|
+
hitting Refresh later retries.
|
|
78
|
+
|
|
79
|
+
### Notes for hosts upgrading from 0.7.x
|
|
80
|
+
|
|
81
|
+
- No code changes required. The configured factory is unchanged
|
|
82
|
+
and the new route is registered automatically.
|
|
83
|
+
- Editors who haven't authored a truth manifest yet will see the
|
|
84
|
+
"Author the truth manifest first" CTA on `/entity-legitimacy`
|
|
85
|
+
— this is the same page where they author the manifest, so the
|
|
86
|
+
CTA composes cleanly.
|
|
87
|
+
- The presence diagnostic doesn't run on its own. Editors must
|
|
88
|
+
click Refresh once after authoring (or updating) the manifest
|
|
89
|
+
to populate the cache.
|
|
90
|
+
|
|
91
|
+
## [0.7.0] - 2026-05-03
|
|
92
|
+
|
|
93
|
+
Restructures the admin sidebar around the four-layer GEO model
|
|
94
|
+
(retrievability, citability, absorbability, entity legitimacy) from
|
|
95
|
+
the May 2026 research synthesis. Each pillar is its own admin page,
|
|
96
|
+
each finding carries its rule's layer assignment, and the
|
|
97
|
+
entity-legitimacy pillar folds in the truth-manifest authoring UI.
|
|
98
|
+
|
|
99
|
+
**Compatibility:** verified against emdash `0.7.0` and `0.8.0`.
|
|
100
|
+
|
|
101
|
+
### Added
|
|
102
|
+
|
|
103
|
+
- **Four pillar admin pages**: `/retrievability`, `/citability`,
|
|
104
|
+
`/absorbability`, `/entity-legitimacy`. Each filters findings to
|
|
105
|
+
rules whose primary layer matches; cross-cutting rules surface
|
|
106
|
+
their secondary layers as chips on the row ("this rule also
|
|
107
|
+
affects citability").
|
|
108
|
+
- **`layerBreakdown` field** on the `FindingsPayload` wire shape.
|
|
109
|
+
One entry per layer with totals, errors, and warnings; primary
|
|
110
|
+
layer only, so the sum equals `totals.findings`. Powers the
|
|
111
|
+
pillar header counts and a future dashboard widget badge.
|
|
112
|
+
- **`layers` field on each `Finding`**, populated by the bridge
|
|
113
|
+
during `evaluateDocuments`. Optional in the type so legacy KV
|
|
114
|
+
entries written before the enrichment landed still parse —
|
|
115
|
+
legacy rows fall back to `citability` (the most common layer)
|
|
116
|
+
until the next refresh repopulates them.
|
|
117
|
+
- **Type exports**: `Layer`, `RuleLayers`, `LAYERS_ORDERED`,
|
|
118
|
+
`layerHumanLabel`, `layerOneLineDescription` from the package
|
|
119
|
+
root for hosts that want to reuse the framework.
|
|
120
|
+
|
|
121
|
+
### Changed
|
|
122
|
+
|
|
123
|
+
- **`/facts` is now an alias** for `/entity-legitimacy`. The
|
|
124
|
+
truth-manifest authoring UI is unchanged but it lives inside the
|
|
125
|
+
entity-legitimacy pillar page (composed alongside FACTS00x
|
|
126
|
+
findings and a placeholder for the layer-4 presence diagnostic
|
|
127
|
+
shipping in 0.8.0). Old bookmarks to `/facts` keep working.
|
|
128
|
+
- **Sidebar order changed**: pillar entries first, then `/document`
|
|
129
|
+
(cross-layer per-document panel), then `/findings` (the existing
|
|
130
|
+
cross-pillar flat-view, kept for "show me everything" triage).
|
|
131
|
+
Editors who had the old "SEO findings / Document SEO / Truth
|
|
132
|
+
manifest" layout in muscle memory will need to re-orient.
|
|
133
|
+
- **WASM bridge enriches each finding** with its layer assignment
|
|
134
|
+
before returning JSON. The Rust engine is the canonical layer
|
|
135
|
+
authority; the plugin doesn't maintain a parallel mapping.
|
|
136
|
+
|
|
137
|
+
### Notes for hosts upgrading from 0.6.x
|
|
138
|
+
|
|
139
|
+
- No code changes required for hosts using only `aexeoPlugin({ ... })`.
|
|
140
|
+
The configured factory is unchanged.
|
|
141
|
+
- The four pillar pages each carry their own URL path — links to
|
|
142
|
+
`/admin/plugins/aexeo-emdash/retrievability` etc. work
|
|
143
|
+
immediately after upgrade.
|
|
144
|
+
- Editors will see four new sidebar entries and one renamed entry
|
|
145
|
+
(`Truth manifest` is gone from the sidebar; its content lives at
|
|
146
|
+
`Entity legitimacy`). Worth a brief internal note to the
|
|
147
|
+
editorial team before deploying the bump.
|
|
148
|
+
|
|
9
149
|
## [0.6.0] - 2026-05-03
|
|
10
150
|
|
|
11
151
|
**Breaking change**: the `seogeo` → `aexeo` rename across the
|
|
@@ -379,7 +519,10 @@ First public release.
|
|
|
379
519
|
`astro.config.mjs` for the WASM import to resolve to a
|
|
380
520
|
precompiled `WebAssembly.Module`. Not optional.
|
|
381
521
|
|
|
382
|
-
[Unreleased]: https://github.com/schiste/Aexeo/compare/aexeo-emdash-v0.
|
|
522
|
+
[Unreleased]: https://github.com/schiste/Aexeo/compare/aexeo-emdash-v0.8.1...HEAD
|
|
523
|
+
[0.8.1]: https://github.com/schiste/Aexeo/compare/aexeo-emdash-v0.8.0...aexeo-emdash-v0.8.1
|
|
524
|
+
[0.8.0]: https://github.com/schiste/Aexeo/compare/aexeo-emdash-v0.7.0...aexeo-emdash-v0.8.0
|
|
525
|
+
[0.7.0]: https://github.com/schiste/Aexeo/compare/aexeo-emdash-v0.6.0...aexeo-emdash-v0.7.0
|
|
383
526
|
[0.6.0]: https://github.com/schiste/Aexeo/compare/aexeo-emdash-v0.5.0...aexeo-emdash-v0.6.0
|
|
384
527
|
[0.5.0]: https://github.com/schiste/Aexeo/compare/aexeo-emdash-v0.4.0...aexeo-emdash-v0.5.0
|
|
385
528
|
[0.4.0]: https://github.com/schiste/Aexeo/compare/aexeo-emdash-v0.3.0...aexeo-emdash-v0.4.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Absorbability.d.ts","sourceRoot":"","sources":["../../src/admin/Absorbability.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,wBAAgB,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAEjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Citability.d.ts","sourceRoot":"","sources":["../../src/admin/Citability.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,wBAAgB,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAE9C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityLegitimacy.d.ts","sourceRoot":"","sources":["../../src/admin/EntityLegitimacy.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,wBAAgB,gBAAgB,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CA0BpD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityPresence.d.ts","sourceRoot":"","sources":["../../src/admin/EntityPresence.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiD/B,wBAAgB,cAAc,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAqHlD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PillarView.d.ts","sourceRoot":"","sources":["../../src/admin/PillarView.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAGL,KAAK,KAAK,EACX,MAAM,aAAa,CAAC;AAWrB,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,SAAS,GACV,EAAE;IACD,KAAK,EAAE,KAAK,CAAC;IAGb,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6MpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Retrievability.d.ts","sourceRoot":"","sources":["../../src/admin/Retrievability.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,wBAAgB,cAAc,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAElD"}
|
package/dist/admin.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
import { Absorbability } from "./admin/Absorbability.js";
|
|
2
|
+
import { Citability } from "./admin/Citability.js";
|
|
3
|
+
import { EntityLegitimacy } from "./admin/EntityLegitimacy.js";
|
|
1
4
|
import { Facts } from "./admin/Facts.js";
|
|
2
5
|
import { Findings } from "./admin/Findings.js";
|
|
6
|
+
import { Retrievability } from "./admin/Retrievability.js";
|
|
3
7
|
export declare const pages: {
|
|
8
|
+
"/retrievability": typeof Retrievability;
|
|
9
|
+
"/citability": typeof Citability;
|
|
10
|
+
"/absorbability": typeof Absorbability;
|
|
11
|
+
"/entity-legitimacy": typeof EntityLegitimacy;
|
|
4
12
|
"/findings": typeof Findings;
|
|
5
13
|
"/facts": typeof Facts;
|
|
6
14
|
};
|
package/dist/admin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,eAAO,MAAM,KAAK;;;;;;;CAajB,CAAC"}
|