Skip to content

Add observable Resource Profiles - #389

Merged
schickling-assistant merged 5 commits into
mainfrom
schickling/2026-08-29-smart-resources
Aug 30, 2026
Merged

Add observable Resource Profiles#389
schickling-assistant merged 5 commits into
mainfrom
schickling/2026-08-29-smart-resources

Conversation

@schickling-assistant

@schickling-assistant schickling-assistant commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Problem

Resource bindings can resolve passive filesystem carriers, but they cannot expose provider-owned current state or notify an agent when selected semantic state changes.

Goal

Add state-first, read-and-observe Resource Profiles with one canonical snapshot per binding, bounded profile-owned observation runtimes, semantic selectors, and level-triggered catch-up through the existing resync inbox and DING path.

Decisions

  • Keep the Resource URI as identity and store attention configuration in a profile-validated JSON selector.
  • Make one atomic current snapshot authoritative. Notifications are thin invalidations, not an event log.
  • Keep provider authentication, observation, cursors, and reconciliation inside downstream runtimes.
  • Fence publications with a runtime-incarnation owner claim and a binding registration token.
  • Reuse the built-in resync stream with producer-side supersession.
  • Bound selectors to 16 KiB, protocol lines to 2 MiB, decoded snapshots to 1 MiB, and health detail to 16 KiB.

Verification

  • cargo check --workspace --all-targets --quiet
  • Agent Spec descriptor tests: 7 passed
  • Wasm descriptor/containment suite: 25 passed
  • Runtime core tests: 11 passed
  • Runtime supervisor tests: 5 passed
  • Resource CLI integration tests: 8 passed
  • Observable publication-to-inbox E2E: 1 passed
  • nix flake check --no-build
  • nix build .#checks.x86_64-linux.wasm-resolver-feature --no-link --print-build-logs passed on the rebased head.
  • Strict VRS checks passed for 07-resource and 07-resource-profile.

Pre-flip deviation: nix build .#checks.x86_64-linux.st2 reaches 572 passing tests and then fails in the pre-existing release-mode Codex WebSocket handshake race with Interrupted system call (os error 4). A pristine origin/main derivation reproduced the same failure class in another Codex handshake test after 555 passing tests. The Resource Profile derivation and all affected focused tests pass.

Complexity

The change adds a resident runtime supervisor and durable publication state because provider-native observation crosses process and crash boundaries. It does not add another task plane, event plane, provider event log, or external dependency.

Concerns

Runtime health is currently available through the supervisor API. A dedicated status CLI projection remains follow-up dogfood work. Runtime exit is reconciled on the next resident catalog pass rather than by a separate restart timer.

Friction & bottlenecks

The repository has no devenv.nix, so the standard first-party check:quick task is unavailable. The repository-wide rustfmt check reports substantial pre-existing formatting drift outside this change. The release-mode Codex handshake suite also fails nondeterministically on pristine main as described above.

Follow-ups

  • Use downstream GitHub-profile dogfood to settle the minimum low-noise operator health surface.
  • Add frozen cross-version descriptor and runtime-protocol fixtures before independent third-party implementations.

References

Refs #376

Posted on behalf of @schickling
field value
agent_identity dev3.direct.omp.2cshu64q
session dev3.2cshu64q
agent_persona generalist
agent_supervisor unavailable
agent_tool OMP
agent_tool_version 18.0.9
agent_runtime OMP 18.0.9
tooling_profile dotfiles@b607597

agent-identity: dev3.direct.omp.2cshu64q
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.0.9
agent-runtime: OMP 18.0.9
tooling-profile: dotfiles@b607597
@schickling-assistant
schickling-assistant marked this pull request as ready for review August 29, 2026 23:20
agent-identity: dev3.direct.omp.2cshu64q
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.0.9
agent-runtime: OMP 18.0.9
tooling-profile: dotfiles@b607597
agent-identity: dev3.direct.omp.2cshu64q
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.0.9
agent-runtime: OMP 18.0.9
tooling-profile: dotfiles@b607597
agent-identity: dev3.direct.omp.2cshu64q
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.0.9
agent-runtime: OMP 18.0.9
tooling-profile: dotfiles@b607597
agent-identity: dev3.direct.omp.2cshu64q
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.0.9
agent-runtime: OMP 18.0.9
tooling-profile: dotfiles@b607597
@schickling-assistant
schickling-assistant merged commit cd45d60 into main Aug 30, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant