Skip to content

Bind client control grants to running mission ownership - #6289

Draft
schickling-assistant wants to merge 10 commits into
schickling-assistant/2026-11-10-client-control-enrollmentfrom
schickling-assistant/2026-11-10-client-control-grants
Draft

schickling-assistant wants to merge 10 commits into
schickling-assistant/2026-11-10-client-control-enrollmentfrom
schickling-assistant/2026-11-10-client-control-grants

Conversation

@schickling-assistant

@schickling-assistant schickling-assistant commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Enrolled clients need bounded run-specific authority, not an unbounded automation credential.

Goal

D-4 durable grant issuance, exact running mission/claimed-step owner binding, budget and lifecycle. A-2 source tests cover every grant refusal, replacement claim/incarnation, run/claim end, revoke/re-enroll, persisted budgets and untrusted generic forgery.

Decisions

The issuing local agent must own the live step claim. Bind generation, attempt, incarnation and enrollment identity. Default 50 commands, maximum two hours; persist consumption before admission and reuse it for result checks. Only inspect and NowRoot/Attention navigation are grantable; no message/read-state mutations. Attention requires item_id naming an existing native ask in this instance; missing or unknown items return screen-not-granted. NowRoot-only grants need no item. Conversation and answer/close/read-state/message.send remain refused.
Authoritative lifecycle uses generated resources on the existing commands collection. Persist the first ended/revoked transition, use durable store-index sequences and wake idle subscribers on native changes and deadlines; no second protocol.

Verification

Fixed source head: 66cb93b1d4847943dcaab263ec9a9c6f339d3226; shared generated head: 7cafdf138efbea937cbefa83323d5d2fc8dda15c. Added issuance tests for Attention without an item, unknown item, valid native ask, and NowRoot without an item. Backend tests cover terminal deduplication/restart/forgery, concurrent observers and idle termination. Corrected-head local suites are pending sequential admitted execution; no test pass is claimed. No live setup, enrollment/grants or daemon action; no CI dispatch/rerun.

Complexity

One serialized per-member durable admission path reuses existing mission views and trusted operation claims.

Concerns

This watcher is fixture-scale only: every native event_notify change reconciles grants under the global ADMISSION mutex and reloads mission-run authority. It is not a general high-throughput watcher design. Commands remain ephemeral; durable budgets remain spent across restart.

Friction & bottlenecks

One corrected regeneration completed successfully (6.55 seconds, peak RSS 1,202,584 KiB); shared admission delayed proof execution.

Follow-ups

Live human-gated mission acceptance remains pending. Result enforcement and idle WebSocket/race tests are in dependent #6296.

References

Depends on #6288 and #6274; stack #6290. The held store.rs operation-kind change is carried by #6288 and requires its owner approval and independent landing; this layer does not modify that held path.

Posted on behalf of @schickling
field value
agent_identity agent/dotfiles/fractal-product-lead
session 01a1b525
agent_persona generalist
agent_supervisor unavailable
agent_tool OMP
agent_tool_version 18.12.5
agent_runtime OMP 18.12.5
agent_model openai-codex/gpt-6.1-sol
worktree fractal/2026-11-10-client-control-grants

agent-identity: agent/dotfiles/fractal-product-lead
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.12.5
agent-runtime: OMP 18.12.5
agent-model: openai-codex/gpt-6.1-sol
@schickling-assistant schickling-assistant changed the title Persist mission-owner-bound client control grants and budgets Bind client control grants to running mission ownership Nov 10, 2026
@schickling-assistant

Copy link
Copy Markdown
Contributor Author

Integrated head 88637079e3908ad58747aabbbe6fb9e099244400 includes the corrected shared generation 7cafdf138efbea937cbefa83323d5d2fc8dda15c. Source now persists first terminal lifecycle transitions, emits only generated stable-id latest lifecycle resources, and wakes idle subscribers on revocation, run/claim end and deadlines. Added backend persistence/deduplication/restart/forgery/idle source tests. Local execution remains pending in sequential admitted proof tickets; no passing test result is claimed.

Posted on behalf of @schickling
field value
agent_identity agent/dotfiles/fractal-product-lead
session 01a1b525
agent_persona generalist
agent_supervisor unavailable
agent_tool OMP
agent_tool_version 18.12.5
agent_runtime OMP 18.12.5
agent_model openai-codex/gpt-6.1-sol
worktree fractal/2026-11-10-client-control-results

agent-identity: agent/dotfiles/fractal-product-lead
agent-persona: generalist
agent-supervisor: unavailable
agent-tool: OMP
agent-tool-version: 18.12.5
agent-runtime: OMP 18.12.5
agent-model: openai-codex/gpt-6.1-sol

This branch has not been deployed

No deployments
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