Skip to content

release 0.2.0#127

Merged
jessefaler merged 42 commits into
mainfrom
dev
Jul 7, 2026
Merged

release 0.2.0#127
jessefaler merged 42 commits into
mainfrom
dev

Conversation

@jessefaler

Copy link
Copy Markdown
Owner

No description provided.

jessefaler and others added 30 commits May 24, 2026 20:43
Servers now persist an immutable runtime snapshot in the DB: configuration plus install script.
New servers resolve blueprint/software only at creation time.
Node config list and per-server config fetch now read from the server snapshot, so deleted blueprints no longer break normal daemon sync for newly created servers.
Install script endpoints also read from the stored server snapshot.
Legacy rows without snapshots get a compatibility fallback: if their blueprint still exists, Protocube rebuilds and persists the snapshot on first access.
Fix an issue where ReplaceValue strings loaded from stored config patches
were marshaled as unquoted JSON, causing config patch unmarshaling to
fail after restart. This prevented protocube from loading servers from
the database and completing startup.
- Update ServerData to include software ID, version, image, and limits
- Update S4J to handle new values returned in the server data response
- Update vSLS to use software ID, version, image, and limits from ServerData instead of the blueprint
- Remove version fetcher from vSLS
- Rename BuildServerSnapshot to BuildServerConfiguration
- Move BuildServerConfiguration into configuration.go
- Move mergeBlueprintState to blueprint/helpers.go and rename to MergeState
- Move MergeLimits, ValidateLimits, and CopyLimits to environment/helpers.go
- Move GetServerConfiguration into server.go and convert it to a Server method
- Rename ServerConfigurationResponse to ServerConfiguration on both Protocube and the daemon

Don’t attempt to reconstruct a server’s runtime configuration (ServerConfiguration) if it cannot be loaded. Instead, validate it, and if it is invalid, log an error and let the user handle it manually. This situation should only occur if database rows were modified directly.

The EnsureServerSnapshot logic added unnecessary boilerplate to HTTP handlers, and it’s preferable to keep the code simple rather than account for an unlikely edge case.
… the delete command if force is set

force on the kill and stop commands was left over from the old way vSLS handled server registration where vSLS only tracked servers that it created and removed them if they stopped running
Track install phase, installer container metadata, exit state, failure
reason, timestamps, and recent logs from the daemon. Expose install
state through daemon and Protocube APIs so clients can query install
progress without talking to the daemon directly.

Allow io_weight 0 to omit Docker blkio weight for local Docker/WSL
testing environments that do not support io.weight.
remove changes by Dani
Keep install info responses focused on lifecycle metadata only.
Route installer log visibility through the existing server logs endpoint,
and record the install lock owner so servers waiting on shared base
installation can surface the active installer logs.
Add warmup and post-warmup install-script fields with defaults and validation.
Run daemon-owned warmup after install using lifecycle phases, online signal
matching, timeout/retry policy, graceful shutdown, and post-warmup execution.
Add parser coverage for warmup defaults, explicit warmup fields, and invalid
failure policies. Add daemon warmup tests for defaulting, retry attempt
semantics, and startup signal matching.
Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.32 to 1.5.33.
- [Release notes](https://github.com/qos-ch/logback/releases)
- [Commits](qos-ch/logback@v_1.5.32...v_1.5.33)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-classic
  dependency-version: 1.5.33
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#103)

Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.32 to 1.5.33.
- [Release notes](https://github.com/qos-ch/logback/releases)
- [Commits](qos-ch/logback@v_1.5.32...v_1.5.33)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-classic
  dependency-version: 1.5.33
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [com.github.retrooper:packetevents-velocity](https://github.com/retrooper/packetevents) from 2.11.2 to 2.12.1.
- [Release notes](https://github.com/retrooper/packetevents/releases)
- [Changelog](https://github.com/retrooper/packetevents/blob/2.0/CHANGELOG.md)
- [Commits](retrooper/packetevents@v2.11.2...v2.12.1)

---
updated-dependencies:
- dependency-name: com.github.retrooper:packetevents-velocity
  dependency-version: 2.12.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.21.3 to 2.21.4.
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.21.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.33 to 1.5.34.
- [Release notes](https://github.com/qos-ch/logback/releases)
- [Commits](qos-ch/logback@v_1.5.33...v_1.5.34)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-classic
  dependency-version: 1.5.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#109)

Bumps [com.github.retrooper:packetevents-velocity](https://github.com/retrooper/packetevents) from 2.12.1 to 2.12.2.
- [Release notes](https://github.com/retrooper/packetevents/releases)
- [Changelog](https://github.com/retrooper/packetevents/blob/2.0/CHANGELOG.md)
- [Commits](retrooper/packetevents@v2.12.1...v2.12.2)

---
updated-dependencies:
- dependency-name: com.github.retrooper:packetevents-velocity
  dependency-version: 2.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [com.github.retrooper:packetevents-velocity](https://github.com/retrooper/packetevents) from 2.12.1 to 2.12.2.
- [Release notes](https://github.com/retrooper/packetevents/releases)
- [Changelog](https://github.com/retrooper/packetevents/blob/2.0/CHANGELOG.md)
- [Commits](retrooper/packetevents@v2.12.1...v2.12.2)

---
updated-dependencies:
- dependency-name: com.github.retrooper:packetevents-velocity
  dependency-version: 2.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.21.4 to 2.22.0.
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#113)

Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.33 to 1.5.34.
- [Release notes](https://github.com/qos-ch/logback/releases)
- [Commits](qos-ch/logback@v_1.5.33...v_1.5.34)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-classic
  dependency-version: 1.5.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/mattn/go-colorable](https://github.com/mattn/go-colorable) from 0.1.14 to 0.1.15.
- [Commits](mattn/go-colorable@v0.1.14...v0.1.15)

---
updated-dependencies:
- dependency-name: github.com/mattn/go-colorable
  dependency-version: 0.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/mattn/go-colorable](https://github.com/mattn/go-colorable) from 0.1.14 to 0.1.15.
- [Commits](mattn/go-colorable@v0.1.14...v0.1.15)

---
updated-dependencies:
- dependency-name: github.com/mattn/go-colorable
  dependency-version: 0.1.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This should allow for cleaner errors when a server's node is not reachable and allow us to avoid unnecessary requests to a disconnected node.

Before, the node client would be kept and Protocube would still try to make requests to the node even after it disconnected, resulting in downstream connection errors.

Now the client is removed when the node disconnects and Protocube will return a clear node unavailable error instead.

Before:
502 Bad Gateway: request creation failed: connection refused

After:
503 Service Unavailable: node <node-id> for server <server-id> is not connected: node unavailable
Sync() already syncs environment settings, so onBeforeStart was running
InSituUpdate twice and logging the same limit modification message.
…114)

Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.20.0 to 0.21.0.
- [Commits](golang/sync@v0.20.0...v0.21.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sync
  dependency-version: 0.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot Bot and others added 12 commits June 14, 2026 10:42
)

Bumps gopkg.in/ini.v1 from 1.67.2 to 1.67.3.

---
updated-dependencies:
- dependency-name: gopkg.in/ini.v1
  dependency-version: 1.67.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…116)

Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.45.0 to 0.46.0.
- [Commits](golang/sys@v0.45.0...v0.46.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sys
  dependency-version: 0.46.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…lugin (#118)

Bumps [org.sonatype.central:central-publishing-maven-plugin](https://github.com/sonatype/central-publishing-maven-plugin) from 0.10.0 to 0.11.0.
- [Commits](https://github.com/sonatype/central-publishing-maven-plugin/commits)

---
updated-dependencies:
- dependency-name: org.sonatype.central:central-publishing-maven-plugin
  dependency-version: 0.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…lugin (#119)

Bumps [org.sonatype.central:central-publishing-maven-plugin](https://github.com/sonatype/central-publishing-maven-plugin) from 0.10.0 to 0.11.0.
- [Commits](https://github.com/sonatype/central-publishing-maven-plugin/commits)

---
updated-dependencies:
- dependency-name: org.sonatype.central:central-publishing-maven-plugin
  dependency-version: 0.11.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.34 to 1.5.37.
- [Release notes](https://github.com/qos-ch/logback/releases)
- [Commits](qos-ch/logback@v_1.5.34...v_1.5.37)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-classic
  dependency-version: 1.5.37
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [com.github.retrooper:packetevents-velocity](https://github.com/retrooper/packetevents) from 2.12.2 to 2.13.0.
- [Release notes](https://github.com/retrooper/packetevents/releases)
- [Changelog](https://github.com/retrooper/packetevents/blob/2.0/CHANGELOG.md)
- [Commits](retrooper/packetevents@v2.12.2...v2.13.0)

---
updated-dependencies:
- dependency-name: com.github.retrooper:packetevents-velocity
  dependency-version: 2.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#124)

Bumps [com.github.retrooper:packetevents-velocity](https://github.com/retrooper/packetevents) from 2.12.2 to 2.13.0.
- [Release notes](https://github.com/retrooper/packetevents/releases)
- [Changelog](https://github.com/retrooper/packetevents/blob/2.0/CHANGELOG.md)
- [Commits](retrooper/packetevents@v2.12.2...v2.13.0)

---
updated-dependencies:
- dependency-name: com.github.retrooper:packetevents-velocity
  dependency-version: 2.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/klauspost/compress](https://github.com/klauspost/compress) from 1.18.6 to 1.19.0.
- [Release notes](https://github.com/klauspost/compress/releases)
- [Commits](klauspost/compress@v1.18.6...v1.19.0)

---
updated-dependencies:
- dependency-name: github.com/klauspost/compress
  dependency-version: 1.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@jessefaler
jessefaler merged commit 44f3600 into main Jul 7, 2026
11 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants