Parent
Map #16 · implements the Phase 0 decision locked in #19 (SHA/build-id stamping — the observability substrate).
What to build
Today manifest.json carries only version/timestamp/binaries, and the only on-pod way to tell which binary a user is on is codeq --version — which exposes no SHA. Make every codeq build self-identifying: stamp the opencode git SHA plus the Cloud Build $SHORT_SHA/$BUILD_ID into codeq --version output, and add "sha" + "build_id" keys to the emitted manifest.json, in both staging and prod.
Cheap — the build-binary step already installs git and sets OPENCODE_BUMP=1. This is the prerequisite for the rollout smoke-test and for verifying any auto-rebuild.
Lands in qbraid-infrastructure (terraform/environments/{staging,prod}/gcp/cloud-build-codeq.tf). Full ordered spec: #19 → Phase 0.
Acceptance criteria
Blocked by
- None — can start immediately.
Parent
Map #16 · implements the Phase 0 decision locked in #19 (SHA/build-id stamping — the observability substrate).
What to build
Today
manifest.jsoncarries onlyversion/timestamp/binaries, and the only on-pod way to tell which binary a user is on iscodeq --version— which exposes no SHA. Make every codeq build self-identifying: stamp the opencode git SHA plus the Cloud Build$SHORT_SHA/$BUILD_IDintocodeq --versionoutput, and add"sha"+"build_id"keys to the emittedmanifest.json, in both staging and prod.Cheap — the
build-binarystep already installs git and setsOPENCODE_BUMP=1. This is the prerequisite for the rollout smoke-test and for verifying any auto-rebuild.Lands in
qbraid-infrastructure(terraform/environments/{staging,prod}/gcp/cloud-build-codeq.tf). Full ordered spec: #19 → Phase 0.Acceptance criteria
latest/manifest.jsonincluding asha(opencode git SHA) and abuild_idkey.codeq --versionon the produced binary reports the same SHA / build id.opencode-prod-main→gs://qbraid-codeq).version/timestamp/binariesfields — additive only.Blocked by