Skip to main content

Crate engine_observables_api

Crate engine_observables_api 

Source
Expand description

engine_observables_api — the common-minimum query traits every Hekate render lane (Nematic / Serval / Scrying) publishes for downstream consumers (mere-host, Apparatus inspector, Hekate indexing/extract pipeline).

See docs/2026-05-17_hekate_lanes_observables.md for the design. The “raw plane storage stays implementation detail of each lane; the permanent ABI is these query traits” framing is load-bearing — internal plane shapes can evolve, the trait surface here is what consumers depend on.

§Modules

  • semantic — common semantic facts (title, headings, links, anchors) + engine-specific extensions (HTML / Nematic / feed).
  • fragment — laid-out geometry queries (hit-test, box-model, anchor → fragments, selection rects).
  • interaction — focus, selection, affordances at a point, activation target lookup.
  • loading — request/response state, redirects, MIME, TLS, cache origin, errors.

Each trait carries a generation_id() -> u64 epoch (or its equivalent) so consumers can cache against it: the value rolls whenever the underlying plane regenerates.

Re-exports§

pub use fragment::*;
pub use interaction::*;
pub use loading::*;
pub use quiescence::*;
pub use semantic::*;
pub use stats::*;
pub use types::*;

Modules§

fragment
Laid-out geometry queries — hit-testing, box-model lookup, anchor-to-fragments, selection rects.
interaction
Focus, selection, input affordances, activation targets. The bridge between observable geometry and user input.
loading
Request/response state for the active session — redirects, MIME, TLS summary, cache origin, errors.
quiescence
Quiescence: the report a surface makes of its pending work, and the default policy for “settled”.
semantic
Common semantic facts every lane that has a document publishes — plus engine-specific extensions for richer protocol-native shape.
stats
Arena/table stats shared across engine lanes.
types
Cross-cutting supporting types shared across the four query traits. Kept minimal — promote types here only when more than one trait module needs them.