Skip to content

refactor!: the Entities palette, navigation and source MIME type are the product's - #127

Open
endrix wants to merge 2 commits into
mainfrom
refactor/palette-and-navigation-defaults
Open

endrix wants to merge 2 commits into
mainfrom
refactor/palette-and-navigation-defaults

Conversation

@endrix

@endrix endrix commented Nov 8, 2026 •

Copy link
Copy Markdown
Owner

Phase 5 of the declutter plan, second step: two places where the platform still carried a product's choices as its own defaults. Cut from main; independent of the other open Dialogram PRs (only CHANGELOG.md can conflict).

Breaking for a profile that relied on the defaults. The next release bumps DIALOGRAM_API_VERSION to 0.9 (the check requires an exact major.minor before 1.0), so a product built for 0.8 fails loudly instead of silently losing its palette and navigation. Not bumped here: four open PRs change the API surface, and the 0.8 bump was made in its release commit.

Ordering: ship after endrix/wfpy-ide#23 and streamblocks/streamblocks-ide#9, which declare what this PR stops providing. Against today's main, with those two PRs, the palette and navigation are unchanged: a one-off test built each product's old and new input through createSidecarDiagramProfile and WorkflowToolPaletteItemProvider and compared the whole palette, identical down to item ids, icons and args.

Palette

tool-palette-provider.ts built Entities from two hard-coded lists: wfpy's Task / Tool / Agent / Viewer / Workflow by default, calpy's Actor / Network behind useAlternateEntityPalette, with platformEntityItems: false to switch both off. Entities are now the profile's entityPaletteItems, in its order, and nothing else. useAlternateEntityPalette and platformEntityItems are @deprecated, accepted and ignored (in StorageRuntimeOptions, DiagramStorageOptions and SidecarProfileInput), so sv, vhdl and ndf, which set platformEntityItems: false, compile and behave as before. The toolkit stops forwarding them. A profile with no rows shows no Entities header (before, platformEntityItems: false with no rows left an empty one). chisel-ide sets supportsElementCreation: false (no palette); mlir-viewer builds no palette.

Navigation

SidecarProfileInput.navigation defaulted to 'python': every product without the line got the Python navigation provider and the .py caller scan. The default is 'none'; createPythonNavigationProvider() and the two Python workspace walks in the model source's analysis seam run only for navigation: 'python'. The rest of the analysis seam (overlay matching, default unit, definition ranges) is untouched.

Source MIME type

The source the agent receives defaulted to text/x-python; it is text/plain unless the profile names one. sv, vhdl and ndf name theirs; the two product PRs name text/x-python.

Tests

Server: the palette test now pins that Entities are exactly the declared rows with their ids, and that the retired flags yield an empty Entities category. Toolkit: the profile tests name navigation: 'python' where they expect the provider and check the default builds none; the analysis test checks the default answers empty and 'python' scans.

Typecheck 5/5, neutrality 5/5, server 441, toolkit 326 (the known local wizard timeouts reproduce on main), extension build green.

From the review

Taken: the Python MIME default (the toolkit's defaults now agree with navigation 'none'); no empty Entities header; the port-description edit reverted, since a palette item carries no description and it never reached the screen; the stale navigation docs; identity checks for the wired scan functions; one provider per test case; the breaking-change framing and the 0.9 bump at release. Not here: the create-node handler still reads wfpy's agentTask/viewerTask args, which goes with the agent stack (phase 5e).

https://claude.ai/code/session_01EToj6RJRMSSHQiqGNMU9wv

…to none

Phase 5 of the declutter plan, second step. The tool-palette provider
hard-coded wfpy's five Entities rows and, behind
useAlternateEntityPalette, calpy's two. Entities are now the profile's
entityPaletteItems alone; useAlternateEntityPalette and
platformEntityItems are deprecated, accepted and ignored. The port
entries lose "workflow" from their descriptions.

The Python navigation engine and the Python caller scan behind "used
by" run only for a profile that names navigation 'python'; the default
is 'none'. sv, vhdl and ndf set 'none' already.

wfpy-ide and streamblocks-ide declare their rows and name 'python' in
their own PRs, which ship first; with them the palette and navigation
are unchanged (checked through the real assembler and provider).

Claude-Session: https://claude.ai/code/session_01EToj6RJRMSSHQiqGNMU9wv
The source MIME type the agent receives defaulted to Python's too; it
is text/plain unless the profile names one, so the toolkit's defaults
agree about what a product is. A profile with no rows shows no Entities
header with nothing under it. The port-description edit is reverted: a
palette item carries no description, so it never reached the screen.
The navigation docs say the engine is the product's to name, and the
analysis test checks the wired functions, not their names.

The changelog marks the change as breaking for a profile that relied on
the defaults and records that the release bumps the API to 0.9, so a
product built for 0.8 fails the version check instead of silently
losing its palette.

Claude-Session: https://claude.ai/code/session_01EToj6RJRMSSHQiqGNMU9wv
@endrix endrix changed the title refactor: the Entities palette is the product's; navigation defaults to none refactor!: the Entities palette, navigation and source MIME type are the product's Nov 8, 2026
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