Document field-level resolution and matched sequence history
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
# Sequence resolution and inspection implementation plan
|
||||
|
||||
Status: complete.
|
||||
|
||||
## Scope and execution
|
||||
|
||||
Implement the agreed [feature roadmap](resolution-sequences.md) from baseline
|
||||
@@ -423,6 +425,8 @@ no exported type, selector, or callback lifecycle change is needed.
|
||||
|
||||
## Stage 13 — Document the implemented contract and validate the sprint
|
||||
|
||||
**Status:** Complete. Focused engine, facade, and consumer checks, `go test -race ./...`, and `./scripts/check.sh` passed with Go 1.27.0 on Linux.
|
||||
|
||||
**Scope:** canonical documentation and final integration checks.
|
||||
|
||||
1. Update `docs/config.md` resolution, layered metadata, historical explanation,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Field-level resolution and identity-aware sequence history
|
||||
|
||||
Status: agreed direction; not implemented. This roadmap describes field-level
|
||||
Status: implemented. This roadmap records field-level
|
||||
resolution auditing and identity-aware inspection of registered collections.
|
||||
The [implementation plan](implementation.md) owns execution order and verification.
|
||||
|
||||
@@ -17,27 +17,25 @@ inspection. For ordinary lists, position is the only available correspondence;
|
||||
compare positions as addresses without inferring which application object an
|
||||
element represents.
|
||||
|
||||
## Current baseline
|
||||
## Prior baseline
|
||||
|
||||
The [resolution contract](../config.md#recorded-application-resolution) audits
|
||||
the typed configuration before and after `Definition.Resolve`. Mappings are
|
||||
compared recursively, while the private structural comparator reports any list
|
||||
change at the whole-list path. A field-level record inside a changed list
|
||||
therefore fails to cover that list-level delta. Recording the whole list works.
|
||||
At the planning baseline, the resolution contract audited the typed configuration
|
||||
before and after `Definition.Resolve`. Mappings were compared recursively, while
|
||||
the private structural comparator reported any list change at the whole-list
|
||||
path. A field-level record inside a changed list therefore failed to cover that
|
||||
list-level delta. Recording the whole list worked.
|
||||
|
||||
For example, changing `/resources/0/path` and recording only that path currently
|
||||
produces an unrecorded-change diagnostic at `/resources`. This is established
|
||||
For example, changing `/resources/0/path` and recording only that path previously
|
||||
produced an unrecorded-change diagnostic at `/resources`. That was established
|
||||
behavior rather than a new regression associated with v1.0.0.
|
||||
|
||||
The comparator also serves other inspection and metadata operations. Making
|
||||
resolution auditing more precise must account for those callers rather than
|
||||
silently changing the public diff contract.
|
||||
|
||||
Resolution currently captures before and after values at the same numeric path.
|
||||
Its metadata refresh also consults entry metadata at that path. Following a
|
||||
registered record through a move therefore requires more than changing which
|
||||
deltas pass the coverage audit: the retained evidence must identify the matching
|
||||
entry and final record.
|
||||
The prior resolution implementation captured before and after values at the
|
||||
same numeric path and refreshed metadata at that path. Following a registered
|
||||
record through a move requires the matching entry and final record evidence.
|
||||
|
||||
Application registrations already define identities for collections and constrain
|
||||
their final values. YAML-only declarations have a shorter lifetime. The
|
||||
|
||||
Reference in New Issue
Block a user