Skip to content

Commit 3ae408f

Browse files
committed
Preserve native corruption boundaries and isolate benchmark credentials
1 parent 0f30307 commit 3ae408f

29 files changed

Lines changed: 1533 additions & 41 deletions

‎.github/workflows/benchmarks.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -364,8 +364,6 @@ jobs:
364364
runs-on: ubuntu-latest
365365
timeout-minutes: 45
366366
permissions: {contents: read, actions: read}
367-
env:
368-
GH_TOKEN: ${{ github.token }}
369367
steps:
370368
- name: Download source code
371369
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
@@ -385,6 +383,7 @@ jobs:
385383
run: dotnet test --project tests/KeyLoad.UnitTests --no-build --no-restore --configuration Release --treenode-filter '/*/*/NativeSerialization*/*' --results-directory artifacts/native-diagnostic-tests/scalar
386384
- name: Record source packages runtime and execution identity
387385
env:
386+
GH_TOKEN: ${{ github.token }}
388387
KEYLOAD_NATIVE_SERIALIZATION_CORPUS_DIRECTORY: ${{ github.workspace }}/artifacts/native-serialization/corpus
389388
run: node scripts/Features/BenchmarkComparisons/native-serialization-evidence.mjs --mode=prepare --directory=artifacts/native-serialization
390389
- name: Measure all native and historical JSON diagnostic cases
@@ -398,6 +397,7 @@ jobs:
398397
exit "$status"
399398
- name: Require all original measurements and their provenance
400399
env:
400+
GH_TOKEN: ${{ github.token }}
401401
KEYLOAD_NATIVE_SERIALIZATION_CORPUS_DIRECTORY: ${{ github.workspace }}/artifacts/native-serialization/corpus
402402
run: node scripts/Features/BenchmarkComparisons/native-serialization-evidence.mjs --mode=verify --directory=artifacts/native-serialization
403403
- name: Save original measurements diagnostics and failures

‎AGENTS.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ManagedCode packages are our projects. Fix dependency defects in their owning si
2424
- Treat relational integrity and unified SQL as first-class product workstreams alongside SIMD and operation efficiency. Specify typed rows, keys/constraints, joins, atomic boundaries, unsupported diagnostics and measured performance before advertising capability; preserve RF3 and node-local storage ownership. A unified database/file delivery requirement MUST NOT be interpreted as permission to discard replication journals or promise a single physical file without a qualified storage-format ADR.
2525
- Treat the owner's SIMD work (earlier written as SMID) as a first-priority product workstream and keep it visible in implementation planning and status. On 2026-10-02 the owner confirmed SIMD means vectorized CPU operations and directed .NET intrinsics first, with Rust considered only after profiling. Map its canonical slices, REQ/AC criteria, scalar correctness/portability contract and required ADRs before implementation; never claim acceleration without comparable GitHub measurements.
2626
- Orleans provides request isolation, cluster routing and activation movement. Keep the one-grain-per-request boundary and RF3 topology; treat Orleans Streams as a first-class architecture workstream to specify and qualify alongside persisted KeyLoad EventStreams. Keep their distinct delivery/restart contracts explicit, and define bounded resource, concurrency, backpressure, recovery and performance behavior for every operation.
27-
- Optimize every operation and its shared serialization, validation, routing and storage execution paths against their correctness and fault contracts, using representative multi-node GitHub qualification to measure latency, throughput, allocations, memory, contention and backlog where applicable. The owner reiterated on 2026-10-03 that high performance is required across the entire implementation, including shared hot paths. Architecture choices or local builds alone do not prove maximum scalability or performance; select further optimization from actual comparable measurements.
27+
- Optimize every operation and its shared serialization, validation, routing and storage execution paths against their correctness and fault contracts, using representative multi-node GitHub qualification to measure latency, throughput, allocations, memory, contention and backlog where applicable. The owner reiterated on 2026-10-03 that high performance and minimum practical memory use are required across the entire implementation, including shared hot paths. Prioritize avoidable allocations, retained memory and repeated work; verify latency, throughput, allocations and memory before/after without weakening correctness, authorization, bounds or durability. Architecture choices or local builds alone do not prove maximum scalability or performance; select further optimization from actual comparable measurements.
2828
- Use ZoneTree's native storage APIs correctly and Orleans for bounded parallel execution of independent operation work. Preserve node-local storage ownership, the ordered atomic commit/apply gate, scoped read cuts, cancellation and backpressure; qualify the resulting performance in real multi-node GitHub runs (owner direction 2026-10-02).
2929
- All KeyLoad-owned database models MUST use ZoneTree as their canonical storage engine, including documents, relational rows, graphs, vectors/search, time series, blobs, queues and events. Use and qualify ZoneTree's native WAL in the storage durability path; retain the distinct replication and atomic-commit recovery journals until an explicit storage-format ADR and fault qualification prove any migration safe. This requirement applies to KeyLoad models, while comparison engines retain their real native storage (owner direction 2026-10-02).
3030
- Use native generated Orleans binary serialization with stable `[GenerateSerializer]`, `[Id]` and `[Alias]` contracts for all KeyLoad-owned internal typed persistence and inter-grain/replica payloads, including atomic WAL mutations over ZoneTree. Preserve raw-byte native ZoneTree serialization, sortable keys, public HTTP/MCP JSON, exact user document content, frozen canonical identity digests, synchronous durability barriers, checksums, ordered atomic recovery and RF3 authority. Format changes require an explicit upgrade contract; do not retain runtime JSON fallback or claim speed/fault improvements without actual GitHub evidence (owner clarification 2026-10-03).
@@ -160,7 +160,7 @@ The explicit owner instruction to enable Orleans distributed directory and activ
160160

161161
### Commands
162162
- Owner correction2026-10-03 explicitly authorizes local development tests, recovery checks and performance experiments, using BenchmarkDotNet for .NET microbenchmarks. This rule-specific correction supersedes the historical GitHub-only execution restrictions below and in local AGENTS.md for development verification. Local engine comparisons use separate owned fixtures/processes and sequential measurement sessions on the actual local machine; the different-GitHub-runner rule remains mandatory for global qualification. Keep local evidence clearly labelled with its actual source/settings/machine and do not present it as GitHub qualification. Global comparison measurements published on the website MUST still come exclusively from authenticated GitHub Actions runs and their original artifacts. Required delivered-source CI/fault/topology/endurance gates remain mandatory; local results cannot satisfy the website provenance contract.
163-
- Qualification and test execution MUST occur in GitHub Actions. Do not run local tests, recovery qualifications or load benchmarks. Trigger/inspect the real workflow and preserve its exact SHA, run/job URL and artifacts. Development builds and static source/governance checks are not test qualification.
163+
- The owner reiterated in this serialization review on 2026-10-03 that tests may run locally. Run local TUnit development regressions and bounded recovery/performance experiments when useful; this explicitly supersedes the former local-execution prohibition. Required delivered-source GitHub qualification still retains the exact SHA, run/job URL and original artifacts. Development builds and static source/governance checks are not runtime test results.
164164
- `restore`: `dotnet restore KeyLoad.slnx` with centrally pinned versions; current root forbids generating/committing package lock files. The historical CI baseline used locked mode; the current workflow is migrating to the no-lock policy.
165165
- `build`: `dotnet build KeyLoad.slnx --no-restore --configuration Release`; warnings-as-errors and current analyzers are configured in Directory.Build.props.
166166
- `test`: dispatch `gh workflow run ci.yml --repo managedcode/KeyLoad --ref main`, inspect `gh run view <run-id> --repo managedcode/KeyLoad`, and download the resulting test/comparison artifacts. CI executes `dotnet test --project tests/<project> --no-build --no-restore --configuration Release` for unit, recovery, RF3 and comparison suites. No skipped suite can count as passing.

0 commit comments

Comments
 (0)