Repository navigation
Conversation
…s the rest Phase 3 of the declutter plan. About half the keys every product wrote were identical or derivable from the ones beside them, so the toolkit now derives them, each as the products spelled it by hand: command ids from the GLSP client name and the operation prefix, operation kinds from the prefix, the GLSP client identity from the key, the CLI and sidecar setting keys, the eight run-driver setting keys, the undo suffix and the scope argument from their one shared spelling. A value the product gives wins, so a product that keeps every line is unchanged. Deprecated, accepted and ignored: the three command ids nothing registers (createAgentToolPolicyFile, chatAddViewerEditor, chatAddViewerTask), the two chat fields nothing reads (name, operationPrefix) and the toolkit's mcpEnabledSetting. The chat's built-in node slash commands are gone: a profile names its own or offers none. The webview's three network behaviours are on unless a product sets them off. Claude-Session: https://claude.ai/code/session_01EToj6RJRMSSHQiqGNMU9wv
The webview's three network flags keep their off default: ndf-ide sets none of them, and on by default would have given its edges a queue capacity editor and changed its cross-document navigation. Their default is a design question for the product pass, not this refactor. A deprecated command id a product still spells stays out of the resolved profile (only the ids the platform registers come through), a blank GLSP client name, client id, setting key or suffix is derived like an absent one, the chat config's doc no longer names a dispatcher that is gone, and a test pins that a profile without node commands offers no node-creation slash command. Claude-Session: https://claude.ai/code/session_01EToj6RJRMSSHQiqGNMU9wv
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Phase 3 of the declutter plan: profile defaults and dead inputs. Platform only; no product repo changes. Every product's current profile still assembles to the same values.
Derived inputs (
sidecar-diagram-profile.ts)resolveSidecarProfileInputfills in what a product leaves out, each the way all five products spelled it by hand:commands.*(the.glsp.ids)<glspClientName>.glsp.<field>commands.sidecarEdit/sidecarSend<sidecarOperationPrefix>.sidecar.edit/.sendoperationKinds<prefix>.createEntityPort/.deleteEntityPortglspClientName,glspClientIdkey,glsp.<glspClientName>sidecarCommandSettingKeysidecarCommand, whensidecarCommandDefaultis givencliCommandSettingKeycliCommandacceptedOperationPrefixes[prefix]undoLabelSuffix(<key>)scopeArgKeyworkflowrunOutputDir,agentTools, ...)commandsis nowPartial<SidecarProfileCommandIds>; a given id wins, a blank one is ignored.createSidecarDiagramProfileresolves first and reads the resolved input everywhere, so the assembler itself did not change.Dead inputs
createAgentToolPolicyFile,chatAddViewerEditor,chatAddViewerTask: noregisterCommand, nocommandId()read, not in any product'scontributes.commands. Optional and@deprecatedinDiagramCommandIdsand the toolkit type, so a product that still spells them compiles.DiagramChatConfig.nameand.operationPrefix: nothing reads them (the storage options carry the live prefix). Optional and deprecated; the toolkit stops passing them.SidecarProfileInput.mcpEnabledSettingandSidecarEditBackendConfig.mcpEnabledSetting: declared, threaded, never read. Deprecated on the input, removed from the backend config.DEFAULT_NODE_COMMANDSinedit-capability.ts(task/agent/viewer/workflow): every sidecar product setsnodeCommands; a profile that names none now gets no node-creation slash command instead of wfpy's.Client flags: unchanged
The first version defaulted
graphSourceNavigation,networkPropertySectionsandnetworkNavigationLabelsto on. The review showed ndf-ide sets none of them, so on-by-default would have given its edges the queue-capacity editor and changed its cross-document navigation. Reverted; the flags read exactly as before. Their default is a question for the product pass (phase 5).Found by the review of this PR
profile.commandsand the webview payload; the resolver now emits only the ids the platform registers.glspClientName,glspClientId, setting key or suffix produced ids like.glsp.openDiagram; blank now derives like absent, the rule the command ids already had.DiagramChatConfigdoc still described an operation dispatcher; rewritten.nodeCommandsoffers no node-creation slash command (and keeps the edit commands and/layout).Tests
derived-profile-inputs.test.tspins every derived id and default, that a given value wins, the no-sidecar case, and that a minimal input assembles. Three existing expectations updated to the new behaviour (chat prefix no longer passed; a missing sidecar setting key is derived; the chat's node commands come from the profile).Typecheck 5/5, neutrality 5/5, extension-core 332, client 361, toolkit 335 (the one local failure is the known
variant-node-create-wizard.test.tstimeout, green in CI).Follow-ups, each in its own repo: the products can drop the derived lines and the deprecated fields; the HDL products can drop the wfpy
acpConnectorFilesandnoneSentinelvalues (phase 5 moves the agent-tools select behind the run driver).https://claude.ai/code/session_01EToj6RJRMSSHQiqGNMU9wv