Repository navigation
0.84.2
Immutable
release. Only release title and notes can be modified.
Release Notes
Built on ty 0.0.84. No upstream changes; this
is a fork-only patch release.
ty_plugin_protocol and ty_plugin_sdk are bumped to 0.0.6.
Python plugins on the Monty runtime
Plugins can now be authored in Python and executed inside the embedded
Monty sandbox — no Rust toolchain required. The wire
protocol moves from 0.4 to 0.5 for the new monty runtime kind; the change is additive, so
plugins built against earlier releases continue to load unchanged.
- A new
montyplugin runtime executes a.pyartifact inside Monty's restricted Python
subset: no third-party imports, filesystem, environment, or clock access. Thety.plugin_sdk
module shipped inside thetywheel is prepended to the plugin source, so its hook
decorators (@on_call_return, ...), manifest helpers, and response builders are ambient
names in plugin files. - Standard builds include WASM, embedded Monty, and optional Monty worker-process support.
Python plugins run in-process by default, without an external runtime dependency. Install
ty-extended[monty-workers]and setplugins.monty-mode = "worker"to enable crash isolation
on supported platforms with Python 3.10+. Workers are resolved fromTY_MONTY_BIN, then
montyonPATH; worker startup failures report a plugin error. - Semantic-hook requests now carry the plugin's resolved configuration in
context.config,
matching whatbuild-project-indexrequests already sent. - Project configuration accepts
runtime = "monty"for[[tool.ty.plugins.plugin]]entries, and
installed-package discovery maps{"kind": "monty"}manifests. Feature-disabled builds
reportmontyas an unsupported runtime through the existing settings diagnostic. PluginResponse::Dependenciesnow serializes through aDependenciesResponsewrapper — the
previous internally-tagged newtype sequence could not round-trip on the wire, so no plugin
could have emitted it before.- A runnable end-to-end project lives at
examples/monty/; authoring guidance is in
docs/plugin-authoring.md.examples/minidjango/ports the referenceMiniDjangoPlugin
(class transforms, project indexing, cross-symbol contributions, virtual types, settings
claims, lookup diagnostics) to Python over an identical project, somontyandwasm
runs can be diffed side by side.
Rust plugin API
SemanticContextstruct literals must include the newconfigfield.- Construct
PluginResponse::Dependencieswith aDependenciesResponsewrapper.
Install ty 0.84.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/regularkevvv/ty-extended/releases/download/v0.84.2/ty-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/regularkevvv/ty-extended/releases/download/v0.84.2/ty-installer.ps1 | iex"Download ty 0.84.2
Verifying GitHub Artifact Attestations
The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:
gh attestation verify <file-path of downloaded artifact> --repo regularkevvv/ty-extendedYou can also download the attestation from GitHub and verify against that directly:
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>