1
0
Fork 0
Code Issues Pull requests Projects Releases 2 Packages Wiki Activity Actions Pages

Add deterministic incremental adapter assembly

This commit is contained in:
Andraxion 2026-07-27 16:01:40 -04:00
parent 09c09300b1
commit cd54cae71d
6 changed files with 224 additions and 38 deletions

View file

@ -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: