Phase 7b: page render plans — per-page boundary optimizer

Add page-render-plan to deps.sx: given page source + env + IO names,
computes a dict mapping each needed component to "server" or "client",
with server/client lists and IO dep collection. 5 new spec tests.

Integration:
- PageDef.render_plan field caches the plan at registration
- compute_page_render_plans() called from auto_mount_pages()
- Client page registry includes :render-plan per page
- Affinity demo page shows per-page render plans

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-08 00:02:53 +00:00
parent a70ff2b153
commit 2da80c69ed
14 changed files with 214 additions and 5 deletions

View File

@@ -289,6 +289,7 @@ def _load_deps_from_bootstrap(env):
compute_all_io_refs,
component_pure_p,
render_target,
page_render_plan,
)
env["scan-refs"] = scan_refs
env["scan-components-from-source"] = scan_components_from_source
@@ -302,6 +303,7 @@ def _load_deps_from_bootstrap(env):
env["compute-all-io-refs"] = compute_all_io_refs
env["component-pure?"] = component_pure_p
env["render-target"] = render_target
env["page-render-plan"] = page_render_plan
env["test-env"] = lambda: env
except ImportError:
eval_file("deps.sx", env)