From ee37d4bf1845d1fc044eb43eef7fc25b34bc48e7 Mon Sep 17 00:00:00 2001 From: Alex TYRODE Date: Fri, 31 Jul 2026 15:20:44 +0000 Subject: [PATCH] chore(omp): track omp 17.2.1 nix/omp.nix: 17.0.6-atyrode.1 -> 17.2.1-atyrode.1 (hashes verified by nix build .#omp and .#with-omp). omp 17.2.1 bundles a seventh agent, security-reviewer, which this grid deliberately does not route: security scans inject the scan's own model into task.agentModelOverrides per session, so a generated route would only skew ad-hoc spawns. The preview legend claimed the marked roles were 'bundled agents'; retitle it to 'agent-backed roles', which is what the derivation actually names. gofmt/vet/tests green (CGO_ENABLED=0). --- generate.go | 13 +++++++++---- generate_test.go | 8 ++++---- nix/omp.nix | 10 +++++----- result | 1 + 4 files changed, 19 insertions(+), 13 deletions(-) create mode 120000 result diff --git a/generate.go b/generate.go index c561737..8c5148a 100644 --- a/generate.go +++ b/generate.go @@ -330,8 +330,13 @@ func (c *catalog) visionLead(pool string, tier int) string { var ( genRoleOrder = []string{"default", "task", "plan", "slow", "designer", "reviewer", "librarian", "scout", "sonic", "advisor", "vision", "smol", "tiny", "commit"} - // The six agents omp bundles. scout was the one this grid never routed, so - // it silently inherited @smol and never appeared in the preview. + // The bundled agents this grid routes: every ●-marked role is mirrored + // into task.agentModelOverrides. omp bundles a seventh since 17.2.1, + // security-reviewer, deliberately unrouted: security scans inject the + // scan's own model into task.agentModelOverrides per session, so a + // generated route would only skew ad-hoc spawns. scout was the one this + // grid never routed, so it silently inherited @smol and never appeared + // in the preview. genAgentRoles = map[string]bool{"designer": true, "librarian": true, "reviewer": true, "scout": true, "sonic": true, "task": true} genDelib = map[string]bool{"plan": true, "slow": true, "designer": true, "reviewer": true} @@ -677,8 +682,8 @@ func (c *catalog) renderCatalog() string { agents = append(agents, r) } } - b.WriteString("bundled agents: " + strings.Join(agents, " ") + - " — ● marks an agent-backed role\n\n") + b.WriteString("agent-backed roles: " + strings.Join(agents, " ") + + " — ● marks a role mirrored into task.agentModelOverrides\n\n") b.WriteString(c.renderAdvisors() + "\n") b.WriteString(c.renderModelFacts() + "\n") hasSpark := c.ladder["O"][0] != "" diff --git a/generate_test.go b/generate_test.go index 80d1b8c..331d389 100644 --- a/generate_test.go +++ b/generate_test.go @@ -305,7 +305,7 @@ func TestEveryEmittedRoleIsWeighted(t *testing.T) { } } -// scout is one of omp's six bundled agents; it must carry the agent marker so +// scout is an agent-backed role; it must carry the agent marker so // genConfigYAML mirrors it into task.agentModelOverrides. func TestScoutIsAgentBacked(t *testing.T) { c := fixtureCatalog(t) @@ -324,13 +324,13 @@ func TestAgentLegendMatchesMarkedRoles(t *testing.T) { out := c.renderCatalog() var legend string for _, l := range strings.Split(out, "\n") { - if strings.HasPrefix(l, "bundled agents: ") { - legend = strings.TrimPrefix(l, "bundled agents: ") + if strings.HasPrefix(l, "agent-backed roles: ") { + legend = strings.TrimPrefix(l, "agent-backed roles: ") break } } if legend == "" { - t.Fatal("catalog header must carry a bundled-agents legend") + t.Fatal("catalog header must carry an agent-backed-roles legend") } named := map[string]bool{} for _, f := range strings.Fields(legend) { diff --git a/nix/omp.nix b/nix/omp.nix index 92ee943..0a34150 100644 --- a/nix/omp.nix +++ b/nix/omp.nix @@ -10,23 +10,23 @@ # Linux assets are Bun single-file executables. Patch PT_INTERP in place so # process.execPath remains the OMP binary when it re-execs subprocess workers. let - version = "17.0.6-atyrode.1"; + version = "17.2.1-atyrode.1"; sources = { "x86_64-linux" = { asset = "omp-linux-x64"; - hash = "sha256-NASJMAsKhGsRvljHMuRicURE5S5tg8KX/h8sIzXnAAw="; + hash = "sha256-KqBaxXNTY/ZONsjCfTf+Dc1AWclDPohLFR16ldkrp5s="; }; "aarch64-linux" = { asset = "omp-linux-arm64"; - hash = "sha256-xKj46OTI9zAxU4AKb4HnLkuuhqqCVCJQFjN/pJ6eEwg="; + hash = "sha256-E64/ssBc7tsBeVLedEXEUlbiAIUWZz/9YxhNKIKryFE="; }; "x86_64-darwin" = { asset = "omp-darwin-x64"; - hash = "sha256-lNXlnkFDbOUCahBsjoSpO/8TWNLHGvOodkFOkXlnN3M="; + hash = "sha256-vEvSdtZISOlCkGMvCxA/iYuE5FbdW5QabDkqiVI5cfM="; }; "aarch64-darwin" = { asset = "omp-darwin-arm64"; - hash = "sha256-SeEzTxt/jVR63+Ep6ICqj0TfuvK3ix1W0rlHfwZzRYE="; + hash = "sha256-6+zlSbtzBB/sJJlsWqcJIRmO0H0HhGCYrwTPSZFDFEE="; }; }; source = diff --git a/result b/result new file mode 120000 index 0000000..41d7bce --- /dev/null +++ b/result @@ -0,0 +1 @@ +/nix/store/pfv9gn6cllnf5f3dgw37z8sw6w4i6m15-code-with-omp \ No newline at end of file