The most technically ambitious surface: a live d3-force simulation over every entity and typed edge in the Well, rendered on canvas with three encodings that carry real meaning — depth is age, brightness is recency, size is salience. Everything around the canvas exists to let you steer it.
A canvas that fills the remaining height of the view, on a radial gradient running from surface light at the top to --field-bottom at the floor. Age pulls a node down that column; the engine exposes the strength of that pull as a live slider, because how literally you want to read depth is a matter of taste.
contradicts edge renders as a dashed red line — the one edge type the eye is meant to catch without looking for it.box-shadow of currentColor so the swatch glows like the node it describes. Type order is fixed in code, so the legend never reshuffles between loads.con-clear controls sit apart from the lenses on purpose — they are actions, not filters.Everything the Well knows about one entity, in one scrolling panel: definition, facets, dates, salience, facts with their trajectory status, open questions, linked entities with relationship direction, verbatim excerpts, and the full source list with permalinks. It is the answer to "what does this node actually stand for".
scry:escape and the view decides what "step back" means).Longest-running client engagement (2019→). Retention product; the corpus Sprawler was proven on.
stalled amber rather than getting a colour of its own — a deliberate reuse, because "nobody has touched this" means the same thing whether it is a fact or a question.well:// permalink. Between them these two blocks are the whole provenance argument in miniature: here is what was said, here is exactly where.Moving a third of accounts out of the pilot cohort at the Apr restructure means the old number and the new one are not the same measurement. Say so before anyone quotes it externally.
Obsidian-graph-view style knobs docked into the field, opened from the lens bar. Every one of them is applied to the running simulation rather than rebuilding it, which is what makes the field feel like something you are steering instead of re-rendering.
fitView frames only the survivors — so filtering can never strand the field off-screen, which it could before 1.17.15.datalist of the real tag vocabulary, so a typo cannot silently create a rule that never matches.