feat(core): expose property tools through automation and record runs#17
Merged
Conversation
Register properties.inspect, properties.set and properties.reset in the tool registry so agents, workflows and the command line reach the same planner the object inspector uses. The JSON adapter decodes each value against the property's own schema and then delegates planning and committing to properties::service, so the two entry points cannot drift apart on what a value means or which targets accept it. Planned and resulting targets now carry a TargetRef, letting a property tool expand one plot object into one target per series while every existing tool keeps addressing whole resources unchanged. Record a run manifest for every tool call that does not come from a person, single calls included, and mark the document dirty when one is appended so the record cannot be lost on exit. A single data.transform call now carries the same table provenance a workflow node records, and an export that fails part way still records the files it had already written. Show a tool's result value in the automation window; without it an inspect call reported success and displayed no readings at all.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Property edits become automation tools, and every run that is not a person's
leaves a record behind.
Property tools
properties.inspect,properties.setandproperties.resetare registered inthe existing
ToolRegistry. They reuseToolRequest,EffectLevel, authority,target compatibility, optimistic concurrency and the run manifest; no second
compatibility, plan or audit type was added.
The JSON adapter only decodes. It turns a wire value into the typed value the
planner accepts, checks it against that property's own schema, and names both
the value it was given and the limit that rejected it. Planning, target
resolution and committing all go to
properties::service— the same planner theobject inspector calls — so the two entry points cannot drift apart on what a
value means or which targets accept it. An integration test drives both paths
with the same input and compares the resulting document state field by field.
Component targets
PlannedTargetandTargetResultnow carry aTargetRef, so a property toolexpands one plot object into one target per series and each result row names the
series it belongs to. Every existing tool keeps addressing whole resources; a
test pins the planning output of all twelve unchanged.
Run records
included, not only calls made from inside a workflow.
document without doing so, so a project could be closed as clean and silently
lose the record it had just been promised.
data.transformcall now carries the same table revisions and plansthat a workflow node records.
of discarding that evidence along with the error.
TargetResultchanges shape, so a project saved with earlier run records willno longer load. PlotX is pre-release and keeps no compatibility path for its own
file format.
Automation window
A tool's result value is shown below the per-series rows. Without it
properties.inspectreported success and displayed no readings at all.Known limit
A tool returns before its background geometry job settles, so when the render
budget drops contour levels that diagnostic has no way to reach
ToolResult.This is a limit of the tool contract rather than a missing wire, and a test pins
the current behaviour so it is not mistaken for fixed.
Verification
cargo pr-checkpasses, including the dependency policy. Documentation for theautomation window, contour levels and the command palette is updated in English
and Simplified Chinese, and
npm run buildindocs/completes.