Skip to content

feat(dial9): serve skills from the dial9 crate with a viewer fallback - #24

Draft
Fluzko wants to merge 1 commit into
symposium-dev:mainfrom
Fluzko:dial9-serving-edge
Draft

Fluzko wants to merge 1 commit into
symposium-dev:mainfrom
Fluzko:dial9-serving-edge

Conversation

@Fluzko

@Fluzko Fluzko commented Sep 21, 2026

Copy link
Copy Markdown

Closes #23. Part of symposium-dev/symposium#294.

Draft on purpose: do not merge before dial9 0.5.2 is published on crates.io (dial9-rs/dial9#937). That is the first release where the dial9 crate ships its own skills. If this lands first, projects on that version would get no skills at all.

The problem

The dial9 entry gets its skills from dial9-viewer, a crate that projects do not depend on. Symposium can only match a project's version when the crate is one the project declares, so today every project gets the newest skills no matter which dial9 version it uses. A project on dial9-tokio-telemetry 0.3 receives skills for APIs it does not have.

The change

The entry now serves skills from dial9 itself, which is what projects declare. A project on dial9 0.5.2 or newer gets the skills that match its version. Everything else (older versions, prereleases, projects that only declare dial9-tokio-telemetry) keeps getting the newest dial9-viewer skills, exactly as today. Only one of the two ever applies, so nothing installs twice.

The comments in the file record the three things that are easy to break: the list of crates that gates the entry, why the fallback is written as a negation, and the accepted trade-off that fallback projects may get skills newer than their version.

Verified

Ran real cargo agents sync flows against this file, with a Symposium built from main and with the published 0.4.0, on an isolated configuration: projects at the floor, below it, on a prerelease, declaring only dial9-tokio-telemetry, declaring only a pinned dial9-viewer, workspaces mixing versions, upgrading from the current entry, and bumping or downgrading the dependency. All behave as described above. The at-the-floor case used a locally packaged dial9 0.5.2, since the release is not out yet; it should be re-run from crates.io once it is.

Known limits

Two situations are unchanged by this file and documented on the dial9 side: a path or git dependency on dial9 installs from the source tree, where symlinked files are dropped until symposium-dev/symposium#288 lands (a fix is in progress); and a project that also declares dial9-viewer and consents to it gets each skill twice.

This branch has not been deployed

No deployments
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.

Symposium & Dial9: Point the dial9 entry at the crates projects actually depend on

1 participant