Files
Termix/packages/plugin-sdk/CHANGELOG.md
T

5.9 KiB

Changelog

1.0.12

Plugin API 1.4.0.

Added

  • contributes.layouts and app.registerLayout() for a whole-app layout, with the ui:layout capability. Needs engine.api 1.4
  • contributes.themes for CSS-only themes, with the ui:theme capability. termix-plugin validate checks theme CSS and pack ships it
  • useShell() gives a layout the live shell: tabs, splits, hosts, docks, the command palette and the registries
  • TabStage and ShellConfirmCapture in @termix-ssh/plugin-sdk/ui, for a layout to place tabs
  • validateThemeCss() in @termix-ssh/plugin-sdk/manifest

Fixed

  • The manifest JSON schema lists the notify:hub and plugins:read capabilities

1.0.11

Plugin API 1.3.0.

Added

  • ctx.auth.issueUserToken() mints a short-lived session for a user, for calling Termix's own API as them from background work. Needs users:impersonate and engine.api 1.3
  • ctx.users.getLocale() reads a user's UI language. Needs users:read and engine.api 1.3

1.0.10

Changed

  • termix-plugin pack includes the plugin's LICENSE and NOTICE files, so third-party notices ship with it

1.0.9

Added

  • Worker entries in package.json termix.workers, each bundled on its own into dist/workers/<name>.js
  • A .wasm, .ttf or .otf import gives the file's bytes, in termix-plugin build and in plugin tests

Fixed

  • The plugin guide listed jszip, guacamole-lite and @anthropic-ai/sdk as shared packages, but they are bundled

1.0.8

Added

  • publicRateLimit on ctx.http.router(), for a plugin whose public routes serve a proxied page

1.0.7

Fixed

  • A migration file, or a part of one, holding only comments made core fail to start the plugin

1.0.6

Added

  • PLUGIN-GUIDE.md, a guide to building, testing and releasing a plugin, written so AI coding tools can read it too

1.0.5

Fixed

  • execCommand timeout errors no longer include the command, which could hold a sudo password
  • termix-plugin validate fails when a plugin ships migrations for some database engines but not all three
  • termix-plugin migrations loads the table definitions from a path with a # or other URL characters in it
  • Text, json and encrypted columns are longtext on MySQL in new migrations, so they are no longer capped at 64KB. Existing migrations keep text
  • i18next, react-dom, react-i18next and sonner are optional peer dependencies, so npm stops installing them into backend-only plugins
  • termix-plugin validate accepts a beta version like 1.1.0-beta.1 when the changelog's newest release is 1.1.0 or older, so beta releases pass

1.0.4

Fixed

  • termix-plugin build puts a plugin's own Tailwind classes in core's utilities layer, so responsive, hover and group variants and className overrides on SDK components work. Plain classes core already ships stay below core's utilities as before, while variants core ships go with the plugin's own so max-h-56 md:max-h-none keeps its order. Rebuild a plugin to pick it up

1.0.3

Plugin API 1.2.0.

Added

  • docs manifest field: an https link to the plugin's docs. Termix shows it as a Documentation link on the plugin's page and in its settings
  • env manifest field: the environment variables the plugin reads, listed in its docs and on its page
  • app.docs and useDocsUrl() for links into the plugin's own docs, and DocsLink in @termix-ssh/plugin-sdk/ui
  • PanelShell takes a docs link and shows it as a book icon in the header
  • @termix-ssh/plugin-sdk/openapi with buildOpenApi(), and termix-plugin openapi, which writes dist/openapi.json from the @openapi blocks in src/backend. build runs it too
  • @termix-ssh/plugin-sdk/docs with pluginDocsUrl(), pluginDocsPage() and pluginEnvVars()
  • termix-plugin validate warns when docs/index.md is missing or the source reads an env var the manifest does not list

1.0.2

Added

  • features manifest field: up to 20 short lines about what the plugin does, shown on its page. pluginFeatures() reads them

Changed

  • parseChangelog() and validateChangelog() flag a ## Unreleased section. Notes go under the version they ship in

Removed

  • Changelog.unreleased

1.0.1

Added

  • Plugin API 1.1
  • app.registerOnboardingStep() adds a step to onboarding, with OnboardingStepProps and OnboardingStepContribution. Needs engine.api 1.1
  • video manifest field: a YouTube link shown at the top of the plugin's page, read with youtubeVideoId()
  • @termix-ssh/plugin-sdk/changelog parses and checks a plugin's CHANGELOG.md
  • termix-plugin changelog prints one version's notes from CHANGELOG.md
  • termix-plugin dev installs a plugin on a running server and reinstalls it on every change. Needs developer mode and an admin API key
  • renderOnboardingStep() and registered.onboardingSteps() in renderWithApp()
  • AddButton, FormFooter, ListRow, ListRowAction, ListRowFolder, ListBadge and PanelList in @termix-ssh/plugin-sdk/ui
  • PanelSearch takes disabled, title, onEnter and inputRef, and SurfaceScope takes onClose

Changed

  • Release notes moved from CHANGELOG.json to CHANGELOG.md, which pack now ships. validate flags a leftover CHANGELOG.json
  • ConnectionScreen dropped errorMessage and retryLabel and gained onClose. ConnectionLogPanel dropped position
  • Plugin tests run in worker threads, since forked workers crash now and then on Windows
  • The test setup stubs ResizeObserver for Radix controls under jsdom
  • onboarding is a reserved plugin id

Deprecated

  • The onboarding.* action slots. Use registerOnboardingStep()

Removed

  • schema/changelog.schema.json

1.0.0

Added

  • Backend, frontend, database, manifest, capability and settings types for plugin API 1.0
  • Testing helpers and a Vitest preset for plugin tests
  • The @termix-ssh/plugin-sdk/ui component set
  • The termix-plugin CLI to build, validate, test, pack, sign and write migrations