Skip to content

chore: remove the @path editor and the agent and tool keys nothing reads - #129

Merged
endrix merged 3 commits into
mainfrom
chore/wfpy-dead-leftovers
Nov 8, 2026
Merged

endrix merged 3 commits into
mainfrom
chore/wfpy-dead-leftovers

Conversation

@endrix

@endrix endrix commented Nov 8, 2026 •

Copy link
Copy Markdown
Owner

First step of moving wfpy's own features out of the platform and into wfpy-ide: what has no reader at all is deleted before the rest moves.

What goes

  • The @path annotation editor (property panel) and its wizard template. No producer has a @path decorator: wfpy sets a workflow's tool search paths with @config(path=[...]) (wfpy/core.py:1524). The editor never rendered. The wizard's "external tool search paths" template wrote @path(paths=[...]) into the source, which the Python source then cannot import. A path annotation a project defines itself falls through to the generic key/value editor like any custom annotation.
  • wf:toolSpec on tool nodes. Nothing reads it; the external-actor flag set alongside it stays.
  • cal:agentStateful and WorkflowDiagramMetadata.AGENT_STATEFUL: written by the agent-context overlay, read by nothing.
  • clearAgentContextMetadata in the model storage: never called.
  • createTabs and inlineMarkdown in the property panel: never called; with them the tab stylesheet rules and renderInlineMarkdownSafe, which only they used.

AGENT_STATEFUL leaves the shared API, so the next release's minor bump (already due for #127) covers it.

No product reads any of these (checked wfpy-ide, streamblocks-ide, sv-ide, vhdl-ide, ndf-ide, chisel-ide and mlir-viewer).

Left for later: scriptInterpreterCommands is also unread, but two products set it and #124 moves the type that declares it, so it is deprecated after #124 lands rather than here.

Checks

  • scripts/typecheck.sh: 5/5 packages; scripts/check-neutrality.sh: 5/5 gates.
  • vitest: diagram-server 441/441, diagram-client 361/361, extension-core 331/331, sidecar-toolkit 325/326 (the one failure is the known local timeout in variant-node-create-wizard.test.ts, which fails on untouched main too and passes in CI).

https://claude.ai/code/session_01EToj6RJRMSSHQiqGNMU9wv

No producer has a `@path` decorator: wfpy's `path` is an argument of
`@viewer`. The property panel's `@path` editor never rendered, and the
annotation wizard's template wrote `@path(paths=[...])`, which makes the
Python source fail to import. Both go; a `path` annotation a project defines
itself falls through to the generic editor like any custom annotation.

Also removed, each with no reader anywhere in the platform or the products:
`wf:toolSpec` on tool nodes (the external-actor flag it set alongside stays),
`cal:agentStateful` and `WorkflowDiagramMetadata.AGENT_STATEFUL`, the model
storage's never-called `clearAgentContextMetadata`, and the property panel's
`createTabs` and `inlineMarkdown`.

First step of moving wfpy's own features out of the platform: what has no
reader is deleted before the rest moves to wfpy-ide.

Claude-Session: https://claude.ai/code/session_01EToj6RJRMSSHQiqGNMU9wv
- The agent-context section appended to a tab only the removed `createTabs`
  built; it now appends to the panel content directly, which is where it
  always landed.
- The tab stylesheet rules (and their theme overrides) styled nothing once
  `createTabs` was gone; removed, with their rows in the selector baseline.
- `renderInlineMarkdownSafe` had one caller, the removed `inlineMarkdown`.
- The agent-context entry types still declared `stateful`, now unread.
- The changelog gave the wrong reason for the `@path` template: wfpy does set
  tool search paths, with `@config(path=[...])`; the template wrote a
  decorator that does not exist for it.
- The agent reserved-key list is indented as the expression it now is.

Claude-Session: https://claude.ai/code/session_01EToj6RJRMSSHQiqGNMU9wv
@endrix
endrix merged commit 8bc7512 into main Nov 8, 2026
1 of 2 checks passed
endrix added a commit that referenced this pull request Nov 9, 2026
#131)

* test: the resume tests wait for the run they resume, not a fixed 30 ms

The driver starts a resumed run without awaiting it (a run can outlast a tool
call). The tests waited 30 ms for it; on a loaded CI runner the resumed run
started later, in the next test, where the fake process counted it as that
test's first run and so did not fail it: "no failed run to resume", or one
spawn too many or too few. Seen on #127 and #129, never on main by luck.

- The fake run fails a plain run and passes a resumed one, decided by its
  arguments, not by a count every test shares.
- A test that expects the resumed run waits until it is spawned and has
  ended (`resumedRun`), however long that takes.

With a 100 ms delay put in front of every resumed run, the old file fails 3
of 9 and this one passes 9 of 9.

Claude-Session: https://claude.ai/code/session_01EToj6RJRMSSHQiqGNMU9wv

* fix: what the review of the resume-test race turned up

The child's `close` is not the end of a run: the driver still refreshes the
diagram, forgets the failed run and says "Workflow run finished." after it,
and that tail could still land in the next test. A test that expects the
resumed run now waits for that last word, under the default test timeout so a
slow machine fails by name. The temporary directories each run makes are
removed after each test, and the "not now" test drops a pause that waited for
nothing (the resume returns before anything is spawned).

With 100 ms added before every resumed run and 150 ms after every child's
close (not committed), main's file fails 2 of 9 and this one passes 9 of 9.

Claude-Session: https://claude.ai/code/session_01EToj6RJRMSSHQiqGNMU9wv
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.

1 participant