You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: energy starvation — distribute ticks to agents only, remove root exemption
Agents were receiving 0 energy per tick because root's energy_share (100.0)
dominated the total, causing floor() to round smaller shares to 0.
- Energy distribution now filters by actor_type='agent' (zero DB migration)
- Removed hardcoded root lifecycle exemption (root follows lineage checks)
- Added update_energy_share lifecycle operation for runtime share adjustment
- Added is_finite() validation to prevent NaN/Infinity poisoning
- Windows IPC: file-path pipe (\.\pipe\punkgo-kernel) fixes Access Denied
- Daemon PID lockfile with duplicate instance detection
- Bumped to 0.3.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+20Lines changed: 20 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,26 @@ All notable changes to PunkGo Kernel will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## [0.3.0] - 2026-03-13
9
+
10
+
### Fixed
11
+
12
+
-**Energy starvation bug** — agents received 0 energy per tick due to `floor()` rounding when root's `energy_share` dominated the total. Distribution now targets agents only (`actor_type = 'agent'`); humans receive one-time initial balance
13
+
-**Windows IPC "Access Denied"** — default endpoint changed to file-path pipe (`\\.\pipe\punkgo-kernel`) to avoid `GenericNamespaced` permission issues
14
+
-**NaN/Infinity validation** — `update_energy_share` rejects non-finite values that would poison tick distribution
15
+
16
+
### Added
17
+
18
+
-**`update_energy_share` lifecycle operation** — runtime adjustment of an agent's energy share via `mutate` action
19
+
-**PID lockfile** (`daemon.pid`) — daemon startup detects and prompts to kill existing instances
20
+
-**`PUNKGO_IPC_ENDPOINT` env var** — override the default IPC endpoint
21
+
22
+
### Changed
23
+
24
+
-**Root is genesis-only** — removed hardcoded root exemption from lifecycle authorization; root now follows lineage-based checks like any human
25
+
-**Root default `energy_share`** — 100.0 → 0.0 for new databases (existing databases unaffected due to `ON CONFLICT DO NOTHING`)
26
+
-**PIP-001 §3** — clarified that share distribution applies to agents only
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,7 +54,7 @@ Every action goes through a **7-step pipeline**:
54
54
55
55
### Energy System
56
56
57
-
Energy is produced continuously, anchored to the machine's hardware compute power (INT8 TOPS). Each tick, energy is distributed proportionally among active actors based on their shares. The kernel itself holds no energy (energy neutrality).
57
+
Energy is produced continuously, anchored to the machine's hardware compute power (INT8 TOPS). Each tick, energy is distributed proportionally among active **agents** based on their shares. Humans (including root) receive a one-time initial balance but do not participate in tick-based distribution. The kernel itself holds no energy (energy neutrality).
0 commit comments