Problem
SourceMap (mapped-text-v1) maps declarations (span + name span), rules, conditions, actions, and action-argument roots — but cannot carry ActionProvenance.identifier, RuleProvenance.event_name/name, or ValueProvenance.children.
After wrightkit/wright#433, Wright consumes recorded identifier provenance directly and reports unmapped when it is absent instead of guessing from an enclosing span. A provider-mapped program therefore reports exact declaration spans (the map carries name_span) but unmapped for writes, subroutine calls, subroutine-event definitions, and any read nested inside another value — the coarse action/argument spans no longer substitute for identifiers. The providers own the actual authored spans; they just have no way to attach identifier-level provenance to the mapped program.
Scope
Notes
- Wright side stays unchanged once providers attach the provenance —
Program::action_identifier_span, rule_event_name_span, condition_value_span, and action_argument_value_span already expose it.
- Until this lands, provider (OPY/DEL) consumers see unmapped spans for non-declaration references — honest per wright#433's contract, but a fidelity regression worth tracking.
Problem
SourceMap(mapped-text-v1) maps declarations (span + name span), rules, conditions, actions, and action-argument roots — but cannot carryActionProvenance.identifier,RuleProvenance.event_name/name, orValueProvenance.children.After wrightkit/wright#433, Wright consumes recorded identifier provenance directly and reports
unmappedwhen it is absent instead of guessing from an enclosing span. A provider-mapped program therefore reports exact declaration spans (the map carriesname_span) butunmappedfor writes, subroutine calls, subroutine-event definitions, and any read nested inside another value — the coarse action/argument spans no longer substitute for identifiers. The providers own the actual authored spans; they just have no way to attach identifier-level provenance to the mapped program.Scope
Call Subroutinecallees), rule name spans, subroutine event-name spans, and per-node value provenance (children + identifier), mirroring what the raw parser records sinceworkshop-rs1.1.0 (Expose identifier provenance for variable and subroutine declarations and uses #324/Record identifier spans in the raw Workshop parser #325).SourceMap::extract) should emit the new entries when present so a mapped round-trip preserves them.Notes
Program::action_identifier_span,rule_event_name_span,condition_value_span, andaction_argument_value_spanalready expose it.