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
Retire the off-network FFI lambda-passing scaffolding (introduced in PR #35 / wrap-prologos-fn-as-racket) in favor of propagator-native callbacks. Replace the procedure-shaped Racket-side bridge with cell-subscription semantics: a Prologos lambda exposed to a Racket consumer becomes a cell handle the consumer reads/observes, not a procedure they invoke.
Origin
PR #35 added function-typed FFI parameters by wrapping Prologos lambdas as Racket procedures. The contributor explicitly self-labeled the marshaller as "off-network scaffolding by design" with this retirement direction named in the design doc (docs/tracking/2026-04-28_FFI_LAMBDA_PASSING.md). This issue captures the retirement work as a tracked obligation rather than verbal-only intent.
Per .claude/rules/workflow.md adversarial framing rule and on-network.md mantra discipline:
The current bridge is off-network: Racket call-and-return shape (procedure invocation), not information flow through cells
Marked scaffolding with explicit retirement direction — exactly the disclosure pattern the project asks for
Building the bridge now was the right tradeoff: blocked work (EigenTrust on propagators, every Racket HOF reachable from Prologos) cannot wait for the propagator-native path to mature
FFI series master: docs/tracking/2026-04-28_FFI_MASTER.md (this issue tracked there as Track N)
Design doc: docs/tracking/2026-04-28_FFI_LAMBDA_PASSING.md — section on retirement direction
Mantra discipline: .claude/rules/on-network.md, .claude/rules/workflow.md (adversarial framing, "off-network state is debt against self-hosting")
Forward vision: Prologos as polyglot hub. Propagator-native callbacks are foundational for FFI to scale to multiple languages without each requiring its own off-network bridge.
Out of scope for this issue
Implementation timing (gates on broader propagator-native infrastructure maturity)
Detailed design (deferred to phase-time mini-design when scheduled)
Medium-high. The off-network scaffolding works correctly and unblocks downstream work, but every additional FFI consumer that uses it accumulates more dependence on the procedure-shaped boundary. Earlier retirement = less migration burden later.
Summary
Retire the off-network FFI lambda-passing scaffolding (introduced in PR #35 /
wrap-prologos-fn-as-racket) in favor of propagator-native callbacks. Replace the procedure-shaped Racket-side bridge with cell-subscription semantics: a Prologos lambda exposed to a Racket consumer becomes a cell handle the consumer reads/observes, not a procedure they invoke.Origin
PR #35 added function-typed FFI parameters by wrapping Prologos lambdas as Racket procedures. The contributor explicitly self-labeled the marshaller as "off-network scaffolding by design" with this retirement direction named in the design doc (
docs/tracking/2026-04-28_FFI_LAMBDA_PASSING.md). This issue captures the retirement work as a tracked obligation rather than verbal-only intent.Per
.claude/rules/workflow.mdadversarial framing rule andon-network.mdmantra discipline:Current state (post PR #35 merge)
foreign.rkt'swrap-prologos-fn-as-racketproduces a Racket procedure that, on each Racket-side call:marshal-racket->prologos(((pf arg1) arg2) ... argN)via left-foldedexpr-appnf(off-network procedural call)This works but is structurally a Racket procedure boundary — not a propagator network observation.
Target state (propagator-native callbacks)
Replace the procedure-shape boundary with cell-shape:
This integrates the FFI surface with the propagator network rather than maintaining a parallel mechanism.
Design questions to resolve (when scheduled)
These are real design questions, not implementation details. The issue tracks the obligation; the design happens in a future Stage 3 cycle.
Cross-references
docs/tracking/2026-04-28_FFI_MASTER.md(this issue tracked there as Track N)docs/tracking/2026-04-28_FFI_LAMBDA_PASSING.md— section on retirement direction.claude/rules/on-network.md,.claude/rules/workflow.md(adversarial framing, "off-network state is debt against self-hosting")Out of scope for this issue
Priority
Medium-high. The off-network scaffolding works correctly and unblocks downstream work, but every additional FFI consumer that uses it accumulates more dependence on the procedure-shaped boundary. Earlier retirement = less migration burden later.