CLN Wiki · Technical Foundation
Spatial AddressabilityNEW TERM
= stable IDs for every block @ CLN addressing v2.1
Double-click anchors. Select + Right-click tagmarry. IDs survive scroll.
01//DefinitionTerm
// ##sa-def =Spatial addressability — every block has a stable ID, reachable after scroll .position in document = addressable location .scroll doesn't destroy coordinates .traces can attach to specific blocks

02//The ProblemProblem
// ##sa-problem !Scroll moves content — where was that paragraph? !No fixed coordinates like a physical page !Search works, navigation fails // ##sa-consequence ~Without addresses, traces have nowhere to attach ~Spatial memory has no anchors →addressability is infrastructure for all other features

03//The SolutionMechanism
// ##sa-solution =Assign stable IDs to every semantic unit .ID survives scroll, resize, reload .URL can point to specific block .Traces attach to ID, not visual position
id="S7"→this line is addressable
id="S8"→scroll here, ID remains
id="S9"→trace attaches to ID

04//Addressing SchemeTechnical
// ##sa-scheme .Section ID — ##topic-name (semantic, readable) .Line ID — L1, L2, L3... (sequential, stable) .Block ID — B01, B02... (hierarchical) // ##sa-url →URL + hash = direct navigation →https://site.com/page.html##sa-scheme →shareable, bookmarkable

05//BenefitsAdvantages
// ##sa-benefits +Traces have stable attachment points +History panel can scroll to exact line +URLs reference specific content +Spatial memory gets landmarks +Collaboration: "see line S17"

06//LimitationsTradeoffs
// ##sa-limits -IDs break if content reordered -Content-addressable IDs harder to generate -Dynamic content needs ID regeneration // ##sa-mitigation →Semantic IDs (##topic) more stable than sequential →Content hash for dynamic content

07//ImplementationHow
// ##sa-impl .HTML: id attribute on each cln-line .Trace storage: lineId field points to ID .Navigation: getElementById() for scroll .Persistence: localStorage keys include page URL
◉Anchor
▤Tagmarry
✎Decision