Skip to content

Add caller-preset trust and protected composition - #1745

Draft
Zetazzz wants to merge 1 commit into
mainfrom
agent/graphile-preset-trust-composition
Draft

Add caller-preset trust and protected composition#1745
Zetazzz wants to merge 1 commit into
mainfrom
agent/graphile-preset-trust-composition

Conversation

@Zetazzz

@Zetazzz Zetazzz commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Implements F03 from constructive-io/constructive-planning#1693 as a reusable Graphile preset trust boundary:

  • adds deterministic base -> caller -> protected preset composition;
  • requires explicit trust admission before non-empty caller presets may enter Graphile resolution;
  • recursively rejects caller ownership of server-protected paths and plugins, including nested extends, cycles, accessors, and malformed preset structure;
  • reports failures through canonical internal startup errors without logging preset values;
  • reconstructs the current CNC-owned server preset through the primitive with an empty caller layer, preserving current runtime behavior.

Architecture boundary

The primitive receives its protected paths and plugin names from the owning server or feature. It does not hard-code scoped introspection, retirement, storage, WebSocket admission, or other future feature settings.

Caller preset activation remains intentionally dormant. graphile.extends / graphile.preset are not wired into runtime configuration in this PR; safe activation must wait until F17 includes preset composition in the exact build/cache identity.

This PR does not claim a direct performance improvement. It establishes the composition and trust contract required by later independently reviewable features.

Validation

Rebased onto main@7d28f718c049. Verified final head f0c88095b3e8717dd83672117f516e03d74bb061:

Local verification: the 64-package server dependency closure built successfully; errors and preset-composition/standing regression checks passed 6 suites / 67 tests. Mainline request protection, error events, introspection role, and access-suspension handling remain present.

Excluded

  • no caller-facing Graphile configuration or trust toggle;
  • no build/cache identity changes (F17);
  • no feature-specific protected settings (including F15/F28);
  • no scoped-introspection, build-state retirement, dependency patch, or benchmark scenario changes.

@Zetazzz
Zetazzz force-pushed the agent/graphile-preset-trust-composition branch from 6faac1c to 8ec72c7 Compare September 6, 2026 01:51
@Zetazzz
Zetazzz force-pushed the test/performance-harness-core branch 2 times, most recently from 658736e to f7c63ec Compare September 7, 2026 03:22
@Zetazzz
Zetazzz force-pushed the agent/graphile-preset-trust-composition branch from 8ec72c7 to f0c8809 Compare September 9, 2026 01:32
@Zetazzz
Zetazzz changed the base branch from test/performance-harness-core to main September 9, 2026 01:32
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