Skip to content

feat(agent): tool plugins and effects integration - #7

Draft
fffonion wants to merge 23 commits into
masterfrom
feat/tool-plugin-effects-draft
Draft

fffonion wants to merge 23 commits into
masterfrom
feat/tool-plugin-effects-draft

Conversation

@fffonion

@fffonion fffonion commented Oct 18, 2026 •

Copy link
Copy Markdown
Contributor

Scope

Draft implementation of RSS plugin graphs and Native tool/effect virtualization. First-A provides one trusted stateless ToolOnly tool linked to one pure leaf library through the existing read_file authorization, library transformation and managed commit. Native retains its persistence owner, grants, original cancellation clock, immutable graph/package/code pins and revocation checks. History-only receipts do not authorize fresh execution or executable restoration.

Latest accepted scope

Head 0e2e6bf5e04a17c9d58915050305e76cb631da63 adds four reviewed paths:

  • Preserve deadline diagnostic phase records by aggregating poll samples separately. Only issued boundary records are retained; this is not proof that every possible phase was reached.
  • Replace a test-local 1500ms aggregate-admission assertion with a real maintenance-lease wait rendezvous: B owns the lease and observes A nonterminal before unrelated session C admits and completes; B remains pending without publishing candidates. Shared global storage/commit resources are not claimed to be independent.
  • On observation failure, release fixture hooks, settle A through the existing typed terminal transition and join B. Status-read errors remain explicit and cannot skip terminalization. Owned storage cleanup and joins share one absolute observation deadline; a started storage operation is not claimed to be hard-cancellable.
  • Direct forced-panic and one-shot cleanup-reader fault regressions verify A completed, B joined and the primary panic survived. The latter injection is fixture-local; subsequent storage transitions and reads are real. A separate teardown net cannot turn primary failure into PASS.

The earlier accepted Native worker reservation ordering, cancellation-only restoration and deadline recheck, long-path real socket fixture, authentic storage migration fixtures, composed admission boundary tests and pair-transaction rollback coverage remain in this branch. The authorized 1-second child-deadline fixture keeps the original root, real PID, Guardian, permission and 2-second process cleanup assertions.

Complete local validation

The committed 482-file source is byte-identical to the final qualified frozen source. Rust 1.99.0, locked/offline, all features, jobs 2, default harness concurrency:

  • Complete all-target runtime: 2,799 passed, 0 failed, 17 ignored, across 137 outer target units. Six nested harness invocations are listed separately, including the expected negative child; no nested PASS is added to these totals.
  • Plugin-state migration target: 44 passed, 0 failed; main and both failure controls passed.
  • All-feature/all-target Clippy with warnings denied, fmt and diff checks passed.
  • No-default-features library compile passed; this is compile evidence, not a runtime test.
  • Independent scoped reviews accepted the trace, real lease-wait observer and final cleanup error path; no remaining blocker in this scope.

Earlier failures and their unknown causes remain recorded. Passing current tests does not establish the cause of an earlier SubmittedUnknown or timing failure.

CI and remaining plan

PR remains Draft, open and unmerged. Current-head CI 42036214810 completed with failure for 0e2e6bf5e04a17c9d58915050305e76cb631da63: fmt and Clippy passed; runtime stopped at run_lifecycle_tests (41 passed, 1 failed), where deadline_terminates_child_process_without_residue observed no pre-deadline owned PID. The bounded diagnostic trace retained all issued records (dropped=0, boundary lost=0); the exact remaining wait is under read-only investigation. Local PASS does not close this remote failure. Historical CI 41980397265 failed the child-deadline PID assertion; that historical failure has not been causally closed by the local PASS.

T07 stateless tool-to-tool implementation has started on a successor working tree from this head, using the independently accepted specification; it is not included in this published commit and has no runtime acceptance yet. Multi-library/all-tool T14 expansion, stateful children, complete new-topology checkpoint/restore and remaining T15/T16 management flows remain subsequent work. Existing typed unsupported boundaries remain explicit. No new OS isolation backend or arbitrary third-party process confinement is claimed.

@fffonion
fffonion added this pull request to stack #8 October 18, 2026 09:59
@fffonion
fffonion force-pushed the feat/tool-plugin-effects-draft branch from e001dd9 to bb0fcc6 Compare October 18, 2026 12:27
Base automatically changed from refactor/production-foundation-consolidated to master October 18, 2026 12:41
@fffonion
fffonion force-pushed the feat/tool-plugin-effects-draft branch from bb0fcc6 to c5a4da3 Compare October 18, 2026 12:41
Update rustscript-vm and pd-host-function to b5066dd92fcd7c07df57e3ec2c29dbcf8c19c390 so one CREATE TRIGGER is accepted through the production AgentRunner policy. Multi-statement SQL stays rejected.
Keep one validation, the original parser error, and the fault-only rejection log.
The helper is not a test. Its only caller is managed_authority_tests, included under the same workspace-io-fault cfg. Default unit builds otherwise reject the unused definition.
…9c390

The pin guard still required d9387f98 after the authorized SDK upgrade. Keep the full SHA, HTTPS remote, three lock sources, stale B1 rejection, and abbreviation checks, and reject the prior SDK explicitly.
Recheck the same RunCancellation after the crash seam and before the
external call. Keep the committed model.requested row and return the
existing typed cancel or deadline failure.
Include accepted graph management, retained invocation and effect boundaries,
managed checkpoint/branch runs, and manual workspace publication contracts.

Publish the exact accepted 385 snapshot with prior scope reviews and
17 final commands covering 126 unique target/test pairs. Versioned plugin
state, formal cross-package calls, and whole-plan acceptance remain pending.
Publish the exact accepted T12 snapshot with run, session and invocation
state, pure migration, exact checkpoint roots, Native ownership and bounded
worker-ordered collection. Scoped review and 18 final commands cover
213 unique target/test pairs. Full remote CI qualification remains pending.
Capture trusted stateless tool and pure library graphs, retain original run
authority for Native execution and replay, and keep historical receipts
separate from executable restoration. Cache only immutable schema and
builtin materials, with regression coverage for cancellation and revocation.
@fffonion
fffonion force-pushed the feat/tool-plugin-effects-draft branch from 7fca273 to 3aabb9b Compare November 3, 2026 17:35
Bind proof publication and reclamation to the same live run handle, clear sealed history proofs on shutdown, and preserve original execution authority. Use real gateway worker rendezvous and bounded phase-aware fixture cleanup. Retain strict cancellation and deadline cuts with the authorized two-fixture initial budget and bounded failure-safe diagnostics.
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