Skip to content

feat(compat): support DSH 0.2.2-alpha.3 and 0.2.2-rc.1 - #29

Merged
cherrchen merged 2 commits into
mainfrom
feat/adapt-1111
Nov 11, 2026
Merged

cherrchen merged 2 commits into
mainfrom
feat/adapt-1111

Conversation

@cherrchen

@cherrchen cherrchen commented Nov 11, 2026 •

Copy link
Copy Markdown
Owner

Summary

Extends the verified compatibility range from 0.2.2-alpha.2 to the latest dsh-v0.2.2-rc.1 by adding the two releases in between:

  • 0.2.2-alpha.3
  • 0.2.2-rc.1

The development pin and committed lockfile stay on 0.2.0-rc.2.

Interface review (upstream tags)

  • dsh-v0.2.2-alpha.2 → dsh-v0.2.2-alpha.3: 2315 files changed. This is a real feature release: the host runtime moves to Cordis 4.0.6-alpha.2 / schemastery 3.18.6-alpha.2, the host vendor sources pick up the Cordis 4.1.0 changes, and the client ships the new context menu package and plugin-manager config slots.
  • dsh-v0.2.2-alpha.3 → dsh-v0.2.2-rc.1: 387 files, a release-version-only republish (111 seam manifests, one version line each). It moves the host runtime to Cordis 4.1.0 / schemastery 3.19.0.

The packages this plugin consumes were checked against the plugin's actual seams:

Seam Result
Host Git / subprocess / credentials / working-directory Version bumps only; resolveExecutable, spawn, argv handling and the credentials key/ref contract are unchanged.
Commit message / LLM dsh-llm makes GenerateOptions generic with an empty default LlmRequestPurposeMap; the plugin never passed purpose, and stream text-delta / currentSelection() keep their shape.
Session / RPC Projection updates now bundle multiple changed keys per committed event (changes[]); SessionSummary.cwd and projectionValues are unchanged, so effectiveWorkspacePath keeps working.
Sidebar / slots Sidebar-right adds contextMenus, openResource.destination and SidebarRightTabInfo.panel.isFloating. The plugin calls openTab / openResource without placement overrides and reads only tab from useTabInfo().
Settings Adds settings.section.icon; configForms.get, the volatile reference semantics and plugins.bundle.config registration are unchanged.
Primitives / icons / Diff Additions only (Menu contextual options, MENU_TRANSITION_MS, useMarkdownDelegate, save icons). DiffBlock, diffTotals, MarkdownText, Toast, Modal, Tag, Switch, Pill and every Medium glyph keep their contracts.

Adaptation

  • Composer tooltip. 0.2.2-alpha.3 makes the docked composer seat a containing block for fixed descendants (will-change: transform), and the host now requires fixed overlays in the composer to portal to document.body. The branch/changes tooltip in conversation.input.left now goes through src/compat/dsh-tooltip.tsx, which probes the installed Tooltip signature (portal exists from 0.1.7-alpha.1) and forwards portal: true where supported. The 0.1.5 / 0.1.6 copies ignore the extra prop.
  • Declarations. Both releases are added to SUPPORTED_DSH_RELEASES and CREDENTIALS_SEAM_DSH_RELEASES, every DSH peer OR, and engines.dsh.
  • Runtime ranges. Added || ~4.0.6-alpha.2 to the Cordis peer and || ~3.18.6-alpha.2 to the schemastery dependency so the exact declared-floor gate accepts alpha.3. rc.1's stable 4.1.0 / 3.19.0 fall inside the existing base ranges.
  • CI. Every published 0.2.2 lane now uses Node 24.9.0; older hosts stay on 22.19.0.
  • Not added to peer OR. @deepseek-ai/dsh-client-ui-context-menu only exists from alpha.3 and is a runtime import of sidebar-right; adding it to a range covering older hosts would break their app-boot preflight. The host composition provides it, and the plugin source does not import it.

Validation

  • 0.2.2-rc.1 first passed as an unlisted candidate (DSH_COMPAT_MODE=warn) across all gates.
  • 0.2.2-alpha.3's first candidate failed only the compat gate because the old ranges rejected the host copies 4.0.6-alpha.2 / 3.18.6-alpha.2; after adding the OR clauses its formal lane passed every gate.
  • Formal isolated matrix over all 23 supported releases: bootstrap, applicable upgrade/install, peers, compat, tests, docs, build, artifact and pack all pass. The two new lanes and the development pin each pass 1043 unit tests and 7 artifact checks.
  • Browser fixture suite: 28/28 on the development pin and 28/28 on 0.2.2-rc.1. (An earlier rc.1 run flaked on one accounts dialog test; that test passes in isolation and on the final run.)
  • The tooltip compatibility test now hovers the anchor and asserts the bubble's host: document.body where the installed Tooltip supports portal, the render container without data-portal where it does not. This replaces the probe-only assertion raised in review.
  • Evidence: docs/reference/dsh-adaptation-20261111.json.

Not covered

  • No local Linux/Windows run; PR CI passed on Ubuntu, macOS and Windows.
  • No full DSH Web/Desktop profile installation or native enhancement unload run.
  • No real remote account acceptance.

CI passed after the review follow-up.

@cherrchen
cherrchen marked this pull request as ready for review November 11, 2026 07:34

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Devin Review: 1 flag

Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)

Devin Review

@cherrchen

Copy link
Copy Markdown
Owner Author

Addressed the review flag: the composer tooltip test now hovers the anchor and asserts the bubble host — where the installed Tooltip supports , the render container (without ) where it does not. It fires both mouse- and pointer-event paths so the pointer switch is covered. Refreshed the 23-lane matrix evidence (1043 tests per lane) and pushed ; CI is green.

@cherrchen
cherrchen merged commit e9d10a1 into main Nov 11, 2026
27 checks passed
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