Nightly update: fourth-axis caps, sequence-aware planning, and transmute path search
This nightly is a deeper systems build. It introduces the new effect
axis for cap URNs across the stack, makes planner target identity aware
of scalar versus sequence state, and upgrades the transmute wizard so
path discovery, filtering, and execution line up with the real planner
model more closely.
What changed
- Cap URNs now have an explicit fourth structural axis:
effect. The stack now distinguishes between:declarednonepatch- explicitly unconstrained
?effect
- The old bare-top identity assumption is gone. The canonical identity
cap is now
cap:effect=none, and legality and dispatch rules were tightened across Rust, JS, ObjC, Go, and Python. - Runtime output inference now respects the
effectaxis instead of blindly trusting declaredout=. That fixes cases where a cap declares broad output but actually preserves or patches the concrete runtime media type. - The planner now treats target identity as full planner state rather than just media URN. Scalar and sequence variants of the same media type are surfaced as distinct reachable targets and can be selected separately when appropriate.
- The transmute wizard now threads target sequence state end to end. That means target selection, machine selection, and path lookup all ask for the exact target state the user picked.
- Available path search in the machine-selection step is now backed by the planner/service layer. You can search by step title and the backend constrains the returned paths rather than the UI filtering a full local set after the fact.
- Path streaming is now materially more incremental. Instead of waiting for the full search to finish before showing anything, the app can receive and display deduped path batches as depths complete.
- Duplicate machine recommendations that collapse to the same canonical machine notation are now deduped before they reach the UI.
- The target and path-selection UI was tightened up:
- scalar and sequence targets are displayed distinctly
- machine-selection rows use stable row identity
- some missing-row / skipped-row rendering issues are fixed
- loading states in the wizard are centered and sized correctly
- The transmute flow also got small interaction fixes:
- the menu bar icon spins while Finder-triggered transmute setup is still in flight before the wizard appears
- clicking Execute now commits any still-buffered argument edits before execution starts
Why it matters
- The
effectaxis is foundational. It makes cap identity and runtime output semantics explicit instead of overloadinginandoutto do too many jobs at once. - Sequence-aware target identity fixes a real planner/UI mismatch. A target is not just “PNG”; it can be “single PNG” or “PNG sequence,” and those are different states with different valid paths.
- Backend path filtering and incremental streaming make the transmute wizard feel more truthful: the app can ask the planner for exactly the subset of paths the user means, and it can reveal them as they are found.
Notes
- This is a nightly build intended for testing and feedback.
- The main focus of this build is planner correctness, cap semantics, and transmute path UX rather than broad new end-user surface area.
Feedback
- Email: [email protected]
- Discord: https://discord.gg/utwdVm6tYB