18 Commits
Author SHA1 Message Date
BastiaanandClaude Opus 5.5 2cca280e30 Use controller.hosts.records for the host datastore (#520)
clusterio #1180 made controller.hosts a HostManager. The datastore with
set and the update event now lives on controller.hosts.records.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 14:29:58 +00:00
bbassieandClaude Opus 5.5 fa26bc380e Drop the empty web entrypoints
clusterio#1140 no longer reports plugins without a web entrypoint as
failing to load, so the empty web modules from 99d47cf1 can go. The
browser tsconfig of these plugins now checks index.ts instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:58:51 +00:00
bbassieandClaude Opus 5.5 389004d652 Replace RequestError with the HTTP-style error classes
clusterio#999 removed RequestError. Handlers now throw NotFoundError,
ValidationError, ConflictError or UnavailableError, and exp_auto_restart
treats any ClientError from the host as a final refusal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:43:25 +00:00
bbassieandClaude Opus 5.5 e84bd97b99 Build plugin web bundles with Vite
clusterio#1130 replaced webpack with Vite and the web interface rejects
webpack-built plugin bundles. Each plugin now builds with clusterioPlugin()
from @clusterio/web_ui/vite.mjs, and the webpack configs and dependencies
are gone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:43:25 +00:00
Cooldude2606 82abc2c332 7.0.4 2026-10-17 16:54:48 +01:00
Cooldude2606 99d47cf114 Fix web module not loading 2026-10-17 16:54:13 +01:00
Cooldude2606 383893e0cd Fix build for two plugins 2026-10-17 00:09:44 +01:00
Cooldude2606 f3553dd570 Fix publish issue in some plugins 2026-10-17 00:05:24 +01:00
Cooldude2606 cf7ea7f8fb Fix dev dependencies 2026-10-16 14:26:36 +01:00
Cooldude2606 9d19f4eaea 7.0.2 2026-10-16 14:13:17 +01:00
BastiaanandClaude Opus 5.5 8d7d5ff10f Add a readme to every plugin and list them in the main readme (#505)
Commands, Permission Groups, Player Statistics, Reports, Roles, Scenario,
Server UPS and Module Utilities get a readme covering their config,
permissions, commands, web pages and Lua and Node API.

The existing readmes are brought up to date: Auto Restart now that
clusterio marks a restart after a plugin install, Discord Auth gets the
code timeout, command aliases and its Lua API, and the GUI guide says what
the plugin is and has its toolbar examples and an iterator name fixed.

The main readme gets a Plugins section listing each plugin by name and
package with a one line description.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 23:12:48 +01:00
Bastiaan e25049397e Merge pull request #496 from bbassie/chore/optional-peer-deps
Mark controller and host as optional peer dependencies
2026-10-14 22:49:25 +01:00
Cooldude2606 26a801da5e Bump node requirement 2026-10-13 21:06:46 +01:00
Cooldude2606 cdf0cd2e04 Add npmignore to enable packing 2026-10-13 21:01:48 +01:00
BastiaanandClaude Opus 5.5 ea9bf1fb78 Construct plugins with a static fromContext (#487)
Each plugin class now has a private constructor and a static async
fromContext(context) that loads its datastores, constructs the instance
and attaches its handlers and hooks. This replaces the public constructor
followed by init(), and AutoRestart's start().

Datastores are loaded before construction and passed to the constructor,
so the definite assignment assertions on them are gone. Tests build the
plugins through fromContext and pass a wrapped logger in the context
instead of overwriting plugin.logger before init().

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 01:19:53 +01:00
bbassieandClaude Opus 5.5 8dbe1b4a19 Drop the empty web entrypoint from exp_auto_restart
web/index.tsx is empty, so the web UI failed to load the plugin with
"must export either a default function or WebPlugin". Plugins without a
web UI, like clusterio's statistics_exporter, keep the empty file only as
the webpack entry and expose just the plugin info and package.json. That
is still enough for the web UI to show and edit the plugin's controller
config.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 00:13:38 +00:00
Cooldude2606 9e9efeff75 Add webui to exp_auto_restart 2026-09-26 23:26:00 +01:00
bbassieandClaude Fable 5.1 5a6f3b46fe Add exp_auto_restart plugin
Restarts hosts, and optionally the controller, that report a pending
restart once no players have been online for a configurable time. Only
loaded on the controller: it counts players from the users online on
running instances, sends HostRestartRequest through the existing core
path, and starts the instances that were running once the host reports
back. Each host process is asked at most once, keyed on its process
start time, so a stale system info poll cannot trigger a second restart.

Uses the function-style entrypoint clusterio now documents, so it loads
without the deprecated class export warning.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 19:39:31 +00:00