fix(grid-agent): move setup into YAML preferences (#135)
This commit is contained in:
@@ -29,7 +29,7 @@ transport failures, visual fallback, and bounded-load cases.
|
||||
|
||||
The evidence stages are `configuration_and_bounds`, `headless_startup`,
|
||||
`control_conformance`, `chat_scheduling`, `clean_shutdown`, `maintenance_reconnect`, and
|
||||
`policy_redaction_and_protocol_audit`. A successful run has six ordered
|
||||
`policy_redaction_and_protocol_audit`. A successful run has seven ordered
|
||||
`passed` records and leaves zero service tasks, grid sessions, or loopback
|
||||
sockets. Headless startup never creates a TUI. Integrated and split UI clients
|
||||
exercise the same versioned control protocol, commands, event model, and
|
||||
@@ -38,9 +38,9 @@ graceful-shutdown target in their conformance tests.
|
||||
Reference deterministic run on 2026-08-18: all 137 library scenarios, 37
|
||||
integration scenarios, and one compile-fail documentation case passed with all
|
||||
features; the seven-stage evidence command passed with zero leaked tasks,
|
||||
sessions, or sockets. The completed live-grid release binary was 28,857,688
|
||||
sessions, or sockets. The completed live-grid release binary was 29,487,544
|
||||
bytes with SHA-256
|
||||
`b2c93a6acd6fa856669fdb4e08110d700218255f57ec2f7908977eeabea7c470`,
|
||||
`1ccbd11baf69372d76767c419b59319447ecf088bc0ae83ce1640709f6507ad0`,
|
||||
under the 40-MiB budget. The record identifies the package, pinned Rust toolchain,
|
||||
source revision when supplied through `METACRATE_SOURCE_COMMIT`, exact generic
|
||||
command, fake/live profile, grid type, endpoint capability profile, timestamp,
|
||||
@@ -62,7 +62,7 @@ but small enough to expose deadlocks and unbounded ownership:
|
||||
| Ordered shutdown | 5,000 ms | Allows journal flush and task joins while remaining service-manager friendly. |
|
||||
| Steady/peak memory | 128/256 MiB | Includes bounded queues, conversations, observations, and one visual frame. |
|
||||
| Any queue | 8,192 items | Matches the hard configuration ceiling; defaults are 32–512. |
|
||||
| Release binary | 40 MiB | The completed live-grid release is 28,857,688 bytes. |
|
||||
| Release binary | 40 MiB | The completed live-grid release is 29,487,544 bytes. |
|
||||
| Journal retention | 1 GiB | Operator-configured segment and total limits remain mandatory. |
|
||||
|
||||
Startup, control, reconnect, and shutdown are measured by monotonic time.
|
||||
@@ -76,29 +76,21 @@ because allocator and OS accounting are not comparable across platforms.
|
||||
|
||||
## Live-grid matrix
|
||||
|
||||
Live validation is optional and requires a dedicated avatar, controlled land,
|
||||
and an operator-supplied OpenAI-compatible endpoint. Credentials alone grant no
|
||||
consent. Inspect exact confirmations without contacting either service:
|
||||
Live validation uses a dedicated avatar, controlled land, and an
|
||||
operator-supplied OpenAI-compatible endpoint configured in the private
|
||||
platform `config.yml`. There are no action-specific environment switches.
|
||||
Authorization follows the production policy model:
|
||||
|
||||
```sh
|
||||
metacrate-grid-agent --check-live-opt-ins
|
||||
```
|
||||
|
||||
Each capability has a separate exact-value environment opt-in:
|
||||
|
||||
| Capability | Variable and required literal |
|
||||
| Origin | Available behavior |
|
||||
| --- | --- |
|
||||
| Login/relogin | `METACRATE_AGENT_LIVE_LOGIN=LOGIN` |
|
||||
| Public mention and authorized/unprivileged IM | `METACRATE_AGENT_LIVE_CHAT_IM=CHAT-IM` |
|
||||
| Controlled LSL delivery | `METACRATE_AGENT_LIVE_SCRIPT=SCRIPT` |
|
||||
| Landmark offer, teleport, and bounded roaming | `METACRATE_AGENT_LIVE_LANDMARKS=LANDMARKS` |
|
||||
| Reversible prim build and cleanup | `METACRATE_AGENT_LIVE_BUILD=BUILD-CLEANUP` |
|
||||
| Synthetic visual capture and visual question | `METACRATE_AGENT_LIVE_VISUAL=VISUAL` |
|
||||
| Everyone/public chat | Informational responses and explicitly public-safe tools. |
|
||||
| Ordinary IM | Private conversation without privileged mutation. |
|
||||
| UUID listed in `authorized_avatar_uuids` | Policy-gated privileged tools, with approval where required. |
|
||||
| Local operator/control role | Pause, approve/cancel, reconnect, configuration, and shutdown controls. |
|
||||
|
||||
Any action opt-in without the login opt-in fails closed. A misspelled value is
|
||||
false. Store the grid password and endpoint key in restrictive `_FILE` inputs
|
||||
described by [the operations guide](grid-agent-operations.md), never in these
|
||||
variables or a command line.
|
||||
Landmarks, scripts, builds, cleanup, and visual questions are capabilities,
|
||||
not configuration modes. They remain governed by tool origin, authenticated
|
||||
UUID, land/ownership checks, bounded resources, and approval policy.
|
||||
|
||||
For an authorized live run, start split mode so another terminal can reconnect
|
||||
the TUI without affecting the agent session. Record UTC start/end, commit,
|
||||
@@ -113,15 +105,15 @@ hash. Do not record vendor presets or identifiers. Exercise, in order:
|
||||
exact rollover, facing/attention event, and perception queries.
|
||||
3. Pause, cancel, approve, resume, and force reconnect from the control client;
|
||||
disconnect/reconnect the TUI and verify the service remains headless-safe.
|
||||
4. With the script opt-in, deliver only to the controlled recipient and record
|
||||
4. As a privileged user, deliver a script only to the controlled recipient and record
|
||||
the returned inventory ID and permissions. Advanced mutation requires an
|
||||
explicit approval and conservative script size/runtime limits.
|
||||
5. With the build opt-in, build only on controlled land, record transaction and
|
||||
5. As a privileged user, build only on controlled land, record transaction and
|
||||
object recovery IDs locally, verify no currency operation exists, and delete
|
||||
every created prim through the ownership-checked cleanup path.
|
||||
6. With the landmark opt-in, accept a controlled offer, use a short bounded
|
||||
folder schedule, teleport, then disable the schedule. With visual opt-in,
|
||||
capture the synthetic scene and ask one visual question. Record the endpoint
|
||||
6. Accept a controlled landmark offer, use a short bounded folder schedule,
|
||||
teleport, then disable the schedule. Capture the synthetic scene and ask
|
||||
one visual question. Record the endpoint
|
||||
capability fallback if image input is rejected.
|
||||
7. Gracefully stop. Confirm no pending approvals, scheduled jobs, inventory
|
||||
offers, owned test prims, tasks, sockets, or sessions. List any unavoidable
|
||||
@@ -147,8 +139,7 @@ needs `x86_64-w64-mingw32-gcc` for the existing AWS-LC build.
|
||||
## Remaining limitations
|
||||
|
||||
No public CI runner performs live actions, holds credentials, measures portable
|
||||
RSS, or proves a particular provider's image capability. Live evidence is only
|
||||
credible when an operator supplies all exact opt-ins and completes the matrix
|
||||
on a dedicated account. The deterministic gate is therefore the required CI
|
||||
RSS, or proves a particular endpoint's image capability. Live evidence is only
|
||||
credible when an operator completes the matrix on a dedicated account. The deterministic gate is therefore the required CI
|
||||
acceptance record; a live report supplements it and must state any skipped
|
||||
capability, endpoint fallback, or manually recoverable artifact explicitly.
|
||||
|
||||
Reference in New Issue
Block a user