You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OCSF logging integration in openshell-sandbox (the primary deliverable)
A broader gateway -> sandbox operational settings channel via SandboxConfig
The OCSF work only requires a narrow config shape (config_revision + logging.ocsf_enabled) to support hot-reload. Expanding #393 to define and implement a general arbitrary-settings channel increases implementation risk, review scope, and delivery time for the logging migration.
We need a dedicated follow-up issue for designing and implementing a robust gateway -> sandbox arbitrary settings mechanism on top of the existing policy poll response channel.
Proposed Design
Implement a generalized settings channel in the SandboxConfig transport path, separate from #393:
Keep transport path: GetSandboxPolicyResponse.sandbox_config
Keep revision semantics: gateway maintains a monotonic config_revision; sandbox applies only newer revisions
Add a dedicated settings payload for arbitrary runtime settings, using a namespaced key/value model with typed values
Define sandbox-side apply semantics:
unknown keys are ignored safely
invalid values are rejected with structured log output
partial apply does not roll back unrelated valid keys
Keep backward compatibility:
older gateway (no arbitrary settings payload) remains no-op
older sandbox ignores unknown payload fields from newer gateway
Delivery should include:
Proto schema update for arbitrary settings payload
Gateway config source plumbing and response population
Sandbox apply loop integration and revision tracking
Unit tests for backward compatibility and apply semantics
E2E test covering runtime update without sandbox restart
Documentation update in architecture/ and user-facing docs where relevant
Rejected because it couples a large schema/control-plane change to the OCSF migration, increasing risk and delaying primary logging outcomes.
Add only more typed fields immediately (no generic settings payload)
Rejected because each new runtime setting would require another proto/control-plane roundtrip and repeated plumbing work.
Send untyped JSON blobs only
Rejected because it weakens validation, compatibility guarantees, and observability of invalid config.
Agent Investigation
Reviewed #393 and confirmed it already introduces SandboxConfig on GetSandboxPolicyResponse with revision-driven hot-reload.
Confirmed #393 currently frames SandboxConfig as a general-purpose operational config channel while also carrying the OCSF migration and 93-site logging refactor.
This split keeps #393 focused on OCSF deliverables and moves generalized settings-channel design into an independent issue.
Problem Statement
Issue #393 currently combines two concerns:
openshell-sandbox(the primary deliverable)SandboxConfigThe OCSF work only requires a narrow config shape (
config_revision+logging.ocsf_enabled) to support hot-reload. Expanding#393to define and implement a general arbitrary-settings channel increases implementation risk, review scope, and delivery time for the logging migration.We need a dedicated follow-up issue for designing and implementing a robust gateway -> sandbox arbitrary settings mechanism on top of the existing policy poll response channel.
Proposed Design
Implement a generalized settings channel in the
SandboxConfigtransport path, separate from #393:GetSandboxPolicyResponse.sandbox_configconfig_revision; sandbox applies only newer revisionsDelivery should include:
architecture/and user-facing docs where relevantAlternatives Considered
Keep arbitrary-settings work inside feat(sandbox): integrate openshell-ocsf crate with dual-file output, OCSF toggle config, and log site migration #393
Add only more typed fields immediately (no generic settings payload)
Send untyped JSON blobs only
Agent Investigation
#393and confirmed it already introducesSandboxConfigonGetSandboxPolicyResponsewith revision-driven hot-reload.#393currently framesSandboxConfigas a general-purpose operational config channel while also carrying the OCSF migration and 93-site logging refactor.#393focused on OCSF deliverables and moves generalized settings-channel design into an independent issue.