Skip to content

SLM-425 (VAR1-02): add SET_PROPERTY action to TreeEditSpace - #1070

Closed
Tyler-R-Kendrick wants to merge 1 commit into
mainfrom
claude/great-dirac-de1l7v
Closed

SLM-425 (VAR1-02): add SET_PROPERTY action to TreeEditSpace#1070
Tyler-R-Kendrick wants to merge 1 commit into
mainfrom
claude/great-dirac-de1l7v

Conversation

@Tyler-R-Kendrick

Copy link
Copy Markdown
Owner

Summary

Closes SLM-425 (VAR1-02), gated on SLM-424 (VAR1-01)'s confirmed probe result (arm B flipped a verdict).

VAR1-01 proved via a hypothetical probe that property mutation on an existing node — not another structural edit — is the action class missing from TreeEditSpace's reachable_fraction = 0.0 result. This wires the real action:

  • ACTION_SET_PROPERTY (N_ACTIONS 11→12), CHECKPOINT_FORMAT 2→3 — format-1 and format-2 checkpoints both fail closed on load; checkpoint_migrate.migrate_tree_edit_checkpoint is already format-agnostic (upgrades any source_format < CHECKPOINT_FORMAT by shape), so no new migration path was needed.
  • EditDomain gains a pack-derived component_property_domains / property_names (built on SLM-426's canonical-pack refactor, not a new module constant).
  • TreeEditSpace.apply rebinds an existing container's declared rest to another pack-legal value (root included — unlike remove/re-mint actions, this never removes or re-mints a node), rebuilt through the structured Statement fields and re-validated by the real parser (no regex/text surgery). sample_mutation gains a safe, symmetric inverse.
  • tree_edit_diffusion's VariantContractV1.kernel_ops now declares openui.set_property.
  • slm299_edit_reachability's _check_invariants distinguishes the real (pack-domain-bounded) capability from VAR1-01's hypothetical (possibly wider-domain) one via hypothetical_set_property_domain, keeping every existing VAR1-01 probe test byte-for-byte unchanged.
  • docs/design/var1-02-set-property-action-20260726.{md,json} publish the production reachability delta against both the SLM-305 baseline and the VAR1-01 arm B prediction.

Honest-verdict

Claim class: capability (space coverage only) — no ship, promotion, or quality claim; no training/eval/promotion ran.

  • Confirmed: adv_empty_prompt_01 flips PROVEN_UNREACHABLEPROVEN_REACHABLE (edit_lower_bound=2, path [ADD, SET_PROPERTY]), reproducing VAR1-01 arm B's confirmed positive exactly.
  • Gate (production ≤ arm B per suite, else red flag): satisfied on every suite — no red flag.
  • Disclosed discrepancy, not picked for looking favorable: rico's reachable_fraction stays 0.0, but its decided-case count collapses from 35/35 to 1/35 (34 cases move from PROVEN_UNREACHABLE to UNKNOWN_BUDGET). This is not a regression — most rico targets omit a direction arg (a value the pack's own domain already permits), so the old strict root-rest check was never actually sound once a real rest-mutation action exists. A longer run outside this session's MAX_RUN_MINUTES=3 cap is needed to resolve those 34 cases; the doc reports this honestly rather than folding it into a falsely-precise number.

Test plan

  • pytest -q tests/test_models/test_tree_edit_diffusion.py tests/test_dsl/test_variants.py tests/test_harnesses/experiments/test_slm299_edit_reachability.py tests/test_harnesses/experiments/test_var1_01_set_property_probe.py → 56 passed
  • New tests: apply/inverse round-trip on root + non-root container, illegal value rejected via the real parser, format-2 checkpoint fails closed, format-2→3 migration produces bit-identical logits on the pre-existing 11 action rows
  • python -m scripts.verify_decode_invariants → exit 0
  • python -m scripts.verify_version_stamps --check → ok, 9 changed files, 3 components bumped
  • ruff check on touched files → clean
  • Pre-commit hooks (version stamps, ruff, py_compile, targeted pytest) passed on commit
  • docs/design/var1-02-set-property-action-20260726.md reachability audit executed live, well under the 3-minute run cap

Generated by Claude Code

VAR1-01 (SLM-424) proved via a hypothetical probe that property mutation
on an existing node, not another structural edit, is the action class
missing from TreeEditSpace's reachable_fraction=0.0 result. This wires
the real ACTION_SET_PROPERTY (N_ACTIONS 11->12, CHECKPOINT_FORMAT 2->3,
pack-derived domain, safe inverse, root included), re-runs the SLM-299
audit in production, and publishes the honest delta -- including a
disclosed rico-suite discrepancy that needs a longer follow-up run to
resolve, not a favorable number.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BKNyCWprgpAzMyTUcVFFXP
@vercel

vercel Bot commented Jul 26, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
slm-training Ready Ready Preview, Comment Jul 26, 2026 8:01pm

Request Review

@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@Tyler-R-Kendrick, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 39 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 73219ce0-3372-4273-932d-ae125d5fd863

📥 Commits

Reviewing files that changed from the base of the PR and between 6ec4f27 and f3dd86c.

📒 Files selected for processing (9)
  • docs/design/var1-02-set-property-action-20260726.json
  • docs/design/var1-02-set-property-action-20260726.md
  • src/slm_training/dsl/variants.py
  • src/slm_training/harnesses/experiments/slm299_edit_reachability.py
  • src/slm_training/models/checkpoint_migrate.py
  • src/slm_training/models/tree_edit_diffusion.py
  • src/slm_training/resources/variant_registry.json
  • src/slm_training/resources/versions.json
  • tests/test_models/test_tree_edit_diffusion.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/great-dirac-de1l7v

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Tyler-R-Kendrick Tyler-R-Kendrick left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Superseded — not merging. Main already contains this exact change: PR #1067 "feat(tree-edit): add pack-owned SET_PROPERTY action" merged at 2026-07-26T22:49Z as 6b6dc36, landing the same files (ACTION_SET_PROPERTY/N_ACTIONS=12/CHECKPOINT_FORMAT=3 in tree_edit_diffusion.py, slm299_edit_reachability analyzer updates, checkpoint_migrate docstring, dsl/variants.py kernel_ops, variant_registry.json, and the same docs/design/var1-02-set-property-action-20260726.{md,json} evidence pair). This PR is now CONFLICTING against main and would be a duplicate of already-merged work. Recommend closing in favor of #1067.

@Tyler-R-Kendrick

Copy link
Copy Markdown
Owner Author

Closing as superseded — the work landed on main via other PRs (see review comments for the superseding commits). Reopen only if something unique remains after rebase.

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.

2 participants