Repository navigation
Put the environment in the catalog label - #104
Merged
Merged
Conversation
A code_id fingerprints the code alone, so two environments with identical trees share one: production and a branch cut from it that has not diverged yet. config-version labeled both of their catalogs with the same bare code_id, so a run log or a report could not say which environment a catalog came from. It now prints <environment>-<code_id>, the ENVIRONMENT and CODE_ID columns of `codavox compilers` at the same width. config-version is already given the environment and validates it, so this needs no new state and no new way to fail, and nothing changes on the publisher or the agent. Environment names are \w+, so the label splits cleanly at its first '-'. It also restores part of what the standard control repo's r10k label carried. The commit is left out on purpose. One code_id can come from several commits, so a label carrying one would have to change without the code changing, and every compiler would need state the environment link does not hold, plus a cache flush to get it past OpenVox's memoized label. `codavox provenance` already answers it on the publisher. This changes the label format released in 0.9.0. Anything matching a bare 12-character label needs the release's upgrade note. Fixes #101 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Michael Harp <mike@mikeharp.com>
2 tasks done
miharp
added a commit
that referenced
this pull request
Oct 14, 2026
The release workflow refuses a tag that installation.md does not document, so the install lines move to 0.10.0. The upgrade note exists because the catalog label changes format. config-version now prints <environment>-<code_id> (#104), so anything matching the bare 0.9 label, an OpenVoxDB query or a dashboard, has to change first. It also says when an upgraded server starts printing the new form: OpenVox computes the label once per cached environment, so under environment_timeout = unlimited the old form lasts until the next deploy or restart. The provenance fix (#103) needs nothing from the operator, but the note says when the missing branch commits appear. CONTRIBUTING still told the release to bump a VERSION= line in the README, which has had none since the install moved to the package repository in #96. Lab: batches B, F, and I green (56/56) against an fa7e9cb snapshot built with go1.26.9, including the new I8: on real r10k, a branch that has not diverged from production gets its own label and its own provenance commit (codavox-lab 82397df). Signed-off-by: Michael Harp <mike@mikeharp.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #101.
Problem
A
code_idfingerprints the code alone, so two environments with identical trees share one:productionand a branch cut from it that has not diverged yet.config-versionlabeled both of their catalogs with the same barecode_id, so a run log or a report could not say which environment a catalog came from.Change
config-versionprints<environment>-<code_id>, for exampleproduction-a3f1c9e4b2d8: the ENVIRONMENT and CODE_ID columns ofcodavox compilers, at the same width. It is already given the environment and validates it, so there is no new state and no new way to fail, and nothing changes on the publisher or the agent. Environment names are\w+, so the label splits cleanly at its first-.TestConfigVersionadds an environment serving the samecode_idasproductionand asserts the two labels differ.production-<code_id>in the run output and in the catalog'sversion.commands.mdgives the new format and says why the commit is not in it.first-server.md,static-catalogs.md, and the harness README describe the new label.Not in this PR
code_idcan come from several commits, so the label would have to change without the code changing, and every compiler would need new state and a cache flush to get it past OpenVox's memoized label.codavox provenanceanswers it on the publisher.config_version.shsnippet incommands.mdstill says "label the catalog with its code_id". Operators have copied it verbatim, and it is still true enough.Test plan
go test -race ./...,go vet,golangci-lint(0 issues),gofmt, shellcheck, cspell, markdownlint./test/integration/run.sh: not run locally; this PR touches the harness, so CI runs itAssisted by Claude.