Skip to content

Commit 649903c

Browse files
committed
Checkpoint all current due coordination, index lifetime and epoch recovery work
Owner-requested full working-tree checkpoint. Native Graph 10.0.10 is published and consumed. Latest completed unit baseline: 3197/3204; recovery: 284/295. New combined Release build, full format and Aspire/Linux qualification are still pending; no acceptance criteria are marked closed.
1 parent 3985008 commit 649903c

180 files changed

Lines changed: 7305 additions & 565 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎Directory.Packages.props‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<PackageVersion Include="ManagedCode.Communication.Orleans" Version="10.2.9" />
1414
<PackageVersion Include="ManagedCode.TimeSeries" Version="10.0.3" />
1515
<PackageVersion Include="ManagedCode.Storage.FileSystem" Version="10.0.13" />
16-
<PackageVersion Include="ManagedCode.Orleans.Graph" Version="10.0.9" />
16+
<PackageVersion Include="ManagedCode.Orleans.Graph" Version="10.0.10" />
1717
<PackageVersion Include="ManagedCode.Orleans.Identity.Core" Version="10.0.3" />
1818
<PackageVersion Include="ModelContextProtocol.AspNetCore" Version="2.2.0" />
1919
<PackageVersion Include="ModelContextProtocol.Core" Version="2.2.0" />

‎docs/ADR/ADR-019-managed-ann.md‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,12 @@ The second original Aspire cohort also passed17/19 and hit the unchanged build w
6565
The third original Aspire cohort remains17/19 and hits the same cap in reciprocal-link work. Root accepts the [bounded dual-heap search refinement](../Features/Search/ManagedAnn.md#accepted-bounded-dual-heap-refinement-2026-10-04), replacing repeated frontier/worst scans while preserving exact extraction/tie order and the diversified neighbor-selection rule. Three explicitly reserved int[E] heap arrays replace the old bool[E] processed array/cache; private admission formulas include every array before allocation. Root and independent review must prove map/remove/reset invariants and unchanged test outcomes. Reciprocal work, recall and deadline qualification remain open; the three original failures are retained and no cap/AC reduction is authorized.
6666

6767
The fourth original report reaches and passes all10 Cosine/Euclidean cells, but remains17/19 because DotProduct builds exceed the unchanged work cap. Root accepts [simple DotProduct neighbor selection](../Features/Search/ManagedAnn.md#accepted-dotproduct-neighbor-selection-refinement-2026-10-04) for both new and overflowing reciprocal edges, with unchanged exact dot scores and deterministic ties. This selects Algorithm3 for that nonmetric similarity while preserving diversification for the two qualified metric controls. It removes pair-diversity work without changing bounds or ACs; the potential bridge/recall cost must pass the unchanged five DotProduct cells. Whole-source guard failure from concurrent benchmark edits and separate unchanged ANN/runtime proof remain explicit; all results are local development evidence.
68+
69+
Unit44b's four ordinary build-deadline failures lead to the accepted
70+
[packed-owned validation refinement](../Features/Search/ManagedAnn.md#accepted-packed-owned-validation-refinement-2026-10-04),
71+
REQ/AC-ANN-009 and TASK-ANN-R1-OWNED-SCORES. Only privately copied finite vectors
72+
may use the internal trusted scorer; untrusted validation, metric arithmetic,
73+
quality, work/deadline limits and all existing tests remain mandatory. A unique
74+
DotProduct candidate copy may remove redundant membership work with actual
75+
charges and identical selection/ties. Root reviews the private Luna patch and
76+
retains full normal/scalar/Linux evidence before any qualification claim.

‎docs/ADR/ADR-091-epoch7-interpretation-fence.md‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,24 @@ without explicit scope for the particular user stores. Implementation remains
2424
Accepted until mapped real process, SDK/MCP RF3 and exact-source Linux evidence
2525
exists. Missing probe artifacts fail the gate and must not skip tests.
2626

27+
The C1 RF3 correction is TASK-CRS-C1-EPOCH7 in
28+
[NativeCqrsRequestV2](../Features/ClusterRouting/NativeCqrsRequestV2.md). Its fixed
29+
genuine RPC1 baseline is native6, so current readers use the existing explicit
30+
all-three-Prepare-before-Publish stopped-copy upgrade. A separate owned mixed
31+
copy with published native7 node1 and untouched native6 node2/3 is permitted only
32+
as a cross-epoch loss-of-compatible-quorum fault wave; current node1 must fail serving
33+
and settle completely before homogeneous native7 serving. Preserve original
34+
profile/data/image proofs, C1 receipt workload and node identity, then verify
35+
current cold restart and current writes through both real clients. This does not
36+
qualify a same-epoch protocol-only fault or authorize old readers over native7,
37+
rolling conversion, relabelled images, stale rollback or user-store migration.
38+
Two compatible current voters retain the legitimate RF3 majority when the prior
39+
signing purpose cannot authenticate as a current observation. The negative
40+
fixture must not assert unavailable serving for that valid majority or invent
41+
an authenticated mismatch; it uses one current voter and two genuine prior voters.
42+
Root owns the shared preparation seam, docs and all gates; Luna lifecycle_wave
43+
owns only the private feature-local C1 fixture patch and obsolete-helper removal.
44+
2745
```mermaid
2846
flowchart TB
2947
Contract[New persisted interpretation] --> Data[Strict epoch7 admission]

‎docs/ADR/ADR-094-orleans-due-coordination.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ Implementation contract:
2626
the existing bounded ManagedCode Communication CQRS consumer. No direct Apply,
2727
synthetic privileged scheduler principal, copied dispatcher or hosted timer
2828
outside Orleans is allowed.
29+
The actual service-source DSL gap in the owning Graph package is repaired and
30+
published under [GrainServiceGraph](../Features/ClusterRouting/GrainServiceGraph.md),
31+
REQ/AC-SGRAPH-001..003, before the consumer package/runtime join. Coordinator
32+
client entry, AllowAll and fabricated native Graph context are prohibited.
2933
4. Tests cover finite sweep/cursor/byte/deadline/corruption/cancellation bounds,
3034
current creator authority and stable unknown-response retry. Actual Aspire
3135
RF3 SDK/official MCP tests must observe autonomous emission/expiry, duplicates,
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# ADR-095: Bounded native index generation leases and retirement
2+
3+
Status: Accepted for KL-039 L1; implementation and qualification pending.
4+
Date:2026-10-04. Integration owner:root. Coding owner:Luna query_wave.
5+
6+
The current native manager holds one lifetime semaphore and immediately deletes
7+
the previous generation on publication. It cannot preserve overlapping readers.
8+
Adopt [OnlineGenerationLifetime](../Features/Search/OnlineGenerationLifetime.md),
9+
REQ/AC-LEASE-001..004: finite generation/lease/build ownership, fully verified
10+
publication, reference-counted retirement, retained cleanup failures and joined
11+
shutdown. Preserve selected native provider, canonical scope validation and all
12+
original physical budget/settlement gates.
13+
14+
Implementation contract: root freezes the interface-preserving manager contract;
15+
query_wave owns Server Features/Search Storage/Lifecycle manager, lease and
16+
settlement helpers, the existing generation capacity and restart retirement
17+
preflight joins, and new independent real-native UnitTests. Keep1builder,
18+
2leases,1retired/1current generation and3physical generations including staging
19+
as upper bounds; actual provider safety may tighten concurrent readers. Root
20+
reviews the private patch, integrates the actual production caller, runs serialized
21+
Release/format/governance and Aspire unit/recovery/RF3, commits the completed stage
22+
and retains exact-SHA Linux original results before qualification.
23+
24+
L2 still must atomically pin/capture a canonical base cut, build while canonical
25+
writes proceed, replay ordered deltas, validate/cut over and recover catalog/pins.
26+
Do not call L1 a completed online index. No public wire/canonical data epoch or
27+
index manifest transition occurs. Rollback stops the node and reconstructs only
28+
its disposable owned index; original canonical data remains authoritative.
29+
30+
```mermaid
31+
flowchart TD
32+
Lease[Owned reader lease] --> Ref[Generation reference]
33+
Publish[Verified replacement] --> Retire[Mark prior generation retired]
34+
Ref --> Zero[Last reference settles]
35+
Retire --> Zero
36+
Zero --> Cleanup[Close then remove verified owned files]
37+
```
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# ADR-096: Bounded comparable global modality windows before fusion
2+
3+
Status: Accepted for KL-057 R1 kernel; implementation and qualification pending.
4+
Date:2026-10-04. Integration owner:root. Coding owner:Luna lifecycle_wave.
5+
6+
Current fusion tie-breaks only the entity Id and only sees one partition. Adopt
7+
the internal kernel and actual local-adapter contract in
8+
[GlobalBranchWindows](../Features/Search/GlobalBranchWindows.md), REQ/AC-RANK-001..004.
9+
Global modality windows precede ranks/RRF, complete identities define tie order,
10+
duplicates must agree, scores share exact profile/corpus/statistics witnesses,
11+
and missing/approximate/truncated sources cannot masquerade as exhaustive output.
12+
13+
Implementation stages: root freezes internal contracts; lifecycle_wave owns new
14+
Query Search Contracts/Models/Queries/Validation, the narrow SearchRankFusion join
15+
and new independent UnitTests centralized/layout/bounds/completeness oracles in
16+
a private patch. Root reviews the actual production caller, integrates, executes
17+
Release/format/governance and Aspire unit/RF3, commits and records original exact
18+
source Linux evidence. Later KL-037 stages must supply a real shard catalog,
19+
native bounded fan-out, per-partition read-cut vector, current persisted policy
20+
and strict text statistics generation before multi-shard claims.
21+
22+
No public client/persisted/replica format changes are accepted by R1; generated
23+
internal aliases/IDs are frozen before any future inter-grain publication. Existing
24+
native RF3 replicas remain replicas. Single-partition strict text remains valid
25+
only within its current local scope. Rollback changes no canonical data; global
26+
qualification and KL-057 closure require actual independent physical-shard results.
27+
28+
```mermaid
29+
flowchart TD
30+
Scope[Common score and statistics scope] --> Windows[Expected logical windows]
31+
Windows --> Complete{Every required window complete?}
32+
Complete -->|yes| Merge[Bounded global modality merge]
33+
Complete -->|no| Failure[Explicit failure or declared incomplete result]
34+
Merge --> Fusion[Stable full-identity RRF]
35+
```
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# ADR-097: Provider-owned native read-cut leases
2+
3+
Status: Accepted for KL-039 L2-A; implementation and qualification pending.
4+
Date:2026-10-04. Integration owner:root. Coding owner:Luna query_wave.
5+
6+
Adopt [NativeReadCuts](../Features/StorageRecovery/NativeReadCuts.md),
7+
REQ/AC-CUT-001..004, as the canonical contract. A native runtime snapshot pin is
8+
preferable to unbounded copying or holding the canonical gate throughout an
9+
index build. Keep one provider-owned finite lease, copied callback bytes, exact
10+
scalar identity and joined shutdown. The existing gated-view interface remains
11+
unchanged and cannot escape; the new capture entry is internal to the provider.
12+
13+
Implementation contract: root owns this ADR/spec and all shared joins; query_wave
14+
owns disjoint StorageRecovery Models/Validation/Queries/Lifecycle native helpers,
15+
the provider facade/runtime joins, the minimal pre-mutation InstallSnapshot
16+
admission check in ZoneTreeCheckpointManager, and real-provider UnitTests. Implement capture,
17+
bounded visitation, disposal, then mapped consistency/budget/lifetime tests.
18+
Review exact file hashes, full Release build, format/governance, serialized Aspire
19+
normal/scalar/recovery/RF3 and exact-SHA Linux results before qualification.
20+
21+
Pinned ZoneTree1.9.8 snapshot creation and iterator advance are synchronous and
22+
non-cancellable. Check and charge before/after; do not claim an interruptible
23+
deadline or abandon original work. No canonical format, native WAL, public wire,
24+
RF3 topology or acknowledged-write authority changes. Leases are disposable on
25+
restart/migration and retain no signing material. Rollback drains the actual
26+
leases after stopping admission and removes only runtime helpers.
27+
28+
Whole-tree replacement must reject ResourceExhausted while a native cut is leased.
29+
InstallSnapshot checks under its existing write gate after health/stale validation
30+
and before staging, fault callbacks or publication. No waiting or poison-on-failure
31+
replacement path is entered for this rejection. The gate also excludes a new
32+
capture until replacement completes. Ordinary Compact does not replace the native
33+
tree and remains allowed. Prove unchanged current health/identity after rejection,
34+
successful installation after disposal, and exact old-cut reads after compaction.
35+
36+
L2-B remains responsible for same-cut outbox/policy/applied metadata and retention,
37+
ordered delta catch-up, validated catalog switch and interrupted-build recovery.
38+
Neither this primitive nor L1 leased generations alone closes the original
39+
concurrent-write/online-index/restart acceptance criteria.
40+
41+
```mermaid
42+
flowchart TD
43+
Gate[Existing canonical read gate] --> Lease[Native immutable runtime cut]
44+
Lease --> Scan[Off-gate bounded scan]
45+
Scan --> Drain[Close admission and join original traversal]
46+
Drain --> Dispose[Dispose iterator before tree shutdown]
47+
```

‎docs/Architecture.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@ and graph relationships -> queued actions. Logical resources organize one databa
1111
derivation stage through the existing atomic command and SQL CALL. Full
1212
declarative SQL and client protocol remain mandatory under ADR-065.
1313

14+
Current parallel implementation contracts are [DueCoordination](Features/Messaging/DueCoordination.md)
15+
under ADR-094 (leader hints through fresh authorized Orleans CQRS requests),
16+
[OnlineGenerationLifetime](Features/Search/OnlineGenerationLifetime.md) under
17+
ADR-095 (bounded native index leases and retirement, original KL-039), and
18+
[GlobalBranchWindows](Features/Search/GlobalBranchWindows.md) under ADR-096
19+
(bounded per-modality merge before RRF, original KL-057). Each remains open until
20+
its mapped acceptance evidence exists. [NativeReadCuts](Features/StorageRecovery/NativeReadCuts.md)
21+
under ADR-097 supplies the next provider-owned L2-A snapshot lifetime primitive;
22+
delta retention/catalog cutover and actual multi-shard fan-out remain required.
23+
1424
```mermaid
1525
flowchart LR
1626
Caller[Agent SQL SDK MCP] --> Request[One authorized Orleans request]
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# GrainServiceGraph within ClusterRouting
2+
3+
Accepted dependency-repair contract for ADR-094 and REQ/AC-DUE-002/004.
4+
ManagedCode.Orleans.Graph10.0.9 admits only IGrain sources in its fluent and
5+
attribute configuration. The native due service is an IGrainService system
6+
target. Giving its coordinator client entry or fabricating caller context would
7+
weaken the intended service-to-coordinator boundary.
8+
9+
| Requirement | Acceptance |
10+
|---|---|
11+
| REQ-SGRAPH-001: native service-source policy | AC-SGRAPH-001: the owning Graph package exposes AddGrainServiceTransition<TService,TGrain>(params string[] targetMethods), constrained to the actual Orleans GrainService implementation and IGrain target. It adds only the actual service type, explicitly any native callback source method, and the supplied target methods. Empty/null/blank input fails before changing the existing graph; all previous method rules remain effective. |
12+
| REQ-SGRAPH-002: real caller enforcement | AC-SGRAPH-002: a native Orleans-hosted service callback outside a client request reaches the explicitly permitted application-grain method, a different target method is rejected, and direct client entry remains denied. The observed source is the actual service implementation, never CLIENT, UNKNOWN, the base Grain, a fabricated context or a reflection-order guess. Existing application-grain, system-target and async-stream regressions pass. |
13+
| REQ-SGRAPH-003: published ownership and consumer join | AC-SGRAPH-003: repair source and focused regressions live in the sibling Orleans.Graph repository; its canonical patch release passes required checks and GitHub publication and is available from the real NuGet feed. Only then update KeyLoad's central package reference and use the native API for RecurringDueGrainService to IRecurringDueCoordinatorGrain.ProcessDueAsync plus the existing coordinator-to-request and request-to-leaf edges. Actual Aspire SDK/MCP autonomous RF3 and complete required Linux gates remain mandatory. |
14+
15+
The new Graph method is an additive startup configuration API. No KeyLoad public
16+
operation, native replica/request wire contract, serialization alias, persisted
17+
format or topology changes. The explicit any-source-method rule represents native
18+
service callbacks without a current incoming method; it does not infer an exact
19+
method or allow another source type, target method or client. Existing runtime
20+
caller resolution is preserved unless the real hosted regression demonstrates a
21+
defect, which must be repaired and tested in the owning Graph repository.
22+
23+
Root owns planning, final review, actual dependency delivery, central package and
24+
Server DI/Graph joins. Luna cluster_wave prepares a private Graph patch for the
25+
two existing builder files and new real hosted/builder regressions. It first
26+
records this contract and an owning-repository ADR, then implements the additive
27+
method and independent allowed/denied/client and additive-rule tests. No consumer
28+
copy, local-package release claim, project reference, AllowAll, client entry,
29+
filter bypass, guessed caller or context impersonation is permitted.
30+
31+
Build, formatter, TUnit, commit/push, successful Release and verified package
32+
availability are ordered owning-repository gates; root runs/reviews them and
33+
retains exact source/run/package receipts. KeyLoad source integration follows
34+
publication. Rollback retains the existing package and leaves autonomous due
35+
coordination unregistered until a capable published package is available. Source
36+
presence or a local build does not close any of the three acceptance criteria.
37+
38+
Frontend and new SDK/MCP syntax N/A: this is native internal routing configuration.
39+
Related original task is KL-100; it remains open through complete S2 qualification.

0 commit comments

Comments
 (0)