Skip to content

Commit c5f4fac

Browse files
symphony: bake room server into codex image (#268)
## Summary - Add Symphony as an image-input flake dependency so index can bake the room-server package. - Include symphony-room-server in the ix/symphony-codex image and bump the image tag to 2026-05-28. - Flip the eval invariant so the image must carry the room-server binary it starts. ## Validation - nix run nixpkgs#nixfmt-rfc-style -- --check flake.nix lib/default.nix lib/overlay.nix images/dev/symphony-codex/default.nix tests/default.nix - nix --option eval-cache false eval --raw .#lib.pkgs.symphony-room-server.name - nix --option eval-cache false eval --json .#packages.x86_64-linux.symphony-codex.name ## Note - Full x86_64 eval checks cannot build on spark's aarch64-linux host; they stop on platform mismatch before this image assertion can run.
1 parent 15a76a6 commit c5f4fac

6 files changed

Lines changed: 45 additions & 5 deletions

File tree

flake.lock

Lines changed: 26 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@
4949
url = "github:NousResearch/hermes-agent/v2026.5.16";
5050
inputs.nixpkgs.follows = "nixpkgs";
5151
};
52+
53+
symphony = {
54+
url = "github:indexable-inc/symphony/main";
55+
inputs.nixpkgs.follows = "nixpkgs";
56+
inputs.rust-overlay.follows = "rust-overlay";
57+
};
5258
};
5359

5460
outputs =
@@ -58,6 +64,7 @@
5864
determinate,
5965
home-manager,
6066
hermes-agent,
67+
symphony,
6168
clippy-fork,
6269
...
6370
}:
@@ -101,6 +108,7 @@
101108
determinate
102109
home-manager
103110
hermes-agent
111+
symphony
104112
clippy-fork
105113
;
106114
};

images/dev/symphony-codex/default.nix

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
{
33
ix.image = {
44
name = "ix/symphony-codex";
5-
tag = "2026-05-27";
5+
tag = "2026-05-28";
66
};
77

88
networking.hostName = "symphony-codex";
@@ -32,6 +32,7 @@
3232
pkgs.pkg-config
3333
pkgs.python3
3434
pkgs.ripgrep
35+
pkgs.symphony-room-server
3536
pkgs.unzip
3637
pkgs.which
3738
pkgs.zstd

lib/default.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
determinate,
88
home-manager,
99
hermes-agent,
10+
symphony,
1011
clippy-fork,
1112
cliArtifacts ? { },
1213
}:
@@ -43,6 +44,7 @@ let
4344
inherit
4445
lib
4546
packageRegistry
47+
symphony
4648
buildIxRustTool
4749
clippy-fork
4850
writePythonApplication

lib/overlay.nix

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
lib,
33
packageRegistry,
4+
symphony,
45
buildIxRustTool,
56
clippy-fork,
67
writePythonApplication,
@@ -34,3 +35,6 @@ lib.listToAttrs (
3435
packageRegistry.overlayEntriesFor packageSystem
3536
)
3637
)
38+
// {
39+
symphony-room-server = symphony.packages.${packageSystem}.room-server;
40+
}

tests/default.nix

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2320,12 +2320,12 @@ let
23202320
message = "symphony-codex image should set the expected public OCI image name";
23212321
}
23222322
{
2323-
assertion = symphonyCodex.config.ix.image.tag == "2026-05-27";
2323+
assertion = symphonyCodex.config.ix.image.tag == "2026-05-28";
23242324
message = "symphony-codex image should publish an immutable production tag";
23252325
}
23262326
{
2327-
assertion = !(builtins.elem "symphony-room-server" symphonyCodex.packageNames);
2328-
message = "symphony-codex image should let Symphony choose the live room-server source";
2327+
assertion = builtins.elem "symphony-room-server" symphonyCodex.packageNames;
2328+
message = "symphony-codex image should include the room-server binary it starts";
23292329
}
23302330
{
23312331
assertion = builtins.elem pkgs.codex symphonyCodex.packages;

0 commit comments

Comments
 (0)