Repository navigation
dir-sim: git-consumable, ViewActors, Graph groups, persistence (image/restore/revert) - #1473
Merged
Merged
Conversation
ISS-LG-DIRSIM-NOT-GIT-CONSUMABLE: the four ../../../OGAR path deps made dir-sim unbuildable from any repository without an OGAR sibling, so HubSPO-rs could not depend on it. OGAR is now a git dependency; a [patch] keeps this crate's own build and CI on the sibling checkout. Consumers that also name OGAR by path repeat the [patch] in their root. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
…arries A reusable ActorSource over a View (feature rbac). Roles are granted to groups by GUID (GroupRoles) and inherited through SID chains only (View::security_identifiers), so a distribution group passes on nothing. A role the binding does not declare is dropped; a group whose grants were never read grants nothing and is named (unread_groups); only the principal holds roles. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Group records (ogar-az AzKind::Group) become groups of the observation: no location (Graph reports no on-premises DN for a group), the securityEnabled flag as read, and an address only when mailEnabled was read as true. GroupMembers carries each group's direct members; nesting and the SID chain stay the view's walk. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
VersionStore::image() returns the history as its inputs: each root's observation, the dictionary in id order, every version verbatim, tags and verdicts. VersionStore::restore() interns the dictionary in order, rebuilds each root and re-applies each delta to its parent; the restored store answers every read the same way. A damaged image is refused, never half restored. No I/O: a storage crate writes the image (plan dir-sim-persist-v1). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
VersionStore::revert(current, earlier, evidence) records diff(current, earlier) as a simulated version on top of current, under the REVERT rule with version:<earlier> as its first evidence. History is never rewritten; a revert with nothing to undo creates no version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Owner
Author
|
Generated by Claude Code |
AdaWorldAPI
pushed a commit
that referenced
this pull request
Oct 11, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
HubSPO wishlist item 1,
ISS-LG-DIRSIM-NOT-GIT-CONSUMABLE.lance-graph-dir-simdepended on four OGAR crates by../../../OGARpath, so no repository without an OGAR sibling checkout could depend on it. They are now git dependencies (AdaWorldAPI/OGAR, branchmain), the same shapelance-graph-ogaruses. A[patch."https://github.com/AdaWorldAPI/OGAR"]in this crate's own root redirects them onto the sibling checkout, so this crate's build and the Identity CI still test a paired OGAR change before it merges.Cargo applies
[patch]only in the workspace root. A consumer that also names OGAR by path (Spear, Stalwart) must repeat the patch, or it builds twoogar-dir-corecrates whose types don't unify. Merge order: the Spear and Stalwart root patches land first; on their own they are harmless. This PR merges after them.Test plan
cargo +1.99.0 test --manifest-path crates/lance-graph-dir-sim/Cargo.toml: all pass. The lockfile has no git OGAR source (the patch applies), and Cargo gives no unused-patch warning.lance-graph-dir-simby git (this branch), with no patch, passescargo check. Its lockfile resolvesogar-dir-corefromgit+https://github.com/AdaWorldAPI/OGAR?branch=main.Also in this PR (HubSPO wishlist #2, #19, #3)
ViewActors(featurerbac, W-2): anActorSourceover aView. Roles are granted to groups by GUID (GroupRoles) and inherited through SID chains only (View::security_identifiers), so a distribution group passes on nothing. A role the binding does not declare is dropped; a group whose grants were never read grants nothing and is named (unread_groups); only the principal holds roles. Four disable runs red.from_graphobserves Graph groups and their direct members (GroupMembers): no location,securityEnabledas read, an address only whenmailEnabledwas readtrue. Needs OGAR plan(palantir-parity-cascade-v2)+ledger(soa-dto-deps)+post-merge(#352) #353 (ogar_az::group) on OGARmainbefore CI can build it. Three disable runs red..claude/plans/dir-sim-persist-v1.md, D-DSP-0/1):VersionStore::image()/restore()hold the history as its inputs (root observations, dictionary in id order, versions verbatim, tags, verdicts) and restore a store that answers every read the same way; a damaged image is refused.VersionStore::revert(current, earlier, evidence)records the undo as a new version underREVERT. Five + one disable runs red. The Lance writer (D-DSP-2) is a separate crate, so dir-sim keeps its no-I/O rule.Verification:
cargo +1.99.0 clippy --all-targets --features rbac -D warnings,cargo +1.99.0 test --features rbac(all suites), fmt; all withCARGO_PROFILE_DEV_DEBUG=0 CARGO_INCREMENTAL=0.🤖 Generated with Claude Code
https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Generated by Claude Code