[Grid agent] Complete opt-in live-grid validation and the milestone acceptance gate #135

Closed
opened 2026-08-17 19:31:39 +00:00 by hugo · 3 comments
Owner

Objective

Prove the completed milestone behaves safely, credibly, responsively, and observably on an OpenSim-compatible grid, then publish reproducible acceptance evidence. This issue integrates and validates existing work; it must not hide missing functionality with test-only substitutes.

Deterministic gate

  • Run the complete offline scenario suite, policy matrix, secret-canary scan, dependency/pure-Rust audit, portable target checks, control/TUI conformance, persistence recovery, and bounded-load test.
  • Define measurable budgets for startup, control-command latency, chat scheduling latency excluding endpoint inference, reconnect/backoff behavior, steady/peak memory, queue limits, shutdown, binary size, and journal/disk bounds. Record results and chosen rationale.
  • Verify every milestone issue's observable events, policy registrations, docs, and cleanup behavior. The headless service must operate with no TUI, and integrated/split modes must agree.

Opt-in live-grid matrix

  • Use a dedicated test avatar and explicit environment opt-ins. Never commit credentials or endpoint keys. Separate opt-ins for login, chat/IM, inventory script delivery, landmark offer/teleport/roaming, prim build/cleanup, and visual capture.
  • Exercise initial login, maintenance-style disconnect/relogin, public mention/informational response, denial of public commands, unprivileged and authorized IM, exact session rollover evidence, facing a speaker, perception queries, operator pause/cancel/approve, TUI reconnect, and clean shutdown.
  • Exercise LSL delivery and advanced mutation only with controlled recipient/land and reversible test assets. Confirm full permissions, conservative limits, build cleanup, no L$ spend, and inventory/object IDs needed for manual recovery.
  • Exercise landmark folder roaming with a short bounded test schedule and visual-question success or documented endpoint capability fallback.

Evidence and completion criteria

  • Commit a redacted JSONL/evidence schema and human-readable report linking exact commands, versions, endpoint capability profile (without vendor presets/secrets), grid type, timestamps, outcomes, resource measurements, and remaining limitations.
  • Logs/TUI/control views allow an operator to reconstruct each external action from trigger through policy, model/tool summary, execution, and outcome without hidden chain-of-thought.
  • Repeated runs leave no orphan tasks, sockets, schedules, inventory offers, or test objects; any unavoidable artifact is listed with cleanup instructions.
  • All routine Gitea jobs use ubuntu-latest only and pass within the established project CI budget.
  • User/operator documentation and milestone issue links form a complete handoff for maintenance.

Dependencies

This is the final milestone issue and depends on every other backlog item. Live actions are opt-in validation only; deterministic offline evidence remains the required CI gate.

## Objective Prove the completed milestone behaves safely, credibly, responsively, and observably on an OpenSim-compatible grid, then publish reproducible acceptance evidence. This issue integrates and validates existing work; it must not hide missing functionality with test-only substitutes. ## Deterministic gate - Run the complete offline scenario suite, policy matrix, secret-canary scan, dependency/pure-Rust audit, portable target checks, control/TUI conformance, persistence recovery, and bounded-load test. - Define measurable budgets for startup, control-command latency, chat scheduling latency excluding endpoint inference, reconnect/backoff behavior, steady/peak memory, queue limits, shutdown, binary size, and journal/disk bounds. Record results and chosen rationale. - Verify every milestone issue's observable events, policy registrations, docs, and cleanup behavior. The headless service must operate with no TUI, and integrated/split modes must agree. ## Opt-in live-grid matrix - Use a dedicated test avatar and explicit environment opt-ins. Never commit credentials or endpoint keys. Separate opt-ins for login, chat/IM, inventory script delivery, landmark offer/teleport/roaming, prim build/cleanup, and visual capture. - Exercise initial login, maintenance-style disconnect/relogin, public mention/informational response, denial of public commands, unprivileged and authorized IM, exact session rollover evidence, facing a speaker, perception queries, operator pause/cancel/approve, TUI reconnect, and clean shutdown. - Exercise LSL delivery and advanced mutation only with controlled recipient/land and reversible test assets. Confirm full permissions, conservative limits, build cleanup, no L$ spend, and inventory/object IDs needed for manual recovery. - Exercise landmark folder roaming with a short bounded test schedule and visual-question success or documented endpoint capability fallback. ## Evidence and completion criteria - [ ] Commit a redacted JSONL/evidence schema and human-readable report linking exact commands, versions, endpoint capability profile (without vendor presets/secrets), grid type, timestamps, outcomes, resource measurements, and remaining limitations. - [ ] Logs/TUI/control views allow an operator to reconstruct each external action from trigger through policy, model/tool summary, execution, and outcome without hidden chain-of-thought. - [ ] Repeated runs leave no orphan tasks, sockets, schedules, inventory offers, or test objects; any unavoidable artifact is listed with cleanup instructions. - [ ] All routine Gitea jobs use `ubuntu-latest` only and pass within the established project CI budget. - [ ] User/operator documentation and milestone issue links form a complete handoff for maintenance. ## Dependencies This is the final milestone issue and depends on every other backlog item. Live actions are opt-in validation only; deterministic offline evidence remains the required CI gate.
hugo added this to the 14 - metacrate grid agent milestone 2026-08-17 19:31:39 +00:00
hugo added the enhancement label 2026-08-17 19:31:39 +00:00
Author
Owner

Implemented and pushed as commit b56b280. Added a production metacrate-grid-agent acceptance module and CLI, versioned redacted JSONL schema, create-new/syncing evidence writer with secret-canary and forbidden-field scans, measurable startup/control/chat-scheduling/reconnect/shutdown budgets, exact generation-rollover and zero-resource assertions, and independent fail-closed live capability opt-ins. Added the human-readable milestone handoff/live matrix, current release evidence (28,857,688 bytes; SHA-256 b2c93a6acd6fa856669fdb4e08110d700218255f57ec2f7908977eeabea7c470), and an Ubuntu-only required-CI evidence step. Verification: complete all-feature metacrate-grid-agent suite passed (137 library scenarios, 37 integration scenarios, one compile-fail doc test), including policy, secret redaction, persistence recovery, bounded load, control/TUI conformance, visuals, and cleanup; focused acceptance and dependency/namespace audits passed; strict Clippy, rustdoc warnings-as-errors, formatting, and diff checks passed. The seven-stage executable evidence run passed and contained no secret markers. No live grid action was attempted because the required independent per-capability opt-ins were absent; the committed report explicitly records that limitation and the exact dedicated-account procedure. The local Windows target remains externally blocked by the absent x86_64-w64-mingw32-gcc needed by existing AWS-LC; the portable target is retained in the project release matrix. Namespace audit confirms all milestone agent code is metacrate-grid-agent, no libremetaverse agent crate was created, and compatibility lib.rs files do not depend on or re-export metacrate crates.

Implemented and pushed as commit b56b280. Added a production metacrate-grid-agent acceptance module and CLI, versioned redacted JSONL schema, create-new/syncing evidence writer with secret-canary and forbidden-field scans, measurable startup/control/chat-scheduling/reconnect/shutdown budgets, exact generation-rollover and zero-resource assertions, and independent fail-closed live capability opt-ins. Added the human-readable milestone handoff/live matrix, current release evidence (28,857,688 bytes; SHA-256 b2c93a6acd6fa856669fdb4e08110d700218255f57ec2f7908977eeabea7c470), and an Ubuntu-only required-CI evidence step. Verification: complete all-feature metacrate-grid-agent suite passed (137 library scenarios, 37 integration scenarios, one compile-fail doc test), including policy, secret redaction, persistence recovery, bounded load, control/TUI conformance, visuals, and cleanup; focused acceptance and dependency/namespace audits passed; strict Clippy, rustdoc warnings-as-errors, formatting, and diff checks passed. The seven-stage executable evidence run passed and contained no secret markers. No live grid action was attempted because the required independent per-capability opt-ins were absent; the committed report explicitly records that limitation and the exact dedicated-account procedure. The local Windows target remains externally blocked by the absent x86_64-w64-mingw32-gcc needed by existing AWS-LC; the portable target is retained in the project release matrix. Namespace audit confirms all milestone agent code is metacrate-grid-agent, no libremetaverse agent crate was created, and compatibility lib.rs files do not depend on or re-export metacrate crates.
hugo closed this issue 2026-08-18 10:43:47 +00:00
hugo reopened this issue 2026-08-18 19:08:37 +00:00
Author
Owner

Reopened after operator review: the per-action live environment opt-ins introduced in b56b280 are the wrong configuration and authorization model. Corrective work will move persistent grid/LLM setup into platform config.yml, remove action-specific opt-ins, retain privileged avatar UUIDs as the mutation authority boundary, and add a TUI preferences editor. The issue will remain open until the corrected design and migrations are implemented and retested.

Reopened after operator review: the per-action live environment opt-ins introduced in b56b280 are the wrong configuration and authorization model. Corrective work will move persistent grid/LLM setup into platform config.yml, remove action-specific opt-ins, retain privileged avatar UUIDs as the mutation authority boundary, and add a TUI preferences editor. The issue will remain open until the corrected design and migrations are implemented and retested.
Author
Owner

Corrective implementation completed and pushed as db25a97. Removed the per-capability live environment opt-ins and their CLI validation. Persistent setup now lives in platform config.yml (Linux: $XDG_CONFIG_HOME/metacrate/config.yml or ~/.config/metacrate/config.yml), with YAML examples and updated service packaging. Grid login, AI endpoint/key/model, operating mode, and privileged avatar UUIDs are editable through a secret-redacting TUI Preferences panel; --preferences supports first-run setup and --import-env performs an explicit one-time migration from the legacy .env format. Runtime environment overrides for application configuration are no longer accepted. Unknown YAML settings survive preference saves, Unix config permissions are restricted, and authorization is documented as public/ordinary IM/privileged UUID/local operator rather than landmarks/scripts/build/visual switches. The metacrate/libremetaverse namespace dependency gate remains green and no compatibility facade references metacrate crates. Verification: cargo test -p metacrate-grid-agent --all-features passed (137 library tests, 38 integration tests, one compile-fail doc test); strict all-target/all-feature Clippy, rustdoc, formatting, diff, packaging, config/TUI, namespace/dependency, LLM transport, and deterministic acceptance gates passed. The executable gate wrote seven ordered redacted records with no secret marker. Release binary: 29,487,544 bytes, SHA-256 1ccbd11baf69372d76767c419b59319447ecf088bc0ae83ce1640709f6507ad0, under the 40 MiB budget. Live grid actions were not performed because no dedicated external test account/land was supplied; as specified, the deterministic gate is required and the documented live matrix is supplemental.

Corrective implementation completed and pushed as db25a97. Removed the per-capability live environment opt-ins and their CLI validation. Persistent setup now lives in platform config.yml (Linux: $XDG_CONFIG_HOME/metacrate/config.yml or ~/.config/metacrate/config.yml), with YAML examples and updated service packaging. Grid login, AI endpoint/key/model, operating mode, and privileged avatar UUIDs are editable through a secret-redacting TUI Preferences panel; --preferences supports first-run setup and --import-env performs an explicit one-time migration from the legacy .env format. Runtime environment overrides for application configuration are no longer accepted. Unknown YAML settings survive preference saves, Unix config permissions are restricted, and authorization is documented as public/ordinary IM/privileged UUID/local operator rather than landmarks/scripts/build/visual switches. The metacrate/libremetaverse namespace dependency gate remains green and no compatibility facade references metacrate crates. Verification: cargo test -p metacrate-grid-agent --all-features passed (137 library tests, 38 integration tests, one compile-fail doc test); strict all-target/all-feature Clippy, rustdoc, formatting, diff, packaging, config/TUI, namespace/dependency, LLM transport, and deterministic acceptance gates passed. The executable gate wrote seven ordered redacted records with no secret marker. Release binary: 29,487,544 bytes, SHA-256 1ccbd11baf69372d76767c419b59319447ecf088bc0ae83ce1640709f6507ad0, under the 40 MiB budget. Live grid actions were not performed because no dedicated external test account/land was supplied; as specified, the deterministic gate is required and the documented live matrix is supplemental.
hugo closed this issue 2026-08-18 19:34:41 +00:00
Sign in to join this conversation.