Record pending OpenCode 1.18.18 image
Allow public_ci rows that the upstream recorder already emits as pending, and add v1.18.18 as an uncertified shared-client target. Certified alpha8 rows and consumer tuples stay as they are.
This commit is contained in:
@@ -102,6 +102,17 @@
|
|||||||
"full_text": "compat-ok",
|
"full_text": "compat-ok",
|
||||||
"llm_request_count": 1
|
"llm_request_count": 1
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "upstream-1.18.18-f3e00f8e25500150373c817e24b13f2f08e2ccd4cafd53dc3ad4827d47863b6f",
|
||||||
|
"version": "1.18.18",
|
||||||
|
"image": "ghcr.io/anomalyco/opencode@sha256:f3e00f8e25500150373c817e24b13f2f08e2ccd4cafd53dc3ad4827d47863b6f",
|
||||||
|
"tag_provenance": "ghcr.io/anomalyco/opencode:1.18.18",
|
||||||
|
"consumers": [],
|
||||||
|
"profiles": ["ruby-rest-sse"],
|
||||||
|
"required_consumer_profiles": [],
|
||||||
|
"certification_scope": "shared-client-contract-only",
|
||||||
|
"certification_status": "pending"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"host_canary": [
|
"host_canary": [
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"repository": "anomalyco/opencode",
|
"repository": "anomalyco/opencode",
|
||||||
"release_tag": "v1.18.3",
|
"release_tag": "v1.18.18",
|
||||||
"version": "1.18.3",
|
"version": "1.18.18",
|
||||||
"published_at": "2026-07-16T15:34:33Z",
|
"published_at": "2026-08-13T01:15:04Z",
|
||||||
"release_url": "https://github.com/anomalyco/opencode/releases/tag/v1.18.3",
|
"release_url": "https://github.com/anomalyco/opencode/releases/tag/v1.18.18",
|
||||||
"image": "ghcr.io/anomalyco/opencode@sha256:c2d5d6398df72aac85cb1bdc8f900c71a9b75a33fb7c0a76dc1484e4b126e41e",
|
"image": "ghcr.io/anomalyco/opencode@sha256:f3e00f8e25500150373c817e24b13f2f08e2ccd4cafd53dc3ad4827d47863b6f",
|
||||||
"observed_at": "2026-07-18T00:00:00Z"
|
"observed_at": "2026-08-18T19:30:00Z"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,30 @@ class RepositoryTest < Minitest::Test
|
|||||||
JSON.parse(File.read(File.join(ROOT, path)))
|
JSON.parse(File.read(File.join(ROOT, path)))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def assert_certified_public_target(target)
|
||||||
|
current = target.fetch("current_certification")
|
||||||
|
assert_equal "certified", current.fetch("status")
|
||||||
|
assert_match(/\A[0-9a-f]{40}\z/, current.fetch("client_commit"))
|
||||||
|
assert_match(/\A[0-9a-f]{40}\z/, current.fetch("rails_commit"))
|
||||||
|
assert_equal current.fetch("expected_text"), current.fetch("full_text")
|
||||||
|
assert_equal 1, current.fetch("llm_request_count")
|
||||||
|
assert_path_exists File.join(ROOT, current.fetch("evidence"))
|
||||||
|
previous = target["previous_certification"]
|
||||||
|
return unless previous
|
||||||
|
|
||||||
|
assert_equal "certified", previous.fetch("status")
|
||||||
|
assert_match(/\A[0-9a-f]{40}\z/, previous.fetch("client_commit"))
|
||||||
|
assert_equal previous.fetch("expected_text"), previous.fetch("full_text")
|
||||||
|
assert_equal 1, previous.fetch("llm_request_count")
|
||||||
|
end
|
||||||
|
|
||||||
|
def assert_pending_public_target(target)
|
||||||
|
refute target.key?("current_certification")
|
||||||
|
refute target.key?("previous_certification")
|
||||||
|
assert_empty target.fetch("consumers")
|
||||||
|
assert_empty target.fetch("required_consumer_profiles")
|
||||||
|
end
|
||||||
|
|
||||||
def test_every_json_document_parses
|
def test_every_json_document_parses
|
||||||
paths = Dir.glob(File.join(ROOT, "{evidence,fixtures,manifests,profiles}/**/*.json"))
|
paths = Dir.glob(File.join(ROOT, "{evidence,fixtures,manifests,profiles}/**/*.json"))
|
||||||
refute_empty paths
|
refute_empty paths
|
||||||
@@ -49,22 +73,16 @@ class RepositoryTest < Minitest::Test
|
|||||||
assert_equal ["ruby-rest-sse"], target.fetch("profiles")
|
assert_equal ["ruby-rest-sse"], target.fetch("profiles")
|
||||||
assert_equal "shared-client-contract-only",
|
assert_equal "shared-client-contract-only",
|
||||||
target.fetch("certification_scope", "shared-client-contract-only")
|
target.fetch("certification_scope", "shared-client-contract-only")
|
||||||
assert_equal "certified", target.fetch("certification_status")
|
case target.fetch("certification_status")
|
||||||
current = target.fetch("current_certification")
|
when "certified"
|
||||||
assert_equal "certified", current.fetch("status")
|
assert_certified_public_target(target)
|
||||||
assert_match(/\A[0-9a-f]{40}\z/, current.fetch("client_commit"))
|
when "pending"
|
||||||
assert_match(/\A[0-9a-f]{40}\z/, current.fetch("rails_commit"))
|
assert_pending_public_target(target)
|
||||||
assert_equal current.fetch("expected_text"), current.fetch("full_text")
|
else
|
||||||
assert_equal 1, current.fetch("llm_request_count")
|
flunk "#{target.fetch("id")} certification_status must be pending or certified"
|
||||||
assert_path_exists File.join(ROOT, current.fetch("evidence"))
|
end
|
||||||
previous = target["previous_certification"]
|
|
||||||
next unless previous
|
|
||||||
|
|
||||||
assert_equal "certified", previous.fetch("status")
|
|
||||||
assert_match(/\A[0-9a-f]{40}\z/, previous.fetch("client_commit"))
|
|
||||||
assert_equal previous.fetch("expected_text"), previous.fetch("full_text")
|
|
||||||
assert_equal 1, previous.fetch("llm_request_count")
|
|
||||||
end
|
end
|
||||||
|
assert targets.any? { |target| target.fetch("certification_status") == "certified" }
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_candidate_client_train_is_lockstep_and_bound_to_unpublished_commits
|
def test_candidate_client_train_is_lockstep_and_bound_to_unpublished_commits
|
||||||
|
|||||||
Reference in New Issue
Block a user