Add deterministic incremental adapter assembly
This commit is contained in:
parent
09c09300b1
commit
cd54cae71d
6 changed files with 224 additions and 38 deletions
|
|
@ -64,6 +64,25 @@ Each `AdapterSourceProjection` owns:
|
|||
Ownership must be deterministic. Two sources may not produce the same primary node or the same
|
||||
function logic projection.
|
||||
|
||||
Some language tools emit overlapping raw evidence before ownership can be resolved. An incremental
|
||||
loader may additionally implement:
|
||||
|
||||
```python
|
||||
def assemble_projection(
|
||||
manifest: AdapterManifest,
|
||||
contributions: tuple[AdapterSourceProjection, ...],
|
||||
) -> AdapterAssembly: ...
|
||||
```
|
||||
|
||||
DocForge caches and invalidates the source contributions normally, then passes the complete current
|
||||
contribution set to this pure assembly step. The assembler must deterministically select or merge
|
||||
overlapping evidence and return one valid final graph and Logic set. It may not read hidden source
|
||||
state or create a second extraction cache. The final identity, revision, and source hash must match
|
||||
the manifest exactly.
|
||||
|
||||
Without an assembler, the stricter default remains in force: two contributions may not publish the
|
||||
same primary node or Logic owner.
|
||||
|
||||
## Invalidation
|
||||
|
||||
DocForge invalidates a source when:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue