refactor: SlotRole replaces SlotPolicy (Debug slots P1) - #254
Merged
Conversation
…, studio
Replace the two-axis SlotPolicy { writable, persistence } with a single
SlotRole::{ Setting, Fixed, Debug } enum (D10), and retire the
read_only_transient marking entirely: produced-state protection now
derives from direction=Produced (D1), which also fixes the previously
unmarked TextureState by construction and deletes the studio-side
view-build synthesis patch. Writer omission and overlay commit retention
key off role == Debug. Shape dumps carry "role" instead of "policy";
wire proto and project format unchanged.
No behavior change intended; schemas regenerated via just schema-gen.
Plan: lp2025/2026-07-31-1736-ephemeral-slots (P1)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Draft
5 tasks
…g-slots-impl-210c61
Captured in the pinned CI environment by run: https://github.com/light-player/lightplayer/actions/runs/30727837839
Contributor
CI refreshed the story baselines on this branchThe Review every PNG in the PR's Files changed view (swipe / onion-skin).
|
Yona-Appletree
marked this pull request as ready for review
August 2, 2026 07:31
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Plan: lp2025/2026-07-31-1736-ephemeral-slots
Path: /Users/yona/.photomancer/planning/lp2025/2026-07-31-1736-ephemeral-slots/plan.md
P1 of the Debug-slots plan — ships alone per the plan's JC1 (mechanical, self-contained; everything later rebases onto it). P2–P6 follow as a second PR.
What
Replace
SlotPolicy { writable, persistence }withSlotRole::{ Setting, Fixed, Debug }(D10), and retireread_only_transiententirely — produced state is now protected bydirection = Produced(D1):lpc-model:slot_policy.rs/slot_policy_lookup.rs→slot_role.rs/slot_role_lookup.rs;effective_writable(role, direction)andeffective_persistence(role, direction)derive the old axes; writer omission seam keys offrole == Debug(+ defensive produced-omission).lpc-slot-macros:#[slot(role = "…")]/default_rolereplace the policy attributes; mut-access suppression keys off direction.button_def/control_radio_defdrop theirread_only_transientmarkings;TextureStatenow declaresdirection = "produced"and is safe by construction (retires W6/W7).lpc-registry:retain_transient_edits→retain_debug_edits.lpa-studio-core: the view-build synthesis patch (slot_controller.rs:953) is deleted;DirtySummarystill buckets via derived persistence (its removal is P2's job)."policy": {…}→"role": "debug" | "fixed"(defaultsettingomitted). Regenerated viajust schema-gen.No behavior change intended. No wire proto change (stays 4), no project format change — def files never carried policy.
Validation
just check✅just schema-check✅just test: all green exceptlps-probe perf_4096_render_evals_under_10s_debug(wall-clock perf bound, untouched crate) — failed locally under load average 141 from concurrent sessions; CI is the arbiter.Resume notes
Read
plan.mdat the path above, thenp1-slot-role-refactor.md(this PR) andnotes.mdfor the ratified design (D1–D10). Superseded PR #233 must never merge; it is harvested and closed at P5.🤖 Generated with Claude Code