Skip to content

Commit 156143a

Browse files
committed
Prepare next release
1 parent e51e705 commit 156143a

7 files changed

Lines changed: 45 additions & 25 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [v0.4.0]
9+
10+
### Added
11+
12+
### Changed
13+
814
## [v0.3.0] - 2025-08-29 - The one with global logs
915

1016
### Added
@@ -80,7 +86,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8086
- LuaRocks package.
8187
- GitHub Actions CI.
8288

83-
[v0.3.0]: https://github.com/Kyonru/feather/compare/v0.2.0...HEAD
89+
[v0.4.0]: https://github.com/Kyonru/feather/compare/v0.3.0...HEAD
90+
[v0.3.0]: https://github.com/Kyonru/feather/compare/v0.2.0...v0.3.0
8491
[v0.2.0]: https://github.com/Kyonru/feather/compare/v0.1.3...v0.2.0
8592
[v0.1.3]: https://github.com/Kyonru/feather/compare/v0.1.2...v0.1.3
8693
[v0.1.2]: https://github.com/Kyonru/feather/compare/v0.1.1...v0.1.2

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ It lets you **inspect logs, variables, performance metrics, and errors in real-t
2525
1. **Download Feather**
2626

2727
- Download the latest release from the [releases page](https://github.com/Kyonru/feather/releases)
28-
- Or install it via [Luarocks](https://luarocks.org/)
28+
- Or install it via [Luarocks](https://luarocks.org/modules/kyonru/feather)
2929

3030
```bash
3131
luarocks install feather

ROADMAP.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
## 0.5.0 – Community Release
1414

1515
- [ ] Plugin API improvements
16-
- [ ] Optional API key for remote debugging
1716
- [ ] Expression evaluator (`eval` in game)
1817
- [ ] Entity/component list
1918
- [ ] Bounding box overlay toggle
@@ -25,7 +24,7 @@
2524
## 0.6.0 – Stability & Compatibility
2625

2726
- [ ] Full OS & Love2D version testing (Windows/macOS/Linux)
28-
- [ ] Add remote debugging
27+
- [ ] Add remote debugging with WebSockets
2928
- [ ] Fix edge cases for large log/variable data
3029
- [ ] Configurable performance sampling interval
3130
- [ ] Low-overhead mode for production builds, scripts and plugins to disable code in production
@@ -35,6 +34,7 @@
3534
## 0.7.0 – Plugin System Maturity
3635

3736
- [ ] Add Tests
37+
- [ ] Connect to multiple servers / games
3838
- [ ] Stable public plugin API documentation
3939
- [ ] Runtime load/unload plugins
4040
- [ ] Versioned plugin compatibility

docs/plugins.md

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ To create a plugin, you need to create a Lua module that exports a table with th
1010
- `update(dt, feather)`: This function is called every frame.
1111
- `onerror(msg, feather)`: This function is called when an error occurs. Errors in this function will close the game abruptly.
1212
- `handleRequest(request, feather)`: This function is called when a request is received.
13+
- `handleActionRequest(request, feather)`: This function is called when an action request is received.
14+
- `handleParamsUpdate(request, feather)`: This function is called when a params update request is received.
1315
- `finish(feather)`: This function is called when the server is closed.
1416
- `getConfig()`: This function returns the configuration for the plugin. Sent to the client app.
1517

@@ -38,6 +40,16 @@ function MyPlugin:handleRequest(request, feather)
3840
-- Do something with the request and feather
3941
end
4042

43+
function FeatherPlugin:handleActionRequest(request, feather)
44+
--- Do something with the request and feather
45+
end
46+
47+
function FeatherPlugin:handleParamsUpdate(request, feather)
48+
--- Do something with the request and feather
49+
return {}
50+
end
51+
52+
4153
function MyPlugin:finish(feather)
4254
-- Do something with the feather
4355
end
@@ -54,45 +66,45 @@ end
5466
return MyPlugin
5567
```
5668

57-
## Registering a plugin
58-
59-
To register a plugin, you need to create an instance of it and pass it to the FeatherPluginManager. The FeatherPluginManager will handle the lifecycle of the plugin and call the appropriate functions.
60-
61-
```lua
62-
local MyPlugin = require("my-plugin")
63-
64-
local plugin = FeatherPluginManager.createPlugin(MyPlugin, "my-plugin", {
65-
-- Plugin options
66-
})
67-
```
68-
69-
## Plugin lifecycle
69+
### Plugin lifecycle
7070

7171
The FeatherPluginManager will handle the lifecycle of the plugin and call the appropriate functions. Here's a breakdown of the plugin lifecycle:
7272

73-
### Initialization
73+
#### Initialization
7474

7575
- `init(config)`: This function is called when the plugin is initialized.
7676
- `getConfig()`: This function returns the configuration for the plugin when the Feather app is initialized. Sent to the client app.
7777

78-
### Request Handling
78+
#### Request Handling
7979

8080
- `handleRequest(request, feather)`: This function is called when a request is received. (GET)
8181
- `handleActionRequest(request, feather)`: This function is called when an action request is received. (POST)
8282
- `handleParamsUpdate(request, feather)`: This function is called when a params update request is received. (PUT)
8383

84-
### Update
84+
#### Update
8585

8686
- `update(dt, feather)`: This function is called every frame. (Called after the request handling)
8787

88-
### Error Handling
88+
#### Error Handling
8989

9090
- `onerror(msg, feather)`: This function is called when an error occurs. Errors in this function will close the game abruptly. No frame is rendered after this function is called.
9191

92-
### finish
92+
#### finish
9393

9494
- `finish(feather)`: This function is called when the server is closed.
9595

96+
## Registering a plugin
97+
98+
To register a plugin, you need to create an instance of it and pass it to the FeatherPluginManager. The FeatherPluginManager will handle the lifecycle of the plugin and call the appropriate functions.
99+
100+
```lua
101+
local MyPlugin = require("my-plugin")
102+
103+
local plugin = FeatherPluginManager.createPlugin(MyPlugin, "my-plugin", {
104+
-- Plugin options
105+
})
106+
```
107+
96108
## Plugin options
97109

98110
The plugin options are passed to the plugin's constructor. Here's an example of a plugin with options:
@@ -162,6 +174,7 @@ Here are some examples of Feather plugins:
162174

163175
- [Hump's Signal Plugin](../src-lua/plugins/hump/signal/README.md)
164176
- [Lua State Machine Plugin](../src-lua/plugins/lua-state-machine/README.md)
177+
- [Screenshot Plugin](../src-lua/plugins/screenshots/README.md)
165178

166179
## Plugin documentation
167180

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "feather",
33
"private": true,
4-
"version": "0.3.0",
4+
"version": "0.4.0",
55
"type": "module",
66
"scripts": {
77
"dev": "concurrently \"vite\" \"sh ./scripts/watch-lua.sh\"",

src-lua/feather/init.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ local get_current_dir = require(PATH .. ".utils").get_current_dir
1414
local format = require(PATH .. ".utils").format
1515
local serverUtils = require(PATH .. ".server_utils")
1616

17-
local FEATHER_VERSION = "0.3.0"
17+
local FEATHER_VERSION = "0.4.0"
1818

1919
---@class Feather: FeatherConfig
2020
---@field lastDelivery number

src-tauri/tauri.conf.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://schema.tauri.app/config/2",
33
"productName": "Feather",
4-
"version": "0.3.0",
4+
"version": "0.4.0",
55
"identifier": "com.kyonru.love.feather",
66
"build": {
77
"beforeDevCommand": "npm run dev",

0 commit comments

Comments
 (0)