[Grid agent] Build authorized scripted prim objects with transactional cleanup #131
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objective
Implement the advanced authorized-only workflow that turns a structured build request into a bounded linked prim object with optional validated LSL, while preserving operator control and cleaning up partial construction.
Plan before mutation
Transactional execution
Acceptance criteria
Dependencies
Depends on LLM tools, policy/approvals, lifecycle, perception, LSL validation, control plane, and observability. Schedule after core social/operational behavior because it is an advanced feature.
Implemented in commit
64edd8d. Added a versioned, strict declarative prim-build plan with conservative 16-prim limits, finite/bounded geometry and distance validation, topology/cycle checks, current-region parcel build-right checks, owned texture resolution, hardened native LSL validation, exact dry-run resource/duration estimates, and policy-bound approval above four prims. Added native live-grid execution for rez/update confirmation, names/descriptions, transforms, materials/colors/textures, restrictive permissions, linking, task-script insertion, per-step timeouts/correlation, cancellation, reverse transaction-owned cleanup, and recoverable orphan reporting. The control plane/TUI now exposes active build progress and orphan counts and routes cancellation; existing pending-approval controls provide approve/deny. Related fake-grid/adversarial tests cover representative linked scripted builds, unauthorized origins, dry-run, approval threshold, land denial, invalid/huge/cyclic/URL plans, cancellation, partial replies/timeouts, reverse cleanup, cleanup failure, progress, and final UUID identity. Verified focused build/policy/control/TUI/dependency tests, live-grid compile, rustdoc, and clippy -D warnings. The dependency namespace gate is green: all new code is metacrate-grid-agent/metacrate, and no libremetaverse facade references MetaCrate crates.