v0.19.0
🚀 Features
-
(config) Add JSON Schema and wire it into config init - (c96bc6f) by @bchatard
Add bifrost.schema.json (draft-07) describing the full v1 .bifrost.yml:
strategy, servers, paths, settings, variables, hooks, and environments
with applications. additionalProperties is false throughout to mirror the
loader's strict KnownFields decoding.config init now emits a '# yaml-language-server: $schema=' modeline as the
first line so editors with the YAML language server validate against the
schema. Tests cover the modeline and the schema's JSON validity; the schema
was verified against the testdata configs and the generated scaffold.M17:bifrost.schema.json + config init schema modeline. Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
📚 Documentation
-
(roadmap) Mark M17 server-resolution and staging-path tests done - (2baff8b) by @bchatard
Both tasks were already satisfied by tests written during their feature
milestones under the project's TDD rule:- server resolution → internal/config/merge_test.go (M12)
- staging dir path → internal/transport/staging_test.go (M13)
No new tests needed; marking [x] to reflect actual coverage.
Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
-
(specs) Reconcile specs 01-03,07 with shipped implementation - (cc7ecaa) by @bchatard
- 01: current symlink documented as absolute target (matches SetCurrent
and the integration tests) - 02: fix stale hook lifecycle table (post_extract/pre_link replace the
obsolete pre_artifact entry) - 03: rewrite config section as show/check/init subcommands (M5), replace
the removed top-level init with release init, add --agent-binary and a
client-mode pointer to deploy/release commands - 07: document the BIFROST_KNOWN_HOSTS override for host-key verification
Spec 08 reviewed; already accurate.
M17:spec review and update. Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
- 01: current symlink documented as absolute target (matches SetCurrent
🧪 Testing
-
(cmd) Integration test for --agent-binary download bypass - (eee82d5) by @bchatard
Deploy over SSH with --agent-binary set and a deliberately unresolvable
version. If the flag were ignored, deployToServer would fall through to
ResolveAgentBinary and fail trying to download that tag; a successful
deploy proves the supplied binary was used and no download was attempted.M17:integration test for --agent-binary (no download). Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
-
(cmd) Integration test for SSH auth failure exit code - (dba401c) by @bchatard
Deploy against a container offering a valid but unauthorized key (the
host key, absent from authorized_keys) with the agent fallback disabled.
Host verification passes, authentication is rejected, and the resulting
error must be an ExitError with code 3 (Runtime) naming the server.M17:integration test for SSH auth failure. Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
-
(cmd) Integration test for unknown remote arch exit code - (9d31be2) by @bchatard
Replace the container's uname with one reporting Linux/i386 — an arch
absent from mapPlatform's table — and deploy without --agent-binary so
the download path runs platform detection first. The error must be an
ExitError with code 3 (Runtime) naming the server and the rejected arch.A waitForSSHReady probe gates the deploy: wait.ForListeningPort only
proves the port is open, leaving a window where sshd drops the handshake
with EOF, which would otherwise surface as a connect error instead.M17:integration test for unknown remote arch. Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
-
(cmd) Integration test for staging cleanup on agent failure - (a7101b8) by @bchatard
A failing post_extract hook makes the remote agent exit non-zero after
it has created and extracted the release — a mid-deploy failure. The test
asserts the release dir exists (agent reached extraction), the deploy
returns the agent's non-zero exit, and the deferred staging cleanup left
no bifrost-* directory behind under the staging base.M17:integration test for cleanup on mid-deploy failure. Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
-
(config) Cover flat config generator merge precedence - (d92beac) by @bchatard
Add precedence-through-the-generator tests for GenerateFlatConfig:
scalar override (env/app over global), variables precedence, shared
path concatenation across all three levels, and hook priority sorting.
The existing flatgen tests only exercised a single-level scenario.M17:flat config generator unit tests. Co-Authored-By:Claude Opus 4.8 noreply@anthropic.com
Commit Statistics
- 8 commit(s) contributed to the release.
- 0 day(s) passed between the first and last commit.
- 8 commit(s) parsed as conventional.
- 0 linked issue(s) detected in commits.
- 1 day(s) passed between releases.