feat: establish a private graph-native protection runtime - #253
feat: establish a private graph-native protection runtime#253binaryaaron wants to merge 35 commits into
Conversation
Preserve the hardened closed-mapping structured-item harness and exercise complete OCSF 1.7.0 Process Activity JSONL records with local redaction. This remains test-only and adds no production or public streaming surface. Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Add an opt-in protected-only Intake dogfood for format fidelity, withholding, delivery failure, and exact-byte retry behavior. Require stable chat timestamps and agent-name metadata, and document public result atomicity plus adapter/Intake ownership. Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
e20eb93 to
fbe2aea
Compare
Greptile SummaryThe PR introduces a private graph-native protection runtime while preserving the existing DataFrame-oriented public API.
Confidence Score: 5/5The PR appears safe to merge because the previously reported Redact release failure is closed and no blocking failure remains. No blocking failure remains. Important Files Changed
|
| entities = getattr(value, "entities", []) | ||
| for entity in entities: | ||
| raw = entity.get("value") if isinstance(entity, dict) else getattr(entity, "value", None) | ||
| if not isinstance(raw, str) or not raw or raw in output: |
There was a problem hiding this comment.
Release checks the wrong value
When augmentation returns different casing for a matched entity, Redact skips the span because the stored value no longer exactly matches the source slice, while this case-sensitive release check still approves the unchanged output, causing a successful graph outcome to expose detected sensitive text.
How this was verified: Augmentation stores case-insensitively matched values verbatim, replacement skips exact-value mismatches, and this release predicate checks only the mismatched value.
Knowledge Base Used: Engine: shared plumbing for the anonymization pipeline
There was a problem hiding this comment.
Fixed in 702f43a. The release gate now validates accepted spans against the authoritative input, rejects malformed or overlapping spans, requires complete all-applied/zero-skipped replacement accounting, and verifies that authoritative source slices are absent from released output.
The Alice / alice regression returned _GraphProtectionSucceeded before the fix and now returns a datum-scoped release failure. Added challenge coverage includes forged success accounting, malformed spans and accounting, exact-case Redact success, and unchanged no-detection success.
Validation: 76 focused tests passed; the full suite passed with 1,433 passed and 11 skipped.
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Seal context admission and carry private target and context workframes through atomic dispatch, reconciliation, cleanup, and release. Add frozen independent conformance coverage for capability, schedule, cancellation, corruption, privacy, and compatibility behavior. Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Route the reachable private flow through the sealed Phase 6 plan and runtime with stage-specific NDD effects. Keep detector work target-only, localize attributable context-peer faults, and materialize only verified released datums. Freeze executable lifecycle schedules, compare the semantic corpus with production execution/accounting, and add the required public DataFrame compatibility evidence. Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Signed-off-by: Aaron Gonzales <aagonzales@nvidia.com>
Summary
This PR establishes a private graph-native protection runtime through Phase 6. It now
compiles target-anchored mentions from exact source offsets, resolves semantic subjects only
from explicit typed evidence, carries versioned structural role results, and qualifies a
mention-keyed local Redact profile through exact reconstruction and atomic release checks.
The implementation keeps the existing public DataFrame APIs and
NddAdapter.run_workflow()boundary compatible. It does not publish a graph API or addproduction Intake or OpenShell integration.
Material changes
with explicit task predecessors, fixed-point withholding, and fail-closed release.
capability and rechecks it immediately before execution.
identities and immutable original-text provenance.
contradictory, or foreign evidence.
source-slice equality, supported provenance, and exactly one explicit validator decision.
same_subject | distinct_subjectevidence grammar,target-only endpoint scopes, deterministic union-find clusters, and transitive
contradiction rejection. Text and detector labels never act as identity.
phase6-role-result/v1grammar with an intentionally empty,fail-closed Redact role mapping; Phase 7 role vocabulary is not invented here.
applies patches once to authoritative source intervals, and verifies returned output by
exact reconstruction.
applies a global release embargo.
published event alphabet and independence relation, a maximum event count of 45, and a
frozen SHA-256 manifest digest.
Scope and non-goals
This branch qualifies private admission, context framing, terminal accounting, anchored
mention finalization, explicit-evidence clustering, structural role results, local Redact,
cleanup, and release behavior. It does not:
Anonymizer; or
The checked-in Intake and OpenShell adapters remain test-only characterization and dated
adopter evidence.
Validation
make test— 3,862 passed, 11 skipped, one dependency deprecation warningmake format-check— passedmake typecheck— passedgit diff --check— passedfindings
The 11 opt-in Intake dogfood tests remain skipped unless their external operator-owned
environment is enabled.
Reviewer guide
docs/development/phase-6-anchored-mention-resolution-design.mdanddocs/development/graph-native-anonymizer-sdk-technical-proposal.mdfor scope andpromotion gates.
mention_admission.pyandmention_resolution.pyfor anchoring, lineage,endpoint scope, evidence validation, and deterministic clustering.
role_policy.pyandphase6_redact_role_policy.jsonfor the structural rolecontract and fail-closed Redact mapping.
redact_patches.pyfor manifest sealing, patch-token bijection, source-intervalapplication, and exact verification.
phase6_plan.py,phase6_runtime.py,accounting_plan.py, andaccounting_ledger.pyfor task readiness, component isolation, lifecycle handling,cleanup, and release propagation.
phase6_reference_model.py, its manifest, and the Phase 6 test modules for theindependent oracle and adversarial boundary coverage.
The PR remains draft. Phase 7 and any public or production integration require separate
design and operator authorization.